diff --git a/AGVEmulator/AGVEmulator.csproj b/AGVEmulator/AGVEmulator.csproj index b8e128e..4add5f4 100644 --- a/AGVEmulator/AGVEmulator.csproj +++ b/AGVEmulator/AGVEmulator.csproj @@ -38,14 +38,12 @@ icons8-robot-80.ico + + False + ..\DLL\arCommUtil.dll + - ..\Cs_HMI\DLL\arControl.Net4.dll - - - ..\Cs_HMI\DLL\ArLog.Net4.dll - - - ..\Cs_HMI\DLL\ArSetting.Net4.dll + ..\DLL\arControl.Net4.dll @@ -126,15 +124,11 @@ - + {c5f7a8b2-8d3e-4a1b-9c6e-7f4d5e2a9b1c} AGVNavigationCore - - {14e8c9a5-013e-49ba-b435-ffffff7dd623} - arCommUtil - - + {9365803b-933d-4237-93c7-b502c855a71c} ENIGProtocol diff --git a/AGVEmulator/AGVEmulator.sln b/AGVEmulator/AGVEmulator.sln index 692f388..fe20a8c 100644 --- a/AGVEmulator/AGVEmulator.sln +++ b/AGVEmulator/AGVEmulator.sln @@ -5,11 +5,9 @@ VisualStudioVersion = 17.14.36804.6 d17.14 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVEmulator", "AGVEmulator.csproj", "{9312AB43-72F6-4365-A266-E767215FA7F5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVNavigationCore", "..\Cs_HMI\AGVLogic\AGVNavigationCore\AGVNavigationCore.csproj", "{C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVNavigationCore", "..\AGVLogic\AGVNavigationCore\AGVNavigationCore.csproj", "{C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENIGProtocol", "..\Cs_HMI\SubProject\ENIGProtocol\enigprotocol\ENIGProtocol.csproj", "{9365803B-933D-4237-93C7-B502C855A71C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arCommUtil", "..\Cs_HMI\SubProject\CommUtil\arCommUtil.csproj", "{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENIGProtocol", "..\AGVLogic\ENIGProtocol\enigprotocol\ENIGProtocol.csproj", "{9365803B-933D-4237-93C7-B502C855A71C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/AGVEmulator/DevAGV.cs b/AGVEmulator/DevAGV.cs index b4b7896..601c10e 100644 --- a/AGVEmulator/DevAGV.cs +++ b/AGVEmulator/DevAGV.cs @@ -1,5 +1,4 @@ -using arCtl; -using System; +using System; using System.Collections.Generic; using System.Drawing; using System.Linq; diff --git a/AGVEmulator/fMain.cs b/AGVEmulator/fMain.cs index 655384a..315af05 100644 --- a/AGVEmulator/fMain.cs +++ b/AGVEmulator/fMain.cs @@ -19,7 +19,7 @@ namespace AGVEmulator { public partial class fMain : Form { - arUtil.Log logAGV, logBMS, logCAL; + AR.Log logAGV, logBMS, logCAL; DevBMS BMS; DevAGV AGV; DevXBE XBE; @@ -47,9 +47,9 @@ namespace AGVEmulator InitializeComponent(); this.Text = $"{Application.ProductName} ver.{Application.ProductVersion}"; // logPLC = new arUtil.Log(); - logAGV = new arUtil.Log(); - logBMS = new arUtil.Log(); - logCAL = new arUtil.Log(); + logAGV = new AR.Log(); + logBMS = new AR.Log(); + logCAL = new AR.Log(); // logPLC.FileNameFormat = "{yyyyMMdd}_PLC"; logAGV.FileNameFormat = "{yyyyMMdd}_AGV"; diff --git a/Cs_HMI/AGVLogic/AGVLogic.sln b/AGVLogic/AGVLogic.sln similarity index 76% rename from Cs_HMI/AGVLogic/AGVLogic.sln rename to AGVLogic/AGVLogic.sln index 375f11e..a07e0cf 100644 --- a/Cs_HMI/AGVLogic/AGVLogic.sln +++ b/AGVLogic/AGVLogic.sln @@ -1,6 +1,7 @@ + Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 15 for Windows Desktop -VisualStudioVersion = 15.0.36324.19 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36310.24 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVMapEditor", "AGVMapEditor\AGVMapEditor.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" EndProject @@ -8,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVNavigationCore", "AGVNav EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVSimulator", "AGVSimulator\AGVSimulator.csproj", "{B2C3D4E5-0000-0000-0000-000000000000}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENIGProtocol", "EnigProtocol\enigprotocol\ENIGProtocol.csproj", "{9365803B-933D-4237-93C7-B502C855A71C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -26,11 +29,15 @@ Global {B2C3D4E5-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU {B2C3D4E5-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU {B2C3D4E5-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {F2C60284-CCB5-450D-BCD0-19C693529FD6} + SolutionGuid = {638744DA-A7C8-43E2-A98E-0DE9BDB1DA35} EndGlobalSection EndGlobal diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/AGVMapEditor.csproj b/AGVLogic/AGVMapEditor/AGVMapEditor.csproj similarity index 98% rename from Cs_HMI/AGVLogic/AGVMapEditor/AGVMapEditor.csproj rename to AGVLogic/AGVMapEditor/AGVMapEditor.csproj index 0a3e82e..ce22a99 100644 --- a/Cs_HMI/AGVLogic/AGVMapEditor/AGVMapEditor.csproj +++ b/AGVLogic/AGVMapEditor/AGVMapEditor.csproj @@ -17,7 +17,7 @@ true full false - ..\..\..\..\..\..\Amkor\AGV4\Test\MapEditor\ + bin\debug\ DEBUG;TRACE prompt 4 diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Controls/ImageEditorCanvas.cs b/AGVLogic/AGVMapEditor/Controls/ImageEditorCanvas.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Controls/ImageEditorCanvas.cs rename to AGVLogic/AGVMapEditor/Controls/ImageEditorCanvas.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Forms/ImageEditorForm.Designer.cs b/AGVLogic/AGVMapEditor/Forms/ImageEditorForm.Designer.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Forms/ImageEditorForm.Designer.cs rename to AGVLogic/AGVMapEditor/Forms/ImageEditorForm.Designer.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Forms/ImageEditorForm.cs b/AGVLogic/AGVMapEditor/Forms/ImageEditorForm.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Forms/ImageEditorForm.cs rename to AGVLogic/AGVMapEditor/Forms/ImageEditorForm.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Forms/MainForm.Designer.cs b/AGVLogic/AGVMapEditor/Forms/MainForm.Designer.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Forms/MainForm.Designer.cs rename to AGVLogic/AGVMapEditor/Forms/MainForm.Designer.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Forms/MainForm.cs b/AGVLogic/AGVMapEditor/Forms/MainForm.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Forms/MainForm.cs rename to AGVLogic/AGVMapEditor/Forms/MainForm.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Forms/MainForm.resx b/AGVLogic/AGVMapEditor/Forms/MainForm.resx similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Forms/MainForm.resx rename to AGVLogic/AGVMapEditor/Forms/MainForm.resx diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Models/EditorSettings.cs b/AGVLogic/AGVMapEditor/Models/EditorSettings.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Models/EditorSettings.cs rename to AGVLogic/AGVMapEditor/Models/EditorSettings.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Models/ImagePathEditor.cs b/AGVLogic/AGVMapEditor/Models/ImagePathEditor.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Models/ImagePathEditor.cs rename to AGVLogic/AGVMapEditor/Models/ImagePathEditor.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Models/MapImage.cs b/AGVLogic/AGVMapEditor/Models/MapImage.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Models/MapImage.cs rename to AGVLogic/AGVMapEditor/Models/MapImage.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Models/MapLabel.cs b/AGVLogic/AGVMapEditor/Models/MapLabel.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Models/MapLabel.cs rename to AGVLogic/AGVMapEditor/Models/MapLabel.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Program.cs b/AGVLogic/AGVMapEditor/Program.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Program.cs rename to AGVLogic/AGVMapEditor/Program.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Properties/AssemblyInfo.cs b/AGVLogic/AGVMapEditor/Properties/AssemblyInfo.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Properties/AssemblyInfo.cs rename to AGVLogic/AGVMapEditor/Properties/AssemblyInfo.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Properties/Resources.Designer.cs b/AGVLogic/AGVMapEditor/Properties/Resources.Designer.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Properties/Resources.Designer.cs rename to AGVLogic/AGVMapEditor/Properties/Resources.Designer.cs diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/Properties/Resources.resx b/AGVLogic/AGVMapEditor/Properties/Resources.resx similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/Properties/Resources.resx rename to AGVLogic/AGVMapEditor/Properties/Resources.resx diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/build.bat b/AGVLogic/AGVMapEditor/build.bat similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/build.bat rename to AGVLogic/AGVMapEditor/build.bat diff --git a/Cs_HMI/AGVLogic/AGVMapEditor/packages.config b/AGVLogic/AGVMapEditor/packages.config similarity index 100% rename from Cs_HMI/AGVLogic/AGVMapEditor/packages.config rename to AGVLogic/AGVMapEditor/packages.config diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/AGVNavigationCore.csproj b/AGVLogic/AGVNavigationCore/AGVNavigationCore.csproj similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/AGVNavigationCore.csproj rename to AGVLogic/AGVNavigationCore/AGVNavigationCore.csproj diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Controls/AGVState.cs b/AGVLogic/AGVNavigationCore/Controls/AGVState.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Controls/AGVState.cs rename to AGVLogic/AGVNavigationCore/Controls/AGVState.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Controls/IAGV.cs b/AGVLogic/AGVNavigationCore/Controls/IAGV.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Controls/IAGV.cs rename to AGVLogic/AGVNavigationCore/Controls/IAGV.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Designer.cs b/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Designer.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Designer.cs rename to AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Designer.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Events.cs b/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Events.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Events.cs rename to AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Events.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Mouse.cs b/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Mouse.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Mouse.cs rename to AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.Mouse.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.cs b/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.cs rename to AGVLogic/AGVNavigationCore/Controls/UnifiedAGVCanvas.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/AGVCommand.cs b/AGVLogic/AGVNavigationCore/Models/AGVCommand.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/AGVCommand.cs rename to AGVLogic/AGVNavigationCore/Models/AGVCommand.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/Enums.cs b/AGVLogic/AGVNavigationCore/Models/Enums.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/Enums.cs rename to AGVLogic/AGVNavigationCore/Models/Enums.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/IMovableAGV.cs b/AGVLogic/AGVNavigationCore/Models/IMovableAGV.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/IMovableAGV.cs rename to AGVLogic/AGVNavigationCore/Models/IMovableAGV.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapImage.cs b/AGVLogic/AGVNavigationCore/Models/MapImage.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapImage.cs rename to AGVLogic/AGVNavigationCore/Models/MapImage.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapLabel.cs b/AGVLogic/AGVNavigationCore/Models/MapLabel.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapLabel.cs rename to AGVLogic/AGVNavigationCore/Models/MapLabel.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapLoader.cs b/AGVLogic/AGVNavigationCore/Models/MapLoader.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapLoader.cs rename to AGVLogic/AGVNavigationCore/Models/MapLoader.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapMagnet.cs b/AGVLogic/AGVNavigationCore/Models/MapMagnet.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapMagnet.cs rename to AGVLogic/AGVNavigationCore/Models/MapMagnet.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapMark.cs b/AGVLogic/AGVNavigationCore/Models/MapMark.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapMark.cs rename to AGVLogic/AGVNavigationCore/Models/MapMark.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapNode.cs b/AGVLogic/AGVNavigationCore/Models/MapNode.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/MapNode.cs rename to AGVLogic/AGVNavigationCore/Models/MapNode.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/NodeBase.cs b/AGVLogic/AGVNavigationCore/Models/NodeBase.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/NodeBase.cs rename to AGVLogic/AGVNavigationCore/Models/NodeBase.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Models/VirtualAGV.cs b/AGVLogic/AGVNavigationCore/Models/VirtualAGV.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Models/VirtualAGV.cs rename to AGVLogic/AGVNavigationCore/Models/VirtualAGV.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Analysis/JunctionAnalyzer.cs b/AGVLogic/AGVNavigationCore/PathFinding/Analysis/JunctionAnalyzer.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Analysis/JunctionAnalyzer.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Analysis/JunctionAnalyzer.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Core/AGVPathResult.cs b/AGVLogic/AGVNavigationCore/PathFinding/Core/AGVPathResult.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Core/AGVPathResult.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Core/AGVPathResult.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Core/AStarPathfinder.cs b/AGVLogic/AGVNavigationCore/PathFinding/Core/AStarPathfinder.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Core/AStarPathfinder.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Core/AStarPathfinder.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Core/PathNode.cs b/AGVLogic/AGVNavigationCore/PathFinding/Core/PathNode.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Core/PathNode.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Core/PathNode.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/AGVPathfinder.cs b/AGVLogic/AGVNavigationCore/PathFinding/Planning/AGVPathfinder.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/AGVPathfinder.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Planning/AGVPathfinder.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionChangePlanner.cs b/AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionChangePlanner.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionChangePlanner.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionChangePlanner.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionalPathfinder.cs b/AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionalPathfinder.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionalPathfinder.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Planning/DirectionalPathfinder.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/NodeMotorInfo.cs b/AGVLogic/AGVNavigationCore/PathFinding/Planning/NodeMotorInfo.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Planning/NodeMotorInfo.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Planning/NodeMotorInfo.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Validation/DockingValidationResult.cs b/AGVLogic/AGVNavigationCore/PathFinding/Validation/DockingValidationResult.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Validation/DockingValidationResult.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Validation/DockingValidationResult.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Validation/PathValidationResult.cs b/AGVLogic/AGVNavigationCore/PathFinding/Validation/PathValidationResult.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/PathFinding/Validation/PathValidationResult.cs rename to AGVLogic/AGVNavigationCore/PathFinding/Validation/PathValidationResult.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Properties/AssemblyInfo.cs b/AGVLogic/AGVNavigationCore/Properties/AssemblyInfo.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Properties/AssemblyInfo.cs rename to AGVLogic/AGVNavigationCore/Properties/AssemblyInfo.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/README.md b/AGVLogic/AGVNavigationCore/README.md similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/README.md rename to AGVLogic/AGVNavigationCore/README.md diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/AGVDirectionCalculator.cs b/AGVLogic/AGVNavigationCore/Utils/AGVDirectionCalculator.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/AGVDirectionCalculator.cs rename to AGVLogic/AGVNavigationCore/Utils/AGVDirectionCalculator.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/DirectionalHelper.cs b/AGVLogic/AGVNavigationCore/Utils/DirectionalHelper.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/DirectionalHelper.cs rename to AGVLogic/AGVNavigationCore/Utils/DirectionalHelper.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/DirectionalPathfinderTest.cs b/AGVLogic/AGVNavigationCore/Utils/DirectionalPathfinderTest.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/DirectionalPathfinderTest.cs rename to AGVLogic/AGVNavigationCore/Utils/DirectionalPathfinderTest.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/DockingValidator.cs b/AGVLogic/AGVNavigationCore/Utils/DockingValidator.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/DockingValidator.cs rename to AGVLogic/AGVNavigationCore/Utils/DockingValidator.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/GetNextNodeIdTest.cs b/AGVLogic/AGVNavigationCore/Utils/GetNextNodeIdTest.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/GetNextNodeIdTest.cs rename to AGVLogic/AGVNavigationCore/Utils/GetNextNodeIdTest.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/ImageConverterUtil.cs b/AGVLogic/AGVNavigationCore/Utils/ImageConverterUtil.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/ImageConverterUtil.cs rename to AGVLogic/AGVNavigationCore/Utils/ImageConverterUtil.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/LiftCalculator.cs b/AGVLogic/AGVNavigationCore/Utils/LiftCalculator.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/LiftCalculator.cs rename to AGVLogic/AGVNavigationCore/Utils/LiftCalculator.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/Utils/TestRunner.cs b/AGVLogic/AGVNavigationCore/Utils/TestRunner.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/Utils/TestRunner.cs rename to AGVLogic/AGVNavigationCore/Utils/TestRunner.cs diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/build.bat b/AGVLogic/AGVNavigationCore/build.bat similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/build.bat rename to AGVLogic/AGVNavigationCore/build.bat diff --git a/Cs_HMI/AGVLogic/AGVNavigationCore/packages.config b/AGVLogic/AGVNavigationCore/packages.config similarity index 100% rename from Cs_HMI/AGVLogic/AGVNavigationCore/packages.config rename to AGVLogic/AGVNavigationCore/packages.config diff --git a/Cs_HMI/AGVLogic/AGVSimulator/AGVSimulator.csproj b/AGVLogic/AGVSimulator/AGVSimulator.csproj similarity index 98% rename from Cs_HMI/AGVLogic/AGVSimulator/AGVSimulator.csproj rename to AGVLogic/AGVSimulator/AGVSimulator.csproj index e3b37f1..d1ec161 100644 --- a/Cs_HMI/AGVLogic/AGVSimulator/AGVSimulator.csproj +++ b/AGVLogic/AGVSimulator/AGVSimulator.csproj @@ -17,7 +17,7 @@ true full false - ..\..\..\..\..\..\Amkor\AGV4\Test\Simulator\ + bin\debug\ DEBUG;TRACE prompt 4 diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/ComboBoxItem.cs b/AGVLogic/AGVSimulator/Forms/ComboBoxItem.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/ComboBoxItem.cs rename to AGVLogic/AGVSimulator/Forms/ComboBoxItem.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/DirectionItem.cs b/AGVLogic/AGVSimulator/Forms/DirectionItem.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/DirectionItem.cs rename to AGVLogic/AGVSimulator/Forms/DirectionItem.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/PathTestLogItem.cs b/AGVLogic/AGVSimulator/Forms/PathTestLogItem.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/PathTestLogItem.cs rename to AGVLogic/AGVSimulator/Forms/PathTestLogItem.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/ProgressLogForm.Designer.cs b/AGVLogic/AGVSimulator/Forms/ProgressLogForm.Designer.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/ProgressLogForm.Designer.cs rename to AGVLogic/AGVSimulator/Forms/ProgressLogForm.Designer.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/ProgressLogForm.cs b/AGVLogic/AGVSimulator/Forms/ProgressLogForm.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/ProgressLogForm.cs rename to AGVLogic/AGVSimulator/Forms/ProgressLogForm.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/SimulatorForm.Designer.cs b/AGVLogic/AGVSimulator/Forms/SimulatorForm.Designer.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/SimulatorForm.Designer.cs rename to AGVLogic/AGVSimulator/Forms/SimulatorForm.Designer.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/SimulatorForm.cs b/AGVLogic/AGVSimulator/Forms/SimulatorForm.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/SimulatorForm.cs rename to AGVLogic/AGVSimulator/Forms/SimulatorForm.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Forms/SimulatorForm.resx b/AGVLogic/AGVSimulator/Forms/SimulatorForm.resx similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Forms/SimulatorForm.resx rename to AGVLogic/AGVSimulator/Forms/SimulatorForm.resx diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Models/SimulationState.cs b/AGVLogic/AGVSimulator/Models/SimulationState.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Models/SimulationState.cs rename to AGVLogic/AGVSimulator/Models/SimulationState.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Models/SimulatorConfig.cs b/AGVLogic/AGVSimulator/Models/SimulatorConfig.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Models/SimulatorConfig.cs rename to AGVLogic/AGVSimulator/Models/SimulatorConfig.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Program.cs b/AGVLogic/AGVSimulator/Program.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Program.cs rename to AGVLogic/AGVSimulator/Program.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/Properties/AssemblyInfo.cs b/AGVLogic/AGVSimulator/Properties/AssemblyInfo.cs similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/Properties/AssemblyInfo.cs rename to AGVLogic/AGVSimulator/Properties/AssemblyInfo.cs diff --git a/Cs_HMI/AGVLogic/AGVSimulator/build.bat b/AGVLogic/AGVSimulator/build.bat similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/build.bat rename to AGVLogic/AGVSimulator/build.bat diff --git a/Cs_HMI/AGVLogic/AGVSimulator/packages.config b/AGVLogic/AGVSimulator/packages.config similarity index 100% rename from Cs_HMI/AGVLogic/AGVSimulator/packages.config rename to AGVLogic/AGVSimulator/packages.config diff --git a/AGVLogic/EnigProtocol/.gitignore b/AGVLogic/EnigProtocol/.gitignore new file mode 100644 index 0000000..6f0598c --- /dev/null +++ b/AGVLogic/EnigProtocol/.gitignore @@ -0,0 +1,13 @@ +obj +bin +*.user +*.v12 +*.suo +.git +.vs +Debug +__vm +*.pdb +desktop.ini +packages +~*.xlsx diff --git a/AGVLogic/EnigProtocol/ENIGProtocol.Tests/EEProtocolTests.cs b/AGVLogic/EnigProtocol/ENIGProtocol.Tests/EEProtocolTests.cs new file mode 100644 index 0000000..88b1754 --- /dev/null +++ b/AGVLogic/EnigProtocol/ENIGProtocol.Tests/EEProtocolTests.cs @@ -0,0 +1,53 @@ +using Xunit; +using ENIG; + +namespace ENIGProtocol.Tests +{ + public class EEProtocolTests + { + [Fact] + public void TestCRC16Calculation() + { + // 테스트 데이터 + byte[] testData = new byte[] { 0x02,0x00,0xFF }; //payload에는 stx, len, ... crc,etx 는 제외한다 + + // CRC16 계산 + var protocol = new EEProtocol(); + ushort crc = protocol.CalculateCRC16(testData); + + // 예상 결과와 비교 + Assert.Equal(0x1789, crc); + } + + [Fact] + public void TestPacketCreation() + { + // 패킷 생성 테스트 + var protocol = new EEProtocol(); + byte[] packet = protocol.CreatePacket(0x01, 0x02, new byte[] { 0x03, 0x04 }); + + // 패킷 구조 검증 + Assert.Equal(0x02, packet[0]); // STX + Assert.Equal(0x04, packet[1]); // Length + Assert.Equal(0x01, packet[2]); // ID + Assert.Equal(0x02, packet[3]); // Command + Assert.Equal(0x03, packet[4]); // Data[0] + Assert.Equal(0x04, packet[5]); // Data[1] + } + + [Fact] + public void TestPacketParsing() + { + // 패킷 파싱 테스트 + var protocol = new EEProtocol(); + + //byte[] testPacket = new byte[] { 0x02, 0x04, 0x01, 0x02, 0x03, 0x04, 0x12, 0x34, 0x03 }; + byte[] testPacket = new byte[] { 0x02, 0x02, 0x00, 0xFF, 0x89, 0x17, 0x03 }; + + + bool result = protocol.ParsePacket(testPacket); + + Assert.True(result); + } + } +} \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/ENIGProtocol.Tests/ENIGProtocol.Tests.csproj b/AGVLogic/EnigProtocol/ENIGProtocol.Tests/ENIGProtocol.Tests.csproj new file mode 100644 index 0000000..788660c --- /dev/null +++ b/AGVLogic/EnigProtocol/ENIGProtocol.Tests/ENIGProtocol.Tests.csproj @@ -0,0 +1,33 @@ + + + net6.0 + enable + enable + false + true + v4.0 + + + + + 2.0 + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + + \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/ENIGProtocol.Tests/UnitTest1.cs b/AGVLogic/EnigProtocol/ENIGProtocol.Tests/UnitTest1.cs new file mode 100644 index 0000000..17d8c03 --- /dev/null +++ b/AGVLogic/EnigProtocol/ENIGProtocol.Tests/UnitTest1.cs @@ -0,0 +1,10 @@ +namespace ENIGProtocol.Tests; + +public class UnitTest1 +{ + [Fact] + public void Test1() + { + + } +} \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/ENIGProtocol.sln b/AGVLogic/EnigProtocol/ENIGProtocol.sln new file mode 100644 index 0000000..bfb3ad7 --- /dev/null +++ b/AGVLogic/EnigProtocol/ENIGProtocol.sln @@ -0,0 +1,43 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Express 15 for Windows Desktop +VisualStudioVersion = 15.0.28307.1000 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "솔루션 항목", "솔루션 항목", "{0A11874A-E5C6-4170-9787-1FFF7AF0D289}" + ProjectSection(SolutionItems) = preProject + .gitignore = .gitignore + ReadMe.MD = ReadMe.MD + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleProject", "sample\SampleProject.csproj", "{FAB31C8A-7DCF-4152-8A82-76F3C10BABA4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENIGProtocol.Tests", "ENIGProtocol.Tests\ENIGProtocol.Tests.csproj", "{3A677629-1F08-49B2-BC75-58282E439FD4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENIGProtocol", "enigprotocol\ENIGProtocol.csproj", "{499D8912-4B96-41E5-A70D-CFE797883D65}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FAB31C8A-7DCF-4152-8A82-76F3C10BABA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAB31C8A-7DCF-4152-8A82-76F3C10BABA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAB31C8A-7DCF-4152-8A82-76F3C10BABA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAB31C8A-7DCF-4152-8A82-76F3C10BABA4}.Release|Any CPU.Build.0 = Release|Any CPU + {3A677629-1F08-49B2-BC75-58282E439FD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3A677629-1F08-49B2-BC75-58282E439FD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3A677629-1F08-49B2-BC75-58282E439FD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3A677629-1F08-49B2-BC75-58282E439FD4}.Release|Any CPU.Build.0 = Release|Any CPU + {499D8912-4B96-41E5-A70D-CFE797883D65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {499D8912-4B96-41E5-A70D-CFE797883D65}.Debug|Any CPU.Build.0 = Debug|Any CPU + {499D8912-4B96-41E5-A70D-CFE797883D65}.Release|Any CPU.ActiveCfg = Release|Any CPU + {499D8912-4B96-41E5-A70D-CFE797883D65}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {07331835-C46C-4B93-965F-AD2714F97F88} + EndGlobalSection +EndGlobal diff --git a/AGVLogic/EnigProtocol/ReadMe.MD b/AGVLogic/EnigProtocol/ReadMe.MD new file mode 100644 index 0000000..8433905 --- /dev/null +++ b/AGVLogic/EnigProtocol/ReadMe.MD @@ -0,0 +1,246 @@ +# ENIG Protocol + +ENIG 프로토콜 통신 라이브러리 + +**Explanation of the README Content:** + +1. **Title and Overview:** Clearly states the purpose of the library. +2. **Key Components:** Explains the main building blocks: + * `DeviceType` enum: Lists the device types. + * `Packet` class: Describes the packet structure. + * `EEProtocol` class: Explains its role in packet handling. +3. **Key Features:** Details the core functionalities of the `EEProtocol` class: + * Packet creation. + * Packet parsing. + * Data reception. + * Event-driven nature. + * CRC16 calculation. +4. **Usage:** Provides code examples for: + * Creating a packet. + * Parsing a packet. + * Processing received data. +5. **Error Handling:** Explains how the library handles invalid data and incomplete packets. +6. **Dependencies:** Lists any required frameworks or libraries. +7. **License:** Placeholder for the project's license. + +This README provides a comprehensive overview of the `ENIGProtocol` library, making it easy for other developers to understand and use it. I hope this is helpful! + + +## 개발 환경 +- Frameworks : .NET Standard 2.0 +- Visual Studio 2022 또는 Visual Studio Code + +## 프로젝트 구조 + +- `EEProtocol.cs`: ENIG 프로토콜 구현 +- `EEProtocolTests.cs`: 단위 테스트 코드 +- `Sample`: C# Winform 샘플 프로젝트 + +## 장비 목록 +``` +public enum DeviceType : byte +{ + ACS = 0, + AGV1 = 10+1, + AGV2 = 10+2, + BUFFER1 = 20+1, + BUFFER2 = 20+2, + BUFFER3 = 20+3, + BUFFER4 = 20+4, + BUFFER5 = 20+5, + DOOR = 30, +} +``` +public enum DeviceAlias : byte +{ + B1 = 20 + 1, //BUFFER1 ~ 5 + B2 = 20 + 2, + B3 = 20 + 3, + B4 = 20 + 4, + B5 = 20 + 5, + C1 = 40 + 1, //충전소 1 + C2 = 40 + 2, //충전소 2 + C3 = 40 + 3, //충전소 3 + C4 = 40 + 4, //충전소 4 + E1 = 90 + 1, //장비1 (SSOTRON Loader) + E2 = 90 + 2, //장비2 (TOPS ENIG) + E3 = 90 + 3, //장비3 (SSOTRON DIVERTER) +} +//11번 AGV야! BUFFER1로 이동해라! +//0x02 0x03 0x0B 0x6B 0x42 0x31 {CRC} 0x03 + +### 기본 패킷 구조 +``` +[STX][LEN][ID][CMD][DATA][CRC16][ETX] +``` +- **STX (Start of Text)**: 0x02 +- **LEN (Length)**: 데이터 길이 (1바이트) = {CMD+DATA} +- **ID (Client ID)**: 데이터 길이 (1바이트) : 디바이스식별코드(=DeviceType) +- **CMD (Command)**: 명령어 코드 (1바이트) +- **DATA**: 명령어에 따른 데이터 (가변 길이) +- **CRC16**: 데이터 무결성 검사 (2바이트) +- **ETX (End of Text)**: 0x03 + +### 통신 방향 (호스트=ACS, 장비=agv,buffer,door) +- H -> E: 호스트에서 장비로 전송 +- E -> H: 장비에서 호스트로 전송 + +### 명령어 목록 +1. **ACS (AGV Control System)** + + +2. **Buffer** + - E -> H | cmd(3): 상태 (data len=1 : 0=카트없음, 1=카트있음, 2=바쁨, 3=알수없음, 255=오류) + - H -> E | cmd(1): Lock + - Target[1] = {DeviceType} + - H -> E | cmd(2): UnLock + - Target[1] = {DeviceType} + +3. **AGV** + - H -> E | Move : cmd(100) : 대상태그까지 이동(자동이동) + - Target[1] = {DeviceType} + - TagID[4] = "0000" + + - H -> E | Stop : cmd(101) : 멈춤 + - H -> E | Reset : cmd(102) : 오류 소거 + + - H -> E | SetCurrent : cmd(103) : 현재위치설정 + - Target[1] = {DeviceType} + - TagID[4] = "0000" + + - H -> E | MoveManual : cmd(104) : 메뉴얼이동 + - Target[1] = {DeviceType} + - Direction[1] : 0=Backward, 1=Forward, 2=TurnLeft, 3=TurnRight + - Speed[1] : 0=Slow, 1=Normal, 2=Fast + + - H -> E | MarkStop : cmd(105) : 마크센서스톱 + - Target[1] = {DeviceType} + + - H -> E | Lift Control : cmd(106) : 리프트제어 + - Target[1] = {DeviceType} + - Action[1] : 0=STOP, 1=UP, 2=DOWN + + - H -> E | Move : cmd(107) : 대상별칭까지 이동(자동이동) + - Target[1] = {DeviceType} + - AliasName[n] = "..... + + - H -> E | MoveAuto : cmd(108) : 자동이동 + - Target[1] = {DeviceType} + - MotDirection[1] : 0=Backward, 1=Forward + - MagnetDirection[1] : 0=Straight,1=Left, 2=Right + - Speed[1] : 0=Slow, 1=Normal, 2=Fast + + - H -> E | Charge On: cmd(109) : 충전실행(충전기 이동 후 자동 충전 진행) + - Target[1] = {DeviceType} + - Action[1] : 0=Charge Off, 1=Charge On + + + - E -> H | Move Complete : cmd(1) : 목적지이동완료 후 전송 + - TagID[4] : "0000" + - E -> H | TagID Received : cmd(2) : 태그값 인식시 전송 + - TagID[4] : "0000" + + - E -> H | Status : cmd(3) + - Mode[1] : 0=manual, 1=auto + - RunSt[1] : 0=stop, 1=run, 2=error + - Diection[1] : 0=straight, 1=left, 2=right, 3=markstop + - Inposition[1] : 0=off, 1=on : 목적위치에 도달완료 시 설정 이동 이동시 OFF됨 + - ChargeSt[1] : 0=off, 1=on + - CartSt[1] : 0=off, 1=on, 2=unknown + - LiftSt[1] : 0=down , 1=up, 2=unknown + - LastTag[4] : "0000" + - CurrentPath[1] : Path ID , 0=미설정, 1~255(순차증가) + +4. **Door** + - H -> E | cmd(1): 출입문 열기 + - H -> E | cmd(2): 출입문 닫기 + - E -> H | cmd(3): 출입문 상태 (data len=1 : 0=닫힘, 1=열림, 2=바쁨, 3=알수없음, 255=오류) + +### CRC16 계산 +- CRC16 다항식 사용 +- 초기값: 0xFFFF +- 데이터 무결성 검증에 사용 + + +#### CRC-16 테이블 값 +``` +0x0000, 0x408E, 0x73EF, 0x3361, 0x152D, 0x55A3, 0x66C2, 0x264C, +0x2A5A, 0x6AD4, 0x59B5, 0x193B, 0x3F77, 0x7FF9, 0x4C98, 0x0C16, +0x54B4, 0x143A, 0x275B, 0x67D5, 0x4199, 0x0117, 0x3276, 0x72F8, +0x7EEE, 0x3E60, 0x0D01, 0x4D8F, 0x6BC3, 0x2B4D, 0x182C, 0x58A2, +0x5B9B, 0x1B15, 0x2874, 0x68FA, 0x4EB6, 0x0E38, 0x3D59, 0x7DD7, +0x71C1, 0x314F, 0x022E, 0x42A0, 0x64EC, 0x2462, 0x1703, 0x578D, +0x0F2F, 0x4FA1, 0x7CC0, 0x3C4E, 0x1A02, 0x5A8C, 0x69ED, 0x2963, +0x2575, 0x65FB, 0x569A, 0x1614, 0x3058, 0x70D6, 0x43B7, 0x0339, +0x45C5, 0x054B, 0x362A, 0x76A4, 0x50E8, 0x1066, 0x2307, 0x6389, +0x6F9F, 0x2F11, 0x1C70, 0x5CFE, 0x7AB2, 0x3A3C, 0x095D, 0x49D3, +0x1171, 0x51FF, 0x629E, 0x2210, 0x045C, 0x44D2, 0x77B3, 0x373D, +0x3B2B, 0x7BA5, 0x48C4, 0x084A, 0x2E06, 0x6E88, 0x5DE9, 0x1D67, +0x1E5E, 0x5ED0, 0x6DB1, 0x2D3F, 0x0B73, 0x4BFD, 0x789C, 0x3812, +0x3404, 0x748A, 0x47EB, 0x0765, 0x2129, 0x61A7, 0x52C6, 0x1248, +0x4AEA, 0x0A64, 0x3905, 0x798B, 0x5FC7, 0x1F49, 0x2C28, 0x6CA6, +0x60B0, 0x203E, 0x135F, 0x53D1, 0x759D, 0x3513, 0x0672, 0x46FC, +0x7979, 0x39F7, 0x0A96, 0x4A18, 0x6C54, 0x2CDA, 0x1FBB, 0x5F35, +0x5323, 0x13AD, 0x20CC, 0x6042, 0x460E, 0x0680, 0x35E1, 0x756F, +0x2DCD, 0x6D43, 0x5E22, 0x1EAC, 0x38E0, 0x786E, 0x4B0F, 0x0B81, +0x0797, 0x4719, 0x7478, 0x34F6, 0x12BA, 0x5234, 0x6155, 0x21DB, +0x22E2, 0x626C, 0x510D, 0x1183, 0x37CF, 0x7741, 0x4420, 0x04AE, +0x08B8, 0x4836, 0x7B57, 0x3BD9, 0x1D95, 0x5D1B, 0x6E7A, 0x2EF4, +0x7656, 0x36D8, 0x05B9, 0x4537, 0x637B, 0x23F5, 0x1094, 0x501A, +0x5C0C, 0x1C82, 0x2FE3, 0x6F6D, 0x4921, 0x09AF, 0x3ACE, 0x7A40, +0x3CBC, 0x7C32, 0x4F53, 0x0FDD, 0x2991, 0x691F, 0x5A7E, 0x1AF0, +0x16E6, 0x5668, 0x6509, 0x2587, 0x03CB, 0x4345, 0x7024, 0x30AA, +0x6808, 0x2886, 0x1BE7, 0x5B69, 0x7D25, 0x3DAB, 0x0ECA, 0x4E44, +0x4252, 0x02DC, 0x31BD, 0x7133, 0x577F, 0x17F1, 0x2490, 0x641E, +0x6727, 0x27A9, 0x14C8, 0x5446, 0x720A, 0x3284, 0x01E5, 0x416B, +0x4D7D, 0x0DF3, 0x3E92, 0x7E1C, 0x5850, 0x18DE, 0x2BBF, 0x6B31, +0x3393, 0x731D, 0x407C, 0x00F2, 0x26BE, 0x6630, 0x5551, 0x15DF, +0x19C9, 0x5947, 0x6A26, 0x2AA8, 0x0CE4, 0x4C6A, 0x7F0B, 0x3F85, +``` + + +#### CRC16 계산 테이블 생성 코드 +```csharp +const ushort polynomial = 0x7979; +ushort[] CRC16_TABLE = new ushort[256]; + +for (ushort i = 0; i < CRC16_TABLE.Length; i++) +{ + ushort value = 0; + ushort temp = i; + for (byte j = 0; j < 8; j++) + { + if (((value ^ temp) & 0x0001) != 0) + { + value = (ushort)((value >> 1) ^ polynomial); + } + else + { + value >>= 1; + } + temp >>= 1; + } + CRC16_TABLE[i] = value; +} +``` + +#### CRC16 계산 예시 +```csharp +ushort CalculateCRC16(byte[] data) +{ + ushort crc = 0xFFFF; + for (int i = 0; i < data.Length; i++) + { + byte index = (byte)(crc ^ data[i]); + crc = (ushort)((crc >> 8) ^ CRC16_TABLE[index]); + } + return crc; +} +``` + +## 라이센스 + + + + + diff --git a/AGVLogic/EnigProtocol/enigprotocol/.gitignore b/AGVLogic/EnigProtocol/enigprotocol/.gitignore new file mode 100644 index 0000000..a06bae1 --- /dev/null +++ b/AGVLogic/EnigProtocol/enigprotocol/.gitignore @@ -0,0 +1,8 @@ +################################################################################ +# 이 .gitignore 파일은 Microsoft(R) Visual Studio에서 자동으로 만들어졌습니다. +################################################################################ + +/obj +/bin +/.vs +/.git diff --git a/AGVLogic/EnigProtocol/enigprotocol/Commands.cs b/AGVLogic/EnigProtocol/enigprotocol/Commands.cs new file mode 100644 index 0000000..063c8ec --- /dev/null +++ b/AGVLogic/EnigProtocol/enigprotocol/Commands.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ENIGProtocol +{ + /// + /// host -> eq + /// + public enum AGVCommandHE : byte + { + Goto = 100, + Stop = 101, + Reset = 102, + SetCurrent = 103, + Manual = 104, + MarkStop = 105, + LiftControl = 106, + GotoAlias = 107, + AutoMove = 108, + ChargeControl = 109, + Charger = 112, + LTurn = 113, + RTurn = 114, + LTurn180 = 115, + RTurn180 = 116, + PickOnEnter = 117, + PickOffEnter = 118, + PickOnExit = 119, + PickOffExit = 120, + } + + /// + /// eq -> host + /// + public enum AGVCommandEH : byte + { + Error = 1, + Arrived = 2, + ReadRFID = 3, + Status = 9, + } + + public enum AGVErrorCode : byte + { + None = 0, + PredictFix, + TurnTimeout, + TurnError, + EmptyNode, + Goto, + ManualMode, + UnknownCommand, + UnknownAlias, + + // Operational Errors + CART_EXIST, + MARK_TIMEOUT, + MARK_SENSOR_FAIL, + LIFT_ERROR, + AGV_SPEED_SET_FAIL, + AGV_RUN_FAIL, + AGV_STOP_FAIL, + PATH_INTEGRITY_FAIL, + TURN_FAIL, + NO_CHARGEPOINT, + NOTSET_CHARGEPOINT, + ALREADY_CHARGE, + CHARGE_RETRY_OVER, + } + + public static class AGVUtility + { + /// + /// 에러코드에 해당하는 오류메세지를 반환 합니다 + /// + /// + /// + public static string GetAGVErrorMessage(AGVErrorCode ecode) + { + switch (ecode) + { + case AGVErrorCode.None: return "No Error"; + case AGVErrorCode.PredictFix: return "이동 예측이 동작하지 않습니다"; + case AGVErrorCode.TurnTimeout: return "회전작업 시간초과"; + case AGVErrorCode.TurnError: return "회전작업이 완료되지 않았습니다"; + case AGVErrorCode.EmptyNode: return "노드정보를 찾을 수 없습니다"; + case AGVErrorCode.Goto: return "이동 명령 오류"; + case AGVErrorCode.ManualMode: return "자동운전 상태가 아닙니다"; + case AGVErrorCode.UnknownCommand: return "알수 없는 명령입니다"; + case AGVErrorCode.UnknownAlias: return "알수 없는 별칭 입니다"; + + case AGVErrorCode.CART_EXIST: return "카트 감지 센서 오류"; + case AGVErrorCode.MARK_TIMEOUT: return "마크 정지 신호 시간초과"; + case AGVErrorCode.MARK_SENSOR_FAIL: return "마크 센서 미감지"; + case AGVErrorCode.LIFT_ERROR: return "리프트 동작 오류"; + case AGVErrorCode.AGV_SPEED_SET_FAIL: return "AGV 속도 설정 실패"; + case AGVErrorCode.AGV_RUN_FAIL: return "AGV 구동 실패"; + case AGVErrorCode.AGV_STOP_FAIL: return "AGV 정지 실패"; + case AGVErrorCode.PATH_INTEGRITY_FAIL: return "경로 무결성 검증 실패"; + case AGVErrorCode.TURN_FAIL: return "턴 동작 실패"; + case AGVErrorCode.NO_CHARGEPOINT: return "충전 위치 아님"; + case AGVErrorCode.NOTSET_CHARGEPOINT: return "충전기 노드 미설정"; + case AGVErrorCode.ALREADY_CHARGE: return "이미 충전 중 상태임"; + case AGVErrorCode.CHARGE_RETRY_OVER: return $"충전명령 재전송 횟수 초과"; + default: return ecode.ToString(); + } + } + } + +} diff --git a/AGVLogic/EnigProtocol/enigprotocol/EEProtocol.cs b/AGVLogic/EnigProtocol/enigprotocol/EEProtocol.cs new file mode 100644 index 0000000..1b32648 --- /dev/null +++ b/AGVLogic/EnigProtocol/enigprotocol/EEProtocol.cs @@ -0,0 +1,235 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ENIG +{ + // 장비 타입 정의 + public enum DeviceType + { + ACS = 0, + AGV1 = 10, + AGV2 = 11, + BUFFER1 = 20, + BUFFER2 = 21, + BUFFER3 = 22, + BUFFER4 = 23, + BUFFER5 = 24, + DOOR = 30, + } + + public partial class EEProtocol + { + // 패킷 수신 이벤트 정의 + // 데이터 수신 이벤트 정의 + public event EventHandler OnDataReceived; + public event EventHandler OnMessage; + + // CRC16 계산을 위한 테이블 + private static readonly ushort[] CRC16_TABLE = new ushort[256]; + + // CRC16 테이블 초기화 + public EEProtocol() + { + const ushort polynomial = 0x7979; + for (ushort i = 0; i < CRC16_TABLE.Length; i++) + { + ushort value = 0; + ushort temp = i; + for (byte j = 0; j < 8; j++) + { + if (((value ^ temp) & 0x0001) != 0) + { + value = (ushort)((value >> 1) ^ polynomial); + } + else + { + value >>= 1; + } + temp >>= 1; + } + CRC16_TABLE[i] = value; + } + + //// CRC 테이블 출력 + //Console.WriteLine("CRC16 테이블 값:"); + //for (int i = 0; i < CRC16_TABLE.Length; i++) + //{ + // if (i % 8 == 0) + // { + // Console.WriteLine(); + // } + // Console.Write($"0x{CRC16_TABLE[i]:X4}, "); + //} + //Console.WriteLine(); + + + } + + // CRC16 계산 메서드 + public ushort CalculateCRC16(byte[] data) + { + ushort crc = 0xFFFF; + for (int i = 0; i < data.Length; i++) + { + byte index = (byte)(crc ^ data[i]); + crc = (ushort)((crc >> 8) ^ CRC16_TABLE[index]); + } + return crc; + } + + // 패킷 생성 메서드 + public byte[] CreatePacket(byte id, byte command, byte[] data) + { + var packet = new Packet + { + ID = id, + Command = command, + Data = data ?? new byte[0], + Length = (byte)(1 + 1 + (data?.Length ?? 0)) // ID + Command + Data 길이 + }; + + // 패킷 조립 + List packetData = new List(); + packetData.Add(Packet.STX); + packetData.Add(packet.Length); + packetData.Add(packet.ID); + packetData.Add(packet.Command); + if (packet.Data != null) + packetData.AddRange(packet.Data); + + // CRC16 계산 + packet.CRC16 = CalculateCRC16(packetData.Skip(1).ToArray()); // STX 제외하고 계산 + packetData.AddRange(BitConverter.GetBytes(packet.CRC16)); + packetData.Add(Packet.ETX); + + return packetData.ToArray(); + } + + //패킷테스트 + public void PacketTest(byte[] rawData) + { + var hexstr = string.Join(" ", rawData.Select(t => t.ToString("X2"))); + RaiseMessage( $"TestPacket : {hexstr}"); + ParsePacket(rawData); + } + + //메세지 발생 + public void RaiseMessage(string message, bool isError = false) + { + OnMessage?.Invoke(this, new MessageEventArgs { IsError = isError, Message = message }); + } + + // 패킷 파싱 메서드 + public bool ParsePacket(byte[] rawData) + { + try + { + if (rawData.Length < 7) // 최소 패킷 크기 + { + var hexstring = string.Join(" ", rawData.Select(t => t.ToString("X2"))); + RaiseMessage($"Too Short Data:{hexstring}"); + return false; + } + + + if (rawData[0] != Packet.STX || rawData[rawData.Length - 1] != Packet.ETX) + { + var hexstring = string.Join(" ", rawData.Select(t => t.ToString("X2"))); + RaiseMessage($"STX/ETX Error Data:{hexstring}"); + return false; + } + + + byte length = rawData[1]; + if (length + 5 != rawData.Length) // STX + Length + CRC16(2) + ETX = 5 + { + var hexstring = string.Join(" ", rawData.Select(t => t.ToString("X2"))); + RaiseMessage($"Length Error ({length+5} != {rawData.Length}) Data:{hexstring}"); + return false; + } + + + // CRC16 검증 + byte[] dataForCrc = rawData.Skip(1).Take(length + 1).ToArray(); + ushort calculatedCrc = CalculateCRC16(dataForCrc); + ushort receivedCrc = BitConverter.ToUInt16(rawData, rawData.Length - 3); + + if (receivedCrc != 0xFFFF && calculatedCrc != receivedCrc) //FF 무시 + { + RaiseMessage($"CRC Error ID:{rawData[2]:X2},CMD:{rawData[3]:X2}", true); + return false; + } + + + // 패킷 생성 + var packet = new Packet + { + Length = length, + ID = rawData[2], + Command = rawData[3], + Data = rawData.Skip(4).Take(length - 2).ToArray(), // ID와 Command 길이(2) 제외 + CRC16 = receivedCrc, + RawData = rawData, + }; + + // 이벤트 발생 + OnDataReceived?.Invoke(this, new DataEventArgs { ReceivedPacket = packet }); + return true; + } + catch(Exception ex) + { + RaiseMessage(ex.Message, true); + return false; + } + } + + // 데이터 수신 처리 메서드 (시리얼 포트에서 데이터를 받았을 때 호출) + private List buffer = new List(); + private int ProtocolParseError = 0; + public void ProcessReceivedData(byte[] data) + { + buffer.AddRange(data); + + while (buffer.Count > 0) + { + // STX 찾기 + int stxIndex = buffer.FindIndex(b => b == Packet.STX); + if (stxIndex == -1) + { + buffer.Clear(); + break; + } + + // 불필요한 데이터 제거 + if (stxIndex > 0) + buffer.RemoveRange(0, stxIndex); + + // 패킷 길이 확인을 위한 최소 데이터 확인 + if (buffer.Count < 2) + break; + + int expectedLength = buffer[1] + 5; // 전체 패킷 길이 + if (buffer.Count < expectedLength) + break; + + // 패킷 추출 및 처리 + byte[] packetData = buffer.Take(expectedLength).ToArray(); + buffer.RemoveRange(0, expectedLength); + + var parseOK = ParsePacket(packetData); + if(parseOK==false) //분석이 실패되었다면 해당 데이터는 삭제한다. + { + ProtocolParseError += 1; + if (ProtocolParseError > 3) buffer.Clear(); + } else ProtocolParseError = 0; + + if(buffer.Any()) + { + System.Threading.Thread.Sleep(1); + } + } + } + } +} \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/enigprotocol/ENIGProtocol.csproj b/AGVLogic/EnigProtocol/enigprotocol/ENIGProtocol.csproj new file mode 100644 index 0000000..d49f507 --- /dev/null +++ b/AGVLogic/EnigProtocol/enigprotocol/ENIGProtocol.csproj @@ -0,0 +1,56 @@ + + + + + Debug + AnyCPU + {9365803B-933D-4237-93C7-B502C855A71C} + Library + Properties + enigprotocol + enigprotocol + v4.0 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/enigprotocol/EventArgs.cs b/AGVLogic/EnigProtocol/enigprotocol/EventArgs.cs new file mode 100644 index 0000000..1488cea --- /dev/null +++ b/AGVLogic/EnigProtocol/enigprotocol/EventArgs.cs @@ -0,0 +1,18 @@ +using System; + +namespace ENIG +{ + + public partial class EEProtocol + { + public class MessageEventArgs : EventArgs + { + public string Message { get; set; } + public bool IsError { get; set; } + } + public class DataEventArgs : EventArgs + { + public Packet ReceivedPacket { get; set; } + } + } +} \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/enigprotocol/Packet.cs b/AGVLogic/EnigProtocol/enigprotocol/Packet.cs new file mode 100644 index 0000000..3f38de4 --- /dev/null +++ b/AGVLogic/EnigProtocol/enigprotocol/Packet.cs @@ -0,0 +1,20 @@ +namespace ENIG +{ + // 패킷 구조체 + public class Packet + { + public const byte STX = 0x02; + public const byte ETX = 0x03; + public byte Length { get; set; } + public byte ID { get; set; } + public byte Command { get; set; } + public byte[] Data { get; set; } + public ushort CRC16 { get; set; } + + public byte[] RawData { get; set; } + public Packet() + { + Data = new byte[0]; + } + } +} \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/Properties/AssemblyInfo.cs b/AGVLogic/EnigProtocol/enigprotocol/Properties/AssemblyInfo.cs similarity index 90% rename from Cs_HMI/SubProject/SuperTonic/Properties/AssemblyInfo.cs rename to AGVLogic/EnigProtocol/enigprotocol/Properties/AssemblyInfo.cs index 3cf4989..49547fc 100644 --- a/Cs_HMI/SubProject/SuperTonic/Properties/AssemblyInfo.cs +++ b/AGVLogic/EnigProtocol/enigprotocol/Properties/AssemblyInfo.cs @@ -5,11 +5,11 @@ using System.Runtime.InteropServices; // 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 // 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 // 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("ClassLibrary1")] +[assembly: AssemblyTitle("enigprotocol")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ClassLibrary1")] +[assembly: AssemblyProduct("enigprotocol")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -20,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("19675e19-eb91-493e-88c3-32b3c094b749")] +[assembly: Guid("9365803b-933d-4237-93c7-b502c855a71c")] // 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. // diff --git a/AGVLogic/EnigProtocol/enigprotocol/ReadMe.MD b/AGVLogic/EnigProtocol/enigprotocol/ReadMe.MD new file mode 100644 index 0000000..f800236 --- /dev/null +++ b/AGVLogic/EnigProtocol/enigprotocol/ReadMe.MD @@ -0,0 +1,236 @@ +# ENIG Protocol + +ENIG 프로토콜 통신 라이브러리 + +**Explanation of the README Content:** + +1. **Title and Overview:** Clearly states the purpose of the library. +2. **Key Components:** Explains the main building blocks: + * `DeviceType` enum: Lists the device types. + * `Packet` class: Describes the packet structure. + * `EEProtocol` class: Explains its role in packet handling. +3. **Key Features:** Details the core functionalities of the `EEProtocol` class: + * Packet creation. + * Packet parsing. + * Data reception. + * Event-driven nature. + * CRC16 calculation. +4. **Usage:** Provides code examples for: + * Creating a packet. + * Parsing a packet. + * Processing received data. +5. **Error Handling:** Explains how the library handles invalid data and incomplete packets. +6. **Dependencies:** Lists any required frameworks or libraries. +7. **License:** Placeholder for the project's license. + +This README provides a comprehensive overview of the `ENIGProtocol` library, making it easy for other developers to understand and use it. I hope this is helpful! + + +## 개발 환경 +- Frameworks : .NET Standard 2.0 +- Visual Studio 2022 또는 Visual Studio Code + +## 프로젝트 구조 + +- `EEProtocol.cs`: ENIG 프로토콜 구현 +- `EEProtocolTests.cs`: 단위 테스트 코드 +- `Sample`: C# Winform 샘플 프로젝트 + +### Xbee Setting value + +- **NARMI 70 : AGV No 70 +- **NARMI 70 (LIFT) : P46A6,C17,DH:0,DL:FFFF,MY40 +- **NARMI 70 (AGV) : P46A6,C17,DH:0,DL:FFFF,MY41 + +- **NARMI 77 : AGV No 71 +- **NARMI 71 (LIFT) : P46A6,C17,DH:0,DL:FFFF,MY30 +- **NARMI 71 (AGV) : P46A6,C17,DH:0,DL:FFFF,MY31 + +- **충전기04 : P46A6,C17,DH:0,DL:FFFF,MY41 +- **충전기71 : P46A6,C17,DH:0,DL:FFFF,MY46 + +- **ACS : P46A5,C17,DH:0,DL:FFFF,MY10 + +- **BUFFER : P46A5,C17,DH:0,DL:FFFF,MY60~65 + +- **AGV1 : P46A5,C17,DH:0,DL:FFFF,MY50 +- **AGV2 : P46A5,C17,DH:0,DL:FFFF,MY51 + +- **DOOR : P46A5,C17,DH:0,DL:FFFF,MY30 + + +## 장비 목록 +``` +public enum DeviceType : byte +{ + ACS = 0, + AGV1 = 10+1, + AGV2 = 10+2, + BUFFER1 = 20+1, + BUFFER2 = 20+2, + BUFFER3 = 20+3, + BUFFER4 = 20+4, + BUFFER5 = 20+5, + DOOR = 30, +} +``` +### 기본 패킷 구조 +``` +[STX][LEN][ID][CMD][DATA][CRC16][ETX] +``` +- **STX (Start of Text)**: 0x02 +- **LEN (Length)**: 데이터 길이 (1바이트) = {ID+CMD+DATA} +- **ID (Client ID)**: 데이터 길이 (1바이트) : 디바이스식별코드(=DeviceType) +- **CMD (Command)**: 명령어 코드 (1바이트) +- **DATA**: 명령어에 따른 데이터 (가변 길이) +- **CRC16**: 데이터 무결성 검사 (2바이트) +- **ETX (End of Text)**: 0x03 + +### 통신 방향 (호스트=ACS, 장비=agv,buffer,door) +- H -> E: 호스트에서 장비로 전송 +- E -> H: 장비에서 호스트로 전송 + +### 명령어 목록 +1. **ACS (AGV Control System)** + + +2. **Buffer** + - E -> H | cmd('S'): 상태 (............) BIT & 1BYTE 0:CART1, 1:CART2, 2:BASKET1, 3:BASKET2, 4:OPEN, 5:CLOSE + - H -> E | cmd('L'): Lock + - Target[1] = {DeviceType} + - H -> E | cmd('U'): UnLock + - Target[1] = {DeviceType} + +3. **AGV** + - H -> E | Move : cmd(100) : 대상태그까지 이동(자동이동) + - Target[1] = {DeviceType} + - TagID[4] = "0000" + - H -> E | Move : cmd(107) : 대상별칭까지 이동(자동이동) + - Target[1] = {DeviceType} + - AliasName[n] = "....." + - H -> E | Stop : cmd(101) : 멈춤 + - H -> E | Reset : cmd(102) : 오류 소거 + - H -> E | Charge On: cmd(103) : 충전실행(충전기 이동 후 자동 충전 진행) + - Target[1] = {DeviceType} + - Action[1] : 0=Charge Off, 1=Charge On + - H -> E | MoveManual : cmd(104) : 메뉴얼이동 + - Target[1] = {DeviceType} + - Direction[1] : 0=Backward, 1=Forward, 2=TurnLeft, 3=TurnRight + - Speed[1] : 0=Slow, 1=Normal, 2=Fast + - Runtime[1] : 0 second + - H -> E | MarkStop : cmd(105) : 마크센서스톱 + - Target[1] = {DeviceType} + + - H -> E | Lift Control : cmd(106) : 리프트제어 + - Target[1] = {DeviceType} + - Action[1] : 0=STOP, 1=UP, 2=DOWN + + - E -> H | Move Complete : cmd(1) : 목적지이동완료 후 전송 + - TagID[4] : "0000" + - E -> H | TagID Received : cmd(2) : 태그값 인식시 전송 + - TagID[4] : "0000" + + - E -> H | Status : cmd(3) - 총 12바이트 + - Mode[1] : 0=manual, 1=auto + - RunSt[1] : 0=stop, 1=run, 2=error + MotDirection[1] : 0:Forward, 1:Backward, 0xFF:unknown + - MagDiection[1] : 0=straight, 1=left, 2=right , 0xFF:unknown + - Inposition[1] : 0=off, 1=on : 목적위치에 도달완료 시 설정 이동 이동시 OFF됨 + - ChargeSt[1] : 0=off, 1=on + - CartSt[1] : 0=off, 1=on, 2=unknown + - LiftSt[1] : 0=down , 1=up, 2=unknown + - LastTag[4] : "0000" (ASCII 4바이트) + +4. **Door** + - H -> E | cmd(1): 출입문 열기 + - H -> E | cmd(2): 출입문 닫기 + - E -> H | cmd(3): 출입문 상태 (data len=1 : 0=닫힘, 1=열림, 2=바쁨, 3=알수없음, 255=오류) + +### CRC16 계산 +- CRC16 다항식 사용 +- 초기값: 0xFFFF +- 데이터 무결성 검증에 사용 + + +#### CRC-16 테이블 값 +``` +0x0000, 0x408E, 0x73EF, 0x3361, 0x152D, 0x55A3, 0x66C2, 0x264C, +0x2A5A, 0x6AD4, 0x59B5, 0x193B, 0x3F77, 0x7FF9, 0x4C98, 0x0C16, +0x54B4, 0x143A, 0x275B, 0x67D5, 0x4199, 0x0117, 0x3276, 0x72F8, +0x7EEE, 0x3E60, 0x0D01, 0x4D8F, 0x6BC3, 0x2B4D, 0x182C, 0x58A2, +0x5B9B, 0x1B15, 0x2874, 0x68FA, 0x4EB6, 0x0E38, 0x3D59, 0x7DD7, +0x71C1, 0x314F, 0x022E, 0x42A0, 0x64EC, 0x2462, 0x1703, 0x578D, +0x0F2F, 0x4FA1, 0x7CC0, 0x3C4E, 0x1A02, 0x5A8C, 0x69ED, 0x2963, +0x2575, 0x65FB, 0x569A, 0x1614, 0x3058, 0x70D6, 0x43B7, 0x0339, +0x45C5, 0x054B, 0x362A, 0x76A4, 0x50E8, 0x1066, 0x2307, 0x6389, +0x6F9F, 0x2F11, 0x1C70, 0x5CFE, 0x7AB2, 0x3A3C, 0x095D, 0x49D3, +0x1171, 0x51FF, 0x629E, 0x2210, 0x045C, 0x44D2, 0x77B3, 0x373D, +0x3B2B, 0x7BA5, 0x48C4, 0x084A, 0x2E06, 0x6E88, 0x5DE9, 0x1D67, +0x1E5E, 0x5ED0, 0x6DB1, 0x2D3F, 0x0B73, 0x4BFD, 0x789C, 0x3812, +0x3404, 0x748A, 0x47EB, 0x0765, 0x2129, 0x61A7, 0x52C6, 0x1248, +0x4AEA, 0x0A64, 0x3905, 0x798B, 0x5FC7, 0x1F49, 0x2C28, 0x6CA6, +0x60B0, 0x203E, 0x135F, 0x53D1, 0x759D, 0x3513, 0x0672, 0x46FC, +0x7979, 0x39F7, 0x0A96, 0x4A18, 0x6C54, 0x2CDA, 0x1FBB, 0x5F35, +0x5323, 0x13AD, 0x20CC, 0x6042, 0x460E, 0x0680, 0x35E1, 0x756F, +0x2DCD, 0x6D43, 0x5E22, 0x1EAC, 0x38E0, 0x786E, 0x4B0F, 0x0B81, +0x0797, 0x4719, 0x7478, 0x34F6, 0x12BA, 0x5234, 0x6155, 0x21DB, +0x22E2, 0x626C, 0x510D, 0x1183, 0x37CF, 0x7741, 0x4420, 0x04AE, +0x08B8, 0x4836, 0x7B57, 0x3BD9, 0x1D95, 0x5D1B, 0x6E7A, 0x2EF4, +0x7656, 0x36D8, 0x05B9, 0x4537, 0x637B, 0x23F5, 0x1094, 0x501A, +0x5C0C, 0x1C82, 0x2FE3, 0x6F6D, 0x4921, 0x09AF, 0x3ACE, 0x7A40, +0x3CBC, 0x7C32, 0x4F53, 0x0FDD, 0x2991, 0x691F, 0x5A7E, 0x1AF0, +0x16E6, 0x5668, 0x6509, 0x2587, 0x03CB, 0x4345, 0x7024, 0x30AA, +0x6808, 0x2886, 0x1BE7, 0x5B69, 0x7D25, 0x3DAB, 0x0ECA, 0x4E44, +0x4252, 0x02DC, 0x31BD, 0x7133, 0x577F, 0x17F1, 0x2490, 0x641E, +0x6727, 0x27A9, 0x14C8, 0x5446, 0x720A, 0x3284, 0x01E5, 0x416B, +0x4D7D, 0x0DF3, 0x3E92, 0x7E1C, 0x5850, 0x18DE, 0x2BBF, 0x6B31, +0x3393, 0x731D, 0x407C, 0x00F2, 0x26BE, 0x6630, 0x5551, 0x15DF, +0x19C9, 0x5947, 0x6A26, 0x2AA8, 0x0CE4, 0x4C6A, 0x7F0B, 0x3F85, +``` + + +#### CRC16 계산 테이블 생성 코드 +```csharp +const ushort polynomial = 0x7979; +ushort[] CRC16_TABLE = new ushort[256]; + +for (ushort i = 0; i < CRC16_TABLE.Length; i++) +{ + ushort value = 0; + ushort temp = i; + for (byte j = 0; j < 8; j++) + { + if (((value ^ temp) & 0x0001) != 0) + { + value = (ushort)((value >> 1) ^ polynomial); + } + else + { + value >>= 1; + } + temp >>= 1; + } + CRC16_TABLE[i] = value; +} +``` + +#### CRC16 계산 예시 +```csharp +ushort CalculateCRC16(byte[] data) +{ + ushort crc = 0xFFFF; + for (int i = 0; i < data.Length; i++) + { + byte index = (byte)(crc ^ data[i]); + crc = (ushort)((crc >> 8) ^ CRC16_TABLE[index]); + } + return crc; +} +``` + +## 라이센스 + + + + + diff --git a/Cs_HMI/TestProject/Test_Port/App.config b/AGVLogic/EnigProtocol/sample/App.config similarity index 100% rename from Cs_HMI/TestProject/Test_Port/App.config rename to AGVLogic/EnigProtocol/sample/App.config diff --git a/AGVLogic/EnigProtocol/sample/Form1.Designer.cs b/AGVLogic/EnigProtocol/sample/Form1.Designer.cs new file mode 100644 index 0000000..1341a69 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Form1.Designer.cs @@ -0,0 +1,450 @@ +namespace SampleProject +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.rtRx = new System.Windows.Forms.RichTextBox(); + this.rtTx = new System.Windows.Forms.RichTextBox(); + this.tbmsg = new System.Windows.Forms.TextBox(); + this.btsend = new System.Windows.Forms.Button(); + this.cmbport = new System.Windows.Forms.ComboBox(); + this.btconnect = new System.Windows.Forms.Button(); + this.tbbaud = new System.Windows.Forms.ComboBox(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.sbPort = new System.Windows.Forms.ToolStripStatusLabel(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.cmbid = new System.Windows.Forms.ComboBox(); + this.btsim = new System.Windows.Forms.Button(); + this.rtMsg = new System.Windows.Forms.RichTextBox(); + this.tbCmd = new System.Windows.Forms.TextBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.btSave = new System.Windows.Forms.Button(); + this.btload = new System.Windows.Forms.Button(); + this.rtCmd = new System.Windows.Forms.RichTextBox(); + this.statusStrip1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.SuspendLayout(); + // + // rtRx + // + this.rtRx.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtRx.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.rtRx.Location = new System.Drawing.Point(4, 5); + this.rtRx.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.rtRx.Name = "rtRx"; + this.rtRx.Size = new System.Drawing.Size(462, 302); + this.rtRx.TabIndex = 0; + this.rtRx.Text = ""; + // + // rtTx + // + this.rtTx.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtTx.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.rtTx.Location = new System.Drawing.Point(474, 5); + this.rtTx.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.rtTx.Name = "rtTx"; + this.rtTx.Size = new System.Drawing.Size(462, 302); + this.rtTx.TabIndex = 1; + this.rtTx.Text = ""; + // + // tbmsg + // + this.tbmsg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tbmsg.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbmsg.Font = new System.Drawing.Font("굴림", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbmsg.Location = new System.Drawing.Point(436, 5); + this.tbmsg.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tbmsg.Name = "tbmsg"; + this.tbmsg.Size = new System.Drawing.Size(273, 44); + this.tbmsg.TabIndex = 2; + this.tbmsg.Text = "mesage"; + this.tbmsg.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbmsg.TextChanged += new System.EventHandler(this.tbmsg_TextChanged); + // + // btsend + // + this.btsend.Dock = System.Windows.Forms.DockStyle.Right; + this.btsend.Font = new System.Drawing.Font("굴림", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btsend.Location = new System.Drawing.Point(709, 5); + this.btsend.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btsend.Name = "btsend"; + this.btsend.Size = new System.Drawing.Size(120, 42); + this.btsend.TabIndex = 3; + this.btsend.Text = "Send"; + this.btsend.UseVisualStyleBackColor = true; + this.btsend.Click += new System.EventHandler(this.btsend_Click); + // + // cmbport + // + this.cmbport.Dock = System.Windows.Forms.DockStyle.Left; + this.cmbport.Font = new System.Drawing.Font("굴림", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.cmbport.FormattingEnabled = true; + this.cmbport.Location = new System.Drawing.Point(58, 3); + this.cmbport.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.cmbport.Name = "cmbport"; + this.cmbport.Size = new System.Drawing.Size(218, 40); + this.cmbport.TabIndex = 4; + // + // btconnect + // + this.btconnect.Dock = System.Windows.Forms.DockStyle.Right; + this.btconnect.Location = new System.Drawing.Point(765, 3); + this.btconnect.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btconnect.Name = "btconnect"; + this.btconnect.Size = new System.Drawing.Size(186, 40); + this.btconnect.TabIndex = 5; + this.btconnect.Text = "connect"; + this.btconnect.UseVisualStyleBackColor = true; + this.btconnect.Click += new System.EventHandler(this.btconnect_Click); + // + // tbbaud + // + this.tbbaud.Dock = System.Windows.Forms.DockStyle.Left; + this.tbbaud.Font = new System.Drawing.Font("굴림", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbbaud.FormattingEnabled = true; + this.tbbaud.Location = new System.Drawing.Point(331, 3); + this.tbbaud.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tbbaud.Name = "tbbaud"; + this.tbbaud.Size = new System.Drawing.Size(171, 40); + this.tbbaud.TabIndex = 6; + this.tbbaud.Text = "9600"; + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.sbPort}); + this.statusStrip1.Location = new System.Drawing.Point(0, 583); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 20, 0); + this.statusStrip1.Size = new System.Drawing.Size(954, 22); + this.statusStrip1.TabIndex = 7; + this.statusStrip1.Text = "statusStrip1"; + // + // sbPort + // + this.sbPort.Name = "sbPort"; + this.sbPort.Size = new System.Drawing.Size(121, 17); + this.sbPort.Text = "toolStripStatusLabel1"; + // + // timer1 + // + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // cmbid + // + this.cmbid.Dock = System.Windows.Forms.DockStyle.Left; + this.cmbid.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbid.Font = new System.Drawing.Font("굴림", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.cmbid.FormattingEnabled = true; + this.cmbid.Location = new System.Drawing.Point(60, 5); + this.cmbid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.cmbid.Name = "cmbid"; + this.cmbid.Size = new System.Drawing.Size(183, 40); + this.cmbid.TabIndex = 8; + // + // btsim + // + this.btsim.Dock = System.Windows.Forms.DockStyle.Right; + this.btsim.Font = new System.Drawing.Font("굴림", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btsim.Location = new System.Drawing.Point(829, 5); + this.btsim.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.btsim.Name = "btsim"; + this.btsim.Size = new System.Drawing.Size(120, 42); + this.btsim.TabIndex = 9; + this.btsim.Text = "Test"; + this.btsim.UseVisualStyleBackColor = true; + this.btsim.Click += new System.EventHandler(this.btsim_Click); + // + // rtMsg + // + this.rtMsg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.tableLayoutPanel1.SetColumnSpan(this.rtMsg, 2); + this.rtMsg.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtMsg.Location = new System.Drawing.Point(4, 317); + this.rtMsg.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.rtMsg.Name = "rtMsg"; + this.rtMsg.Size = new System.Drawing.Size(932, 124); + this.rtMsg.TabIndex = 10; + this.rtMsg.Text = ""; + // + // tbCmd + // + this.tbCmd.Dock = System.Windows.Forms.DockStyle.Left; + this.tbCmd.Font = new System.Drawing.Font("굴림", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbCmd.Location = new System.Drawing.Point(298, 5); + this.tbCmd.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tbCmd.Name = "tbCmd"; + this.tbCmd.Size = new System.Drawing.Size(83, 44); + this.tbCmd.TabIndex = 11; + this.tbCmd.Text = "cmd"; + this.tbCmd.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.rtMsg, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.rtRx, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.rtTx, 1, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(940, 446); + this.tableLayoutPanel1.TabIndex = 12; + // + // panel1 + // + this.panel1.Controls.Add(this.tbmsg); + this.panel1.Controls.Add(this.label5); + this.panel1.Controls.Add(this.tbCmd); + this.panel1.Controls.Add(this.label4); + this.panel1.Controls.Add(this.cmbid); + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.btsend); + this.panel1.Controls.Add(this.btsim); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 531); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(954, 52); + this.panel1.TabIndex = 13; + // + // label5 + // + this.label5.Dock = System.Windows.Forms.DockStyle.Left; + this.label5.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label5.Location = new System.Drawing.Point(381, 5); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(55, 42); + this.label5.TabIndex = 14; + this.label5.Text = "DATA\r\n(n)"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.Dock = System.Windows.Forms.DockStyle.Left; + this.label4.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(243, 5); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(55, 42); + this.label4.TabIndex = 13; + this.label4.Text = "CMD\r\n(1)"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Left; + this.label3.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(5, 5); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(55, 42); + this.label3.TabIndex = 12; + this.label3.Text = "ID\r\n(1)"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.Controls.Add(this.tbbaud); + this.panel2.Controls.Add(this.label2); + this.panel2.Controls.Add(this.cmbport); + this.panel2.Controls.Add(this.btconnect); + this.panel2.Controls.Add(this.label1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(3); + this.panel2.Size = new System.Drawing.Size(954, 46); + this.panel2.TabIndex = 14; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Left; + this.label2.Location = new System.Drawing.Point(276, 3); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 40); + this.label2.TabIndex = 8; + this.label2.Text = "baud"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Location = new System.Drawing.Point(3, 3); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(55, 40); + this.label1.TabIndex = 7; + this.label1.Text = "port"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 46); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(954, 485); + this.tabControl1.TabIndex = 15; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.tableLayoutPanel1); + this.tabPage1.Location = new System.Drawing.Point(4, 29); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(946, 452); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Test"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.btSave); + this.tabPage2.Controls.Add(this.btload); + this.tabPage2.Controls.Add(this.rtCmd); + this.tabPage2.Location = new System.Drawing.Point(4, 29); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(946, 452); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Command"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // btSave + // + this.btSave.Location = new System.Drawing.Point(820, 50); + this.btSave.Name = "btSave"; + this.btSave.Size = new System.Drawing.Size(113, 29); + this.btSave.TabIndex = 13; + this.btSave.Text = "Save"; + this.btSave.UseVisualStyleBackColor = true; + this.btSave.Click += new System.EventHandler(this.btSave_Click); + // + // btload + // + this.btload.Location = new System.Drawing.Point(820, 15); + this.btload.Name = "btload"; + this.btload.Size = new System.Drawing.Size(113, 29); + this.btload.TabIndex = 12; + this.btload.Text = "Load"; + this.btload.UseVisualStyleBackColor = true; + this.btload.Click += new System.EventHandler(this.btload_Click); + // + // rtCmd + // + this.rtCmd.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtCmd.Location = new System.Drawing.Point(3, 3); + this.rtCmd.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.rtCmd.Name = "rtCmd"; + this.rtCmd.Size = new System.Drawing.Size(940, 446); + this.rtCmd.TabIndex = 11; + this.rtCmd.Text = ""; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 19F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(954, 605); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Controls.Add(this.statusStrip1); + this.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "!!"; + this.Load += new System.EventHandler(this.Form1_Load); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox rtRx; + private System.Windows.Forms.RichTextBox rtTx; + private System.Windows.Forms.TextBox tbmsg; + private System.Windows.Forms.Button btsend; + private System.Windows.Forms.ComboBox cmbport; + private System.Windows.Forms.Button btconnect; + private System.Windows.Forms.ComboBox tbbaud; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel sbPort; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.ComboBox cmbid; + private System.Windows.Forms.Button btsim; + private System.Windows.Forms.RichTextBox rtMsg; + private System.Windows.Forms.TextBox tbCmd; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.RichTextBox rtCmd; + private System.Windows.Forms.Button btSave; + private System.Windows.Forms.Button btload; + } +} + diff --git a/AGVLogic/EnigProtocol/sample/Form1.cs b/AGVLogic/EnigProtocol/sample/Form1.cs new file mode 100644 index 0000000..ffa9b85 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Form1.cs @@ -0,0 +1,225 @@ +using AR; +using ENIG; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SampleProject +{ + enum messageType + { + rx, + tx, + normal, + error + } + public partial class Form1 : Form + { + + System.IO.Ports.SerialPort dev; + EEProtocol proto; + Dictionary idlist; + public Form1() + { + InitializeComponent(); + this.Text = $"Amkor ENIG Protocol Test (PanID:46A5, CH:17)"; + proto = new EEProtocol(); + proto.OnDataReceived += Proto_OnDataReceived; + proto.OnMessage += Proto_OnMessage; + dev = new System.IO.Ports.SerialPort(); + dev.ReadTimeout = 2000; + dev.WriteTimeout = 1000; + dev.DataReceived += (s1, e1) => + { + var buffer = new byte[dev.BytesToRead]; + dev.Read(buffer, 0, buffer.Length); + proto.ProcessReceivedData(buffer); + }; + + idlist = new Dictionary(); + idlist.Add("ACS", 0); + idlist.Add("AGV1", 10); + idlist.Add("AGV2", 11); + idlist.Add("BUFFER1", 20); + idlist.Add("BUFFER2", 21); + idlist.Add("BUFFER3", 22); + idlist.Add("BUFFER4", 23); + idlist.Add("BUFFER5", 24); + idlist.Add("DOOR", 30); + + this.cmbid.Items.Clear(); + foreach (var item in idlist) + cmbid.Items.Add($"{item.Key}"); + + tbCmd.Text = "FF"; + tbmsg.Text = string.Empty; + } + + private void Proto_OnDataReceived(object sender, EEProtocol.DataEventArgs e) + { + var hexstrRaw = e.ReceivedPacket.RawData.HexString(); + var hexstr = e.ReceivedPacket.Data.HexString(); + var cmd = e.ReceivedPacket.Command.ToString("X2"); + var id = e.ReceivedPacket.ID.ToString("X2"); + AddMessage($"{hexstrRaw}\nID:{id},CMD:{cmd},DATA:{hexstr}", messageType.rx); + } + private void Proto_OnMessage(object sender, EEProtocol.MessageEventArgs e) + { + AddMessage(e.Message); + } + + void AddMessage(string msg, messageType type = messageType.normal) + { + if (this.InvokeRequired) + { + this.BeginInvoke(new Action(() => AddMessage(msg, type))); + return; + } + + if (type == messageType.rx) + { + rtRx.AppendText($"<{DateTime.Now.ToString("HH:mm:ss")} RX> {msg}\r\n"); + rtRx.ScrollToCaret(); + } + else if (type == messageType.tx) + { + rtTx.AppendText($"<{DateTime.Now.ToString("HH:mm:ss")} TX> {msg}\r\n"); + rtTx.ScrollToCaret(); + } + else + { + rtMsg.AppendText($"<{DateTime.Now.ToString("HH:mm:ss")} > {msg}\r\n"); + rtMsg.ScrollToCaret(); + } + } + + private void Form1_Load(object sender, EventArgs e) + { + cmbport.Items.Clear(); + foreach (var item in System.IO.Ports.SerialPort.GetPortNames()) + { + cmbport.Items.Add(item); + } + if (Pub.Setting.LastPort.isEmpty() == false) cmbport.Text = Pub.Setting.LastPort; + else if (cmbport.Items.Count > 0) cmbport.SelectedIndex = 0; + + if (Pub.Setting.LastBaud.isEmpty() == false) tbbaud.Text = Pub.Setting.LastBaud; + if (cmbid.Items.Count > 0) cmbid.SelectedIndex = 0; + LoadCmds(); + this.timer1.Start(); + } + + private void btconnect_Click(object sender, EventArgs e) + { + var port = cmbport.Text.Trim(); + var baud = tbbaud.Text.toInt(); + + //setting save + Pub.Setting.LastPort = port; + Pub.Setting.LastBaud = baud.ToString(); + Pub.Setting.Save(); + + if (dev.IsOpen) + { + dev.Close(); + AddMessage("port closed"); + } + else + { + try + { + this.dev.PortName = port; + this.dev.BaudRate = baud; + dev.Open(); + AddMessage("port opened"); + } + catch (Exception ex) + { + AddMessage(ex.Message, messageType.error); + } + } + + + } + + private void timer1_Tick(object sender, EventArgs e) + { + sbPort.Text = $"{dev.PortName}:{dev.BaudRate} {(dev.IsOpen ? "Open" : "Closed")}"; + } + + private void tbmsg_TextChanged(object sender, EventArgs e) + { + + } + + private void btsend_Click(object sender, EventArgs e) + { + //send to device + var msg = tbmsg.Text.Trim(); + var id = this.idlist[cmbid.Text]; + var cmdHex = this.tbCmd.Text.Trim(); + byte cmd = Convert.ToByte(cmdHex, 16); + byte[] msgBytes = Encoding.ASCII.GetBytes(msg); // 메시지를 byte 배열로 변환 + + var data = proto.CreatePacket(id, cmd, msgBytes); + SendToDevice(data); + } + + void SendToDevice(byte[] packet) + { + if (dev.IsOpen == false) + { + AddMessage("port closed", messageType.error); + } + else + { + dev.Write(packet, 0, packet.Length); + var hexstring = packet.HexString(); + AddMessage(hexstring, messageType.tx); + } + + } + + private void btsim_Click(object sender, EventArgs e) + { + //packet test + var msg = tbmsg.Text.Trim(); + var id = this.idlist[cmbid.Text]; + var cmdHex = this.tbCmd.Text.Trim(); + byte cmd = Convert.ToByte(cmdHex, 16); // 16진수 문자열을 byte로 변환 + byte[] msgBytes = Encoding.ASCII.GetBytes(msg); // 메시지를 byte 배열로 변환 + + var data = proto.CreatePacket(id, cmd, msgBytes); + this.proto.PacketTest(data); + } + string fn = "cmds.rtf"; + private void btSave_Click(object sender, EventArgs e) + { + System.IO.File.WriteAllText("cmds.rtf", rtCmd.Rtf, System.Text.Encoding.Default); + } + + private void btload_Click(object sender, EventArgs e) + { + LoadCmds(); + } + + void LoadCmds() + { + var fi = new System.IO.FileInfo("cmds.rtf"); + if (fi.Exists == false) + { + AddMessage("no cmds file", messageType.error); + return; + } + var data = System.IO.File.ReadAllText("cmds.rtf", System.Text.Encoding.Default); + rtCmd.Rtf = data; + } + } +} diff --git a/AGVLogic/EnigProtocol/sample/Form1.resx b/AGVLogic/EnigProtocol/sample/Form1.resx new file mode 100644 index 0000000..9ac4897 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Form1.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 134, 17 + + \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/sample/Program.cs b/AGVLogic/EnigProtocol/sample/Program.cs new file mode 100644 index 0000000..d8def48 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Program.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SampleProject +{ + internal static class Program + { + /// + /// 해당 애플리케이션의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Pub.init(); + Application.Run(new Form1()); + } + } +} diff --git a/AGVLogic/EnigProtocol/sample/Properties/AssemblyInfo.cs b/AGVLogic/EnigProtocol/sample/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..071e70e --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("SampleProject")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("ATK")] +[assembly: AssemblyProduct("SampleProject")] +[assembly: AssemblyCopyright("Copyright © ATK 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("fab31c8a-7dcf-4152-8a82-76f3c10baba4")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/AGVLogic/EnigProtocol/sample/Properties/Resources.Designer.cs b/AGVLogic/EnigProtocol/sample/Properties/Resources.Designer.cs new file mode 100644 index 0000000..48f4bb0 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace SampleProject.Properties +{ + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 + // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SampleProject.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Cs_HMI/TestProject/Test_Port/Properties/Resources.resx b/AGVLogic/EnigProtocol/sample/Properties/Resources.resx similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Properties/Resources.resx rename to AGVLogic/EnigProtocol/sample/Properties/Resources.resx diff --git a/AGVLogic/EnigProtocol/sample/Properties/Settings.Designer.cs b/AGVLogic/EnigProtocol/sample/Properties/Settings.Designer.cs new file mode 100644 index 0000000..87694f9 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SampleProject.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Cs_HMI/TestProject/Test_Port/Properties/Settings.settings b/AGVLogic/EnigProtocol/sample/Properties/Settings.settings similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Properties/Settings.settings rename to AGVLogic/EnigProtocol/sample/Properties/Settings.settings diff --git a/AGVLogic/EnigProtocol/sample/Pub.cs b/AGVLogic/EnigProtocol/sample/Pub.cs new file mode 100644 index 0000000..55d7443 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Pub.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SampleProject +{ + public static class Pub + { + public static Settings Setting { get; set; } + public static void init() + { + Setting = new Settings(); + Setting.Load(); + } + + + } +} diff --git a/AGVLogic/EnigProtocol/sample/SampleProject.csproj b/AGVLogic/EnigProtocol/sample/SampleProject.csproj new file mode 100644 index 0000000..4cd13e1 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/SampleProject.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {FAB31C8A-7DCF-4152-8A82-76F3C10BABA4} + WinExe + SampleProject + SampleProject + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + .\arCommUtil.dll + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + {499d8912-4b96-41e5-a70d-cfe797883d65} + ENIGProtocol + + + + \ No newline at end of file diff --git a/AGVLogic/EnigProtocol/sample/Settings.cs b/AGVLogic/EnigProtocol/sample/Settings.cs new file mode 100644 index 0000000..609fef0 --- /dev/null +++ b/AGVLogic/EnigProtocol/sample/Settings.cs @@ -0,0 +1,25 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SampleProject +{ + public class Settings : AR.Setting + { + public string LastPort { get; set; } + public string LastBaud { get; set; } + public override void AfterLoad() + { + // throw new NotImplementedException(); + if (LastBaud.isEmpty()) LastBaud = "9600"; + } + + public override void AfterSave() + { + // throw new NotImplementedException(); + } + } +} diff --git a/Cs_HMI/DLL/arCommUtil.dll b/AGVLogic/EnigProtocol/sample/arCommUtil.dll similarity index 68% rename from Cs_HMI/DLL/arCommUtil.dll rename to AGVLogic/EnigProtocol/sample/arCommUtil.dll index 74cff2c..3c26818 100644 Binary files a/Cs_HMI/DLL/arCommUtil.dll and b/AGVLogic/EnigProtocol/sample/arCommUtil.dll differ diff --git a/Cs_HMI/.vscode/launch.json b/Cs_HMI/.vscode/launch.json deleted file mode 100644 index bddd567..0000000 --- a/Cs_HMI/.vscode/launch.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - // Use IntelliSense to find out which attributes exist for C# debugging - // Use hover for the description of the existing attributes - // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md - "name": ".NET Core Launch (console)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - // If you have changed target frameworks, make sure to update the program path. - "program": "../../../Amkor/AGV4/Debug/net8.0-windows/AGV4.dll", - "args": [], - "cwd": "${workspaceFolder}/Project", - // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console - "console": "internalConsole", - "stopAtEntry": false - }, - { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach" - } - ] -} \ No newline at end of file diff --git a/Cs_HMI/.vscode/settings.json b/Cs_HMI/.vscode/settings.json deleted file mode 100644 index d420fa0..0000000 --- a/Cs_HMI/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "dotnet.preferCSharpExtension": true, - "dotnet.defaultSolution": "AGVCSharp.sln" -} \ No newline at end of file diff --git a/Cs_HMI/.vscode/tasks.json b/Cs_HMI/.vscode/tasks.json deleted file mode 100644 index 47f8d63..0000000 --- a/Cs_HMI/.vscode/tasks.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "command": "dotnet", - "type": "process", - "args": [ - "build", - "${workspaceFolder}/AGVCSharp.sln", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary;ForceNoAlign" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "publish", - "command": "dotnet", - "type": "process", - "args": [ - "publish", - "${workspaceFolder}/AGVCSharp.sln", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary;ForceNoAlign" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "watch", - "command": "dotnet", - "type": "process", - "args": [ - "watch", - "run", - "--project", - "${workspaceFolder}/AGVCSharp.sln" - ], - "problemMatcher": "$msCompile" - } - ] -} \ No newline at end of file diff --git a/Cs_HMI/AGVLogic/build.bat b/Cs_HMI/AGVLogic/build.bat deleted file mode 100644 index 44627b5..0000000 --- a/Cs_HMI/AGVLogic/build.bat +++ /dev/null @@ -1,13 +0,0 @@ -@echo off -echo Building AGV C# HMI Project... - -REM Set MSBuild path -REM set MSBUILD="C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" - -set MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\WDExpress\MSBuild\15.0\Bin\MSBuild.exe" - - -REM Rebuild Debug x86 configuration (VS-style Rebuild) -%MSBUILD% AGVCSharp.sln -property:Configuration=Debug -property:Platform=x86 -verbosity:quiet -nologo -t:Rebuild - -pause \ No newline at end of file diff --git a/Cs_HMI/AGVLogic/run_claude.bat b/Cs_HMI/AGVLogic/run_claude.bat deleted file mode 100644 index 29a2144..0000000 --- a/Cs_HMI/AGVLogic/run_claude.bat +++ /dev/null @@ -1 +0,0 @@ -claude --dangerously-skip-permissions diff --git a/Cs_HMI/SubProject/AGVControl/.vscode/settings.json b/Cs_HMI/SubProject/AGVControl/.vscode/settings.json deleted file mode 100644 index 359cd76..0000000 --- a/Cs_HMI/SubProject/AGVControl/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "dotnet.preferCSharpExtension": true -} \ No newline at end of file diff --git a/Cs_HMI/SubProject/CommUtil b/Cs_HMI/SubProject/CommUtil deleted file mode 160000 index b070b71..0000000 --- a/Cs_HMI/SubProject/CommUtil +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b070b711f0167eb7a90f443bd860fb5c16efd5bd diff --git a/Cs_HMI/SubProject/EnigProtocol b/Cs_HMI/SubProject/EnigProtocol deleted file mode 160000 index aaea811..0000000 --- a/Cs_HMI/SubProject/EnigProtocol +++ /dev/null @@ -1 +0,0 @@ -Subproject commit aaea811e4a53be5b76459d3dc94daf542f09dfc7 diff --git a/Cs_HMI/SubProject/SuperTonic/ExampleONNX.cs b/Cs_HMI/SubProject/SuperTonic/ExampleONNX.cs deleted file mode 100644 index 57ef927..0000000 --- a/Cs_HMI/SubProject/SuperTonic/ExampleONNX.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; - -namespace Supertonic -{ - class Program - { - class Args - { - public bool UseGpu { get; set; } = false; - public string OnnxDir { get; set; } = "assets/onnx"; - public string BaseDir { get; set; } = ""; - public int TotalStep { get; set; } = 5; - public float Speed { get; set; } = 1.05f; - public int NTest { get; set; } = 4; - public List VoiceStyle { get; set; } = new List { "assets/voice_styles/M2.json" }; - public List Text { get; set; } = new List - { - "hello , 안녕하세요" - }; - public string SaveDir { get; set; } = "results"; - public bool Batch { get; set; } = false; - } - - static Args ParseArgs(string[] args) - { - var result = new Args(); - - for (int i = 0; i < args.Length; i++) - { - switch (args[i]) - { - case "--use-gpu": - result.UseGpu = true; - break; - case "--batch": - result.Batch = true; - break; - case "--onnx-dir" when i + 1 < args.Length: - result.OnnxDir = args[++i]; - break; - case "--total-step" when i + 1 < args.Length: - result.TotalStep = int.Parse(args[++i]); - break; - case "--speed" when i + 1 < args.Length: - result.Speed = float.Parse(args[++i]); - break; - case "--n-test" when i + 1 < args.Length: - result.NTest = int.Parse(args[++i]); - break; - case "--voice-style" when i + 1 < args.Length: - result.VoiceStyle = args[++i].Split(',').ToList(); - break; - case "--text" when i + 1 < args.Length: - result.Text = args[++i].Split('|').ToList(); - break; - case "--save-dir" when i + 1 < args.Length: - result.SaveDir = args[++i]; - break; - case "--base-dir" when i + 1 < args.Length: - result.BaseDir = args[++i]; - break; - } - } - - return result; - } - - static async Task Main(string[] args) - { - Console.WriteLine("=== TTS Inference with ONNX Runtime (C#) ===\n"); - - // --- 1. Parse arguments --- // - var parsedArgs = ParseArgs(args); - int totalStep = parsedArgs.TotalStep; - float speed = parsedArgs.Speed; - int nTest = parsedArgs.NTest; - string saveDir = parsedArgs.SaveDir; - var voiceStylePaths = parsedArgs.VoiceStyle; - var textList = parsedArgs.Text; - bool batch = parsedArgs.Batch; - - if (voiceStylePaths.Count != textList.Count) - { - throw new ArgumentException( - $"Number of voice styles ({voiceStylePaths.Count}) must match number of texts ({textList.Count})"); - } - int bsz = voiceStylePaths.Count; - - // --- 2. Load Text to Speech --- // - var onnxdir = System.IO.Path.Combine(parsedArgs.BaseDir, parsedArgs.OnnxDir); - var textToSpeech = Helper.LoadTextToSpeech(onnxdir, parsedArgs.UseGpu); - Console.WriteLine(); - - // --- 3. Load Voice Style --- // - for(int i = 0; i < voiceStylePaths.Count;i++) - { - voiceStylePaths[i] = Path.Combine(parsedArgs.BaseDir, voiceStylePaths[i]); - } - var style = Helper.LoadVoiceStyle(voiceStylePaths, verbose: true); - - // --- 4. Synthesize speech --- // - for (int n = 0; n < nTest; n++) - { - Console.WriteLine($"\n[{n + 1}/{nTest}] Starting synthesis..."); - - var (wav, duration) = Helper.Timer("Generating speech from text", () => - { - if (batch) - { - return textToSpeech.Batch(textList, style, totalStep, speed); - } - else - { - return textToSpeech.Call(textList[0], style, totalStep, speed); - } - }); - - if (!Directory.Exists(saveDir)) - { - Directory.CreateDirectory(saveDir); - } - - var playbackTasks = new List(); - - for (int b = 0; b < bsz; b++) - { - string fname = $"{Helper.SanitizeFilename(textList[b], 20)}_{n + 1}.wav"; - - int wavLen = (int)(textToSpeech.SampleRate * duration[b]); - var wavOut = new float[wavLen]; - Array.Copy(wav, b * wav.Length / bsz, wavOut, 0, Math.Min(wavLen, wav.Length / bsz)); - - string outputPath = Path.Combine(saveDir, fname); - Helper.WriteWavFile(outputPath, wavOut, textToSpeech.SampleRate); - Console.WriteLine($"Saved: {outputPath}"); - - // 비동기로 오디오 재생 (파일 저장과 동시에) - Console.WriteLine($"Playing audio [{b + 1}/{bsz}]..."); - var playTask = Helper.PlayAudioAsync(wavOut, textToSpeech.SampleRate); - playbackTasks.Add(playTask); - } - - // 모든 재생이 완료될 때까지 대기 - await Task.WhenAll(playbackTasks); - Console.WriteLine("Playback completed."); - } - - Console.WriteLine("\n=== Synthesis completed successfully! ==="); - } - } -} - diff --git a/Cs_HMI/SubProject/SuperTonic/Helper.cs b/Cs_HMI/SubProject/SuperTonic/Helper.cs deleted file mode 100644 index 784bf63..0000000 --- a/Cs_HMI/SubProject/SuperTonic/Helper.cs +++ /dev/null @@ -1,944 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.Json; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Media; -using Microsoft.ML.OnnxRuntime; -using Microsoft.ML.OnnxRuntime.Tensors; - -namespace Supertonic -{ - // ============================================================================ - // Configuration classes - // ============================================================================ - - public class Config - { - public AEConfig AE { get; set; } = null; - public TTLConfig TTL { get; set; } = null; - - public class AEConfig - { - public int SampleRate { get; set; } - public int BaseChunkSize { get; set; } - } - - public class TTLConfig - { - public int ChunkCompressFactor { get; set; } - public int LatentDim { get; set; } - } - } - - // ============================================================================ - // Style class - // ============================================================================ - - public class Style - { - public float[] Ttl { get; set; } - public long[] TtlShape { get; set; } - public float[] Dp { get; set; } - public long[] DpShape { get; set; } - - public Style(float[] ttl, long[] ttlShape, float[] dp, long[] dpShape) - { - Ttl = ttl; - TtlShape = ttlShape; - Dp = dp; - DpShape = dpShape; - } - } - - // ============================================================================ - // Unicode text processor - // ============================================================================ - - public class UnicodeProcessor - { - private readonly Dictionary _indexer; - - public UnicodeProcessor(string unicodeIndexerPath) - { - var json = File.ReadAllText(unicodeIndexerPath); - var indexerArray = JsonSerializer.Deserialize(json) ?? throw new Exception("Failed to load indexer"); - _indexer = new Dictionary(); - for (int i = 0; i < indexerArray.Length; i++) - { - _indexer[i] = indexerArray[i]; - } - } - - private static string RemoveEmojis(string text) - { - var result = new StringBuilder(); - for (int i = 0; i < text.Length; i++) - { - int codePoint; - if (char.IsHighSurrogate(text[i]) && i + 1 < text.Length && char.IsLowSurrogate(text[i + 1])) - { - // Get the full code point from surrogate pair - codePoint = char.ConvertToUtf32(text[i], text[i + 1]); - i++; // Skip the low surrogate - } - else - { - codePoint = text[i]; - } - - // Check if code point is in emoji ranges - bool isEmoji = (codePoint >= 0x1F600 && codePoint <= 0x1F64F) || - (codePoint >= 0x1F300 && codePoint <= 0x1F5FF) || - (codePoint >= 0x1F680 && codePoint <= 0x1F6FF) || - (codePoint >= 0x1F700 && codePoint <= 0x1F77F) || - (codePoint >= 0x1F780 && codePoint <= 0x1F7FF) || - (codePoint >= 0x1F800 && codePoint <= 0x1F8FF) || - (codePoint >= 0x1F900 && codePoint <= 0x1F9FF) || - (codePoint >= 0x1FA00 && codePoint <= 0x1FA6F) || - (codePoint >= 0x1FA70 && codePoint <= 0x1FAFF) || - (codePoint >= 0x2600 && codePoint <= 0x26FF) || - (codePoint >= 0x2700 && codePoint <= 0x27BF) || - (codePoint >= 0x1F1E6 && codePoint <= 0x1F1FF); - - if (!isEmoji) - { - if (codePoint > 0xFFFF) - { - // Add back as surrogate pair - result.Append(char.ConvertFromUtf32(codePoint)); - } - else - { - result.Append((char)codePoint); - } - } - } - return result.ToString(); - } - - private string PreprocessText(string text) - { - // TODO: Need advanced normalizer for better performance - text = text.Normalize(NormalizationForm.FormKD); - - // FIXME: this should be fixed for non-English languages - - // Remove emojis (wide Unicode range) - // C# doesn't support \u{...} syntax in regex, so we use character filtering instead - text = RemoveEmojis(text); - - // Replace various dashes and symbols - var replacements = new Dictionary - { - {"–", "-"}, // en dash - {"‑", "-"}, // non-breaking hyphen - {"—", "-"}, // em dash - {"¯", " "}, // macron - {"_", " "}, // underscore - {"\u201C", "\""}, // left double quote - {"\u201D", "\""}, // right double quote - {"\u2018", "'"}, // left single quote - {"\u2019", "'"}, // right single quote - {"´", "'"}, // acute accent - {"`", "'"}, // grave accent - {"[", " "}, // left bracket - {"]", " "}, // right bracket - {"|", " "}, // vertical bar - {"/", " "}, // slash - {"#", " "}, // hash - {"→", " "}, // right arrow - {"←", " "}, // left arrow - }; - - foreach (var kvp in replacements) - { - text = text.Replace(kvp.Key, kvp.Value); - } - - // Remove combining diacritics // FIXME: this should be fixed for non-English languages - text = Regex.Replace(text, @"[\u0302\u0303\u0304\u0305\u0306\u0307\u0308\u030A\u030B\u030C\u0327\u0328\u0329\u032A\u032B\u032C\u032D\u032E\u032F]", ""); - - // Remove special symbols - text = Regex.Replace(text, @"[♥☆♡©\\]", ""); - - // Replace known expressions - var exprReplacements = new Dictionary - { - {"@", " at "}, - {"e.g.,", "for example, "}, - {"i.e.,", "that is, "}, - }; - - foreach (var kvp in exprReplacements) - { - text = text.Replace(kvp.Key, kvp.Value); - } - - // Fix spacing around punctuation - text = Regex.Replace(text, @" ,", ","); - text = Regex.Replace(text, @" \.", "."); - text = Regex.Replace(text, @" !", "!"); - text = Regex.Replace(text, @" \?", "?"); - text = Regex.Replace(text, @" ;", ";"); - text = Regex.Replace(text, @" :", ":"); - text = Regex.Replace(text, @" '", "'"); - - // Remove duplicate quotes - while (text.Contains("\"\"")) - { - text = text.Replace("\"\"", "\""); - } - while (text.Contains("''")) - { - text = text.Replace("''", "'"); - } - while (text.Contains("``")) - { - text = text.Replace("``", "`"); - } - - // Remove extra spaces - text = Regex.Replace(text, @"\s+", " ").Trim(); - - // If text doesn't end with punctuation, quotes, or closing brackets, add a period - if (!Regex.IsMatch(text, @"[.!?;:,'\u0022\u201C\u201D\u2018\u2019)\]}…。」』】〉》›»]$")) - { - text += "."; - } - - return text; - } - - private int[] TextToUnicodeValues(string text) - { - return text.Select(c => (int)c).ToArray(); - } - - private float[][][] GetTextMask(long[] textIdsLengths) - { - return Helper.LengthToMask(textIdsLengths); - } - - public (long[][] textIds, float[][][] textMask) Call(List textList) - { - var processedTexts = textList.Select(t => PreprocessText(t)).ToList(); - var textIdsLengths = processedTexts.Select(t => (long)t.Length).ToArray(); - long maxLen = textIdsLengths.Max(); - - var textIds = new long[textList.Count][]; - for (int i = 0; i < processedTexts.Count; i++) - { - textIds[i] = new long[maxLen]; - var unicodeVals = TextToUnicodeValues(processedTexts[i]); - for (int j = 0; j < unicodeVals.Length; j++) - { - if (_indexer.TryGetValue(unicodeVals[j], out long val)) - { - textIds[i][j] = val; - } - } - } - - var textMask = GetTextMask(textIdsLengths); - return (textIds, textMask); - } - } - - // ============================================================================ - // TextToSpeech class - // ============================================================================ - - public class TextToSpeech - { - private readonly Config _cfgs; - private readonly UnicodeProcessor _textProcessor; - private readonly InferenceSession _dpOrt; - private readonly InferenceSession _textEncOrt; - private readonly InferenceSession _vectorEstOrt; - private readonly InferenceSession _vocoderOrt; - public readonly int SampleRate; - private readonly int _baseChunkSize; - private readonly int _chunkCompressFactor; - private readonly int _ldim; - - public TextToSpeech( - Config cfgs, - UnicodeProcessor textProcessor, - InferenceSession dpOrt, - InferenceSession textEncOrt, - InferenceSession vectorEstOrt, - InferenceSession vocoderOrt) - { - _cfgs = cfgs; - _textProcessor = textProcessor; - _dpOrt = dpOrt; - _textEncOrt = textEncOrt; - _vectorEstOrt = vectorEstOrt; - _vocoderOrt = vocoderOrt; - SampleRate = cfgs.AE.SampleRate; - _baseChunkSize = cfgs.AE.BaseChunkSize; - _chunkCompressFactor = cfgs.TTL.ChunkCompressFactor; - _ldim = cfgs.TTL.LatentDim; - } - - private (float[][][] noisyLatent, float[][][] latentMask) SampleNoisyLatent(float[] duration) - { - int bsz = duration.Length; - float wavLenMax = duration.Max() * SampleRate; - var wavLengths = duration.Select(d => (long)(d * SampleRate)).ToArray(); - int chunkSize = _baseChunkSize * _chunkCompressFactor; - int latentLen = (int)((wavLenMax + chunkSize - 1) / chunkSize); - int latentDim = _ldim * _chunkCompressFactor; - - // Generate random noise - var random = new Random(); - var noisyLatent = new float[bsz][][]; - for (int b = 0; b < bsz; b++) - { - noisyLatent[b] = new float[latentDim][]; - for (int d = 0; d < latentDim; d++) - { - noisyLatent[b][d] = new float[latentLen]; - for (int t = 0; t < latentLen; t++) - { - // Box-Muller transform for normal distribution - double u1 = 1.0 - random.NextDouble(); - double u2 = 1.0 - random.NextDouble(); - noisyLatent[b][d][t] = (float)(Math.Sqrt(-2.0 * Math.Log(u1)) * Math.Cos(2.0 * Math.PI * u2)); - } - } - } - - var latentMask = Helper.GetLatentMask(wavLengths, _baseChunkSize, _chunkCompressFactor); - - // Apply mask - for (int b = 0; b < bsz; b++) - { - for (int d = 0; d < latentDim; d++) - { - for (int t = 0; t < latentLen; t++) - { - noisyLatent[b][d][t] *= latentMask[b][0][t]; - } - } - } - - return (noisyLatent, latentMask); - } - - private (float[] wav, float[] duration) _Infer(List textList, Style style, int totalStep, float speed = 1.05f) - { - int bsz = textList.Count; - if (bsz != style.TtlShape[0]) - { - throw new ArgumentException("Number of texts must match number of style vectors"); - } - - // Process text - var (textIds, textMask) = _textProcessor.Call(textList); - var textIdsShape = new long[] { bsz, textIds[0].Length }; - var textMaskShape = new long[] { bsz, 1, textMask[0][0].Length }; - - var textIdsTensor = Helper.IntArrayToTensor(textIds, textIdsShape); - var textMaskTensor = Helper.ArrayToTensor(textMask, textMaskShape); - - var styleTtlTensor = new DenseTensor(style.Ttl, style.TtlShape.Select(x => (int)x).ToArray()); - var styleDpTensor = new DenseTensor(style.Dp, style.DpShape.Select(x => (int)x).ToArray()); - - // Run duration predictor - var dpInputs = new List - { - NamedOnnxValue.CreateFromTensor("text_ids", textIdsTensor), - NamedOnnxValue.CreateFromTensor("style_dp", styleDpTensor), - NamedOnnxValue.CreateFromTensor("text_mask", textMaskTensor) - }; - using (var dpOutputs = _dpOrt.Run(dpInputs)) - { - var durOnnx = dpOutputs.First(o => o.Name == "duration").AsTensor().ToArray(); - // Apply speed factor to duration - for (int i = 0; i < durOnnx.Length; i++) - { - durOnnx[i] /= speed; - } - - // Run text encoder - var textEncInputs = new List - { - NamedOnnxValue.CreateFromTensor("text_ids", textIdsTensor), - NamedOnnxValue.CreateFromTensor("style_ttl", styleTtlTensor), - NamedOnnxValue.CreateFromTensor("text_mask", textMaskTensor) - }; - using (var textEncOutputs = _textEncOrt.Run(textEncInputs)) - { - var textEmbTensor = textEncOutputs.First(o => o.Name == "text_emb").AsTensor(); - // Sample noisy latent - var (xt, latentMask) = SampleNoisyLatent(durOnnx); - var latentShape = new long[] { bsz, xt[0].Length, xt[0][0].Length }; - var latentMaskShape = new long[] { bsz, 1, latentMask[0][0].Length }; - - var totalStepArray = Enumerable.Repeat((float)totalStep, bsz).ToArray(); - - // Iterative denoising - for (int step = 0; step < totalStep; step++) - { - var currentStepArray = Enumerable.Repeat((float)step, bsz).ToArray(); - - var vectorEstInputs = new List - { - NamedOnnxValue.CreateFromTensor("noisy_latent", Helper.ArrayToTensor(xt, latentShape)), - NamedOnnxValue.CreateFromTensor("text_emb", textEmbTensor), - NamedOnnxValue.CreateFromTensor("style_ttl", styleTtlTensor), - NamedOnnxValue.CreateFromTensor("text_mask", textMaskTensor), - NamedOnnxValue.CreateFromTensor("latent_mask", Helper.ArrayToTensor(latentMask, latentMaskShape)), - NamedOnnxValue.CreateFromTensor("total_step", new DenseTensor(totalStepArray, new int[] { bsz })), - NamedOnnxValue.CreateFromTensor("current_step", new DenseTensor(currentStepArray, new int[] { bsz })) - }; - - using (var vectorEstOutputs = _vectorEstOrt.Run(vectorEstInputs)) - { - var denoisedLatent = vectorEstOutputs.First(o => o.Name == "denoised_latent").AsTensor(); - // Update xt - int idx = 0; - for (int b = 0; b < bsz; b++) - { - for (int d = 0; d < xt[b].Length; d++) - { - for (int t = 0; t < xt[b][d].Length; t++) - { - xt[b][d][t] = denoisedLatent.GetValue(idx++); - } - } - } - } - - - } - - // Run vocoder - var vocoderInputs = new List - { - NamedOnnxValue.CreateFromTensor("latent", Helper.ArrayToTensor(xt, latentShape)) - }; - using (var vocoderOutputs = _vocoderOrt.Run(vocoderInputs)) - { - var wavTensor = vocoderOutputs.First(o => o.Name == "wav_tts").AsTensor(); - return (wavTensor.ToArray(), durOnnx); - } - } - - - - } - - - - - - } - - public (float[] wav, float[] duration) Call(string text, Style style, int totalStep, float speed = 1.05f, float silenceDuration = 0.3f) - { - if (style.TtlShape[0] != 1) - { - throw new ArgumentException("Single speaker text to speech only supports single style"); - } - - var textList = Helper.ChunkText(text); - var wavCat = new List(); - float durCat = 0.0f; - - foreach (var chunk in textList) - { - var (wav, duration) = _Infer(new List { chunk }, style, totalStep, speed); - - if (wavCat.Count == 0) - { - wavCat.AddRange(wav); - durCat = duration[0]; - } - else - { - int silenceLen = (int)(silenceDuration * SampleRate); - var silence = new float[silenceLen]; - wavCat.AddRange(silence); - wavCat.AddRange(wav); - durCat += duration[0] + silenceDuration; - } - } - - return (wavCat.ToArray(), new float[] { durCat }); - } - - public (float[] wav, float[] duration) Batch(List textList, Style style, int totalStep, float speed = 1.05f) - { - return _Infer(textList, style, totalStep, speed); - } - } - - // ============================================================================ - // Helper class with utility functions - // ============================================================================ - - public static class Helper - { - // ============================================================================ - // Utility functions - // ============================================================================ - - public static float[][][] LengthToMask(long[] lengths, long maxLen = -1) - { - if (maxLen == -1) - { - maxLen = lengths.Max(); - } - - var mask = new float[lengths.Length][][]; - for (int i = 0; i < lengths.Length; i++) - { - mask[i] = new float[1][]; - mask[i][0] = new float[maxLen]; - for (int j = 0; j < maxLen; j++) - { - mask[i][0][j] = j < lengths[i] ? 1.0f : 0.0f; - } - } - return mask; - } - - public static float[][][] GetLatentMask(long[] wavLengths, int baseChunkSize, int chunkCompressFactor) - { - int latentSize = baseChunkSize * chunkCompressFactor; - var latentLengths = wavLengths.Select(len => (len + latentSize - 1) / latentSize).ToArray(); - return LengthToMask(latentLengths); - } - - // ============================================================================ - // ONNX model loading - // ============================================================================ - - public static InferenceSession LoadOnnx(string onnxPath, SessionOptions opts) - { - return new InferenceSession(onnxPath, opts); - } - - public static (InferenceSession dp, InferenceSession textEnc, InferenceSession vectorEst, InferenceSession vocoder) - LoadOnnxAll(string onnxDir, SessionOptions opts) - { - var dpPath = Path.Combine(onnxDir, "duration_predictor.onnx"); - var textEncPath = Path.Combine(onnxDir, "text_encoder.onnx"); - var vectorEstPath = Path.Combine(onnxDir, "vector_estimator.onnx"); - var vocoderPath = Path.Combine(onnxDir, "vocoder.onnx"); - - return ( - LoadOnnx(dpPath, opts), - LoadOnnx(textEncPath, opts), - LoadOnnx(vectorEstPath, opts), - LoadOnnx(vocoderPath, opts) - ); - } - - // ============================================================================ - // Configuration loading - // ============================================================================ - - public static Config LoadCfgs(string onnxDir) - { - var cfgPath = Path.Combine(onnxDir, "tts.json"); - var json = File.ReadAllText(cfgPath); - - using (var doc = JsonDocument.Parse(json)) - { - var root = doc.RootElement; - return new Config - { - AE = new Config.AEConfig - { - SampleRate = root.GetProperty("ae").GetProperty("sample_rate").GetInt32(), - BaseChunkSize = root.GetProperty("ae").GetProperty("base_chunk_size").GetInt32() - }, - TTL = new Config.TTLConfig - { - ChunkCompressFactor = root.GetProperty("ttl").GetProperty("chunk_compress_factor").GetInt32(), - LatentDim = root.GetProperty("ttl").GetProperty("latent_dim").GetInt32() - } - }; - } - - - - } - - public static UnicodeProcessor LoadTextProcessor(string onnxDir) - { - var unicodeIndexerPath = Path.Combine(onnxDir, "unicode_indexer.json"); - return new UnicodeProcessor(unicodeIndexerPath); - } - - // ============================================================================ - // Voice style loading - // ============================================================================ - - public static Style LoadVoiceStyle(List voiceStylePaths, bool verbose = false) - { - int bsz = voiceStylePaths.Count; - - // Read first file to get dimensions - var firstJson = File.ReadAllText(voiceStylePaths[0]); - using (var firstDoc = JsonDocument.Parse(firstJson)) - { - var firstRoot = firstDoc.RootElement; - - var ttlDims = ParseInt64Array(firstRoot.GetProperty("style_ttl").GetProperty("dims")); - var dpDims = ParseInt64Array(firstRoot.GetProperty("style_dp").GetProperty("dims")); - - long ttlDim1 = ttlDims[1]; - long ttlDim2 = ttlDims[2]; - long dpDim1 = dpDims[1]; - long dpDim2 = dpDims[2]; - - // Pre-allocate arrays with full batch size - int ttlSize = (int)(bsz * ttlDim1 * ttlDim2); - int dpSize = (int)(bsz * dpDim1 * dpDim2); - var ttlFlat = new float[ttlSize]; - var dpFlat = new float[dpSize]; - - // Fill in the data - for (int i = 0; i < bsz; i++) - { - var json = File.ReadAllText(voiceStylePaths[i]); - using (var doc = JsonDocument.Parse(json)) - { - var root = doc.RootElement; - // Flatten data - var ttlData3D = ParseFloat3DArray(root.GetProperty("style_ttl").GetProperty("data")); - var ttlDataFlat = new List(); - foreach (var batch in ttlData3D) - { - foreach (var row in batch) - { - ttlDataFlat.AddRange(row); - } - } - - var dpData3D = ParseFloat3DArray(root.GetProperty("style_dp").GetProperty("data")); - var dpDataFlat = new List(); - foreach (var batch in dpData3D) - { - foreach (var row in batch) - { - dpDataFlat.AddRange(row); - } - } - - // Copy to pre-allocated array - int ttlOffset = (int)(i * ttlDim1 * ttlDim2); - ttlDataFlat.CopyTo(ttlFlat, ttlOffset); - - int dpOffset = (int)(i * dpDim1 * dpDim2); - dpDataFlat.CopyTo(dpFlat, dpOffset); - } - - - - } - - var ttlShape = new long[] { bsz, ttlDim1, ttlDim2 }; - var dpShape = new long[] { bsz, dpDim1, dpDim2 }; - - if (verbose) - { - Console.WriteLine($"Loaded {bsz} voice styles"); - } - - return new Style(ttlFlat, ttlShape, dpFlat, dpShape); - } - - - - } - - private static float[][][] ParseFloat3DArray(JsonElement element) - { - var result = new List(); - foreach (var batch in element.EnumerateArray()) - { - var batch2D = new List(); - foreach (var row in batch.EnumerateArray()) - { - var rowData = new List(); - foreach (var val in row.EnumerateArray()) - { - rowData.Add(val.GetSingle()); - } - batch2D.Add(rowData.ToArray()); - } - result.Add(batch2D.ToArray()); - } - return result.ToArray(); - } - - private static long[] ParseInt64Array(JsonElement element) - { - var result = new List(); - foreach (var val in element.EnumerateArray()) - { - result.Add(val.GetInt64()); - } - return result.ToArray(); - } - - // ============================================================================ - // TextToSpeech loading - // ============================================================================ - - public static TextToSpeech LoadTextToSpeech(string onnxDir, bool useGpu = false) - { - var opts = new SessionOptions(); - if (useGpu) - { - throw new NotImplementedException("GPU mode is not supported yet"); - } - else - { - Console.WriteLine("Using CPU for inference"); - } - - var cfgs = LoadCfgs(onnxDir); - var (dpOrt, textEncOrt, vectorEstOrt, vocoderOrt) = LoadOnnxAll(onnxDir, opts); - var textProcessor = LoadTextProcessor(onnxDir); - - return new TextToSpeech(cfgs, textProcessor, dpOrt, textEncOrt, vectorEstOrt, vocoderOrt); - } - - // ============================================================================ - // WAV file writing - // ============================================================================ - - public static void WriteWavFile(string filename, float[] audioData, int sampleRate) - { - using (var writer = new BinaryWriter(File.Open(filename, FileMode.Create))) - { - int numChannels = 1; - int bitsPerSample = 16; - int byteRate = sampleRate * numChannels * bitsPerSample / 8; - short blockAlign = (short)(numChannels * bitsPerSample / 8); - int dataSize = audioData.Length * bitsPerSample / 8; - - // RIFF header - writer.Write(Encoding.ASCII.GetBytes("RIFF")); - writer.Write(36 + dataSize); - writer.Write(Encoding.ASCII.GetBytes("WAVE")); - - // fmt chunk - writer.Write(Encoding.ASCII.GetBytes("fmt ")); - writer.Write(16); // fmt chunk size - writer.Write((short)1); // audio format (PCM) - writer.Write((short)numChannels); - writer.Write(sampleRate); - writer.Write(byteRate); - writer.Write(blockAlign); - writer.Write((short)bitsPerSample); - - // data chunk - writer.Write(Encoding.ASCII.GetBytes("data")); - writer.Write(dataSize); - - // Write audio data - foreach (var sample in audioData) - { - float clamped = Math.Max(-1.0f, Math.Min(1.0f, sample)); - short intSample = (short)(clamped * 32767); - writer.Write(intSample); - } - } - - - } - - // ============================================================================ - // Tensor conversion utilities - // ============================================================================ - - public static DenseTensor ArrayToTensor(float[][][] array, long[] dims) - { - var flat = new List(); - foreach (var batch in array) - { - foreach (var row in batch) - { - flat.AddRange(row); - } - } - return new DenseTensor(flat.ToArray(), dims.Select(x => (int)x).ToArray()); - } - - public static DenseTensor IntArrayToTensor(long[][] array, long[] dims) - { - var flat = new List(); - foreach (var row in array) - { - flat.AddRange(row); - } - return new DenseTensor(flat.ToArray(), dims.Select(x => (int)x).ToArray()); - } - - // ============================================================================ - // Timer utility - // ============================================================================ - - public static T Timer(string name, Func func) - { - var start = DateTime.Now; - Console.WriteLine($"{name}..."); - var result = func(); - var elapsed = (DateTime.Now - start).TotalSeconds; - Console.WriteLine($" -> {name} completed in {elapsed:F2} sec"); - return result; - } - - public static string SanitizeFilename(string text, int maxLen) - { - var result = new StringBuilder(); - int count = 0; - foreach (char c in text) - { - if (count >= maxLen) break; - if (char.IsLetterOrDigit(c)) - { - result.Append(c); - } - else - { - result.Append('_'); - } - count++; - } - return result.ToString(); - } - - // ============================================================================ - // Chunk text - // ============================================================================ - - public static List ChunkText(string text, int maxLen = 300) - { - var chunks = new List(); - - // Split by paragraph (two or more newlines) - var paragraphRegex = new Regex(@"\n\s*\n+"); - var paragraphs = paragraphRegex.Split(text.Trim()) - .Select(p => p.Trim()) - .Where(p => !string.IsNullOrEmpty(p)) - .ToList(); - - // Split by sentence boundaries, excluding abbreviations - var sentenceRegex = new Regex(@"(? - /// 오디오를 스피커로 비동기 재생합니다. - /// - /// float 배열 형태의 오디오 데이터 (-1.0 ~ 1.0) - /// 샘플레이트 (예: 16000, 22050, 44100) - public static async Task PlayAudioAsync(float[] audioData, int sampleRate) - { - await Task.Run(() => - { - try - { - // 임시 WAV 파일 생성 - string tempWavFile = Path.Combine(Path.GetTempPath(), $"temp_audio_{Guid.NewGuid()}.wav"); - WriteWavFile(tempWavFile, audioData, sampleRate); - - // SoundPlayer로 재생 - using (var player = new SoundPlayer(tempWavFile)) - { - player.PlaySync(); // 재생이 끝날 때까지 대기 - } - - // 임시 파일 삭제 - try - { - File.Delete(tempWavFile); - } - catch { /* 임시 파일 삭제 실패 무시 */ } - } - catch (Exception ex) - { - Console.WriteLine($"[Audio Playback Error] {ex.Message}"); - } - }); - } - - /// - /// 오디오 파일을 스피커로 비동기 재생합니다. - /// - /// WAV 파일 경로 - public static async Task PlayWavFileAsync(string wavFilePath) - { - await Task.Run(() => - { - try - { - using (var player = new SoundPlayer(wavFilePath)) - { - player.PlaySync(); // 재생이 끝날 때까지 대기 - } - } - catch (Exception ex) - { - Console.WriteLine($"[WAV Playback Error] {ex.Message}"); - } - }); - } - } -} diff --git a/Cs_HMI/SubProject/SuperTonic/Supertonic.Netfx48.csproj b/Cs_HMI/SubProject/SuperTonic/Supertonic.Netfx48.csproj deleted file mode 100644 index bf5677b..0000000 --- a/Cs_HMI/SubProject/SuperTonic/Supertonic.Netfx48.csproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - Debug - AnyCPU - {19675E19-EB91-493E-88C3-32B3C094B749} - Exe - Properties - Supertonic - Supertonic.Net48 - v4.8 - 512 - true - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - Supertonic.Program - - - x64 - bin\Debug\ - - - true - bin\x64\Debug\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x64\Release\ - TRACE - true - pdbonly - x64 - prompt - MinimumRecommendedRules.ruleset - true - - - - .\packages\Microsoft.Bcl.AsyncInterfaces.10.0.1\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll - - - .\packages\Microsoft.ML.OnnxRuntime.Managed.1.23.2\lib\netstandard2.0\Microsoft.ML.OnnxRuntime.dll - - - - .\packages\System.Buffers.4.6.1\lib\net462\System.Buffers.dll - - - - .\packages\System.IO.Pipelines.10.0.1\lib\net462\System.IO.Pipelines.dll - - - .\packages\System.Memory.4.6.3\lib\net462\System.Memory.dll - - - - .\packages\System.Numerics.Vectors.4.6.1\lib\net462\System.Numerics.Vectors.dll - - - .\packages\System.Runtime.CompilerServices.Unsafe.6.1.2\lib\net462\System.Runtime.CompilerServices.Unsafe.dll - - - .\packages\System.Text.Encodings.Web.10.0.1\lib\net462\System.Text.Encodings.Web.dll - - - .\packages\System.Text.Json.10.0.1\lib\net462\System.Text.Json.dll - - - .\packages\System.Threading.Tasks.Extensions.4.6.3\lib\net462\System.Threading.Tasks.Extensions.dll - - - - - - - - - - - - - - - - - - - - - - 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. - - - - - - - - - \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/Supertonic.Netfx48.sln b/Cs_HMI/SubProject/SuperTonic/Supertonic.Netfx48.sln deleted file mode 100644 index 0d1db74..0000000 --- a/Cs_HMI/SubProject/SuperTonic/Supertonic.Netfx48.sln +++ /dev/null @@ -1,49 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 15 for Windows Desktop -VisualStudioVersion = 15.0.36324.19 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Supertonic.Netfx48", "Supertonic.Netfx48.csproj", "{19675E19-EB91-493E-88C3-32B3C094B749}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|ARM64 = Debug|ARM64 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|ARM64 = Release|ARM64 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|Any CPU.Build.0 = Debug|Any CPU - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|ARM.ActiveCfg = Debug|ARM - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|ARM.Build.0 = Debug|ARM - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|ARM64.ActiveCfg = Debug|ARM64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|ARM64.Build.0 = Debug|ARM64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|x64.ActiveCfg = Debug|x64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|x64.Build.0 = Debug|x64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|x86.ActiveCfg = Debug|Win32 - {19675E19-EB91-493E-88C3-32B3C094B749}.Debug|x86.Build.0 = Debug|Win32 - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|Any CPU.ActiveCfg = Release|Any CPU - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|Any CPU.Build.0 = Release|Any CPU - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|ARM.ActiveCfg = Release|ARM - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|ARM.Build.0 = Release|ARM - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|ARM64.ActiveCfg = Release|ARM64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|ARM64.Build.0 = Release|ARM64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|x64.ActiveCfg = Release|x64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|x64.Build.0 = Release|x64 - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|x86.ActiveCfg = Release|Win32 - {19675E19-EB91-493E-88C3-32B3C094B749}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {5F2E20C5-E704-4B99-8FE9-54394113916E} - EndGlobalSection -EndGlobal diff --git a/Cs_HMI/SubProject/SuperTonic/app.config b/Cs_HMI/SubProject/SuperTonic/app.config deleted file mode 100644 index 896e61a..0000000 --- a/Cs_HMI/SubProject/SuperTonic/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/assets/onnx/duration_predictor.onnx b/Cs_HMI/SubProject/SuperTonic/assets/onnx/duration_predictor.onnx deleted file mode 100644 index 8178279..0000000 Binary files a/Cs_HMI/SubProject/SuperTonic/assets/onnx/duration_predictor.onnx and /dev/null differ diff --git a/Cs_HMI/SubProject/SuperTonic/assets/onnx/text_encoder.onnx b/Cs_HMI/SubProject/SuperTonic/assets/onnx/text_encoder.onnx deleted file mode 100644 index 1a9806c..0000000 Binary files a/Cs_HMI/SubProject/SuperTonic/assets/onnx/text_encoder.onnx and /dev/null differ diff --git a/Cs_HMI/SubProject/SuperTonic/assets/onnx/tts.json b/Cs_HMI/SubProject/SuperTonic/assets/onnx/tts.json deleted file mode 100644 index 2129ec3..0000000 --- a/Cs_HMI/SubProject/SuperTonic/assets/onnx/tts.json +++ /dev/null @@ -1,316 +0,0 @@ -{ - "tts_version": "v1.5.0", - "split": "opensource-en", - "ttl_ckpt_path": "unknown.pt", - "dp_ckpt_path": "unknown.pt", - "ae_ckpt_path": "unknown.pt", - "ttl_train": "unknown", - "dp_train": "unknown", - "ae_train": "unknown", - "ttl": { - "latent_dim": 24, - "chunk_compress_factor": 6, - "batch_expander": { - "n_batch_expand": 6 - }, - "normalizer": { - "scale": 0.25 - }, - "text_encoder": { - "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json", - "text_embedder": { - "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json", - "char_emb_dim": 256 - }, - "convnext": { - "idim": 256, - "ksz": 5, - "intermediate_dim": 1024, - "num_layers": 6, - "dilation_lst": [ - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - "attn_encoder": { - "hidden_channels": 256, - "filter_channels": 1024, - "n_heads": 4, - "n_layers": 4, - "p_dropout": 0.0 - }, - "proj_out": { - "idim": 256, - "odim": 256 - } - }, - "flow_matching": { - "sig_min": 0 - }, - "style_encoder": { - "proj_in": { - "ldim": 24, - "chunk_compress_factor": 6, - "odim": 256 - }, - "convnext": { - "idim": 256, - "ksz": 5, - "intermediate_dim": 1024, - "num_layers": 6, - "dilation_lst": [ - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - "style_token_layer": { - "input_dim": 256, - "n_style": 50, - "style_key_dim": 256, - "style_value_dim": 256, - "prototype_dim": 256, - "n_units": 256, - "n_heads": 2 - } - }, - "speech_prompted_text_encoder": { - "text_dim": 256, - "style_dim": 256, - "n_units": 256, - "n_heads": 2 - }, - "uncond_masker": { - "prob_both_uncond": 0.04, - "prob_text_uncond": 0.01, - "std": 0.1, - "text_dim": 256, - "n_style": 50, - "style_key_dim": 256, - "style_value_dim": 256 - }, - "vector_field": { - "proj_in": { - "ldim": 24, - "chunk_compress_factor": 6, - "odim": 512 - }, - "time_encoder": { - "time_dim": 64, - "hdim": 256 - }, - "main_blocks": { - "n_blocks": 4, - "time_cond_layer": { - "idim": 512, - "time_dim": 64 - }, - "style_cond_layer": { - "idim": 512, - "style_dim": 256 - }, - "text_cond_layer": { - "idim": 512, - "text_dim": 256, - "n_heads": 4, - "use_residual": true, - "rotary_base": 10000, - "rotary_scale": 10 - }, - "convnext_0": { - "idim": 512, - "ksz": 5, - "intermediate_dim": 1024, - "num_layers": 4, - "dilation_lst": [ - 1, - 2, - 4, - 8 - ] - }, - "convnext_1": { - "idim": 512, - "ksz": 5, - "intermediate_dim": 1024, - "num_layers": 1, - "dilation_lst": [ - 1 - ] - }, - "convnext_2": { - "idim": 512, - "ksz": 5, - "intermediate_dim": 1024, - "num_layers": 1, - "dilation_lst": [ - 1 - ] - } - }, - "last_convnext": { - "idim": 512, - "ksz": 5, - "intermediate_dim": 1024, - "num_layers": 4, - "dilation_lst": [ - 1, - 1, - 1, - 1 - ] - }, - "proj_out": { - "idim": 512, - "chunk_compress_factor": 6, - "ldim": 24 - } - } - }, - "ae": { - "sample_rate": 44100, - "n_delay": 0, - "base_chunk_size": 512, - "chunk_compress_factor": 1, - "ldim": 24, - "encoder": { - "spec_processor": { - "n_fft": 2048, - "win_length": 2048, - "hop_length": 512, - "n_mels": 228, - "sample_rate": 44100, - "eps": 1e-05, - "norm_mean": 0.0, - "norm_std": 1.0 - }, - "ksz_init": 7, - "ksz": 7, - "num_layers": 10, - "dilation_lst": [ - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1, - 1 - ], - "intermediate_dim": 2048, - "idim": 1253, - "hdim": 512, - "odim": 24 - }, - "decoder": { - "ksz_init": 7, - "ksz": 7, - "num_layers": 10, - "dilation_lst": [ - 1, - 2, - 4, - 1, - 2, - 4, - 1, - 1, - 1, - 1 - ], - "intermediate_dim": 2048, - "idim": 24, - "hdim": 512, - "head": { - "idim": 512, - "hdim": 2048, - "odim": 512, - "ksz": 3 - } - } - }, - "dp": { - "latent_dim": 24, - "chunk_compress_factor": 6, - "normalizer": { - "scale": 1.0 - }, - "sentence_encoder": { - "char_emb_dim": 64, - "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json", - "text_embedder": { - "char_dict_path": "resources/metadata/char_dict/opensource-en/char_dict.json", - "char_emb_dim": 64 - }, - "convnext": { - "idim": 64, - "ksz": 5, - "intermediate_dim": 256, - "num_layers": 6, - "dilation_lst": [ - 1, - 1, - 1, - 1, - 1, - 1 - ] - }, - "attn_encoder": { - "hidden_channels": 64, - "filter_channels": 256, - "n_heads": 2, - "n_layers": 2, - "p_dropout": 0.0 - }, - "proj_out": { - "idim": 64, - "odim": 64 - } - }, - "style_encoder": { - "proj_in": { - "ldim": 24, - "chunk_compress_factor": 6, - "odim": 64 - }, - "convnext": { - "idim": 64, - "ksz": 5, - "intermediate_dim": 256, - "num_layers": 4, - "dilation_lst": [ - 1, - 1, - 1, - 1 - ] - }, - "style_token_layer": { - "input_dim": 64, - "n_style": 8, - "style_key_dim": 0, - "style_value_dim": 16, - "prototype_dim": 64, - "n_units": 64, - "n_heads": 2 - } - }, - "predictor": { - "sentence_dim": 64, - "n_style": 8, - "style_dim": 16, - "hdim": 128, - "n_layer": 2 - } - } -} \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/assets/onnx/tts.yml b/Cs_HMI/SubProject/SuperTonic/assets/onnx/tts.yml deleted file mode 100644 index d37684b..0000000 --- a/Cs_HMI/SubProject/SuperTonic/assets/onnx/tts.yml +++ /dev/null @@ -1,223 +0,0 @@ -tts_version: "v1.5.0" - -split: "opensource-en" - -ttl_ckpt_path: "unknown.pt" - -dp_ckpt_path: "unknown.pt" - -ae_ckpt_path: "unknown.pt" - -ttl_train: "unknown" - -dp_train: "unknown" - -ae_train: "unknown" - -ttl: - latent_dim: 24 - chunk_compress_factor: 6 - batch_expander: - n_batch_expand: 6 - normalizer: - scale: 0.25 - text_encoder: - char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json" - text_embedder: - char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json" - char_emb_dim: 256 - convnext: - idim: 256 - ksz: 5 - intermediate_dim: 1024 - num_layers: 6 - dilation_lst: [1, 1, 1, 1, 1, 1] - attn_encoder: - hidden_channels: 256 - filter_channels: 1024 - n_heads: 4 - n_layers: 4 - p_dropout: 0.0 - proj_out: - idim: 256 - odim: 256 - flow_matching: - sig_min: 0 - style_encoder: - proj_in: - ldim: 24 - chunk_compress_factor: 6 - odim: 256 - convnext: - idim: 256 - ksz: 5 - intermediate_dim: 1024 - num_layers: 6 - dilation_lst: [1, 1, 1, 1, 1, 1] - style_token_layer: - input_dim: 256 - n_style: 50 - style_key_dim: 256 - style_value_dim: 256 - prototype_dim: 256 - n_units: 256 - n_heads: 2 - speech_prompted_text_encoder: - text_dim: 256 - style_dim: 256 - n_units: 256 - n_heads: 2 - uncond_masker: - prob_both_uncond: 0.04 - prob_text_uncond: 0.01 - std: 0.1 - text_dim: 256 - n_style: 50 - style_key_dim: 256 - style_value_dim: 256 - vector_field: - proj_in: - ldim: 24 - chunk_compress_factor: 6 - odim: 512 - time_encoder: - time_dim: 64 - hdim: 256 - main_blocks: - n_blocks: 4 - time_cond_layer: - idim: 512 - time_dim: 64 - style_cond_layer: - idim: 512 - style_dim: 256 - text_cond_layer: - idim: 512 - text_dim: 256 - n_heads: 4 - use_residual: True - rotary_base: 10000 - rotary_scale: 10 - convnext_0: - idim: 512 - ksz: 5 - intermediate_dim: 1024 - num_layers: 4 - dilation_lst: [1, 2, 4, 8] - convnext_1: - idim: 512 - ksz: 5 - intermediate_dim: 1024 - num_layers: 1 - dilation_lst: [1] - convnext_2: - idim: 512 - ksz: 5 - intermediate_dim: 1024 - num_layers: 1 - dilation_lst: [1] - last_convnext: - idim: 512 - ksz: 5 - intermediate_dim: 1024 - num_layers: 4 - dilation_lst: [1, 1, 1, 1] - proj_out: - idim: 512 - chunk_compress_factor: 6 - ldim: 24 - -ae: - sample_rate: 44100 - n_delay: 0 - base_chunk_size: 512 - chunk_compress_factor: 1 - ldim: 24 - encoder: - spec_processor: - n_fft: 2048 - win_length: 2048 - hop_length: 512 - n_mels: 228 - sample_rate: 44100 - eps: 1e-05 - norm_mean: 0.0 - norm_std: 1.0 - ksz_init: 7 - ksz: 7 - num_layers: 10 - dilation_lst: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - intermediate_dim: 2048 - idim: 1253 - hdim: 512 - odim: 24 - decoder: - ksz_init: 7 - ksz: 7 - num_layers: 10 - dilation_lst: [1, 2, 4, 1, 2, 4, 1, 1, 1, 1] - intermediate_dim: 2048 - idim: 24 - hdim: 512 - head: - idim: 512 - hdim: 2048 - odim: 512 - ksz: 3 - -dp: - latent_dim: 24 - chunk_compress_factor: 6 - normalizer: - scale: 1.0 - sentence_encoder: - char_emb_dim: 64 - char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json" - text_embedder: - char_dict_path: "resources/metadata/char_dict/opensource-en/char_dict.json" - char_emb_dim: 64 - convnext: - idim: 64 - ksz: 5 - intermediate_dim: 256 - num_layers: 6 - dilation_lst: [1, 1, 1, 1, 1, 1] - attn_encoder: - hidden_channels: 64 - filter_channels: 256 - n_heads: 2 - n_layers: 2 - p_dropout: 0.0 - proj_out: - idim: 64 - odim: 64 - style_encoder: - proj_in: - ldim: 24 - chunk_compress_factor: 6 - odim: 64 - convnext: - idim: 64 - ksz: 5 - intermediate_dim: 256 - num_layers: 4 - dilation_lst: [1, 1, 1, 1] - style_token_layer: - input_dim: 64 - n_style: 8 - style_key_dim: 0 - style_value_dim: 16 - prototype_dim: 64 - n_units: 64 - n_heads: 2 - predictor: - sentence_dim: 64 - n_style: 8 - style_dim: 16 - hdim: 128 - n_layer: 2 - -unicode_indexer_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/unicode_indexer.npy" -unicode_indexer_json_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/unicode_indexer.json" -window_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/window.json" -filter_bank_path: "/data/public/model/supertonic/tts/v1.5.0/opensource-en/onnx/filter_bank.json" diff --git a/Cs_HMI/SubProject/SuperTonic/assets/onnx/unicode_indexer.json b/Cs_HMI/SubProject/SuperTonic/assets/onnx/unicode_indexer.json deleted file mode 100644 index 2d0dadf..0000000 --- a/Cs_HMI/SubProject/SuperTonic/assets/onnx/unicode_indexer.json +++ /dev/null @@ -1 +0,0 @@ -[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, 26, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/assets/onnx/vector_estimator.onnx b/Cs_HMI/SubProject/SuperTonic/assets/onnx/vector_estimator.onnx deleted file mode 100644 index 685944a..0000000 Binary files a/Cs_HMI/SubProject/SuperTonic/assets/onnx/vector_estimator.onnx and /dev/null differ diff --git a/Cs_HMI/SubProject/SuperTonic/assets/onnx/vocoder.onnx b/Cs_HMI/SubProject/SuperTonic/assets/onnx/vocoder.onnx deleted file mode 100644 index 68132b3..0000000 Binary files a/Cs_HMI/SubProject/SuperTonic/assets/onnx/vocoder.onnx and /dev/null differ diff --git a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/F1.json b/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/F1.json deleted file mode 100644 index 8425228..0000000 --- a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/F1.json +++ /dev/null @@ -1,13076 +0,0 @@ -{ - "style_ttl": { - "data": [ - [ - [ - -0.010169543325901031, - -0.0013391943648457527, - 0.0471518337726593, - -0.005204556509852409, - 0.034123294055461884, - 0.010298464447259903, - 0.019189124926924706, - 0.014849339611828327, - -0.041563037782907486, - -0.017602479085326195, - -0.032681405544281006, - -0.013948146253824234, - 0.015524789690971375, - 0.003943340387195349, - -0.049195919185876846, - -0.1566043645143509, - 0.007637894246727228, - -0.0691399946808815, - -0.0031719759572297335, - -0.0007730252691544592, - -0.08289843052625656, - -0.004093640949577093, - 0.001343406387604773, - -0.04175972193479538, - 0.031628817319869995, - -0.03678152337670326, - 0.020330628380179405, - 0.0022220811806619167, - 0.004273686558008194, - -0.008452726528048515, - -0.028523845598101616, - -0.05229329317808151, - -0.043237507343292236, - 0.006781497970223427, - 0.0029864583630114794, - 0.030899997800588608, - 0.01719014160335064, - -0.0414099358022213, - -0.012454352341592312, - 0.04776693880558014, - 0.04327281191945076, - 0.043146900832653046, - -0.0013672593049705029, - -0.012678399682044983, - 0.06241649389266968, - 0.08697383850812912, - 0.004506451543420553, - 0.030040737241506577, - -0.0023816069588065147, - 0.046305254101753235, - -0.008169622160494328, - -0.019580386579036713, - -0.022134801372885704, - -0.008915903978049755, - 0.025724146515130997, - -0.025212369859218597, - -0.014188061468303204, - 0.02693377062678337, - -0.08281170576810837, - 0.03612975776195526, - -0.054521284997463226, - -0.01868457719683647, - 0.010538734495639801, - 0.030889486894011497, - -0.038296520709991455, - -0.01467201393097639, - -0.022447869181632996, - -0.022366216406226158, - 0.026251377537846565, - 0.013646605424582958, - 0.061643268913030624, - 0.1608460396528244, - 0.054111529141664505, - -0.025886554270982742, - -0.01216808333992958, - -0.05462218448519707, - 0.012839612551033497, - 0.00827289279550314, - -0.0029865489341318607, - 0.12400156259536743, - 0.024386588484048843, - 0.018367178738117218, - 0.0757828801870346, - -0.026423415169119835, - -0.011811288073658943, - -0.06401592493057251, - 0.0439210906624794, - 0.015871545299887657, - -0.023858390748500824, - 0.002890854375436902, - 0.012305663898587227, - -0.0037551703862845898, - 0.07824528962373734, - -0.011463958770036697, - 0.010870532132685184, - 0.04405904933810234, - -0.036534737795591354, - -0.008909543044865131, - 0.011525857262313366, - -0.04087148606777191, - 0.007786130998283625, - -0.013695837929844856, - 0.05290258675813675, - 0.0006255240296013653, - -0.09132593870162964, - -0.06595974415540695, - 0.022783799096941948, - 0.006607274990528822, - -0.012764157727360725, - -0.0652289092540741, - 0.0066070156171917915, - 0.03410039097070694, - 0.013452215120196342, - 0.019361624494194984, - -0.01779051125049591, - -0.009935772977769375, - 0.0019965567626059055, - 0.0009285271517001092, - -0.016729822382330894, - 0.056773629039525986, - -0.04931299760937691, - 0.015538330189883709, - 0.008193351328372955, - 0.01424475945532322, - 0.11132524162530899, - 0.003678183536976576, - -0.6247543692588806, - 0.019140850752592087, - -0.028749750927090645, - 0.04489826038479805, - 0.039764512330293655, - -0.05699390918016434, - 0.003326135454699397, - -0.003265730105340481, - 0.023417092859745026, - 0.010949725285172462, - 0.021929970011115074, - -0.019304579123854637, - -0.0021155113354325294, - -0.02237517386674881, - 0.011582725681364536, - -0.011282575316727161, - 0.04036378115415573, - -0.054760612547397614, - 0.0020373414736241102, - -0.042301177978515625, - -0.01033129170536995, - -0.009011206217110157, - -0.02354513853788376, - 0.005297460127621889, - -0.01778506115078926, - 0.0016553150489926338, - -0.012892447412014008, - -0.022652309387922287, - -0.033392585813999176, - 0.011153443716466427, - 0.044163431972265244, - 0.00013984719407744706, - -0.030475646257400513, - 0.24801863729953766, - -0.02004092186689377, - 0.00894002802670002, - 0.029539015144109726, - 0.05258703604340553, - 0.012249843217432499, - -0.04923674464225769, - 0.05031127110123634, - -0.012299946509301662, - 0.010445401072502136, - -0.021048985421657562, - -0.023692062124609947, - 0.03367755934596062, - -0.04890326410531998, - -0.07195324450731277, - 0.038777612149715424, - 0.005465489812195301, - -0.08056871592998505, - 0.06846600025892258, - 0.0019642000552266836, - -0.04158368334174156, - -0.01136616338044405, - 0.02927677519619465, - -0.009161953814327717, - -0.059122562408447266, - -0.19373658299446106, - 0.025460081174969673, - -0.02333223633468151, - 0.03868153691291809, - -0.05647791922092438, - 0.016544284299016, - 0.017894739285111427, - -0.059836383908987045, - 0.23740127682685852, - -0.003964198753237724, - -0.020662382245063782, - 0.0036503802984952927, - -0.011721025221049786, - -0.019929638132452965, - -0.04463735967874527, - 0.015242377296090126, - -0.03655361011624336, - -0.03761667758226395, - -0.017647696658968925, - 0.023559922352433205, - 0.02031191997230053, - -0.026693599298596382, - -0.023941367864608765, - 0.007459726184606552, - -0.011752241291105747, - 0.003453332930803299, - 0.0019986035767942667, - -0.008351919241249561, - 0.14683900773525238, - 0.027300655841827393, - -0.028870342299342155, - -0.0006220740033313632, - -0.010088297538459301, - 0.03820145130157471, - -0.02608385495841503, - -0.0970960408449173, - 0.036436308175325394, - -0.019395003095269203, - 0.013340913690626621, - 0.0392342284321785, - 0.012847780250012875, - -0.021304361522197723, - -0.022365298122167587, - -0.008896514773368835, - 0.001742113963700831, - -0.00406632712110877, - 0.007521091960370541, - 0.003219242673367262, - 0.012349808588624, - -0.017443452030420303, - 0.05524285137653351, - -0.040922101587057114, - -0.010935669764876366, - 0.03276658430695534, - -0.3076503872871399, - -0.003581042168661952, - 0.06725974380970001, - -0.01722990907728672, - 0.030153103172779083, - 0.02466971054673195, - 0.030897323042154312, - -0.009173820726573467, - 0.005403661169111729, - 0.026394501328468323, - -0.013656442053616047, - -0.007382623851299286, - -0.06784304976463318, - -0.009926345199346542, - -0.0077586183324456215, - 0.007819568738341331, - -0.012669572606682777, - 0.0332941859960556 - ], - [ - -0.03191249072551727, - -0.009561917744576931, - 0.03403515741229057, - -0.016954781487584114, - 0.043346960097551346, - 0.033425819128751755, - -0.004873917903751135, - 0.025255145505070686, - -0.07722673565149307, - 0.011149253696203232, - -0.013075600378215313, - -0.0350857637822628, - 0.028786351904273033, - 0.010876822285354137, - -0.0742020234465599, - -0.23729753494262695, - -0.00016012460400816053, - -0.02207818254828453, - -0.010450147092342377, - -0.01293260045349598, - -0.024792388081550598, - 0.012871951796114445, - -0.005792201962321997, - -0.0645492747426033, - 0.01757141202688217, - -0.03294025734066963, - 0.0016742723528295755, - 0.0042282710783183575, - -0.012170304544270039, - -0.0012666215188801289, - -0.030033664777874947, - -0.06154972314834595, - -0.03732363507151604, - 0.00804379116743803, - -0.012480796314775944, - 0.03322899341583252, - 0.02505350671708584, - -0.03167504817247391, - -0.017397703602910042, - 0.039544135332107544, - 0.00995728187263012, - 0.043669965118169785, - -0.006036389619112015, - -0.030138123780488968, - 0.025803327560424805, - 0.09732892364263535, - 0.011640915647149086, - 0.06607144325971603, - -0.017009016126394272, - 0.0671142041683197, - -0.01070752739906311, - 0.015037822537124157, - -0.011000147089362144, - 0.0062180813401937485, - 0.02074204571545124, - -0.04373539239168167, - -0.007500533014535904, - 0.00969038438051939, - -0.073652483522892, - 0.04037340357899666, - -0.017573155462741852, - 0.01281652506440878, - 0.020402057096362114, - 0.048094071447849274, - -0.050281547009944916, - -0.013077138923108578, - -0.0549028106033802, - -0.04031721130013466, - 0.02289680950343609, - -0.0005160227883607149, - 0.018180858343839645, - 0.13488471508026123, - 0.07614424079656601, - -0.013390972279012203, - -0.012222646735608578, - -0.03847340866923332, - 0.0046301973052322865, - -0.009361600503325462, - -0.010424250736832619, - 0.10990505665540695, - 0.018115876242518425, - 0.030740220099687576, - -0.19564588367938995, - -0.02995891124010086, - 0.004153995309025049, - -0.06558611989021301, - 0.01797480881214142, - -0.007183102425187826, - -0.02912689372897148, - -0.005237283185124397, - -0.030570069327950478, - -0.004636614117771387, - 0.15467305481433868, - -0.01127093005925417, - 0.021190747618675232, - 0.027370573952794075, - -0.02856745757162571, - -0.020990485325455666, - 0.009072783403098583, - -0.02294580638408661, - 0.014720492996275425, - -0.007640198804438114, - 0.03622309863567352, - -0.021503644064068794, - -0.08129534870386124, - -0.08345618098974228, - 0.004663305822759867, - -0.011502988636493683, - -0.01727546937763691, - -0.08018264919519424, - 0.016137875616550446, - 0.03376184031367302, - 0.013530528172850609, - 0.016308391466736794, - -0.06700698286294937, - 0.0017908490262925625, - 0.014894544146955013, - -0.004022794775664806, - -0.0292850062251091, - 0.03015333227813244, - -0.013743825256824493, - 0.011440383270382881, - 0.002582333981990814, - -0.004642452113330364, - 0.10834147036075592, - 0.008405128493905067, - -0.6145381927490234, - 0.011922475881874561, - -0.025323059409856796, - 0.020997537299990654, - 0.042908038944005966, - -0.08270145952701569, - -0.015069709159433842, - -0.00131501245778054, - 0.03488117828965187, - 0.025082608684897423, - -0.005098695866763592, - -0.01826932281255722, - -0.001177258905954659, - -0.03201030194759369, - 0.05047174543142319, - -0.007096527144312859, - 0.013270077295601368, - -0.047739364206790924, - -0.004867476411163807, - -0.02056790329515934, - -0.005258987192064524, - -0.017851989716291428, - -0.027795497328042984, - 0.001978083746507764, - -0.0270538330078125, - 0.004110300913453102, - 0.003547344356775284, - 0.01828533038496971, - -0.024392373859882355, - 0.010956567712128162, - 0.011889676563441753, - -0.008009763434529305, - -0.040373627096414566, - 0.3453945815563202, - -0.03175608441233635, - 0.014347139745950699, - 0.03993529826402664, - 0.09358535706996918, - 0.0028018865268677473, - -0.042914483696222305, - 0.03779790177941322, - -0.004344751127064228, - -0.005953880958259106, - 0.005132874008268118, - -0.002144098747521639, - -0.016567984595894814, - -0.022593984380364418, - -0.04467238113284111, - 0.04875047132372856, - -0.014882098883390427, - -0.055017437785863876, - 0.04648280516266823, - -0.005824439227581024, - -0.04216241091489792, - -0.000760599214117974, - 0.01746312528848648, - -0.00293915462680161, - -0.0655507817864418, - -0.16619060933589935, - 0.019864516332745552, - -0.02913375198841095, - 0.030789336189627647, - -0.06802846491336823, - 0.013403594493865967, - -0.004862493835389614, - -0.061037853360176086, - 0.17536313831806183, - -0.004003304056823254, - 0.002314229728654027, - 0.0122400913387537, - -0.017832821235060692, - -0.019022062420845032, - -0.04567062854766846, - 0.006194322369992733, - -0.031580422073602676, - -0.027810249477624893, - -0.01453007385134697, - 0.029406186193227768, - 0.014441699720919132, - -0.029095590114593506, - -0.025896307080984116, - 0.020128754898905754, - -0.0019593595061451197, - -0.003189088311046362, - 0.031847033649683, - -0.006195313762873411, - 0.10465357452630997, - 0.01025940291583538, - -0.04123936593532562, - 0.014516711235046387, - -0.0034103344660252333, - 0.005210313480347395, - -0.01538532879203558, - -0.0810886025428772, - 0.04317491129040718, - -0.027148403227329254, - 0.006265138275921345, - 0.042867597192525864, - 0.006457891780883074, - -0.010125664062798023, - -0.04399590194225311, - -0.01337490975856781, - -0.005604604259133339, - -0.02071191929280758, - 0.02776593156158924, - 0.007960638031363487, - -0.0034228162840008736, - -0.01943867653608322, - 0.042262203991413116, - -0.02861775830388069, - -0.003283341880887747, - 0.02778383530676365, - -0.14734116196632385, - -0.0008244217024184763, - 0.08616279065608978, - -0.010322033427655697, - -0.008070326410233974, - 0.018817096948623657, - -0.005962895229458809, - 0.00579786254093051, - 0.012175091542303562, - 0.048635613173246384, - 0.006617439910769463, - 0.01336231641471386, - -0.08775480091571808, - -0.03769095987081528, - 0.019160302355885506, - 0.04293026402592659, - 0.0027371435426175594, - -0.01466691866517067 - ], - [ - -0.004217673558741808, - -0.005097576417028904, - 0.014298596419394016, - 0.005695169325917959, - 0.039334580302238464, - 0.013430818915367126, - -0.0027849869802594185, - 0.01149035058915615, - -0.06261643767356873, - 0.0012272681342437863, - 0.008714442141354084, - -0.014360117726027966, - 0.045350831001996994, - 0.006202558521181345, - -0.05431891977787018, - -0.25108829140663147, - 0.005296892020851374, - -0.06272018700838089, - -0.0007233150536194444, - -0.009554332122206688, - -0.01822500117123127, - -0.0020101803820580244, - -0.023215407505631447, - -0.06702666729688644, - 0.02593803219497204, - -0.022492406889796257, - 0.017916863784193993, - 0.009296583943068981, - -0.0161886103451252, - -0.004066952969878912, - -0.03481043875217438, - -0.05491524189710617, - -0.062435634434223175, - 0.009742164984345436, - 0.0071734474040567875, - 0.008500838652253151, - 0.02612941898405552, - -0.024469930678606033, - -0.0022102082148194313, - 0.03821036219596863, - 0.029591331258416176, - 0.0491156131029129, - 0.02053861692547798, - -0.016176242381334305, - 0.033073775470256805, - 0.09809815883636475, - 0.021720891818404198, - 0.05977001413702965, - -0.00011241411993978545, - 0.08652371168136597, - -0.01753046177327633, - 0.004844327922910452, - -0.007548225112259388, - 0.009941358119249344, - 0.0010015481384471059, - -0.04533643275499344, - 0.00916789099574089, - 0.010684101842343807, - -0.06899262219667435, - 0.009533049538731575, - -0.021998867392539978, - 0.03153407201170921, - -0.0017920213285833597, - 0.02093401737511158, - -0.05172714591026306, - -0.00488952687010169, - -0.02607833221554756, - -0.019503293558955193, - 0.0534934476017952, - -0.0011856677010655403, - 0.026940790936350822, - 0.14240887761116028, - 0.06557441502809525, - -0.010704215615987778, - -0.010416965931653976, - -0.05681770667433739, - 0.010109463706612587, - 0.021721145138144493, - -0.016648653894662857, - 0.09510017931461334, - 0.023983502760529518, - 0.00931460689753294, - 0.022020932286977768, - 0.010366301983594894, - -0.005355936475098133, - -0.033257823437452316, - 0.04674429073929787, - -0.007475652266293764, - -0.032849181443452835, - -0.0016640053363516927, - -0.026800820603966713, - 0.004226273857057095, - 0.12985748052597046, - 0.0025240667164325714, - 0.00955782737582922, - 0.03953307867050171, - -0.023655937984585762, - -0.028765607625246048, - -0.015561527572572231, - -0.03523681312799454, - 0.0340295173227787, - -0.008456018753349781, - 0.05603222921490669, - -0.02118823677301407, - -0.05559350550174713, - -0.0775916576385498, - 0.006054053083062172, - 0.009963035583496094, - -0.015347606502473354, - -0.05454882234334946, - 0.027701416984200478, - 0.05513961613178253, - 0.03262396901845932, - 0.02121535688638687, - -0.059180814772844315, - 0.0011244844645261765, - 0.01379244215786457, - -0.016028424724936485, - -0.03851807117462158, - 0.0418887585401535, - -0.000587563612498343, - -0.008252508006989956, - 0.004504422657191753, - 0.022592809051275253, - 0.10086403042078018, - -0.0034873932600021362, - -0.672973096370697, - 0.02073783427476883, - -0.025050638243556023, - 0.017910530790686607, - 0.029694318771362305, - -0.119029201567173, - -0.011952276341617107, - 0.004174248781055212, - 0.05733848735690117, - 0.03354943171143532, - -0.0057402183301746845, - 0.000843693153001368, - -0.010027329437434673, - -0.027378298342227936, - 0.02273898757994175, - 0.0033615638967603445, - 0.02696906588971615, - -0.06543981283903122, - -8.844008698360994e-05, - -0.020282350480556488, - 0.002180051291361451, - -0.02596626803278923, - -0.03338778764009476, - -5.0218284741276875e-05, - -0.024951307103037834, - 0.003206634894013405, - -0.0009364995057694614, - -0.017735527828335762, - -0.025161638855934143, - -0.009119770489633083, - 0.034371040761470795, - -0.011563624255359173, - -0.030665956437587738, - 0.2887234389781952, - -0.014749595895409584, - -0.00021068744536023587, - 0.0294768325984478, - 0.0986863225698471, - 0.011848140507936478, - -0.05501443147659302, - 0.03695168346166611, - -0.022425882518291473, - -0.0058660260401666164, - 0.010981212370097637, - 0.01850895956158638, - -0.047696541994810104, - -0.033151641488075256, - -0.056675929576158524, - 0.02347373031079769, - -0.007223505526781082, - -0.055715903639793396, - 0.04180553928017616, - -0.004751182161271572, - -0.024540329352021217, - -0.001730358344502747, - 0.04074091836810112, - 0.0015390063636004925, - -0.04719597101211548, - -0.16074682772159576, - 0.011137859895825386, - -0.022858433425426483, - 0.0028909046668559313, - -0.032742954790592194, - -0.009287498891353607, - 0.026182809844613075, - -0.04139355197548866, - 0.18436239659786224, - -0.00481038074940443, - 0.0024010806810110807, - 0.03820487856864929, - -0.004148408770561218, - -0.010255561210215092, - -0.062132444232702255, - -0.014478480443358421, - -0.02523842081427574, - -0.020466715097427368, - 0.025072870776057243, - 0.022448284551501274, - 0.01882023923099041, - -0.032713357359170914, - -0.03657159209251404, - -0.008645238354802132, - 0.004105973988771439, - -0.02921086736023426, - 0.022683754563331604, - 0.0074310703203082085, - 0.10346382111310959, - -0.0009946811478585005, - -0.017268622294068336, - -0.012334713712334633, - 0.01464700885117054, - 0.018236055970191956, - -0.006654680240899324, - -0.07487501949071884, - 0.04600552096962929, - -0.06099539250135422, - 0.0035097545478492975, - 0.021992692723870277, - 0.016288934275507927, - -0.015586637891829014, - -0.006125943269580603, - 0.00010667125025065616, - -0.009874247945845127, - -0.020184261724352837, - 0.02716147154569626, - -0.0021465595345944166, - 0.012978538870811462, - -0.0006954512791708112, - 0.02390940859913826, - -0.0503489226102829, - -0.0039004222489893436, - 0.015507519245147705, - -0.15677759051322937, - 0.015769993886351585, - 0.09624957293272018, - -0.014105284586548805, - -0.02628437615931034, - 0.0154755599796772, - 0.0062369247898459435, - -0.012131502851843834, - -0.017138373106718063, - 0.05251125246286392, - -0.003446488408371806, - 0.004789855796843767, - -0.0784558579325676, - 0.0028265395667403936, - 0.01697428897023201, - 0.027049480006098747, - -8.664646156830713e-05, - 0.012800175696611404 - ], - [ - 0.0012795765651389956, - -0.008952343836426735, - 0.03624383360147476, - 0.05869505554437637, - 0.034163378179073334, - -0.014119134284555912, - 0.001631123828701675, - -0.0050751445814967155, - -0.06756290048360825, - -0.02209998108446598, - 0.034609124064445496, - -0.01314112264662981, - 0.03751959651708603, - 0.014618775807321072, - -0.0222894586622715, - -0.24128928780555725, - 0.010843325406312943, - -0.01780359447002411, - 0.021773675456643105, - -0.0011236462742090225, - 0.012695725075900555, - -0.02244666963815689, - -0.006864356808364391, - -0.07900901883840561, - 0.01995815336704254, - -0.0028220987878739834, - 0.03761240094900131, - 0.013780467212200165, - -0.034933000802993774, - 0.028494777157902718, - -0.016978835687041283, - -0.043472278863191605, - -0.047613147646188736, - 0.018887009471654892, - -0.013416046276688576, - 0.004376431927084923, - 0.013689457438886166, - -0.020639682188630104, - 0.015780717134475708, - 0.02040768787264824, - 0.02788393571972847, - 0.057627465575933456, - 0.011163374409079552, - -0.017295196652412415, - 0.009806862100958824, - 0.09957755357027054, - 0.039310555905103683, - 0.06301434338092804, - 0.007028759922832251, - 0.09161439538002014, - -0.012903690338134766, - -0.0017511217156425118, - -0.004711783956736326, - -0.004592290148139, - 0.016835661605000496, - -0.050270505249500275, - 0.01350689772516489, - -0.005234420765191317, - -0.04607347026467323, - -0.024597391486167908, - -0.028320936486124992, - 0.047062888741493225, - -0.008578906767070293, - 0.010670611634850502, - -0.07163339853286743, - 0.019121823832392693, - -0.037128746509552, - 0.007061798591166735, - 0.04932268708944321, - 0.024042006582021713, - 0.02207849733531475, - 0.12238482385873795, - 0.036725353449583054, - 0.0026134243234992027, - -0.018421093001961708, - -0.04811906814575195, - 0.011911123059689999, - -0.03251522406935692, - -0.00813733134418726, - 0.0840136930346489, - 0.025955596938729286, - 0.013471703045070171, - 0.2914634943008423, - 0.032954685389995575, - 0.03159903362393379, - -0.0435640811920166, - 0.03538072854280472, - -0.015982145443558693, - -0.041899673640728, - -0.03968065604567528, - -0.03626208379864693, - -0.005419751163572073, - 0.1815253496170044, - 0.010626174509525299, - -0.010823413729667664, - 0.04726127162575722, - -0.009216812439262867, - -0.0028641640674322844, - -0.0290998425334692, - -0.04065968841314316, - 0.06287910789251328, - -0.025025613605976105, - 0.08341940492391586, - -0.015502351336181164, - -0.059385746717453, - -0.0361931249499321, - 0.028178928419947624, - 0.012457969598472118, - -0.02910960093140602, - -0.03751529008150101, - 0.05248931422829628, - 0.04227050021290779, - 0.07656895369291306, - 0.025400565937161446, - -0.09128264337778091, - -0.020874645560979843, - 0.005427767522633076, - -0.03217766806483269, - -0.04942180588841438, - 0.023415306583046913, - 0.025276999920606613, - -0.00761761050671339, - -0.005036072339862585, - 0.017305105924606323, - 0.10910490900278091, - 0.017056705430150032, - -0.6640899181365967, - 0.016513025388121605, - -0.030123747885227203, - -0.004103219136595726, - -0.006082083098590374, - -0.13146547973155975, - -0.006410785485059023, - -0.0003828049812000245, - 0.01995493657886982, - 0.013997343368828297, - 0.005615550559014082, - 0.03175884112715721, - -0.002720046555623412, - -0.017872750759124756, - 0.0326797291636467, - -0.003977434244006872, - 0.029681693762540817, - -0.02337234653532505, - 0.02456878498196602, - 0.010449088178575039, - 0.011860565282404423, - -0.02213986963033676, - -0.03860967233777046, - -0.0076169236563146114, - -0.018053844571113586, - -0.021593349054455757, - 0.008005576208233833, - -0.013234036043286324, - -0.03513577952980995, - -0.015795091167092323, - 0.054185424000024796, - 0.0001883018994703889, - 0.017508065328001976, - 0.18631747364997864, - 0.017495732754468918, - -0.028156837448477745, - -0.01276378333568573, - 0.06840059161186218, - -0.008163667283952236, - -0.05660214647650719, - -0.01045309193432331, - -0.017664458602666855, - 0.0022608195431530476, - 0.034379445016384125, - 0.03886406123638153, - -0.09085329622030258, - -0.022648906335234642, - -0.049352046102285385, - 0.04767018184065819, - -0.026482153683900833, - -0.038860984146595, - 0.0019311804790049791, - 0.013759460300207138, - -0.01578252948820591, - -5.726229119318305e-06, - 0.010050174780189991, - 0.003278135322034359, - -0.04501977935433388, - -0.13927550613880157, - 0.007773071527481079, - 0.014744024723768234, - 9.569867688696831e-05, - -0.02189435251057148, - -0.009235916659235954, - 0.01044558733701706, - 0.011113828048110008, - 0.1184329092502594, - 0.014070405624806881, - 0.0016950416611507535, - 0.04306134954094887, - 0.013381407596170902, - 0.0033616414293646812, - -0.03918766975402832, - -0.04610326141119003, - 0.015826495364308357, - -0.006870723329484463, - 0.022314665839076042, - 0.03930343687534332, - -0.004137243609875441, - -0.02434060536324978, - -0.01808447390794754, - -0.046216223388910294, - 0.032857444137334824, - -0.03657802939414978, - -0.016604678705334663, - 0.028076188638806343, - 0.0678299143910408, - -0.032462865114212036, - -0.00023227465862873942, - 0.011163604445755482, - 0.008348165079951286, - 0.02892707660794258, - -0.006442470941692591, - -0.05369148403406143, - 0.05164794996380806, - -0.06018191576004028, - -0.0009625370730645955, - 0.0075401123613119125, - 0.013716681860387325, - -0.01752634346485138, - 0.012937975116074085, - -0.008229892700910568, - -0.022931454703211784, - -0.0226675383746624, - 0.023270122706890106, - 0.007691038306802511, - 0.026797620579600334, - 0.013064395636320114, - -0.005355543456971645, - -0.039765652269124985, - 0.011082382872700691, - -0.009373166598379612, - -0.10291536897420883, - 0.01766652800142765, - 0.1072850376367569, - -0.0505865216255188, - -0.024322502315044403, - 0.010109891183674335, - 0.025120379403233528, - 0.0013208120362833142, - -0.03193657472729683, - 0.060319334268569946, - 0.018107933923602104, - -0.0029770168475806713, - -0.04123890399932861, - -0.004707652144134045, - 0.02091052383184433, - -0.009340203367173672, - -0.005766227841377258, - 0.024723654612898827 - ], - [ - -0.011196176521480083, - 0.023247605189681053, - 0.039953988045454025, - 0.059134677052497864, - -0.00542990118265152, - 0.002447720617055893, - -0.003870573127642274, - 0.057976093143224716, - 0.03422826528549194, - 0.01720033399760723, - 0.006973873358219862, - -0.0420268252491951, - 0.0004943450912833214, - 0.007427592761814594, - -0.07869955897331238, - 0.021129392087459564, - 0.006375343073159456, - -0.04718925803899765, - -0.06513496488332748, - 0.010047641582787037, - -0.1482420265674591, - 0.018937326967716217, - 0.0050282529555261135, - -0.02000807225704193, - -0.008198009803891182, - -0.004766215104609728, - 0.03076162002980709, - -0.018287820741534233, - -0.04545541852712631, - 0.006441245786845684, - -0.05516194552183151, - 0.016098415479063988, - -0.07425764948129654, - 0.03706230968236923, - 0.024236613884568214, - 0.015193513594567776, - -0.01689913310110569, - -0.018228279426693916, - -0.008586692623794079, - 0.04552973434329033, - 0.08362084627151489, - -0.03764568269252777, - -0.0008506645681336522, - -0.012279225513339043, - 0.025096477940678596, - 0.06294931471347809, - -0.014678886160254478, - 0.00617577088996768, - -0.03269016370177269, - -0.012924608774483204, - -0.031169546768069267, - 0.010029842145740986, - -0.05501614138484001, - -0.012203446589410305, - 0.02970944344997406, - -0.010012743063271046, - 0.015244192443788052, - 0.04604348540306091, - -0.05204100161790848, - 0.011985628865659237, - -0.05302094668149948, - -0.03531680256128311, - 0.03464378044009209, - 0.009187506511807442, - -0.06665220856666565, - 0.005472536664456129, - -0.006995766423642635, - -0.01207546517252922, - -0.02796364761888981, - 0.10662880539894104, - 0.05965406820178032, - 0.16901665925979614, - 0.050891391932964325, - 0.018162138760089874, - -0.0300738625228405, - -0.1158844381570816, - 0.05436535179615021, - 0.002801427384838462, - 0.0075344606302678585, - 0.07182978838682175, - 0.06705836206674576, - 0.029583748430013657, - -0.07102924585342407, - 0.07479052245616913, - 0.0092743169516325, - 0.009837830439209938, - 0.07557668536901474, - -0.041921619325876236, - -0.05669306218624115, - -0.04055527225136757, - 0.018484223634004593, - -0.008737659081816673, - -0.06897721439599991, - 0.04398907348513603, - 0.023793770000338554, - 0.056717146188020706, - -0.04676635563373566, - 0.0016897375462576747, - -0.02200903929769993, - -0.041330430656671524, - 0.016273032873868942, - -0.05842192471027374, - 0.07676039636135101, - 0.014947405084967613, - -0.1026490181684494, - -0.09845037013292313, - 0.03819893300533295, - -0.011776153929531574, - 0.009656206704676151, - -0.05260506272315979, - -0.007986660115420818, - 0.05383649095892906, - 0.048522740602493286, - 0.019417980685830116, - 0.007864641956984997, - -0.0034998864866793156, - 0.00385661656036973, - -0.03415176644921303, - 0.03375285118818283, - 0.03542686253786087, - -0.07645749300718307, - 0.013427973724901676, - -0.03343220800161362, - 0.011270909570157528, - 0.08286833018064499, - 0.041316673159599304, - -0.34741640090942383, - 0.03962091729044914, - -0.006788799073547125, - 0.10537243634462357, - 0.05439502373337746, - -0.06059405952692032, - -0.0311236884444952, - -0.05000749230384827, - 0.06959682703018188, - -0.009567469358444214, - -0.04102499410510063, - -0.024194803088903427, - 0.007739970926195383, - -0.003356538014486432, - -0.0114878686144948, - 0.011857748031616211, - 0.037390366196632385, - 0.04469185695052147, - -0.020179985091090202, - -0.04620535299181938, - 0.06822837889194489, - -0.0334375724196434, - -0.02844543568789959, - 0.003670971840620041, - -0.01623491942882538, - -0.015097418799996376, - -0.050652239471673965, - -0.08199019730091095, - 0.012027144432067871, - 0.037923019379377365, - 0.0334925577044487, - 0.020516032353043556, - -0.006062643136829138, - 0.19802680611610413, - 0.04999161511659622, - -0.0030332179740071297, - -0.00242903595790267, - 0.031631920486688614, - 0.12884341180324554, - -0.031027883291244507, - 0.006630856078118086, - -0.01893589086830616, - -0.0028462165500968695, - -0.008343967609107494, - -0.047533757984638214, - 0.02660718373954296, - -0.10898535698652267, - -0.00825934112071991, - 0.0071167368441820145, - -0.009896564297378063, - -0.03415879234671593, - 0.06456182897090912, - 0.023366816341876984, - -0.011386971920728683, - -0.009312487207353115, - -0.032825641334056854, - -0.04383406415581703, - -0.030524905771017075, - -0.1747068166732788, - 0.017027946189045906, - 0.010819219052791595, - 0.0006274939514696598, - -0.02233882248401642, - -0.044235263019800186, - 0.03761225938796997, - 0.006474093999713659, - 0.2516919672489166, - 0.0011773076839745045, - -0.04247647523880005, - -0.01850225031375885, - -0.004986834246665239, - -0.003684000810608268, - -0.004903378430753946, - 0.004338547121733427, - 0.012678034603595734, - 0.01294519379734993, - -0.009281890466809273, - 0.06584864854812622, - -0.035396747291088104, - -0.03897935524582863, - 0.0131771769374609, - 0.01806957833468914, - 0.0046157571487128735, - -0.0055628023110330105, - -0.012893807142972946, - 0.004952159710228443, - 0.1564328819513321, - 0.026397382840514183, - 0.010876663960516453, - -0.031554266810417175, - -0.01736956462264061, - -0.0055564213544130325, - -0.045311491936445236, - -0.11088264733552933, - 0.026776574552059174, - -0.046931106597185135, - -0.02001219056546688, - -0.01793559268116951, - 0.005326483864337206, - 0.013808520510792732, - 0.008414116688072681, - -0.013746481388807297, - 0.0071123638190329075, - -0.022940168157219887, - 0.02765018865466118, - 0.035344142466783524, - 0.007253716234117746, - 0.01835259236395359, - 0.034503452479839325, - -0.06307770311832428, - 0.0036458184476941824, - 0.024837039411067963, - -0.5232940912246704, - 0.033974144607782364, - 0.028386685997247696, - 0.014165840111672878, - 0.0652344822883606, - -0.016012709587812424, - 0.05122678726911545, - -0.05958474427461624, - -0.01812020130455494, - 0.01004393957555294, - -0.013299134559929371, - -0.04057531803846359, - -0.0976395532488823, - -0.0009716065833345056, - -0.008215371519327164, - 0.013082826510071754, - -0.01626959815621376, - 0.04513701796531677 - ], - [ - -0.016708383336663246, - 0.01743170991539955, - 0.05044573172926903, - 0.016125623136758804, - -0.0329328216612339, - -0.019479544833302498, - 0.019827283918857574, - 0.029521165415644646, - 0.034220896661281586, - -0.003934029024094343, - -0.03537123650312424, - 0.030227873474359512, - -0.012690856121480465, - 0.015193325467407703, - -0.07233142107725143, - 0.04048730432987213, - -0.023386651650071144, - -0.09545469284057617, - 0.005020380951464176, - 0.033382028341293335, - -0.12811923027038574, - 0.007067249622195959, - -0.015256565064191818, - -0.04759973660111427, - 0.024890698492527008, - -0.035565607249736786, - 0.022740665823221207, - -0.051810551434755325, - -0.00810367614030838, - 0.016983238980174065, - -0.017246486619114876, - -0.014001208357512951, - -0.03208443149924278, - 0.023906104266643524, - -0.005409682169556618, - 0.022946471348404884, - -0.0008750507258810103, - -0.034824661910533905, - 0.01052168756723404, - 0.03609737008810043, - 0.05063944309949875, - -0.00849196594208479, - 0.004364673979580402, - -0.01582065038383007, - 0.040066953748464584, - 0.024296103045344353, - 0.013616428710520267, - -0.034623801708221436, - -0.026168473064899445, - 0.04525024816393852, - -0.03531226888298988, - -0.03313295915722847, - -0.03168048337101936, - 0.04152074083685875, - 0.03988293558359146, - -0.0312747061252594, - 0.0027037824038416147, - 0.06513885408639908, - -0.06280195713043213, - 0.03746999427676201, - -0.02552538923919201, - -0.0361221544444561, - 0.01601060852408409, - 0.02344367280602455, - -0.06624362617731094, - 0.021473007276654243, - 0.0045106676407158375, - 0.022263646125793457, - 0.0025377559941262007, - 0.04292818903923035, - 0.0811053216457367, - 0.17053668200969696, - 0.04275491461157799, - 0.03465905413031578, - -0.01865941472351551, - -0.012303831987082958, - 0.047874052077531815, - 0.003617971669882536, - -0.01517097745090723, - 0.07792375236749649, - 0.02368917688727379, - -0.010563033632934093, - -0.16223885118961334, - 0.0027304913382977247, - -0.048358771950006485, - -0.006772080436348915, - 0.09897617995738983, - -0.005439193453639746, - -0.03395354747772217, - -0.007583642844110727, - 0.008424483239650726, - -0.029645340517163277, - -0.10953915864229202, - 0.04344542324542999, - -0.017091717571020126, - 0.027946704998612404, - -0.040802400559186935, - 0.0001240154233528301, - 0.018216481432318687, - -0.039224255830049515, - 0.05477708950638771, - -0.011273015290498734, - 0.04467757046222687, - 0.017838522791862488, - -0.07724644243717194, - -0.03218637406826019, - 0.0329340435564518, - 0.038086120039224625, - 0.003873783629387617, - -0.000938020704779774, - -0.03135799616575241, - 0.012105544097721577, - 0.04137345775961876, - 0.01778179407119751, - 0.04606395959854126, - -0.006615030579268932, - 0.042334068566560745, - -0.024928070604801178, - 0.03173629567027092, - 0.0569344088435173, - -0.07038067281246185, - -0.011025971733033657, - -0.011954954825341702, - 0.03215561807155609, - 0.07229913771152496, - 0.021806420758366585, - -0.3308303952217102, - 0.061812806874513626, - -0.008104745298624039, - 0.05162452533841133, - 0.046210967004299164, - -0.05639992654323578, - -0.014329099096357822, - -0.027988238260149956, - 0.08223803341388702, - 0.02274172753095627, - 0.033412184566259384, - -0.01646449603140354, - 0.011974170804023743, - -0.029502790421247482, - -0.02976394072175026, - 0.018677344545722008, - -0.0007241531857289374, - -0.05310836434364319, - 0.01116985734552145, - -0.07103857398033142, - 0.03643639013171196, - -0.04190643131732941, - -0.02880019322037697, - 0.024124355986714363, - 0.010884912684559822, - 0.026558680459856987, - -0.03538139536976814, - -0.10466233640909195, - -0.01895764470100403, - 0.04063056409358978, - 0.0439385361969471, - 0.015690548345446587, - -0.009152202866971493, - 0.22627824544906616, - 0.014313386753201485, - 0.011366215534508228, - -0.012250787578523159, - 0.012010774575173855, - 0.12298676371574402, - -0.02658548578619957, - 0.03927874192595482, - -0.00843257550150156, - 0.01723157800734043, - -0.00721938768401742, - 0.013245807029306889, - 0.016949258744716644, - -0.10861021280288696, - -0.035986658185720444, - 0.017175476998090744, - 0.060624297708272934, - -0.023827623575925827, - 0.050286371260881424, - 0.011413361877202988, - 0.01731480285525322, - -0.015705527737736702, - 0.046352751553058624, - -0.0030248702969402075, - -0.029174817726016045, - -0.1466774344444275, - 0.0028310955967754126, - 0.03198523074388504, - -0.021935250610113144, - -0.0022003287449479103, - -0.02307889610528946, - 0.03424741327762604, - -0.009094955399632454, - 0.2684387266635895, - -0.015010736882686615, - -0.0035569220781326294, - -0.008122825995087624, - -0.03697036951780319, - 0.006253313273191452, - -0.06198587268590927, - 0.0218794047832489, - -0.018677445128560066, - -0.017067942768335342, - 0.025650732219219208, - 0.00028107225080020726, - -0.0017932935152202845, - -0.033650126308202744, - 0.036697112023830414, - -0.021806854754686356, - -0.006229714956134558, - 0.00797396432608366, - 0.036745693534612656, - 0.0036009179893881083, - 0.16995029151439667, - 0.04304540902376175, - -0.0015813324134796858, - -0.06896013021469116, - 0.018772955983877182, - 0.033949315547943115, - -0.029860107228159904, - -0.09256679564714432, - 0.028696592897176743, - -0.038784466683864594, - 0.0016221191035583615, - 0.011301720514893532, - 0.02042807638645172, - -0.007437211461365223, - -0.019609645009040833, - -0.02098451927304268, - -0.00258006458170712, - -0.025139236822724342, - 0.0317833311855793, - 0.05732835456728935, - -0.02359663136303425, - 0.01693585515022278, - 0.015798546373844147, - -0.06848470866680145, - -0.003361997427418828, - 0.05951140075922012, - -0.5509917140007019, - 0.012651568278670311, - 0.04815705120563507, - -0.008787100203335285, - 0.05778863653540611, - -0.019460570067167282, - 0.05074659734964371, - -0.06600654125213623, - 0.0016681881388649344, - -0.001684773014858365, - -0.012698701582849026, - -0.08211808651685715, - -0.03237059712409973, - 0.03702044486999512, - -0.03470687195658684, - 0.04551935940980911, - -0.007206798996776342, - 0.01550966314971447 - ], - [ - 0.00021189947437960654, - 0.0017331307753920555, - 5.367061385186389e-05, - 0.0013642486883327365, - -0.0004427219391800463, - 0.00026808460825122893, - -0.00023631376097910106, - 0.0010143900290131569, - 0.0007039667689241469, - 0.000687801802996546, - -0.0023689651861786842, - -4.52725089417072e-06, - 0.0005727170500904322, - -0.001437937724404037, - -0.0012535942951217294, - 0.004416036419570446, - 0.0006572611164301634, - -0.003980304580181837, - -0.004248556215316057, - 0.002108579035848379, - -0.008981340564787388, - 0.003345172619447112, - -0.0007420611218549311, - -0.002159109339118004, - -0.00023486102872993797, - -0.00196884130127728, - 0.0012309178709983826, - 0.0004717813280876726, - -0.0004126481362618506, - -5.292998321237974e-05, - -4.6351826313184574e-05, - 0.0016122276429086924, - -0.00014175324758980423, - -0.00016077558393590152, - 0.0010694039519876242, - 0.001553798676468432, - 0.001968201482668519, - -1.9807414446404437e-06, - 9.914286056300625e-05, - 0.0008280171896331012, - 0.0006391003262251616, - 0.002080143429338932, - 0.0002881490217987448, - 0.0007100877701304853, - -0.001325766439549625, - 0.0003913724503945559, - 0.0014268275117501616, - 0.00012166074884589761, - 0.0012033148668706417, - 0.0024599635507911444, - -0.0021436642855405807, - 0.008825913071632385, - 6.54328177915886e-05, - -0.0013799569569528103, - -0.0026060454547405243, - -0.0025312043726444244, - 0.0003292479377705604, - -0.0007135955966077745, - -0.00875694677233696, - 4.137478754273616e-05, - -0.0006761697586625814, - -0.002595659112557769, - -0.0006781422416679561, - 0.003332079155370593, - -0.004837842658162117, - 0.0017829728312790394, - -0.010757780633866787, - 0.0023552803322672844, - -0.0003504576161503792, - -0.0013267791364341974, - -0.0009478703723289073, - -0.07300527393817902, - 0.003504317719489336, - 0.003929272294044495, - -0.00026162248104810715, - 7.385770004475489e-05, - 0.0020067498553544283, - 0.002203282667323947, - -0.0015965232159942389, - 0.00481793750077486, - 0.0003305708523839712, - -0.00019437285664025694, - -0.9193713665008545, - -0.0007797627476975322, - -0.004490712191909552, - 0.0018635924207046628, - 0.0028630702290683985, - 0.0013550989096984267, - -7.299816934391856e-05, - 0.004473827313631773, - 0.0008563740993849933, - 0.0023895674385130405, - 0.006639247294515371, - -0.0006331473705358803, - 0.0027357637882232666, - 0.0038625956512987614, - -7.230049959616736e-05, - -0.0032006907276809216, - 0.0030696059111505747, - -0.0019680121913552284, - 0.0012030325597152114, - 0.001119838678278029, - 0.0019828639924526215, - 0.0008857581997290254, - 0.002571192802861333, - -0.0011373842135071754, - -0.002738484414294362, - 0.001925771008245647, - -0.0027845147997140884, - -0.0020139673724770546, - 0.007582227233797312, - 0.0037246651481837034, - -0.0011301958002150059, - 0.0016053892904892564, - 0.0014756215969100595, - 0.003111734753474593, - -0.0018733259057626128, - 0.000508794910274446, - -0.0006339417886920273, - 0.0017218467546626925, - -0.0023074543569236994, - -0.0021756254136562347, - -0.0019263557624071836, - 0.0025479805190116167, - -0.0015728170983493328, - -0.0019501771312206984, - 0.27785947918891907, - 0.0006347328890115023, - 9.394626977154985e-05, - 0.0008628351497463882, - 0.0003965056093875319, - 0.0021336597856134176, - 0.001035094610415399, - -0.00021933285461273044, - -0.00036197967710904777, - 0.001976253464818001, - -0.00269906735047698, - 0.0001685262832324952, - -0.002129992935806513, - 0.0005952016217634082, - 0.0015228170668706298, - -0.0007330523221753538, - -0.0009116477449424565, - -0.0018597032176330686, - -0.0005459894309751689, - -0.006462724879384041, - 0.0006941056344658136, - 0.00012103246990591288, - -0.0006602496723644435, - 0.0005885871360078454, - -0.0016291149659082294, - -0.007043522782623768, - -0.0016668826574459672, - -0.004832813516259193, - -0.0025632570032030344, - -3.1124382076086476e-05, - 0.001904111704789102, - -0.0012165856314823031, - 0.0001427208335371688, - 0.20729462802410126, - -0.0012221680954098701, - 0.0006285723648034036, - 0.0012582280905917287, - 0.003152345772832632, - 0.00961392279714346, - 0.09357524663209915, - 0.0031421263702213764, - -0.0040398272685706615, - 0.0010908431140705943, - 0.000765304546803236, - -0.0057570538483560085, - 0.002263182308524847, - -0.0022258986718952656, - 9.996444532589521e-06, - -0.0019048909889534116, - -0.0016703993314877152, - -0.0009066884522326291, - 0.006777401082217693, - -0.0005871451576240361, - 0.004674164112657309, - -0.0012659239582717419, - 0.0018975523998960853, - -0.00027867729659192264, - -0.0011587035842239857, - -0.007513766176998615, - -0.00032990548061206937, - -0.0004953922471031547, - -0.0015330013120546937, - -8.42064619064331e-05, - 0.0006839392590336502, - 0.0017194502288475633, - -0.0013913019793108106, - -0.058014996349811554, - -0.004661091137677431, - 0.005155566614121199, - -0.0017430685693398118, - 0.0012534160632640123, - 0.0005544706946238875, - -0.0007785269408486784, - 0.0024808943271636963, - -0.0019267413299530745, - -0.0036008921451866627, - 0.002671130932867527, - -0.000875596422702074, - 0.0011985654709860682, - 0.006164570804685354, - -0.0006252888706512749, - -0.0019477105233818293, - -0.0008572869701310992, - 0.0001254403032362461, - -0.000682228128425777, - -0.0012846605386584997, - -0.05230392515659332, - 0.0010245636804029346, - -0.0017527452437207103, - -0.0001362940965918824, - -0.0024149480741471052, - 0.0016293732915073633, - 0.003706766990944743, - -0.010730225592851639, - 0.0013121285010129213, - 0.0003369479672983289, - -6.290188321145251e-05, - 0.00024723983369767666, - 0.0001695124083198607, - 0.0001449321862310171, - -0.0004628037568181753, - 0.0015728584257885814, - 0.0015288941795006394, - -0.0003491711977403611, - 0.0018048459896817803, - 0.0028375699184834957, - 0.0020936548244208097, - -0.00028840405866503716, - 0.0009051841334439814, - -0.0026711653918027878, - -0.004566167015582323, - 0.0024169576354324818, - 0.11214995384216309, - 0.00034008375951088965, - 0.0035463275853544474, - 0.0006385352462530136, - 0.0004619609971996397, - -0.003112453268840909, - -0.0010038228938356042, - -0.0011400202056393027, - 0.004881636705249548, - 0.0010745455510914326, - -0.0012935696868225932, - -0.0017968335887417197, - -0.0025948253460228443, - 0.0007281054276973009, - -0.001401163055561483, - 0.001499688602052629, - -0.0025876304134726524, - 0.0007539606303907931 - ], - [ - 0.0336214117705822, - -0.030931048095226288, - 0.04946281760931015, - -0.016635805368423462, - 0.038228053599596024, - -0.03574977070093155, - 0.0023093277122825384, - -0.02580145001411438, - -0.09121949225664139, - 0.017986658960580826, - 0.0636964812874794, - 0.026903709396719933, - 0.046401768922805786, - 0.04107384756207466, - -0.05746491998434067, - -0.23944997787475586, - 0.004490061197429895, - 0.009316741488873959, - 0.006466084159910679, - 0.023808874189853668, - 0.03276294469833374, - 0.022901169955730438, - 0.02008705399930477, - -0.05890040844678879, - 0.02046649344265461, - -0.07493866980075836, - 0.008743492886424065, - -0.047001346945762634, - -0.04827653244137764, - 0.01986379362642765, - 0.028755182400345802, - -0.07331506162881851, - -0.024956995621323586, - 0.0074693611823022366, - -0.016822315752506256, - 0.03170394524931908, - -1.5420728232129477e-05, - 0.008471183478832245, - -0.008813084103167057, - -0.02641999162733555, - 0.032086458057165146, - 0.058631595224142075, - -0.021237030625343323, - -0.008641941472887993, - -0.0423305369913578, - 0.12521159648895264, - 0.03221598640084267, - 0.03148769214749336, - -0.05149354413151741, - 0.08757991343736649, - -0.030133193358778954, - -0.011106585152447224, - 0.01830156333744526, - 0.05715034157037735, - 0.02890235371887684, - -0.05988755822181702, - 0.02496262639760971, - -0.010355549864470959, - -0.08677691221237183, - 0.05121248587965965, - -0.0035116076469421387, - 0.045110080391168594, - -0.04851910099387169, - 0.011126694269478321, - -0.09207975119352341, - 0.0655505508184433, - -0.04102436825633049, - 0.061693355441093445, - 0.08086413145065308, - -0.035975560545921326, - 0.009700949303805828, - 0.13274811208248138, - 0.0610639862716198, - 0.02771325781941414, - -0.005232877563685179, - -0.03398726135492325, - -0.04665473848581314, - 0.038262903690338135, - 0.0314827598631382, - 0.06778162717819214, - -0.015587668865919113, - 0.03449660912156105, - 0.15346962213516235, - 0.00629741745069623, - 0.020497456192970276, - -0.017565274611115456, - -0.012596669606864452, - -0.016890719532966614, - -0.06309843063354492, - -0.0458381325006485, - -0.048790521919727325, - 0.023240303620696068, - 0.14341934025287628, - 0.00420253025367856, - -0.0069163101725280285, - -0.009790214709937572, - -0.01545074675232172, - -0.026856284588575363, - -0.007638693321496248, - -0.050155989825725555, - 0.029648635536432266, - 0.015114651061594486, - -0.01370579656213522, - -0.010190175846219063, - -0.06417414546012878, - -0.01954830065369606, - -0.0286765955388546, - 0.005924060940742493, - -0.014664391987025738, - -0.07838521897792816, - 0.020630603656172752, - 0.03845816105604172, - 0.028102662414312363, - -0.010239857248961926, - -0.07169098407030106, - -0.03603618964552879, - 0.023518385365605354, - 0.012996549718081951, - -0.025829335674643517, - -0.015153469517827034, - 0.03444477170705795, - -0.028204256668686867, - -0.014446512795984745, - 0.023431790992617607, - 0.07243335992097855, - 0.04052852839231491, - -0.630547821521759, - -0.01196188386529684, - -0.027798419818282127, - -0.013559767976403236, - 0.00594651885330677, - -0.10866095125675201, - -0.006419436540454626, - -0.0024797325022518635, - 0.03237510472536087, - 0.021996084600687027, - 0.026588063687086105, - 0.03576945513486862, - 0.0209911298006773, - -0.0457318089902401, - 0.040754497051239014, - -0.013320145197212696, - 0.016524184495210648, - -0.04944349452853203, - 0.01978493109345436, - 0.026356928050518036, - 0.01002524420619011, - -0.07021165639162064, - -0.011066890321671963, - -0.021745402365922928, - -0.024531928822398186, - 0.026629740372300148, - -0.008729171007871628, - -0.015452994033694267, - 0.019482851028442383, - -0.013888375833630562, - 0.08105254918336868, - 0.006016852334141731, - 0.04325321316719055, - 0.2325916886329651, - -0.022356314584612846, - -0.015209385193884373, - -0.010894032195210457, - 0.02948099374771118, - 0.026067227125167847, - -0.051258645951747894, - 0.006237521767616272, - 0.007964036427438259, - -0.02377552166581154, - 0.04791579768061638, - 0.10767517983913422, - -0.09321505576372147, - -0.0010850813705474138, - -0.017272494733333588, - 0.02575790509581566, - -0.02602100372314453, - -0.020436670631170273, - 0.012644442729651928, - 0.012038718909025192, - -0.03001050092279911, - -0.02076844684779644, - 0.032048098742961884, - 0.031220152974128723, - -0.06054425984621048, - -0.13777461647987366, - 0.006406200118362904, - -0.01020925771445036, - 0.022487185895442963, - -0.015522637404501438, - -0.02898847497999668, - 0.0482117123901844, - -0.005783052649348974, - 0.13256040215492249, - -0.04570905491709709, - 0.028436757624149323, - 0.03099636919796467, - 0.0368005745112896, - -0.03335663676261902, - 0.0344647616147995, - -0.04425717145204544, - -0.00968916155397892, - -0.015716008841991425, - 0.03419813513755798, - -0.010163913480937481, - -0.0018071698723360896, - -0.014160407707095146, - -0.020078003406524658, - -0.03896651789546013, - 0.040556229650974274, - -0.06037665903568268, - 0.052988577634096146, - -0.0011430155718699098, - 0.08748108148574829, - -0.0409676618874073, - 0.006277862936258316, - 0.023233890533447266, - 0.019839836284518242, - -0.015948353335261345, - 0.004541364032775164, - -0.04543106257915497, - 0.005919220391660929, - -0.04023248329758644, - 0.060048799961805344, - 0.036542151123285294, - 0.0077265468426048756, - -0.009358301758766174, - -0.027396664023399353, - -0.011625525541603565, - -0.05595943331718445, - -0.011207210831344128, - 0.020160343497991562, - -0.003508969908580184, - 0.015374725684523582, - -0.04385190084576607, - -0.01646672748029232, - -0.08873096108436584, - 0.04353075847029686, - 0.030791210010647774, - -0.11058357357978821, - 0.02680508978664875, - 0.07934834063053131, - 0.018614498898386955, - -0.07613618671894073, - 0.02267514169216156, - -0.06528296321630478, - 0.013192718848586082, - -0.04416779428720474, - 0.07059869170188904, - 0.05165494233369827, - 0.037609633058309555, - -0.05305221676826477, - -0.0491887666285038, - 0.005488135851919651, - 0.00817345455288887, - -0.019882312044501305, - -0.011316830292344093 - ], - [ - 0.004067450296133757, - 0.03392920643091202, - 0.03815371170639992, - 0.07738788425922394, - 0.01717783696949482, - 0.007677341811358929, - -0.0057312073186039925, - 0.016314128413796425, - -0.024580154567956924, - -0.011347081512212753, - 0.01943875662982464, - -0.02056419849395752, - 0.03366774693131447, - -0.007324737962335348, - -0.015542486682534218, - -0.16291752457618713, - -0.012104980647563934, - -0.03209053352475166, - 0.0238475538790226, - -0.0006243457901291549, - -0.07946740090847015, - 0.0008894063648767769, - -0.013744606636464596, - -0.05178649723529816, - -0.016593758016824722, - -0.037610799074172974, - 0.05429218336939812, - -0.011133434250950813, - -0.033181093633174896, - 0.019908497110009193, - -0.016357028856873512, - -0.04311993345618248, - -0.04335608333349228, - 0.004128022585064173, - 0.021512215957045555, - 0.023437412455677986, - 0.022187115624547005, - -0.002827377524226904, - 0.011859996244311333, - 0.014819689095020294, - 0.0335104838013649, - 0.06095914542675018, - -0.008938360027968884, - -0.01867007464170456, - 0.02427760697901249, - 0.09796629101037979, - 0.023317119106650352, - 0.03224635869264603, - 0.009365287609398365, - 0.08486805111169815, - 0.004381251521408558, - -0.016459917649626732, - -0.011475685052573681, - 0.012081914581358433, - 0.017784204334020615, - -0.07022541761398315, - 0.013681359589099884, - -0.0018574268324300647, - -0.06014605611562729, - 0.03497012332081795, - -0.04553856700658798, - 0.04432683810591698, - 0.014432593248784542, - 2.5812631065491587e-05, - -0.07167934626340866, - 0.0015284528490155935, - -0.014658810570836067, - 0.027425101026892662, - 0.05177466198801994, - 0.03715299814939499, - 0.0499737374484539, - 0.16841551661491394, - 0.04856463521718979, - 0.03673894703388214, - -0.03293928503990173, - -0.04738917201757431, - 0.04883556813001633, - -0.029714761301875114, - 0.004440429154783487, - 0.11812208592891693, - 0.04101444408297539, - 0.020174376666545868, - -0.08252794295549393, - 0.03947921469807625, - 0.020952485501766205, - -0.02929319441318512, - 0.028063293546438217, - -0.02646755985915661, - -0.06673335283994675, - -0.05132162198424339, - 0.004243105184286833, - -0.021646521985530853, - 0.0833154171705246, - 0.005617236252874136, - 0.0010310467332601547, - 0.0682276114821434, - -0.001973772421479225, - 0.020060261711478233, - -0.00827320571988821, - -0.041417110711336136, - 0.07197701930999756, - -0.05186573788523674, - 0.0773060992360115, - -0.01938321627676487, - -0.09918973594903946, - -0.025186292827129364, - 0.02717565931379795, - 0.011617928743362427, - 0.011411801911890507, - -0.026963701471686363, - 0.021856090053915977, - 0.04410272836685181, - 0.07325850427150726, - 0.015521371737122536, - -0.06740105152130127, - 0.011699847877025604, - 0.017491202801465988, - -0.01834559440612793, - -0.0015469695208594203, - 0.02237725257873535, - -0.022723129019141197, - -0.01957603730261326, - 0.020698783919215202, - 0.023864010348916054, - 0.12886421382427216, - 0.015322173945605755, - -0.5825858116149902, - 0.0419420525431633, - -0.009839891456067562, - 0.027898423373699188, - -0.00012673814489971846, - -0.14254330098628998, - -0.01056175772100687, - -0.014370055869221687, - 0.03336585313081741, - 0.007110030390322208, - -0.03937767446041107, - -0.013941734097898006, - 0.023637227714061737, - -0.026426678523421288, - 0.026432810351252556, - -0.0017649871297180653, - 0.0024421117268502712, - 0.00779317831620574, - -0.01057436317205429, - -0.022010022774338722, - 0.0072217402048408985, - 0.006081583444029093, - -0.04183601960539818, - -0.02587496116757393, - -0.01715928129851818, - -0.018019312992691994, - -0.014634275808930397, - -0.0755355954170227, - -0.03360395506024361, - 0.03045486845076084, - 0.06359916180372238, - 0.026485858485102654, - 0.011333509348332882, - 0.29138317704200745, - 0.029530875384807587, - 0.001192079042084515, - -0.022415976971387863, - 0.057577863335609436, - 0.04000386968255043, - -0.03905392438173294, - 0.021130817010998726, - -0.02567119151353836, - -0.01847103238105774, - 0.018502404913306236, - 0.007862127386033535, - -0.04742506891489029, - -0.067989781498909, - -0.038136206567287445, - 0.0009472179808653891, - -0.02611611783504486, - -0.028004324063658714, - 0.02214333415031433, - 0.04841191694140434, - -0.0162163358181715, - 0.011194013059139252, - -0.0035563656128942966, - -0.001456436701118946, - -0.043649256229400635, - -0.17531609535217285, - 0.0021108342334628105, - 0.034628305584192276, - 0.008744794875383377, - -0.002984127728268504, - -0.021140826866030693, - 0.03910541534423828, - -0.0038517399225383997, - 0.21496066451072693, - -0.01124880276620388, - 0.016125008463859558, - 0.03029022365808487, - -0.005023994017392397, - 0.03597527742385864, - -0.03743022680282593, - -0.029261931777000427, - 0.02992318570613861, - -0.015792230144143105, - 0.011632610112428665, - 0.04373610392212868, - -0.03184521943330765, - -0.04388989135622978, - -0.025008881464600563, - -0.018956780433654785, - 0.027205025777220726, - -0.021368542686104774, - 0.02180636115372181, - 0.04028036817908287, - 0.11421267688274384, - -0.00983530841767788, - -0.014779983088374138, - -0.009630362503230572, - -0.0025094258598983288, - 0.02420963905751705, - -0.021476076915860176, - -0.11443064361810684, - 0.014476380310952663, - -0.03349076583981514, - -0.009953719563782215, - -0.008561382070183754, - 0.014591128565371037, - -0.010109299793839455, - -0.004910126328468323, - -0.002898573409765959, - 0.006734849885106087, - -0.023332934826612473, - 0.011852491647005081, - 0.052948854863643646, - 0.020646780729293823, - 0.022970611229538918, - 0.013354848138988018, - -0.04229767620563507, - -0.0006181555218063295, - 0.01429581455886364, - -0.3127500116825104, - 0.015431665815412998, - 0.08676363527774811, - -0.042050253599882126, - 0.006835257168859243, - 0.002274739556014538, - 0.03853437304496765, - -0.018590880557894707, - -0.018942957744002342, - 0.04195186123251915, - 0.009207903407514095, - -0.028622694313526154, - -0.042030539363622665, - -0.012647701427340508, - -0.003658859059214592, - 0.0008478570380248129, - 0.00015496861306019127, - 0.01544276438653469 - ], - [ - -0.0291159488260746, - -0.015955282375216484, - 0.04071224108338356, - -0.03567693382501602, - 0.019526612013578415, - -0.007875733077526093, - 0.007724369410425425, - 0.004179986659437418, - -0.034112315624952316, - 0.004991467110812664, - -0.018467405810952187, - -0.00972970761358738, - 0.021334977820515633, - 0.025400152429938316, - -0.06272871792316437, - -0.18676131963729858, - -0.010239495895802975, - -0.034081410616636276, - 0.0030196739826351404, - -0.003222813829779625, - -0.06662803888320923, - -0.0021975983399897814, - -0.03476167470216751, - -0.04750945419073105, - 0.01141026709228754, - -0.06509857624769211, - -0.0036849468015134335, - -0.03170802444219589, - -0.01919255033135414, - 0.0071016475558280945, - -0.00520629808306694, - -0.04909282550215721, - -0.023892642930150032, - 0.0004348036600276828, - 0.010860590264201164, - 0.029340628534555435, - 0.009929797612130642, - 0.015088505111634731, - 0.016189847141504288, - 0.04836390167474747, - -0.01243001688271761, - 0.03520306572318077, - -0.015386496670544147, - -0.005588805302977562, - 0.007315060589462519, - 0.05223643034696579, - 0.010655242949724197, - 0.03663495555520058, - -0.018021127209067345, - 0.09522014111280441, - -0.012693638913333416, - 0.005619572941213846, - -0.007559900637716055, - 0.03304257243871689, - 0.04288255050778389, - -0.09514519572257996, - -0.0064743319526314735, - 0.019157273694872856, - -0.06029551103711128, - 0.06701211631298065, - -0.030548783019185066, - 0.02860136516392231, - -0.01702319271862507, - 0.01455263327807188, - -0.03195994347333908, - 0.014412044547498226, - -0.03563447669148445, - 0.01134729664772749, - 0.06313561648130417, - -0.02391265332698822, - 0.03494216874241829, - 0.17799334228038788, - 0.07909093052148819, - -0.003969181794673204, - 0.007856468670070171, - -0.007093244232237339, - -0.00988876074552536, - 0.01205375138670206, - -0.008508928120136261, - 0.09675467759370804, - 0.007632483262568712, - 0.020320266485214233, - -0.1319960355758667, - -0.043976642191410065, - 0.008898359723389149, - -0.02900736965239048, - 0.023582646623253822, - -0.0011362479999661446, - -0.05693987011909485, - 0.014914917759597301, - -0.00941089540719986, - -0.0003252130118198693, - 0.07556580752134323, - 0.003159334883093834, - -0.030882254242897034, - 0.04737134650349617, - -0.024937117472290993, - -0.03993324562907219, - 0.029642043635249138, - -0.04350372403860092, - 0.02677931636571884, - -0.014669409021735191, - -0.0006240135408006608, - -0.031221430748701096, - -0.07415858656167984, - -0.038841135799884796, - 0.0032961575780063868, - 0.02329915016889572, - -0.004356480203568935, - -0.05981513485312462, - -0.014718005433678627, - 0.04073606804013252, - 0.018007397651672363, - 0.01905674673616886, - -0.04951184615492821, - 0.03203727304935455, - 0.013297634199261665, - 0.0006691415328532457, - -0.0157689917832613, - 0.004384508356451988, - -0.01752929389476776, - -0.022363202646374702, - 0.008707050234079361, - 0.029048781841993332, - 0.08749048411846161, - -0.006426982581615448, - -0.6138351559638977, - 0.02267592027783394, - -0.0023555406369268894, - 0.02260398305952549, - 0.02357681840658188, - -0.10908785462379456, - -0.019519634544849396, - -0.011019213125109673, - 0.032125674188137054, - 0.04003920406103134, - 0.02426513284444809, - -0.016497822478413582, - 0.004584811627864838, - -0.04669884964823723, - 0.031578611582517624, - -0.003044262295588851, - -0.023372365161776543, - -0.039329320192337036, - -0.008109895512461662, - -0.029160743579268456, - -0.027168024331331253, - -0.0335298590362072, - -0.0013285898603498936, - 0.0018580264877527952, - -0.026003384962677956, - 0.02401825413107872, - -0.009313948452472687, - -0.017054682597517967, - 0.004199250601232052, - 0.028420837596058846, - 0.0075053079053759575, - 0.015497006475925446, - 0.0036387660074979067, - 0.3423035144805908, - -0.054867714643478394, - 0.04430801048874855, - -0.023372620344161987, - 0.05568278208374977, - 0.055248916149139404, - -0.08638670295476913, - 0.01742861233651638, - -0.02717304788529873, - -0.02178698219358921, - 0.018924089148640633, - 0.019270284101366997, - -0.020381808280944824, - -0.040609098970890045, - -0.034097861498594284, - 0.021272987127304077, - -0.01012976560741663, - -0.05177329480648041, - 0.027233509346842766, - 0.016865581274032593, - -0.042226795107126236, - 0.0031593998428434134, - 0.049812525510787964, - -0.014687799848616123, - -0.051282916218042374, - -0.1496753692626953, - -0.00804956629872322, - -0.03444176912307739, - 0.014739909209311008, - -0.012650304473936558, - 0.006249791942536831, - 0.017327439039945602, - -0.0347745344042778, - 0.22463764250278473, - -0.005064722150564194, - 0.014875639230012894, - 0.027731318026781082, - -0.031077370047569275, - -0.021507738158106804, - 0.0008521889103576541, - -0.0030179438181221485, - -0.021097686141729355, - -0.03128201141953468, - 0.0199660062789917, - -0.007627634331583977, - 0.016603654250502586, - -0.039848439395427704, - -0.03075060062110424, - -0.03942829743027687, - 0.0012690408620983362, - 0.0018470751820132136, - 0.07309115678071976, - -0.010443542152643204, - 0.12151748687028885, - -0.01020983699709177, - -0.023631634190678596, - -0.0033813349436968565, - 0.02285785786807537, - 0.010855262167751789, - -0.007892249152064323, - -0.11133170872926712, - 0.032433219254016876, - -0.03013949654996395, - 0.0347224697470665, - 0.03643043339252472, - 0.017559805884957314, - -0.014855669811367989, - -0.031834039837121964, - -0.018171636387705803, - -0.0134340301156044, - 9.004794992506504e-05, - -0.01586783677339554, - 0.008145744912326336, - 0.010502196848392487, - 0.009184197522699833, - 0.016725588589906693, - -0.04690982401371002, - 0.0019915918819606304, - 0.023463863879442215, - -0.26512837409973145, - 0.019777856767177582, - 0.06188548728823662, - 0.0030598926823586226, - -0.028730038553476334, - 0.02884778380393982, - -0.007056203205138445, - -0.020119067281484604, - 0.017235537990927696, - 0.022405054420232773, - -0.006322733126580715, - -0.019846824929118156, - -0.0504380539059639, - 0.0064415098167955875, - -0.002759843599051237, - 0.03825788199901581, - 0.027254069223999977, - 0.0012735603377223015 - ], - [ - -0.005122906528413296, - -0.0007575168856419623, - -0.017865221947431564, - 0.019741453230381012, - -0.0017093843780457973, - -0.0005529563641175628, - -0.02752610109746456, - -0.02489665523171425, - -0.010410335846245289, - -0.014507470652461052, - 0.01778307929635048, - -0.029613176360726357, - 0.011069794185459614, - 0.022053401917219162, - -0.001541921286843717, - 0.2525103986263275, - 0.020363910123705864, - 0.027744235470891, - 0.05472655966877937, - -0.028385140001773834, - 0.14163276553153992, - -0.10632474720478058, - 0.015178713947534561, - 0.025290315970778465, - 0.009335570968687534, - 0.008096633478999138, - -0.0031257998198270798, - -0.019359130412340164, - -0.012777203693985939, - 0.01823754794895649, - -0.0009190097916871309, - -0.030470019206404686, - 0.042859964072704315, - 0.01817413605749607, - 0.030679073184728622, - -0.047595102339982986, - -0.020769553259015083, - 0.00487612746655941, - -0.02251766063272953, - 0.00892757996916771, - 0.0039025500882416964, - -0.004737017676234245, - 0.018868913874030113, - -0.021701667457818985, - 0.020264102146029472, - 0.05594945698976517, - -0.012077825143933296, - 0.02594524621963501, - -0.023234836757183075, - -0.055972252041101456, - 0.0001965897245099768, - -0.0898202583193779, - -0.01453886367380619, - 0.013095061294734478, - 0.020347023382782936, - 0.05621754005551338, - -0.022454872727394104, - -0.034376900643110275, - 0.02711373381316662, - 0.0403800792992115, - 0.021166009828448296, - 0.07039232552051544, - 0.03428620472550392, - -0.08072186261415482, - 0.08478979766368866, - -0.01714174449443817, - 0.22491522133350372, - -0.02967541478574276, - 0.0345514677464962, - 0.01709555648267269, - 0.09011511504650116, - -0.11784487962722778, - -0.035281501710414886, - 0.012375672347843647, - -0.031815506517887115, - -0.03200938552618027, - -0.05186454951763153, - 0.0005234141135588288, - 0.009810416959226131, - 0.022152483463287354, - 0.011314396746456623, - -0.006309534888714552, - 0.30746182799339294, - 0.02776712365448475, - 0.05200997367501259, - -0.07185008376836777, - -0.009767609648406506, - -0.03956954553723335, - -0.008260252885520458, - -0.032990459352731705, - -0.0055823116563260555, - -0.03212900087237358, - -0.25141066312789917, - -0.0004020660126116127, - -0.00027463058358989656, - -0.04541126266121864, - -0.025047974660992622, - 0.04141460359096527, - -0.06404516100883484, - -0.015325799584388733, - 0.004514445550739765, - -0.007234617136418819, - 0.01836307719349861, - -0.054966796189546585, - 0.0058914367109537125, - 0.01849191263318062, - 0.04723139852285385, - -0.04524808004498482, - 0.03514033183455467, - 0.00553080765530467, - -0.026725469157099724, - -0.02730984054505825, - 0.002761249663308263, - -0.004498456139117479, - -0.005915889050811529, - -0.025147147476673126, - 0.03987563028931618, - -0.0082657216116786, - 0.010922063142061234, - 0.029421204701066017, - 0.03283027186989784, - 0.05235088989138603, - 0.06631572544574738, - -0.02524738758802414, - 0.056727372109889984, - 0.006702860817313194, - 0.3190106749534607, - -0.020051298663020134, - -0.028762267902493477, - 0.022056160494685173, - 0.021769996732473373, - -0.027879418805241585, - -0.024531882256269455, - -0.00558887654915452, - 0.06612830609083176, - -0.011973964981734753, - 0.033506911247968674, - -0.031909409910440445, - 0.03512100130319595, - -0.033483803272247314, - -0.015737177804112434, - 0.021922674030065536, - 0.02062411792576313, - -0.011313583701848984, - -0.0006738997180946171, - 0.06616367399692535, - -0.05280837044119835, - -0.026119554415345192, - -0.0052204797975718975, - 0.008012136444449425, - 0.01219609472900629, - 0.15202055871486664, - 0.002503097290173173, - 0.07176493108272552, - 0.021015390753746033, - 0.006477459333837032, - -0.0030268714763224125, - -0.05916384980082512, - -0.033354099839925766, - -0.37925416231155396, - 0.05198321118950844, - -0.021937821060419083, - 0.03267655521631241, - 0.033081237226724625, - -0.10638916492462158, - 0.08430304378271103, - -0.027458760887384415, - 0.07835187762975693, - -0.02884668856859207, - -0.02171977050602436, - 0.11345778405666351, - -0.030036838725209236, - 0.05007803812623024, - -0.04664808511734009, - 0.007844513282179832, - -0.022118767723441124, - 0.017133260145783424, - -0.013562498614192009, - 0.0015251210425049067, - -0.10393928736448288, - 0.02440129965543747, - -0.010161072947084904, - 0.005174301099032164, - 0.028387131169438362, - 0.014475571922957897, - 0.03830301761627197, - 0.022446123883128166, - 0.0059557631611824036, - -0.01579870842397213, - -0.021984506398439407, - -0.02689100056886673, - 0.020291823893785477, - -0.10281176120042801, - 0.08288726955652237, - -0.0166027769446373, - 0.055027276277542114, - -0.01365213468670845, - 0.01265249028801918, - -0.020594773814082146, - -0.02220030687749386, - 0.01789919286966324, - 0.08064521104097366, - -0.03364263474941254, - 0.012537393718957901, - -0.0035909158177673817, - -0.008606228977441788, - 0.00837299320846796, - 0.02518964745104313, - -0.01994091272354126, - 0.018606390804052353, - 0.024628017097711563, - 0.02058144472539425, - -0.08812843263149261, - -0.010114696808159351, - 0.03226790949702263, - -0.00957968644797802, - 0.10237710922956467, - -0.01800585724413395, - -0.07235625386238098, - 0.23177608847618103, - 0.0006292539183050394, - -0.02459241822361946, - -0.008673240430653095, - -0.023341776803135872, - 0.02264559455215931, - -0.039503876119852066, - 0.018902413547039032, - -0.03298631310462952, - 0.037525489926338196, - 0.021712275221943855, - -0.03271462768316269, - -0.0844484269618988, - -0.012233844958245754, - 0.010939515195786953, - 0.0039015430957078934, - 0.00036442402051761746, - 0.08741497993469238, - -0.0025553398299962282, - 0.16426286101341248, - 0.003708973526954651, - -0.04424881562590599, - -0.02596689946949482, - 0.005768951494246721, - 0.04067768529057503, - 0.025493856519460678, - 0.014463426545262337, - -0.08371599018573761, - -0.026140237227082253, - 0.04422486200928688, - 0.054266635328531265, - 0.031244780868291855, - -0.002005594549700618, - 0.04377162829041481, - -0.04649423435330391, - -0.010139472782611847, - 0.027768444269895554 - ], - [ - -0.007093794643878937, - -0.018707433715462685, - 0.023944610729813576, - -0.013995055109262466, - 0.04975562170147896, - 0.01848319172859192, - 6.385926099028438e-05, - 0.0024364390410482883, - -0.0612730048596859, - 0.002758162096142769, - 0.0013748800847679377, - -0.005542081780731678, - 0.03364185243844986, - 0.0010835464345291257, - -0.059037432074546814, - -0.21706922352313995, - -0.004009747412055731, - -0.03875654563307762, - -0.014894606545567513, - 0.008910414762794971, - -0.0023802616633474827, - 0.0340963639318943, - -0.01505033578723669, - -0.08573663979768753, - 0.023316342383623123, - -0.03653553128242493, - -0.0011732494458556175, - 0.005064659286290407, - -0.007452556863427162, - -0.005560499150305986, - -0.024528585374355316, - -0.05807114765048027, - -0.03258613869547844, - 0.022550435736775398, - -0.015450793318450451, - 0.026501387357711792, - 0.024067336693406105, - -0.025884034112095833, - 0.00974800530821085, - 0.042847152799367905, - 0.01258754450827837, - 0.05336121469736099, - -0.003969596698880196, - -0.013624032959342003, - 0.014464663341641426, - 0.09140420705080032, - 0.015395903959870338, - 0.06810111552476883, - -0.014403619803488255, - 0.08556213229894638, - -0.02261693961918354, - 0.01478828489780426, - -0.0037658466026186943, - 0.003062349511310458, - 0.04047521576285362, - -0.050483714789152145, - 0.011759733781218529, - 0.0076850103214383125, - -0.0756562128663063, - 0.017664765939116478, - -0.015178794041275978, - 0.04364338889718056, - -0.007412439212203026, - 0.040100742131471634, - -0.058710262179374695, - 0.010386754758656025, - -0.05423750728368759, - -0.021013721823692322, - 0.05039577558636665, - -0.01780521497130394, - 0.014304831624031067, - 0.12220890820026398, - 0.06512190401554108, - -0.010305376723408699, - -0.0017480659298598766, - -0.030038831755518913, - -0.001653125393204391, - 0.0074493130668997765, - -0.01589520461857319, - 0.08252459764480591, - 0.011134039610624313, - 0.01160399615764618, - -0.3772529661655426, - 0.0008971274946816266, - -0.015115343034267426, - -0.047258272767066956, - 0.041792381554841995, - -0.009842317551374435, - -0.048658814281225204, - 0.015654338523745537, - -0.04730841517448425, - -0.01395372673869133, - 0.13893969357013702, - 0.0005869698361493647, - -0.0050544715486466885, - 0.036036696285009384, - -0.011896745301783085, - -0.041005223989486694, - 0.007231883239001036, - -0.028169553726911545, - 0.0426359586417675, - -0.006851665209978819, - 0.04454575479030609, - -0.033526983112096786, - -0.05955878272652626, - -0.07512516528367996, - -0.0098872696980834, - 0.01241182629019022, - -0.026131929829716682, - -0.05708201602101326, - 0.015222571790218353, - 0.048198528587818146, - 0.029700780287384987, - 0.02780153602361679, - -0.0696670338511467, - -0.015386837534606457, - 0.022403694689273834, - -0.025371402502059937, - -0.03005439229309559, - 0.025168882682919502, - 0.008587595075368881, - -0.004237827844917774, - -0.004751638509333134, - 0.018731916323304176, - 0.09038828313350677, - 0.0038466269616037607, - -0.5361769199371338, - 0.01378279272466898, - -0.017525263130664825, - 0.00290388404391706, - 0.03609399497509003, - -0.11184843629598618, - -0.009055478498339653, - 0.021635238081216812, - 0.06456559151411057, - 0.042322199791669846, - 0.03219468519091606, - 0.003423197427764535, - -0.014624322764575481, - -0.04569126293063164, - 0.04184370115399361, - -0.0027306396514177322, - 0.013621187768876553, - -0.05365324020385742, - -0.004392302595078945, - -0.014466059394180775, - 0.007047335151582956, - -0.03782062232494354, - -0.016464799642562866, - -0.006372091360390186, - -0.03638981282711029, - 0.002963138045743108, - -0.0012230511056259274, - -0.006630019284784794, - -0.020592181012034416, - -0.012923005037009716, - 0.028414525091648102, - 0.010308662429451942, - -0.024830415844917297, - 0.3821311891078949, - -0.0391482450067997, - 0.006199164316058159, - 0.024129144847393036, - 0.09821971505880356, - 0.015100891701877117, - -0.03631862625479698, - 0.012268904596567154, - -0.01718740537762642, - 0.0005141172441653907, - 0.029159311205148697, - 0.028275037184357643, - -0.08043736964464188, - -0.020369337871670723, - -0.043076228350400925, - 0.03815986588597298, - -0.013572470284998417, - -0.03698117285966873, - 0.021989934146404266, - -0.004153636284172535, - -0.0320158526301384, - 0.0029692151583731174, - 0.028957214206457138, - -0.002074850955978036, - -0.0667862743139267, - -0.14959631860256195, - 0.006186597514897585, - -0.03022012487053871, - 0.015506048686802387, - -0.02991204336285591, - -0.0041885473765432835, - 0.012007903307676315, - -0.0533868670463562, - 0.1520177274942398, - 0.01873743161559105, - 0.0014406259870156646, - 0.04775792732834816, - -0.01531172450631857, - -0.013105160556733608, - -0.04342592880129814, - -0.030338237062096596, - -0.019231365993618965, - -0.013480826281011105, - 0.024272464215755463, - 0.021082289516925812, - 0.02253103442490101, - -0.036625802516937256, - -0.030529918149113655, - -0.013309953734278679, - 0.009481268934905529, - -0.02864655666053295, - 0.037002235651016235, - -0.004373269155621529, - 0.08688338845968246, - -0.004789730068296194, - -0.021487582474946976, - -0.004705683793872595, - 0.01413719542324543, - 0.029756754636764526, - 0.0007405226933769882, - -0.059935275465250015, - 0.048136163502931595, - -0.05610695853829384, - 0.0016139621147885919, - 0.03254103660583496, - 0.0066174292005598545, - 0.004631636198610067, - -0.018529746681451797, - -0.007192761171609163, - -0.018706204369664192, - -0.01859559305012226, - 0.03183818981051445, - -0.002065917942672968, - 0.004967772867530584, - -0.0032722768373787403, - 0.009324455633759499, - -0.05094912648200989, - -0.008579973131418228, - 0.016856621950864792, - -0.12748365104198456, - 0.0203944593667984, - 0.08682785928249359, - -0.007837293669581413, - -0.03575143218040466, - 0.021683769300580025, - -0.013360080309212208, - -0.019880391657352448, - 0.0009034447139129043, - 0.058106377720832825, - 0.030675064772367477, - 0.006713371258229017, - -0.07660983502864838, - 0.003075279062613845, - 0.005769931711256504, - 0.02867131121456623, - 0.00678483908995986, - 0.0010846955701708794 - ], - [ - -0.0009256652556359768, - 0.0011580395512282848, - -0.005412010475993156, - 0.005708543583750725, - -0.001162113854661584, - 6.27164845354855e-05, - -0.006880713626742363, - -0.005519998725503683, - -0.0015781499678269029, - -0.0020974630024284124, - 0.001972655998542905, - -0.006208695471286774, - 0.002571749035269022, - 0.003203062806278467, - -0.0007891936111263931, - 0.07163643091917038, - 0.005339616443961859, - 0.003800958627834916, - 0.009880336001515388, - -0.004215414635837078, - 0.027365857735276222, - -0.022180000320076942, - 0.00301695941016078, - 0.004545882809907198, - 0.0015841966960579157, - 0.0009269392467103899, - -0.00019341222650837153, - -0.0038647232577204704, - -0.0028894126880913973, - 0.00406075781211257, - 0.00010561865929048508, - -0.005652259103953838, - 0.011221629567444324, - 0.004351187497377396, - 0.00742297014221549, - -0.01074029691517353, - -0.0037533952854573727, - 0.0015394736547023058, - -0.004556788131594658, - 0.0018499752040952444, - 0.0008171602967195213, - 0.00019723405421245843, - 0.003909378312528133, - -0.0044564553536474705, - 0.0031353868544101715, - 0.012007334269583225, - -0.001702799811027944, - 0.005848248023539782, - -0.0048610009253025055, - -0.012006018310785294, - -0.0018896752735599875, - -0.012463042512536049, - -0.0029026856645941734, - 0.0013541996013373137, - 0.0025511514395475388, - 0.011692991480231285, - -0.005435960832983255, - -0.008956815116107464, - -0.00039789939182810485, - 0.008896715939044952, - 0.005510122049599886, - 0.014262900687754154, - 0.0075403256341814995, - -0.016957219690084457, - 0.016922276467084885, - -0.001881353440694511, - 0.044221922755241394, - -0.004555932711809874, - 0.007436659187078476, - 0.0017086665611714125, - 0.02025013603270054, - -0.10677317529916763, - -0.006554311607033014, - 0.006878646556288004, - -0.007629008963704109, - -0.005577016156166792, - -0.011317350901663303, - 0.0018614871660247445, - 0.0005052603082731366, - 0.007684892043471336, - 0.0019126475090160966, - -0.002041625091806054, - -0.8676363825798035, - 0.006178673356771469, - 0.008433827199041843, - -0.01507466472685337, - -0.0008213549153879285, - -0.007764250505715609, - -0.0014188216300681233, - -0.0032689517829567194, - -0.0005301142227835953, - -0.005747809540480375, - -0.057154081761837006, - -0.0007437039166688919, - 0.0019676994998008013, - -0.00834747590124607, - -0.00531255966052413, - 0.007390619721263647, - -0.012137658894062042, - -0.004664323758333921, - 0.0020195774268358946, - -0.00023112546477932483, - 0.005530581809580326, - -0.012243000790476799, - 0.005038993898779154, - 0.004730802029371262, - 0.00841115415096283, - -0.009575124830007553, - 0.005891144275665283, - 0.0005189765361137688, - 0.0003248990105930716, - -0.003726586000993848, - -0.0005336978356353939, - -0.00033239377080462873, - 0.0008581278962083161, - -0.0036419343668967485, - 0.007637621834874153, - -0.0013421699404716492, - 0.001966063166037202, - 0.008148236200213432, - 0.006705225445330143, - 0.010560909286141396, - 0.014203954488039017, - -0.004396382719278336, - 0.010136757045984268, - -0.00019206409342586994, - 0.37691038846969604, - -0.005057718604803085, - -0.0063713667914271355, - 0.005129300989210606, - 0.005075779743492603, - -0.0028752663638442755, - -0.005445682909339666, - -0.0008688789093866944, - 0.014553550630807877, - -0.0011518413666635752, - 0.005704788491129875, - -0.0071975551545619965, - 0.006364998873323202, - -0.007442697882652283, - -0.0024427149910479784, - 0.0043633501045405865, - 0.003236721735447645, - -0.003789333626627922, - -0.0008174035465344787, - 0.010405175387859344, - -0.012349357828497887, - -0.0059007010422647, - -0.0017674590926617384, - 0.0022074186708778143, - 0.0018098097061738372, - 0.029996713623404503, - -0.000652295770123601, - 0.012958919629454613, - 0.0032101457472890615, - 0.001804698840714991, - 0.00047675921814516187, - -0.015145421028137207, - -0.007211245596408844, - 0.1131206825375557, - 0.01171234343200922, - -0.004464119207113981, - 0.008629358373582363, - 0.009631483815610409, - -0.016861841082572937, - 0.11721798032522202, - -0.004661552142351866, - 0.015891805291175842, - -0.005794743075966835, - -0.003801319980993867, - 0.02242017351090908, - -0.005408552009612322, - 0.011274292133748531, - -0.00996626541018486, - 7.15240093995817e-05, - -0.006635724101215601, - 0.004982498474419117, - 0.0018096768762916327, - -0.0005107210599817336, - -0.02016650140285492, - 0.004263483919203281, - -0.0007728491327725351, - 0.0015354695497080684, - 0.006130959838628769, - -0.00012231968867126852, - 0.009129042737185955, - 0.005195538979023695, - -0.0002855923376046121, - -0.0032492117024958134, - -0.003972949925810099, - -0.005831228103488684, - 0.0038397388998419046, - -0.08983540534973145, - 0.0160213652998209, - 0.0014334028819575906, - 0.010986391454935074, - -0.0017693439731374383, - 0.0039490386843681335, - -0.005095819942653179, - -0.003146253526210785, - 0.0034398254938423634, - 0.017274292185902596, - -0.006030892953276634, - 0.0010735724354162812, - 3.594895315472968e-05, - 0.004265461582690477, - 0.0016479440964758396, - 0.005063199438154697, - -0.005061454605311155, - 0.004614732228219509, - 0.005620239302515984, - 0.003142355941236019, - -0.07766534388065338, - -0.0009969087550416589, - 0.0065315039828419685, - -0.0027940638829022646, - 0.022905802354216576, - -0.0033833677880465984, - -0.01349030900746584, - 0.04826858639717102, - 0.000685892126057297, - -0.005033478606492281, - -0.002625172957777977, - -0.005510149989277124, - 0.0054054888896644115, - -0.00900438241660595, - 0.004061219282448292, - -0.007008896674960852, - 0.010170651599764824, - 0.005300539080053568, - -0.006240006070584059, - -0.017949072644114494, - -0.0013316674157977104, - 0.0018277517519891262, - 0.0010629259049892426, - -0.001684928429313004, - 0.016425691545009613, - 0.001475486671552062, - 0.1598154455423355, - 0.0012937058927491307, - -0.0091176712885499, - -0.005564160645008087, - 0.0014313003048300743, - 0.00643090158700943, - 0.004373517818748951, - 0.0032083967234939337, - -0.01463902648538351, - -0.0058466061018407345, - 0.009900604374706745, - 0.011519080959260464, - 0.006564906798303127, - 4.0441518649458885e-05, - 0.009541801176965237, - -0.009575789794325829, - -0.004295959137380123, - 0.0068321446888148785 - ], - [ - -0.0007953247986733913, - 0.0009775261860340834, - 3.149631811538711e-05, - 0.0010501818032935262, - -0.0018790888134390116, - -0.0021869875490665436, - 0.0015367477899417281, - -0.001416770275682211, - 0.0013745995238423347, - 0.0003534620627760887, - -0.002160317962989211, - 0.00143227179069072, - 0.00041561704711057246, - -0.0006282739923335612, - -0.0004084321844857186, - 0.0034444283228367567, - 0.00036460920819081366, - -0.004477720707654953, - -0.004664011765271425, - 0.0014543739380314946, - -0.008980904705822468, - 0.003964435309171677, - -0.0012633588630706072, - -0.002177878748625517, - -0.0002813125611282885, - -0.00248744641430676, - 0.001384199713356793, - -0.0014957013772800565, - -0.00042972274241037667, - 0.0010242229327559471, - 0.0013917881296947598, - 0.002351228380575776, - -0.0011127855395898223, - 0.000702671124599874, - 0.0024816563818603754, - 0.0008589883800595999, - 0.0016906382516026497, - -0.00022969396377447993, - 0.0007131897145882249, - 0.0011432719184085727, - -0.0015841226559132338, - 0.002475080545991659, - -0.001189786707982421, - 0.0007546570268459618, - -0.0016734091332182288, - -0.001809486886486411, - 0.0016784695908427238, - 0.0009687160491012037, - 0.0004973197355866432, - 0.003504763823002577, - -0.0029997157398611307, - 0.008536766283214092, - -0.0004981405800208449, - -0.00019527073891367763, - -0.002030352596193552, - -0.004251995589584112, - 6.82050158502534e-05, - -0.0004598069644998759, - -0.007594941649585962, - 0.002600062871351838, - 0.00015599028847645968, - -0.0016781480517238379, - -0.0016043706564232707, - 0.0033045238815248013, - -0.0046775261871516705, - 0.00225600297562778, - -0.010383546352386475, - 0.0027489664498716593, - 0.001629224861972034, - -0.002977660857141018, - -0.0034972026478499174, - -0.07125069200992584, - 0.004142177291214466, - 0.0036176161374896765, - -0.00047292702947743237, - 0.0005149876233190298, - 0.0018821245757862926, - 0.004292634781450033, - -0.002210258971899748, - 0.004199024755507708, - -0.0009286754648201168, - 0.0010626009898260236, - -0.9205533862113953, - -0.0021266688127070665, - -0.0035956078208982944, - 0.00027171868714503944, - 0.0022182869724929333, - 0.0015489738434553146, - -0.0009937385329976678, - 0.0057325526140630245, - 0.0017943360144272447, - 0.002642721403390169, - 0.0067489780485630035, - 0.0006709251319989562, - 0.0014660073211416602, - 0.003539587138220668, - -0.00141437619458884, - -0.003588583553209901, - 0.003941839095205069, - -0.0029470461886376143, - 0.0021319210063666105, - 0.001232499722391367, - 0.0025341100990772247, - -0.0018663369119167328, - 0.003819089150056243, - 0.0010449002729728818, - -0.002622015308588743, - 0.002219078829512, - -0.0035296061541885138, - -0.0013751261867582798, - 0.0062302579171955585, - 0.005013710353523493, - -0.0011495191138237715, - 0.0012557717273011804, - 0.0011942057171836495, - 0.005203915759921074, - -0.0015611074632033706, - 0.0012890298385173082, - -0.0015131436521187425, - 0.0024447361938655376, - -0.00014791708963457495, - -0.004266939591616392, - -0.0010829510865733027, - 0.0036243528593331575, - -0.0020168989431113005, - -0.001337340334430337, - 0.27361586689949036, - 0.0012524935882538557, - -0.001670314115472138, - 7.602781806781422e-06, - 0.0006832662620581686, - 0.0011738052126020193, - 0.0016777828568592668, - -0.0010950457071885467, - -0.0007690163911320269, - 0.0027355621568858624, - -0.002160192234441638, - 0.0002283401699969545, - -0.003053431399166584, - 0.001927618053741753, - 0.001782091218046844, - -0.00018937145068775862, - -0.0011922664707526565, - -0.0014092304045334458, - 0.001178833656013012, - -0.006400575861334801, - -0.0006384640000760555, - 5.9261248679831624e-05, - 0.000992253189906478, - 0.001386774703860283, - 0.00010242480493616313, - -0.006985095329582691, - -0.001727948896586895, - -0.0047067380510270596, - -0.001983926398679614, - -5.647866419167258e-05, - 0.0006278523942455649, - -0.00041710978257469833, - 0.0019769591744989157, - 0.2104557752609253, - -0.003483973443508148, - 0.000972436333540827, - -0.0027552377432584763, - 0.002168775536119938, - 0.010805856436491013, - 0.09100395441055298, - 0.001291813445277512, - -0.0053390273824334145, - 0.0011878481600433588, - 0.0024771930184215307, - -0.004960460122674704, - 0.0017263081390410662, - -0.0014450551243498921, - 0.0009410451166331768, - -0.0012850170023739338, - -0.001499091973528266, - -0.0015312264440581203, - 0.006341448053717613, - -0.0005964130396023393, - 0.005090341903269291, - -0.0015853591030463576, - 0.0025999939534813166, - -0.0035328781232237816, - -0.001152824959717691, - -0.00661852490156889, - -0.0015419860137626529, - -0.0025556571781635284, - -0.0005269086686894298, - -0.0006471690721809864, - 0.0014994513476267457, - -0.0003844840975943953, - -0.00024442386347800493, - -0.05551139637827873, - -0.005090170539915562, - 0.00484840851277113, - -0.0003286150167696178, - -0.0004400138568598777, - 0.0006609412957914174, - 0.001721723354421556, - 0.002156155416741967, - -0.0010415241122245789, - -0.00397587101906538, - 0.004546331241726875, - -0.0014076156076043844, - 0.001771619194187224, - 0.005637818481773138, - -0.0011865554843097925, - -0.00421533640474081, - -0.00041874696034938097, - 0.00020613060041796416, - -0.0007813166594132781, - -0.0028420789167284966, - -0.0522887296974659, - 5.213218173594214e-05, - -0.0015886464389041066, - 0.0006458772695623338, - -0.0015889430651441216, - 0.0021686602849513292, - 0.00585358589887619, - -0.0108591103926301, - 0.00090658018598333, - 0.0005525948945432901, - 0.0015389261534437537, - 0.001920076203532517, - 0.0002534165687393397, - -0.0012144725769758224, - -0.001313281711190939, - 0.0017492474289610982, - 0.00033134795376099646, - 0.0007343578618019819, - -0.0010901045752689242, - 0.0022684300784021616, - 0.002737636910751462, - 0.0010383747285231948, - -0.0012100477470085025, - -0.002899601822718978, - -0.004483037628233433, - 0.00165163679048419, - 0.1103520616889, - 0.0005296863382682204, - 0.003280153265222907, - 0.001102960086427629, - -0.0017258265288546681, - -0.0031368418131023645, - -0.0017273571575060487, - -0.0013013911666348577, - 0.00498936278745532, - 0.00018742652900982648, - -0.0009844069136306643, - -0.0036122521851211786, - -0.0013405645731836557, - 0.0032048486173152924, - -0.0017893303884193301, - 0.002783070784062147, - -0.0036219267640262842, - 0.00022562289086636156 - ], - [ - -0.018246734514832497, - 0.015155729837715626, - 0.019695328548550606, - 0.07450765371322632, - -0.020974818617105484, - -0.011120008304715157, - -0.034537557512521744, - 0.05922572687268257, - 0.033680178225040436, - 0.008224832825362682, - 0.04963422566652298, - -0.07104136049747467, - 0.04042286425828934, - 0.04930192604660988, - -0.03541431948542595, - -0.21411073207855225, - -0.03269302099943161, - 0.020493656396865845, - -0.01623954437673092, - -0.05355019122362137, - -0.07680480927228928, - -0.02133711241185665, - -0.017014306038618088, - 0.004190091509371996, - -0.04339437186717987, - -0.023726459592580795, - 0.054250266402959824, - -0.0509541891515255, - -0.06175602599978447, - 0.06795597821474075, - 0.016418449580669403, - -0.00465602008625865, - -0.04843875765800476, - -0.02851458080112934, - 0.05801459774374962, - 0.01243257150053978, - 0.04719842970371246, - 0.04844595864415169, - -0.01380228716880083, - -0.020974010229110718, - 0.0006221217336133122, - 0.06041881442070007, - 0.04738038405776024, - -0.017267391085624695, - -0.03416472300887108, - 0.08079174906015396, - -0.017653504386544228, - 0.010976147837936878, - 0.01708846725523472, - 0.03208453953266144, - 0.01176452450454235, - 0.0005412971950136125, - -0.019565921276807785, - 0.06347186118364334, - -0.02041797526180744, - -0.03875218331813812, - 0.0002588261559139937, - -0.03707597404718399, - -0.03538254648447037, - 0.06220962107181549, - -0.014006167650222778, - 0.04003344476222992, - 0.03930288925766945, - 0.01086448784917593, - -0.07528865337371826, - -0.003762500826269388, - -0.008875668980181217, - 0.022552914917469025, - 0.03196002170443535, - 0.058698028326034546, - 0.03314107656478882, - 0.1555231362581253, - 0.0545157752931118, - 0.06413476914167404, - -0.03783863037824631, - -0.06145219877362251, - 0.05111197009682655, - -0.04161718487739563, - 0.0005036084912717342, - 0.08673175424337387, - 0.04412579536437988, - 0.03490013629198074, - 0.3226330280303955, - 0.01387761626392603, - 0.010179518721997738, - 0.012352928519248962, - -0.022996805608272552, - -0.04321487620472908, - -0.024350423365831375, - -0.09261876344680786, - -0.014031720347702503, - 0.0146831339225173, - 0.11622799932956696, - 0.005320017691701651, - 0.03641128167510033, - 0.03676096349954605, - 0.00019922398496419191, - 0.005816024262458086, - -0.029007382690906525, - -0.027648204937577248, - 0.02687365561723709, - -0.02264091931283474, - -0.0071934363804757595, - 0.007842980325222015, - -0.022292951121926308, - 4.2105771171918605e-06, - 0.02710087038576603, - -0.008282830007374287, - 0.037574492394924164, - -0.007698204834014177, - 0.06731897592544556, - 0.06138944625854492, - 0.029726581647992134, - -0.021278562024235725, - -0.08018064498901367, - 0.05937238037586212, - 0.0215873122215271, - -0.0040809684433043, - 0.03858267143368721, - -0.06419791281223297, - -0.03132808580994606, - -0.020714346319437027, - 0.015689508989453316, - 0.012911748141050339, - 0.08612804114818573, - -0.0014112381031736732, - -0.6060495972633362, - 0.030766261741518974, - 0.03727639466524124, - 0.054063934832811356, - 0.03722742199897766, - -0.08779618889093399, - 0.00985401775687933, - -0.08616035431623459, - 0.03713740408420563, - 0.0010271905921399593, - -0.07024172693490982, - 0.012999978847801685, - 0.028883742168545723, - -0.004557332489639521, - 0.02244807779788971, - 0.023881221190094948, - -0.030354313552379608, - 0.0499645471572876, - -0.041321396827697754, - 0.01760532520711422, - 0.010113782249391079, - -0.008799515664577484, - -0.013455427251756191, - 0.025496944785118103, - -0.005668827332556248, - 0.015862084925174713, - 0.01328684575855732, - -0.03552825748920441, - -0.011288143694400787, - 0.040871042758226395, - -0.0016839582240208983, - -0.009108073078095913, - -0.021816160529851913, - 0.17144986987113953, - 0.03816378861665726, - 0.012794253416359425, - -0.0015453998930752277, - 0.04123383015394211, - 0.02453519217669964, - -0.0853768065571785, - 0.012611426413059235, - -0.05207868665456772, - -0.04275127127766609, - -0.008673962205648422, - -0.01419064961373806, - -0.009039030410349369, - -0.05340496078133583, - -0.017363378778100014, - -0.009660950861871243, - -0.05451982468366623, - -0.015315570868551731, - 0.053412362933158875, - 0.0214947871863842, - 1.7295902580372058e-05, - 0.016006559133529663, - -0.03116258792579174, - -0.017063049599528313, - 0.018456336110830307, - -0.12987928092479706, - 0.004389156121760607, - 0.06634200364351273, - -0.01799461990594864, - 0.018307698890566826, - -0.03018181398510933, - 0.011764504946768284, - 0.04783017560839653, - 0.16665752232074738, - -0.0321517288684845, - 0.012368121184408665, - 0.028768397867679596, - 0.0027565243653953075, - 0.006125578191131353, - -0.010651370510458946, - 0.007751295808702707, - 0.0052418760024011135, - -0.01901921257376671, - 0.041286006569862366, - 0.04023033753037453, - -0.040300656110048294, - 0.0040761507116258144, - -0.038043636828660965, - -0.026470785960555077, - 0.007284192368388176, - 0.005386072210967541, - 0.04707227274775505, - 0.059930361807346344, - 0.11202628165483475, - -0.05762114375829697, - -0.01026027463376522, - -0.028436364606022835, - -0.013261779211461544, - -0.033040113747119904, - 0.0053235264495015144, - -0.124203160405159, - -0.004990044981241226, - -0.007701110560446978, - 0.025297407060861588, - -0.04206359386444092, - 0.008422303013503551, - -0.02839033305644989, - 0.020090464502573013, - -0.0056016771122813225, - 0.01287814136594534, - -0.026087423786520958, - -0.028274821117520332, - 0.059946250170469284, - 0.03153194859623909, - 0.03198906034231186, - 0.005007075611501932, - -0.027481775730848312, - 0.03496124967932701, - 0.00899561494588852, - -0.1658438742160797, - 0.021317066624760628, - 0.06609567999839783, - 0.001330502680502832, - -0.00795577559620142, - -0.009047369472682476, - 0.032998599112033844, - -0.010553439147770405, - -0.025528740137815475, - 0.025514740496873856, - -0.023002849891781807, - -0.0377807542681694, - -0.02258705161511898, - 0.035350631922483444, - 0.010868856683373451, - -0.002350206021219492, - 0.002660277532413602, - 0.00902466382831335 - ], - [ - 0.00028811339871026576, - 0.0011684279888868332, - -0.00020595264504663646, - 0.0012703118845820427, - -0.00035818712785840034, - 0.00039503848529420793, - -0.0011725930962711573, - 0.0016205996507778764, - 0.0015328966546803713, - 0.001406958675943315, - -0.002300967462360859, - -0.0001256556570297107, - 0.00047232009819708765, - -0.0014884176198393106, - -0.0011559359263628721, - 0.006159191019833088, - -5.130791760166176e-05, - -0.0039006471633911133, - -0.004067330155521631, - 0.0018050241051241755, - -0.009251981042325497, - 0.003924358636140823, - -0.0014241207391023636, - -0.0019519907655194402, - -0.0007418865570798516, - -0.0021516024135053158, - 0.0009659418719820678, - 0.0004579553788062185, - -0.0003756642108783126, - 0.00025647119036875665, - 0.0005683684721589088, - 0.0016475896118208766, - -0.0003637440095189959, - -0.00030700216302648187, - 0.001799177029170096, - 0.0010717714903876185, - 0.0024906876496970654, - 0.0010511503787711263, - 0.00029684806941077113, - 0.00038032804150134325, - 0.00014765356900170445, - 0.0031138621270656586, - 0.0001692851510597393, - 0.0007604667916893959, - -0.0026374910958111286, - -0.0009083918412216008, - 0.0019095552852377295, - 0.00020029794541187584, - 0.001084800693206489, - 0.0022146308328956366, - -0.002007962204515934, - 0.009782562963664532, - 0.0002459487004671246, - -0.0012759623350575566, - -0.002776422770693898, - -0.0025874641723930836, - 0.00028848127112723887, - -0.001016239752061665, - -0.008054926060140133, - 0.0003847988846246153, - 0.0002078852994600311, - -0.0023670068476349115, - -0.0006989108514972031, - 0.0031992739532142878, - -0.004565849434584379, - 0.0010866367956623435, - -0.010955852456390858, - 0.0027899364940822124, - -0.0004437451425474137, - -0.002033903729170561, - -0.0014257984003052115, - -0.07288850098848343, - 0.004009908996522427, - 0.004165788181126118, - -0.0004977480857633054, - 0.0007939793867990375, - 0.0021344709675759077, - 0.0016810904489830136, - -0.0016419772291556, - 0.004072307143360376, - 7.972828461788595e-05, - -0.0002898642560467124, - -0.9188873767852783, - -0.0002637307334225625, - -0.005149797536432743, - 0.0023712599650025368, - 0.002023726934567094, - 0.0008670479874126613, - -0.000192749168490991, - 0.004527330864220858, - 0.00019189054728485644, - 0.0025325119495391846, - 0.005019854288548231, - -0.0006898665451444685, - 0.002397909527644515, - 0.003965233918279409, - 0.0005543967126868665, - -0.0032761036418378353, - 0.0035402378998696804, - -0.0015181037597358227, - 0.0015720549272373319, - 0.0015532736433669925, - 0.0009601952042430639, - 0.001332525978796184, - 0.0034159221686422825, - -0.0009550767717882991, - -0.002687642117962241, - 0.0017594912787899375, - -0.0024030962958931923, - -0.0013458837056532502, - 0.007657570764422417, - 0.003900335868820548, - -0.0012532472610473633, - 0.0012475323164835572, - 0.0009631824214011431, - 0.0034490893594920635, - -0.0016062130453065038, - 0.0007355464622378349, - -0.0004906352842226624, - 0.0011267471127212048, - -0.0019575529731810093, - -0.0027903905138373375, - -0.001696911989711225, - 0.0029382172506302595, - -0.0022754278033971786, - -0.00205421494320035, - 0.2803408205509186, - 0.0006209987332113087, - 0.0010009345132857561, - 0.00020417898485902697, - 0.0009096671128645539, - 0.00231851264834404, - 0.0006463368772529066, - -0.000343193270964548, - -0.00044227344915270805, - 0.00231378385797143, - -0.0035870836582034826, - -1.4196696611179505e-05, - -0.0023406483232975006, - 0.0002282062341691926, - 0.0018133186968043447, - -0.0006835342501290143, - -0.0022833780385553837, - -0.001438783947378397, - -0.0012973523698747158, - -0.005807576701045036, - 0.0008286228403449059, - -9.800816042115912e-05, - -0.0005330587737262249, - -0.00013222004054114223, - -0.0015632760478183627, - -0.006450932938605547, - -0.001295961206778884, - -0.005430719815194607, - -0.002384781837463379, - 0.00048582619638182223, - 0.001907257828861475, - -0.0013708079932257533, - 3.675772313727066e-05, - 0.2065742313861847, - -0.0016621529357507825, - 0.0015359790995717049, - 0.0011464046547189355, - 0.003735092468559742, - 0.010167879983782768, - 0.09252582490444183, - 0.0031390448566526175, - -0.004582170397043228, - 0.0005035213544033468, - 0.0010524929966777563, - -0.0059019578620791435, - 0.0020973708014935255, - -0.0013925451785326004, - 0.0008605952607467771, - -0.002019553678110242, - -0.001380397006869316, - -0.00010688710608519614, - 0.006586330942809582, - -0.0007932997541502118, - 0.004975960589945316, - -0.0008246470242738724, - 0.0014359785709530115, - 0.0002290499396622181, - -0.0005664029158651829, - -0.00642462307587266, - -0.00024492997908964753, - -0.0006432677037082613, - -0.001788380672223866, - 0.00031029267120175064, - 0.00010961860971292481, - 0.0016894034342840314, - -0.0010859310859814286, - -0.05882225185632706, - -0.004261689260601997, - 0.0057541849091649055, - -0.0015524079790338874, - 0.0014006359269842505, - 0.0008247250225394964, - -0.0005840852973051369, - 0.0025316469836980104, - -0.0018308102153241634, - -0.0032746491488069296, - 0.003576907329261303, - -0.0012140879407525063, - 0.0008221638854593039, - 0.005926907528191805, - -0.0011982209980487823, - -0.0012503864709287882, - -0.000574088713619858, - -7.123072282411158e-05, - 0.0009139776811935008, - -0.0013600310776382685, - -0.052597153931856155, - 0.000955418567173183, - -0.0017477301880717278, - -0.0009106228826567531, - -0.002123067853972316, - 0.0010480494238436222, - 0.004496986046433449, - -0.011027207598090172, - 0.0008081490523181856, - 0.00048155023250728846, - 0.00040796026587486267, - -4.035908204969019e-05, - 9.669666178524494e-05, - 0.0005199881852604449, - -0.0005108076147735119, - 0.0015074514085426927, - 0.0016296746907755733, - -0.0002502089482732117, - 0.001453558448702097, - 0.0038692194502800703, - 0.0020245639607310295, - -0.00024290187866427004, - 0.0006082712789066136, - -0.002736313035711646, - -0.004863076377660036, - 0.00267983041703701, - 0.11128537356853485, - 0.0005004593986086547, - 0.0027605846989899874, - 0.0013296924298629165, - -0.0007622435223311186, - -0.00366777740418911, - -0.0012597806053236127, - -0.0014510267646983266, - 0.005830836016684771, - 0.0005715076695196331, - -0.0011001848615705967, - -0.0019732294604182243, - -0.0025002520997077227, - 0.0013467528624460101, - -0.0012325866846367717, - 0.0025915345177054405, - -0.0018145553767681122, - -0.00018694208119995892 - ], - [ - 0.02197139523923397, - -0.01712329126894474, - 0.01778845675289631, - 0.0024861767888069153, - 0.02814309112727642, - 0.010245279408991337, - -0.01653277687728405, - 0.00709384074434638, - -0.043147969990968704, - -0.012082669883966446, - 0.03711739927530289, - -0.014077666215598583, - 0.046491485089063644, - 0.016592802479863167, - -0.08178142458200455, - -0.25628650188446045, - 0.04448002204298973, - -0.007879906333982944, - -0.002294176258146763, - 0.005017402116209269, - -0.012895110994577408, - 0.010437602177262306, - -0.011727678589522839, - -0.06507375091314316, - 0.007218324113637209, - -0.020972775295376778, - 0.021015135571360588, - -0.0024838100653141737, - -0.015254608355462551, - 0.015008429996669292, - -0.006240392569452524, - -0.053926143795251846, - -0.04496132209897041, - 0.015118204057216644, - -0.02458871901035309, - 0.01895672269165516, - 0.00879400223493576, - -8.915335638448596e-05, - 0.012320181354880333, - 0.02411625161767006, - 0.03659241646528244, - 0.06603791564702988, - 0.021544674411416054, - 0.015272412449121475, - 0.015288942493498325, - 0.11879011243581772, - 0.002263155998662114, - 0.06553290784358978, - -0.010745742358267307, - 0.10139250755310059, - -0.027690090239048004, - -0.011245000176131725, - -0.0060434103943407536, - 0.02274472638964653, - 0.019528301432728767, - -0.07104700803756714, - -0.002446497092023492, - 0.010671727359294891, - -0.09069635719060898, - 0.005434329155832529, - -0.04176582023501396, - 0.0552554652094841, - 0.010235356166958809, - 0.017364388331770897, - -0.0741116926074028, - 0.016618572175502777, - -0.04499555751681328, - 0.000633949413895607, - 0.08500383049249649, - -0.0009476762497797608, - 0.05487946793437004, - 0.1267116367816925, - 0.06710485368967056, - 0.01813543029129505, - -0.005867063999176025, - -0.021905064582824707, - -0.013225128874182701, - -0.01480355765670538, - -4.2240200855303556e-05, - 0.11473201960325241, - 0.006587534677237272, - -0.0032043519895523787, - -0.05108167231082916, - 0.017023704946041107, - 0.003883425844833255, - -0.022742504253983498, - 0.05590289458632469, - -0.004690220579504967, - -0.06885464489459991, - -0.01389043964445591, - -0.025595976039767265, - -0.0007643331773579121, - 0.18397675454616547, - -0.006935700308531523, - -0.00888579897582531, - 0.05384426563978195, - -0.02074991539120674, - -0.022230172529816628, - 0.006633163429796696, - -0.04016954079270363, - 0.04049321636557579, - -0.012524507939815521, - 0.03919213265180588, - -0.032166991382837296, - -0.10115009546279907, - -0.023432845249772072, - -0.0027819769456982613, - 0.03765077143907547, - -0.016893915832042694, - -0.0287888552993536, - 0.027977555990219116, - 0.04923388361930847, - 0.043265242129564285, - 0.00037504793726839125, - -0.0886339396238327, - 0.0004173516936134547, - 0.02871083654463291, - -0.01784573122859001, - 0.016229767352342606, - -0.009952276013791561, - -0.017773928120732307, - -0.0192422978579998, - 0.012903879396617413, - 0.03411085903644562, - 0.13135449588298798, - -0.0018467403715476394, - -0.6405630707740784, - -0.0017981186974793673, - -0.009903172962367535, - 0.0038588265888392925, - 0.04256971925497055, - -0.12598246335983276, - -0.027671268209815025, - -0.0037992517463862896, - 0.03872739523649216, - 0.03512684255838394, - 0.021470174193382263, - 0.013898228295147419, - -0.008724152110517025, - -0.027764393016695976, - 0.03440948948264122, - -0.016896642744541168, - 0.020625246688723564, - -0.02504541724920273, - -0.01852176897227764, - 0.0032890341244637966, - -0.00137052359059453, - -0.0459955632686615, - -0.016599690541625023, - -0.01748022250831127, - -0.015417971648275852, - -0.03334921598434448, - 0.0009266314445994794, - -0.012483279220759869, - -0.038979172706604004, - -0.017155693843960762, - 0.053339652717113495, - 0.01866401545703411, - -0.023067347705364227, - 0.29017502069473267, - -0.01772361621260643, - -0.029363397508859634, - 0.01523052528500557, - 0.08047130703926086, - -0.0031102097127586603, - -0.03617432340979576, - 0.016161197796463966, - -0.017303161323070526, - -0.02415584959089756, - 0.018708055838942528, - 0.053185272961854935, - -0.05876228213310242, - -0.03160449489951134, - -0.03683200851082802, - 0.02617662027478218, - -0.05449097976088524, - -0.04803109169006348, - 0.029049430042505264, - 0.010394465178251266, - -0.02894410863518715, - -0.011167707853019238, - 0.012785311788320541, - -0.009054495021700859, - -0.05404411628842354, - -0.1842343956232071, - 0.030721601098775864, - 0.005479489918798208, - 0.012024239636957645, - -0.0066882031969726086, - -0.005087228957563639, - 0.011703800410032272, - -0.005453953053802252, - 0.15744967758655548, - -0.030634667724370956, - 0.009765307419002056, - 0.05501313507556915, - 0.026401184499263763, - -0.019037455320358276, - -0.008364924229681492, - -0.0196374524384737, - 0.001594015397131443, - -0.025399301201105118, - 0.008763027377426624, - 0.016085820272564888, - 0.018457921221852303, - -0.05170913413167, - -0.01715894229710102, - -0.0146522531285882, - 0.019334925338625908, - -0.05168961361050606, - 0.024526383727788925, - 0.013028268702328205, - 0.07891761511564255, - -0.06396810710430145, - -0.014237062074244022, - -0.011435998603701591, - 0.008300666697323322, - 0.03691015765070915, - -0.016742460429668427, - -0.07463490962982178, - 0.03576838970184326, - -0.05408082529902458, - 0.01479154173284769, - 0.008062112145125866, - 0.02015908807516098, - -0.007623594719916582, - 0.0037637092173099518, - -0.020297454670071602, - -0.012766625732183456, - -0.006789687089622021, - 0.016680486500263214, - -0.0003434551181271672, - 0.02936970256268978, - -0.013567492365837097, - 0.03309963271021843, - -0.04889484867453575, - 0.009372985921800137, - 0.013336400501430035, - -0.09814318269491196, - 0.02382531575858593, - 0.07151288539171219, - -0.01562040951102972, - 0.000774132611695677, - 0.0351971834897995, - -0.020600754767656326, - 0.0014385872054845095, - -0.04726567491889, - 0.058984898030757904, - 0.009621333330869675, - -0.010716143064200878, - -0.044346485286951065, - -0.0033011571504175663, - -0.0094070453196764, - -0.023006876930594444, - -0.009448684751987457, - 0.059059157967567444 - ], - [ - -0.016919802874326706, - -0.025223998352885246, - 0.04010482504963875, - -0.03837907314300537, - 0.05142080411314964, - 0.03422175720334053, - 0.011052031069993973, - 0.0067930445075035095, - -0.061473384499549866, - 0.02092030458152294, - -0.02418711967766285, - 0.0007392421248368919, - 0.023692134767770767, - -0.023238979279994965, - -0.04871660843491554, - -0.18159064650535583, - -0.026613352820277214, - -0.050209857523441315, - -0.0001186985828098841, - -0.006398847326636314, - -0.020580729469656944, - 0.05556637793779373, - -0.026263859122991562, - -0.06615038961172104, - 0.02328270487487316, - -0.05927484855055809, - -0.01598990522325039, - 0.005812064744532108, - 0.008572437800467014, - -0.010375895537436008, - -0.026864513754844666, - -0.0633414015173912, - -0.018386729061603546, - -0.0005340680945664644, - -0.01244491245597601, - 0.03443634510040283, - 0.03136029466986656, - -0.018966691568493843, - 0.008073841221630573, - 0.037946224212646484, - -0.005281943362206221, - 0.09032115340232849, - 0.0031498405151069164, - -0.01792502962052822, - 0.00960491318255663, - 0.07832492142915726, - 0.01807016134262085, - 0.06340299546718597, - -0.022967368364334106, - 0.08713529258966446, - -0.017654940485954285, - 0.01975073479115963, - 0.010090650990605354, - 0.004866695962846279, - 0.05592719465494156, - -0.06487932801246643, - 0.0021029452327638865, - -0.006931929383426905, - -0.06424009799957275, - 0.04590039700269699, - -0.012188552878797054, - 0.013447429053485394, - -0.010128555819392204, - 0.027346765622496605, - -0.032204922288656235, - 0.015910077840089798, - -0.04726983606815338, - -0.016253389418125153, - 0.019644398242235184, - -0.04058179631829262, - 0.010350661352276802, - 0.16104552149772644, - 0.07962509244680405, - -0.010537336580455303, - -0.008101029321551323, - -0.020751425996422768, - -0.012622690759599209, - 0.012342289090156555, - -0.009229141287505627, - 0.07930222153663635, - 0.003407868556678295, - 0.018312938511371613, - -0.2182280719280243, - -0.003557120217010379, - -0.043399468064308167, - -0.05156046152114868, - 0.016574755311012268, - -0.0025203076656907797, - -0.05164379999041557, - 0.021637586876749992, - -0.04508093744516373, - -0.022017404437065125, - 0.0675874873995781, - 0.009318426251411438, - -0.018216902390122414, - 0.028241360560059547, - -0.0016872526612132788, - -0.04955092445015907, - 0.026139257475733757, - -0.01796216331422329, - 0.043877385556697845, - 0.010561291128396988, - 0.010133849456906319, - -0.01774340309202671, - -0.08693497627973557, - -0.06776642799377441, - -0.01167477946728468, - -0.004875733982771635, - -0.014114242047071457, - -0.07776185870170593, - -0.006178711075335741, - 0.03144092857837677, - 0.0230087973177433, - 0.027055546641349792, - -0.04975183308124542, - -0.012005330063402653, - 0.02918446995317936, - -0.015623155981302261, - -0.03969240561127663, - 0.041710831224918365, - 0.002374524250626564, - 0.008377010934054852, - 0.010831560008227825, - 0.02438724972307682, - 0.08325428515672684, - 0.007617317605763674, - -0.5687781572341919, - 0.013546007685363293, - -0.010803484357893467, - 0.003366731107234955, - 0.05777197331190109, - -0.08079493790864944, - -0.012390739284455776, - 0.035213448107242584, - 0.05478893965482712, - 0.035359952598810196, - 0.02138639986515045, - -0.022173944860696793, - -0.008204753510653973, - -0.06536533683538437, - 0.047276128083467484, - -0.010059183463454247, - 0.006722084246575832, - -0.06966932862997055, - -0.013988561928272247, - -0.024430938065052032, - 0.0012448993511497974, - -0.05169341713190079, - -0.018590297549962997, - -0.006441387347877026, - -0.040565185248851776, - 0.05068346485495567, - -0.015342529863119125, - -0.003460500854998827, - -0.02939155139029026, - -0.004099494777619839, - 0.027631880715489388, - 0.021159693598747253, - -0.025895148515701294, - 0.3534899950027466, - -0.04199173301458359, - 0.03493847697973251, - 0.030881576240062714, - 0.09192085266113281, - 0.023992743343114853, - -0.0725099965929985, - 0.028660299256443977, - -0.0059741828590631485, - 0.003741729538887739, - 0.023182690143585205, - 0.020859649404883385, - -0.04911527782678604, - -0.013219081796705723, - -0.03192661330103874, - 0.03477363660931587, - 0.01645868644118309, - -0.03876345232129097, - 0.026623167097568512, - -0.00041786610381677747, - -0.04204476624727249, - 0.0030357299838215113, - 0.043607357889413834, - 0.01809028908610344, - -0.08261766284704208, - -0.1370674967765808, - 0.02421349100768566, - -0.018853461369872093, - 0.02954874560236931, - -0.056434646248817444, - -0.007335927803069353, - 0.005489003378897905, - -0.08751530200242996, - 0.1875702440738678, - 0.011178060434758663, - 0.030806664377450943, - 0.015495451167225838, - -0.0234039556235075, - -0.013831544667482376, - -0.03356291353702545, - -0.008186399936676025, - -0.04237653315067291, - -0.013821951113641262, - 0.018898747861385345, - 0.010710206814110279, - 0.02576674520969391, - -0.02392587624490261, - -0.038379304111003876, - -0.0021310937590897083, - 0.018378036096692085, - -0.03756946697831154, - 0.06181386485695839, - -0.022388843819499016, - 0.12352237850427628, - 0.026212431490421295, - -0.03689677640795708, - -0.014119240455329418, - 0.028148917481303215, - 0.014811196364462376, - 0.008076748810708523, - -0.06810741871595383, - 0.04011210426688194, - -0.04075273871421814, - 0.00661103893071413, - 0.053174614906311035, - 0.012653760612010956, - 0.01578342355787754, - -0.0470256544649601, - -0.008857235312461853, - -0.020895415917038918, - -0.013584784232079983, - 0.03162315860390663, - 0.018232528120279312, - 0.006400024518370628, - -0.015624970197677612, - 0.03946538269519806, - -0.048648200929164886, - -0.022255094721913338, - 0.04255148023366928, - -0.24402260780334473, - 0.007096617948263884, - 0.0645536482334137, - 0.011592484079301357, - -0.04826368764042854, - 0.015826068818569183, - -0.010262840427458286, - -0.02933097817003727, - 0.03459416702389717, - 0.03819572553038597, - 0.04599040746688843, - 0.015709416940808296, - -0.08174317330121994, - -0.003095249878242612, - 0.003034756053239107, - 0.05834764614701271, - 0.0014750720001757145, - -0.024280065670609474 - ], - [ - 0.002463738899677992, - 0.0015696394257247448, - 0.004422271624207497, - 0.004218310583382845, - 0.004162647295743227, - 0.00041561617399565876, - 0.0008930170442909002, - 0.005978392902761698, - -0.0028710297774523497, - -0.0031684529967606068, - -0.0052850693464279175, - -0.0001635755179449916, - 0.0026587084867060184, - -0.00028167248819954693, - -0.008421964943408966, - -0.009497063234448433, - 0.003063933225348592, - -0.013077235780656338, - -0.0036774342879652977, - 0.0016110630240291357, - -0.018780460581183434, - 0.00485672801733017, - -0.0021336176432669163, - -0.008075294084846973, - 0.0034665479324758053, - -0.005101473070681095, - 0.00286098662763834, - 0.001684269169345498, - -0.0007009166874922812, - -0.0018141433829441667, - -0.002421932527795434, - -0.004208562429994345, - -0.004054496064782143, - 0.002981520025059581, - 0.0026382016949355602, - 0.0035291556268930435, - 0.005240252241492271, - -0.0018588646780699492, - -0.0007840112666599452, - 0.00816746149212122, - 0.008315348997712135, - 0.006547014694660902, - 0.00012234265159349889, - -0.00012622156646102667, - 0.005624027457088232, - 0.010280805639922619, - 0.0034552435390651226, - 0.002951188711449504, - 0.003689882578328252, - 0.007169532589614391, - -0.005096533335745335, - 0.007651396095752716, - -0.0009996953886002302, - -0.005761789623647928, - 2.5807454221649095e-05, - -0.00501757999882102, - -0.0009844914311543107, - 0.001249878667294979, - -0.01889863796532154, - 0.002546401461586356, - -0.008882042020559311, - -0.0007258566911332309, - -0.0009637580369599164, - 0.005875806789845228, - -0.0077899727039039135, - 0.0007667239406146109, - -0.014038650318980217, - -0.0006299519445747137, - 0.007021103985607624, - -9.728375152917579e-05, - 0.007606336381286383, - -0.05741289258003235, - 0.008517616428434849, - 0.0024472044315189123, - -0.0014315180014818907, - -0.008422805927693844, - 0.003927810583263636, - 0.002395293675363064, - -0.0020988606847822666, - 0.01861516386270523, - 0.003939496353268623, - -0.0013003970962017775, - -0.9312912225723267, - -0.002887048991397023, - -0.005368813872337341, - -0.00449540838599205, - 0.009321585297584534, - 0.00284427497535944, - -0.0027088127098977566, - 0.006598235107958317, - 0.0027347973082214594, - 0.0013039278564974666, - 0.015627069398760796, - -0.004048457369208336, - 0.003527628490701318, - 0.011241919361054897, - -0.003185887588188052, - -0.005437604617327452, - 0.0027632368728518486, - -0.006521728355437517, - 0.0037800923455506563, - -0.00129051657859236, - 0.010938170365989208, - -0.00027246755780652165, - -0.0064903791062533855, - -0.008094445802271366, - -0.0018667822005227208, - 0.003205834422260523, - -0.005714677274227142, - -0.006237110588699579, - 0.008167524822056293, - 0.010645306669175625, - -0.000493074709083885, - 0.0028638963121920824, - -0.001331918640062213, - 0.0027763412799686193, - -0.002159376163035631, - -0.000848802097607404, - -0.001763274078257382, - 0.00928143598139286, - -0.007678881287574768, - -0.0005835503106936812, - -0.00040442589670419693, - 0.006322342436760664, - 0.010419399477541447, - -0.0022953851148486137, - 0.2185707688331604, - 0.002061488339677453, - -0.0021869877818971872, - 0.0058381641283631325, - 0.005092216189950705, - -0.006613097153604031, - 0.0025495479349046946, - -0.0007831437396816909, - 0.002230259357020259, - 0.004130635876208544, - -0.0012165949447080493, - -0.0015975575661286712, - -0.0028244454879313707, - -0.0029548583552241325, - 0.002514059189707041, - -0.0024079924914985895, - 0.004808048252016306, - -0.007506397552788258, - -0.002201646100729704, - -0.01092459075152874, - 0.0002313407021574676, - -0.0033222141209989786, - -0.00313199614174664, - -0.0006245586555451155, - -0.004660407081246376, - -0.009985310956835747, - -0.003928773570805788, - -0.008853618055582047, - -0.0067617143504321575, - 0.00020775318262167275, - 0.007850419729948044, - -0.002463276730850339, - -0.0031787806656211615, - 0.23691709339618683, - -0.002886501606553793, - -0.0009160761837847531, - 0.0053026736713945866, - 0.007256551645696163, - 0.010870859026908875, - 0.09112147986888885, - 0.007818717509508133, - -0.005529782269150019, - 0.0005034634959883988, - -0.00027441224665381014, - -0.006069377530366182, - 0.002119905548170209, - -0.006176756229251623, - -0.010789457708597183, - 0.0014769502449780703, - -0.00201597367413342, - -0.008694488555192947, - 0.011701022274792194, - -0.0004845108778681606, - 0.0010990785667672753, - -0.0031743228901177645, - 0.0037332840729504824, - -0.0017227069474756718, - -0.00608648220077157, - -0.028238985687494278, - 0.001306883292272687, - -0.00442162761464715, - 6.755867070751265e-05, - -0.004731047432869673, - 0.0022767966147512197, - 0.00307639641687274, - -0.00791996344923973, - -0.034557878971099854, - -0.002784508280456066, - 0.004035132471472025, - 0.0025596709456294775, - 0.0027524351608008146, - -0.0010328739881515503, - -0.0059043061919510365, - 0.0018847002647817135, - -0.00443672388792038, - -0.004908276721835136, - 0.0020028031431138515, - 0.0024234321899712086, - 0.004392209928482771, - 0.0030214698053896427, - -0.0058431741781532764, - -0.00211706361733377, - -0.0028311628848314285, - -0.0019715651869773865, - 0.0005844658589921892, - -0.0034027481451630592, - -0.03887166455388069, - 0.001157988328486681, - -0.0037551498971879482, - -5.0990154704777524e-05, - -0.0028182649984955788, - 0.005625725258141756, - 0.0023292272817343473, - -0.020786376670002937, - 0.003971421625465155, - -0.0029738014563918114, - -0.0010880047921091318, - 0.0016515437746420503, - 0.0014337192988023162, - -0.00198912201449275, - 0.00026077640359289944, - 0.0035880771465599537, - 0.0010926421964541078, - 0.002175027271732688, - 0.0033635012805461884, - 0.0043412125669419765, - 0.005835728254169226, - -0.00308146420866251, - 0.00413844920694828, - -0.0032235090620815754, - -0.006340797990560532, - 0.0051839943043887615, - 0.07913564890623093, - 0.0008335937163792551, - 0.00841511506587267, - -0.0020528428722172976, - 0.002422214252874255, - -0.0012667056871578097, - 0.0026949390303343534, - -0.001098014647141099, - 0.003719426691532135, - 0.005167663097381592, - -0.0032627349719405174, - -0.002546772127971053, - -0.009329506196081638, - 0.002474523615092039, - -0.0012820963747799397, - -0.0004108101420570165, - -0.0012195876333862543, - 0.005280154757201672 - ], - [ - 0.009951828978955746, - 0.020416438579559326, - 0.043639153242111206, - -0.008715133182704449, - -0.007318987511098385, - 0.009554127231240273, - -0.016006167978048325, - -0.011279555037617683, - -0.03378189727663994, - 0.010957459919154644, - -0.017004478722810745, - 0.018172437325119972, - 0.03309972211718559, - 0.017320215702056885, - -0.0580916590988636, - -0.07424557209014893, - -0.0015848801704123616, - -0.13807310163974762, - 0.011139262467622757, - -0.002020281972363591, - -0.11763926595449448, - -0.03331678360700607, - -0.06544835865497589, - -0.024673249572515488, - 0.03688446432352066, - -0.061441175639629364, - 0.005149019882082939, - -0.010697083547711372, - -0.03738252818584442, - -0.021989405155181885, - -0.04385780915617943, - -0.05342331901192665, - -0.11839901655912399, - -0.03512611985206604, - 0.02980624884366989, - -0.0043127452954649925, - -0.00697869760915637, - -0.019090240821242332, - 0.014779101125895977, - 0.03348390385508537, - 0.07470312714576721, - 0.018924100324511528, - 0.06578721851110458, - 0.006101284176111221, - 0.06253208965063095, - 0.040548570454120636, - 0.032567571848630905, - -0.0025415958371013403, - 0.002779981354251504, - 0.08338964730501175, - -0.026201149448752403, - -0.04493921995162964, - -0.004384354222565889, - 0.02998390421271324, - -0.010952736251056194, - -0.028952889144420624, - 0.012680791318416595, - 0.09672751277685165, - -0.06300975382328033, - -0.003385605290532112, - -0.03019426390528679, - 0.0005321609787642956, - -0.004439238458871841, - -0.012746422551572323, - -0.008732522837817669, - -0.025935634970664978, - 0.06456783413887024, - -0.010232444852590561, - 0.0655156597495079, - -4.074609387316741e-05, - 0.08325634151697159, - 0.12631075084209442, - 0.07094495743513107, - 0.02470177412033081, - -0.007794055622071028, - -0.045336946845054626, - 0.011301198042929173, - 0.07720919698476791, - -0.04510980844497681, - 0.08480668067932129, - 0.017732612788677216, - -0.028341518715023994, - -0.23319631814956665, - 0.041237883269786835, - -0.03724784031510353, - 0.020713625475764275, - 0.08022531121969223, - 0.015712346881628036, - -0.029677623882889748, - -0.003225209889933467, - 0.010410590097308159, - -0.01240979041904211, - -0.12089917808771133, - 0.02969353273510933, - -0.00055310019524768, - 0.021540287882089615, - -0.015208002179861069, - -0.0015988568775355816, - -0.020329564809799194, - -0.05195524916052818, - 0.030282773077487946, - -0.0003245885600335896, - 0.0008202358731068671, - -0.00037833917303942144, - -0.032901983708143234, - -0.06771565228700638, - 0.032518643885850906, - 0.04284954071044922, - 0.0463901087641716, - -0.010634311474859715, - -0.01997867226600647, - 0.026902765035629272, - 0.010809198021888733, - 0.013137574307620525, - 0.0477442629635334, - 0.036620013415813446, - 0.03993133828043938, - -0.001992932055145502, - -0.020592205226421356, - 0.08497466892004013, - -0.050986193120479584, - -0.0032244580797851086, - 0.010768614709377289, - 0.05372568592429161, - 0.08065049350261688, - -0.023037109524011612, - -0.40134397149086, - 0.05923843756318092, - -0.027387484908103943, - 0.03220043703913689, - 0.03588367998600006, - -0.10881880670785904, - -0.037735309451818466, - -0.0019155411282554269, - 0.09684497117996216, - 0.0323541983962059, - -0.008664668537676334, - -0.01612885296344757, - -0.0026719309389591217, - -0.03908319026231766, - -0.040033940225839615, - 0.022109851241111755, - 0.003810831578448415, - -0.1058378741145134, - -0.01099402830004692, - -0.08418142795562744, - 0.009590690955519676, - -0.013723067007958889, - -0.03859633952379227, - -0.006685743108391762, - 0.0009617760661058128, - 0.07617081701755524, - -0.00661490997299552, - -0.08188346773386002, - -0.029964635148644447, - 0.011581572704017162, - 0.03421730548143387, - -0.009294543415307999, - -0.014947667717933655, - 0.23002088069915771, - -0.009656127542257309, - 0.013791095465421677, - 0.010618877597153187, - 0.07664690166711807, - 0.1072581335902214, - -0.0005568116903305054, - 0.09183424711227417, - -0.02186865545809269, - -0.010243594646453857, - -0.009821622632443905, - 0.06321439146995544, - 0.015486910939216614, - -0.094960518181324, - -0.0489836111664772, - -0.03157009556889534, - 0.09099426120519638, - -0.05465199798345566, - 0.08221940696239471, - -0.010251532308757305, - -0.002859331201761961, - -0.020742878317832947, - 0.09719549119472504, - 0.014770818874239922, - -0.002966899424791336, - -0.1491774022579193, - 0.016540540382266045, - -0.011507555842399597, - -0.041758500039577484, - -0.011913072317838669, - -0.03303956612944603, - 0.08776313066482544, - -0.05534393712878227, - 0.25797709822654724, - -0.035402532666921616, - -0.0031294510699808598, - 0.021669873967766762, - -0.01666099950671196, - -0.01624421775341034, - -0.09684792160987854, - 0.02327868342399597, - -0.04336881637573242, - -0.04389289766550064, - 0.033377278596162796, - -0.055187713354825974, - 0.016704780980944633, - -0.060903940349817276, - -0.031769610941410065, - -0.006170641165226698, - -0.024130187928676605, - -0.017679067328572273, - 0.07215054333209991, - 0.033257413655519485, - 0.13254177570343018, - 0.03282080590724945, - -0.004464985802769661, - -0.0691111609339714, - 0.043918296694755554, - 0.043895985931158066, - -0.05652846023440361, - -0.09349068254232407, - 0.03303723782300949, - -0.06817124783992767, - 0.02479134313762188, - -0.009750026278197765, - 0.04632074013352394, - -0.02471969835460186, - -0.010353249497711658, - 0.0002455121430102736, - 0.006429740693420172, - -0.0350099578499794, - 0.008722949773073196, - 0.012774532660841942, - -0.014101661741733551, - -0.0018257418414577842, - 0.04185938835144043, - -0.09265238046646118, - -0.015043044462800026, - 0.03131382539868355, - -0.3438589572906494, - 0.00837924424558878, - 0.07065127044916153, - 0.01892484538257122, - 0.004929016809910536, - 0.0002715083828661591, - 0.0022399784065783024, - -0.0696132555603981, - -0.008553041145205498, - 0.00010577363718766719, - -0.061414722353219986, - -0.035506442189216614, - -0.04876989871263504, - 0.02558227628469467, - -0.023892752826213837, - 0.04169635474681854, - 0.011811519972980022, - 0.03421810269355774 - ], - [ - -0.00913184229284525, - 0.007592452224344015, - 0.0245829951018095, - 0.03371468931436539, - -0.0030692836735397577, - -0.0026904838159680367, - -0.0018967489013448358, - 0.035775911062955856, - 0.007037186995148659, - 0.002805911237373948, - -0.003548808628693223, - -0.01851843111217022, - 0.0071524945087730885, - 0.008030910044908524, - -0.034412141889333725, - -0.04796705022454262, - -0.015145301818847656, - -0.03542480245232582, - -0.025203440338373184, - -0.011771978810429573, - -0.08628154546022415, - 0.0037412745878100395, - -0.016539527103304863, - -0.026858272030949593, - -0.004650583025068045, - -0.02114066854119301, - 0.023956026881933212, - -0.018118731677532196, - -0.018179815262556076, - 0.015254381112754345, - -0.013179742731153965, - -0.009291167370975018, - -0.03932267427444458, - 0.00732680968940258, - 0.024186763912439346, - 0.006766366306692362, - 0.014583773910999298, - -0.002785277785733342, - 0.002879189094528556, - 0.027967171743512154, - 0.024468516930937767, - 0.027833960950374603, - 0.009392294101417065, - -0.01633606106042862, - 0.007946952246129513, - 0.038972098380327225, - 0.0018312711035832763, - 0.00921467412263155, - 0.003705650568008423, - 0.026189034804701805, - -0.009164922870695591, - 0.003712260629981756, - -0.024370666593313217, - 0.013079147785902023, - 0.014695254154503345, - -0.021385587751865387, - -0.0010073641315102577, - 0.011676250956952572, - -0.04426182061433792, - 0.029745014384388924, - -0.016305578872561455, - -0.0031899085734039545, - 0.018323179334402084, - 0.017097726464271545, - -0.04639105498790741, - -0.004850225988775492, - -0.011465411633253098, - -0.004244629759341478, - 0.013660356402397156, - 0.02749672345817089, - 0.041434671729803085, - 0.048845574259757996, - 0.03884866461157799, - 0.018972987309098244, - -0.021403109654784203, - -0.04077206179499626, - 0.03459326922893524, - -0.0015778932720422745, - -0.008440135046839714, - 0.07037770003080368, - 0.02966207079589367, - 0.00877603143453598, - -0.8334209322929382, - 0.015497159212827682, - -0.015114260837435722, - -0.010815492831170559, - 0.03641417622566223, - -0.014398491941392422, - -0.02083440311253071, - -0.01941666379570961, - -0.004903873894363642, - -0.002338266698643565, - -0.0011261316249147058, - 0.013212955556809902, - 0.013955262489616871, - 0.031168175861239433, - -0.015311434864997864, - -0.016497105360031128, - -0.004827144090086222, - -0.019826222211122513, - 0.019129374995827675, - -0.00827709585428238, - 0.02545819617807865, - 0.005739208310842514, - -0.034653183072805405, - -0.03323860839009285, - 0.016681626439094543, - 0.0018742871470749378, - 0.0014121650019660592, - -0.019626488909125328, - 0.013997727073729038, - 0.03775501623749733, - 0.012687566690146923, - 0.005942365620285273, - -0.008461449295282364, - 0.018946321681141853, - 0.01603291928768158, - -0.013014533556997776, - 0.012755350209772587, - 0.00925565417855978, - -0.04231899976730347, - -0.005831647664308548, - 0.0034687332808971405, - 0.019934790208935738, - 0.0562637597322464, - 0.005902131088078022, - -0.07175099104642868, - 0.03042803518474102, - 0.00572579400613904, - 0.04068174585700035, - 0.04252605140209198, - -0.05294463783502579, - 0.0005331383435986936, - -0.025658946484327316, - 0.04788774624466896, - 0.010064001195132732, - -0.02055303566157818, - -0.0037795475218445063, - 0.0069601284340023994, - -0.012939908541738987, - -0.0011666915379464626, - 0.008156638592481613, - 0.0005100860144011676, - -0.005953506100922823, - -0.02050280012190342, - -0.03143719956278801, - 0.01577247679233551, - -0.0253461766988039, - -0.017168423160910606, - 0.005351492203772068, - -0.004224342294037342, - 0.007486610673367977, - -0.011267643421888351, - -0.041653383523225784, - -0.010537806898355484, - 0.013184179551899433, - 0.0187655221670866, - -0.001960193272680044, - -0.016045095399022102, - 0.3445979356765747, - 0.012520642019808292, - 0.010883519425988197, - 0.007050624117255211, - 0.041683610528707504, - 0.05509680509567261, - 0.04537516459822655, - 0.020569464191794395, - -0.0353531688451767, - -0.0037894677370786667, - -0.0031923369970172644, - -0.0137947341427207, - 0.013249412178993225, - -0.04823325201869011, - -0.02355356141924858, - 0.010452295653522015, - 0.0020053342450410128, - -0.02457340806722641, - 0.046488407999277115, - 0.0015358689706772566, - 0.002542265458032489, - 2.4097817004076205e-05, - 0.0040011960081756115, - -0.017020415514707565, - -0.005103244911879301, - -0.11557283997535706, - 0.010665216483175755, - 0.013429072685539722, - -0.009891413152217865, - -0.004010501783341169, - -0.015121524222195148, - 0.013942385092377663, - -0.012904723174870014, - 0.11077233403921127, - -0.00941319577395916, - -0.0071642836555838585, - 0.010646327398717403, - -0.008072203025221825, - 0.0005441050743684173, - -0.036485783755779266, - 0.015311827883124352, - -0.014981771819293499, - -0.01169575471431017, - 0.016329802572727203, - 0.017483996227383614, - -0.010257983580231667, - -0.01750239171087742, - -0.014097500592470169, - -0.012344793416559696, - -0.006251705810427666, - 0.007337046321481466, - 0.021797340363264084, - 0.008457987569272518, - 0.05660298466682434, - 0.0020202749874442816, - -0.0059277089312672615, - -0.02815142460167408, - -0.001100413966923952, - 0.006041613407433033, - -0.005089946091175079, - -0.0819939374923706, - 0.017553530633449554, - -0.019919611513614655, - 0.001983660040423274, - -0.009461390785872936, - 0.007831726223230362, - -0.012308993376791477, - -0.00016044097719714046, - -0.0009764556889422238, - 0.007990770973265171, - -0.010061370208859444, - -0.0033767633140087128, - 0.036344077438116074, - 0.012829882092773914, - 0.008612691424787045, - 0.012020811438560486, - -0.034830737859010696, - -0.00027951967786066234, - 0.026207517832517624, - -0.1661386340856552, - 0.01600419171154499, - 0.03799274191260338, - 0.003162321401759982, - 0.011352417059242725, - -0.009045201353728771, - 0.02967129275202751, - -0.025348501279950142, - 0.010845260694622993, - 0.008939888328313828, - -0.00875591579824686, - -0.02826797030866146, - -0.035683050751686096, - 0.02220916748046875, - -0.0022737770341336727, - 0.01107762847095728, - -0.0007151819299906492, - 0.012311702594161034 - ], - [ - 0.018000151962041855, - -0.02445133402943611, - 0.025012299418449402, - 0.049372348934412, - 0.04841306805610657, - 0.014386585913598537, - -0.016955163329839706, - 0.06180918961763382, - -0.04584836587309837, - -0.02142016589641571, - -0.03206753730773926, - -0.012149257585406303, - 0.0033184820786118507, - 0.03545157238841057, - -0.06756026297807693, - -0.09866359829902649, - 0.012299269437789917, - -0.06499630957841873, - -0.005042501725256443, - -0.0013088686391711235, - -0.0680679976940155, - 0.04792221635580063, - -0.02207053452730179, - -0.07948128134012222, - 0.016062045469880104, - -0.02143733575940132, - 0.036192867904901505, - -0.0031466837972402573, - -0.015622037462890148, - 0.007208019960671663, - -0.013464097864925861, - -0.04657711461186409, - -0.03096252679824829, - 0.051698774099349976, - 0.015820855274796486, - 0.007485128007829189, - 0.00951979961246252, - 0.012463506311178207, - -0.010475962422788143, - 0.06418901681900024, - 0.05796941742300987, - 0.045703109353780746, - -0.03681706264615059, - -0.02350672520697117, - 0.03558290749788284, - 0.06465937197208405, - 0.0379449762403965, - 0.06116356700658798, - 0.004357210360467434, - 0.04207056388258934, - -0.027964478358626366, - 0.025692494586110115, - -0.008842515759170055, - -0.03232920914888382, - 0.03784093260765076, - -0.02781825140118599, - 0.004198057111352682, - 0.001895416178740561, - -0.0792127251625061, - 0.021072575822472572, - -0.04343273118138313, - 0.026773393154144287, - 0.002116579096764326, - 0.05353871360421181, - -0.01829526200890541, - -0.02785269170999527, - -0.05379105359315872, - -0.044389888644218445, - 0.053326528519392014, - -0.006369692739099264, - 0.055784355849027634, - 0.1763497143983841, - 0.04881725832819939, - -0.0052784825675189495, - -0.028011374175548553, - -0.0452599972486496, - 0.03702389821410179, - -0.029338086023926735, - -0.013568121008574963, - 0.11183495074510574, - 0.03954119607806206, - -0.034223295748233795, - -0.042532820254564285, - 0.003191806608811021, - -0.003954767715185881, - -0.055283062160015106, - 0.031105749309062958, - -0.013056357391178608, - -0.029992589727044106, - 0.022621506825089455, - -0.028762830421328545, - 0.009362987242639065, - 0.08420838415622711, - -0.031479429453611374, - 0.008110779337584972, - 0.062307193875312805, - -0.02020963467657566, - -0.022930068895220757, - 0.008267996832728386, - -0.015845391899347305, - 0.02531435713171959, - -0.019563106819987297, - 0.08654115349054337, - -0.015216168016195297, - -0.05823772773146629, - -0.07009109109640121, - 0.009531412273645401, - 0.006990747060626745, - -0.022350095212459564, - -0.04225541278719902, - 0.01449392270296812, - 0.06677395850419998, - 0.01453747320920229, - 0.018488403409719467, - -0.047527819871902466, - -0.0052985213696956635, - 0.014714465476572514, - -0.01500281598418951, - -0.01619875617325306, - 0.042654361575841904, - -0.026082294061779976, - 0.008251735009253025, - 0.019476279616355896, - 0.03274655342102051, - 0.09837404638528824, - -0.004959873389452696, - -0.5887598395347595, - 0.019922109320759773, - -0.017480159178376198, - 0.021628744900226593, - 0.059174586087465286, - -0.08225208520889282, - 0.01660219393670559, - -0.0056504737585783005, - 0.03053685836493969, - 0.018799422308802605, - -0.0015595945296809077, - 0.0005252975388430059, - 0.018258078023791313, - -0.0188705176115036, - 0.021255360916256905, - -0.01680726185441017, - 0.018750231713056564, - -0.03286837413907051, - -0.014439941383898258, - -0.025759268552064896, - -0.020401012152433395, - -0.041937775909900665, - -0.021647201851010323, - -0.019000064581632614, - -0.021015062928199768, - -0.03292056545615196, - -0.022142993286252022, - -0.03299881890416145, - -0.019257260486483574, - 0.0069711292162537575, - 0.06178423389792442, - -0.017527876421809196, - -0.019943542778491974, - 0.2984035909175873, - -0.0285087451338768, - -0.0034289034083485603, - 0.05012207105755806, - 0.08561194688081741, - 0.03616897016763687, - -0.07807119190692902, - 0.035616856068372726, - -0.026408974081277847, - -0.014567989856004715, - 0.013184252195060253, - 0.003701733658090234, - -0.021120984107255936, - -0.00547237042337656, - -0.0806143507361412, - 0.04356518015265465, - -0.03358389064669609, - -0.049108460545539856, - 0.031155884265899658, - -0.001327992184087634, - -0.038316406309604645, - 0.02855922281742096, - -0.00787115003913641, - -0.017928699031472206, - -0.03251436725258827, - -0.16031281650066376, - 0.016524743288755417, - -0.030012501403689384, - 0.0006216746405698359, - -0.033905766904354095, - 0.012207308784127235, - -0.012217224575579166, - -0.048830680549144745, - 0.21952366828918457, - 0.02980349399149418, - 0.012611575424671173, - 0.06290823966264725, - 0.0248245932161808, - -0.0017319358885288239, - -0.04997050017118454, - -0.005682298447936773, - -0.015716342255473137, - 0.00324350968003273, - -0.003471441101282835, - 0.043121159076690674, - 0.014988820999860764, - -0.04975247010588646, - -0.05807619169354439, - 0.000850767595693469, - -0.019221045076847076, - -0.047877680510282516, - 0.03235747292637825, - -0.024671338498592377, - 0.1258028745651245, - -0.027033070102334023, - -0.009877285920083523, - 0.002299640793353319, - -0.001398111809976399, - 0.036679986864328384, - -0.016918502748012543, - -0.08590710908174515, - 0.02152608335018158, - -0.03905857354402542, - -0.009160459972918034, - 0.0021539872977882624, - 0.00457409443333745, - -2.0967781892977655e-05, - 0.006873773410916328, - 0.016098683699965477, - -0.0011183754540979862, - 0.007211450487375259, - 0.01271419320255518, - 0.049343861639499664, - 0.01641744188964367, - -0.029377546161413193, - 0.024938711896538734, - -0.0012457469711080194, - -0.02421872317790985, - 0.03398112580180168, - -0.35202756524086, - 0.018865123391151428, - 0.04009460285305977, - -0.0296604186296463, - -0.013153886422514915, - -0.009623994119465351, - 0.017145628109574318, - 0.011641795746982098, - 0.003057698253542185, - 0.03370577469468117, - 0.034643396735191345, - 0.01910819485783577, - -0.07423228025436401, - 0.03806539624929428, - 0.03070196509361267, - 0.006956357043236494, - 0.009052392095327377, - 0.0002797654888126999 - ], - [ - -0.0001522291568107903, - 0.0018904299940913916, - 4.90369311592076e-05, - 0.0018201302736997604, - -0.0011668213410302997, - 1.99827609321801e-05, - -0.0007351411040872335, - 0.0015465699834749103, - 0.0012953004334121943, - 0.0008189555373974144, - -0.0020064241252839565, - -0.00012175340816611424, - 0.00043657911010086536, - -0.0006781877600587904, - -0.0012605527881532907, - 0.006720105651766062, - 1.4448979527514894e-05, - -0.003804024076089263, - -0.004218941554427147, - 0.00214706570841372, - -0.009273701347410679, - 0.0032719811424613, - -0.001275487244129181, - -0.0018248273991048336, - -0.0008445397252216935, - -0.0022651157341897488, - 0.0011754551669582725, - -0.00033899355912581086, - -0.0008351092110387981, - 0.0005548626068048179, - 0.00046135036973282695, - 0.0014205719344317913, - 0.00022713796352036297, - -0.0004458555777091533, - 0.0010639602551236749, - 0.0013607761356979609, - 0.0022715339437127113, - 0.0008766789687797427, - 0.00044307741336524487, - 0.00030438051908276975, - 0.00014724174980074167, - 0.0019344099564477801, - 0.0002266055380459875, - 0.000751840474549681, - -0.002331771422177553, - -0.00048773371963761747, - 0.0014963318826630712, - -0.000674096227157861, - 0.0009601901401765645, - 0.00222516106441617, - -0.00220440118573606, - 0.008924509398639202, - 4.2261293856427073e-05, - -0.0007400549366138875, - -0.002496257657185197, - -0.0023023909889161587, - 0.00034885661443695426, - -0.0007174471975304186, - -0.007873080670833588, - 0.0008568944758735597, - 0.00012425714521668851, - -0.002508079167455435, - -0.00023111685004550964, - 0.0029073453042656183, - -0.004738088231533766, - 0.002152149798348546, - -0.009766400791704655, - 0.0026480548549443483, - -0.0006674091564491391, - -0.001025261590257287, - -0.0008800668292678893, - -0.07314158231019974, - 0.0036341373343020678, - 0.004862745758146048, - -0.0007145219715312123, - 0.0007333635003305972, - 0.0019190696766600013, - 0.0017286534421145916, - -0.0015805847942829132, - 0.0040382202714681625, - 0.0004229532787576318, - -0.0002058646350633353, - -0.9187302589416504, - -0.0005958899855613708, - -0.004606536123901606, - 0.002452023094519973, - 0.002522487426176667, - 0.0004690667847171426, - -0.00017471032333560288, - 0.00353279709815979, - 0.0005741271306760609, - 0.0023553515784442425, - 0.003970753401517868, - -5.747138402512064e-06, - 0.0023133663926273584, - 0.0035124567802995443, - 0.00013889020192436874, - -0.002758104121312499, - 0.0029360391199588776, - -0.0017965142615139484, - 0.0019159751245751977, - 0.0007504183449782431, - 0.000896463927347213, - 0.0015250708675011992, - 0.0030559657607227564, - -0.00014948098396416754, - -0.0026024586986750364, - 0.0017077189404517412, - -0.0021342227701097727, - -0.001177433063276112, - 0.007488876581192017, - 0.0034727738238871098, - -0.000937851145863533, - 0.001248706947080791, - 0.0014359828783199191, - 0.003509874688461423, - -0.0013367870124056935, - 0.0002620742889121175, - -5.991172292851843e-05, - 0.0010097904596477747, - -0.0022374263498932123, - -0.0024142106994986534, - -0.0018196344608440995, - 0.0022940405178815126, - -0.0019153091125190258, - -0.0015043368330225348, - 0.28175726532936096, - 0.000803736736997962, - 0.0004955088952556252, - 0.0009312593028880656, - 0.0006086823414079845, - 0.0021395699586719275, - 0.0006990452529862523, - -0.0006111454567871988, - -5.5719719966873527e-05, - 0.002353508025407791, - -0.0028684595599770546, - 0.0005348839913494885, - -0.0016725955065339804, - 0.0002609063812997192, - 0.0015487032942473888, - -0.00016041754861362278, - -0.002251178491860628, - -0.0009986382210627198, - -0.0009542489424347878, - -0.0059906356036663055, - 0.0006038125138729811, - 0.00010792479588417336, - -0.0002916361263487488, - 0.000890341296326369, - -0.0014922365080565214, - -0.005618310999125242, - -0.0016097219195216894, - -0.00552759924903512, - -0.002006362657994032, - 0.000600374594796449, - 0.0017008326249197125, - -0.0011645915219560266, - 0.0005189960938878357, - 0.20542727410793304, - -0.0009502883767709136, - 0.0008251680410467088, - 0.0007818067097105086, - 0.0030281373765319586, - 0.010772786103188992, - 0.09311800450086594, - 0.002721052384003997, - -0.0039929891936481, - 0.0007262968574650586, - 0.0011520521948114038, - -0.005142237991094589, - 0.002138936659321189, - -0.0025330421049147844, - 0.0008842833922244608, - -0.002440415322780609, - -0.0014384833630174398, - -0.00010768373613245785, - 0.006383348256349564, - -0.00010438426397740841, - 0.00494810938835144, - -0.0008378008496947587, - 0.0015091791283339262, - -0.00022936484310775995, - -0.0004584851849358529, - -0.006260489113628864, - -0.00039529125206172466, - 0.0002736911701504141, - -0.0024246731773018837, - 0.0004248686309438199, - -0.00017221049347426742, - 0.0019442650955170393, - -3.3833097404567525e-05, - -0.05860326439142227, - -0.00434132618829608, - 0.005626960191875696, - -0.001829346758313477, - 0.0007549200672656298, - 0.0005503532593138516, - -0.000736385234631598, - 0.0026906465645879507, - -0.001346900942735374, - -0.0030993379186838865, - 0.0029907606076449156, - -0.0013229257892817259, - 0.00034143123775720596, - 0.006125800311565399, - -0.0003450385411269963, - -0.002233112696558237, - -0.0008029990713112056, - 0.00011992188228759915, - 0.0008222186588682234, - -0.0008584167808294296, - -0.05257202684879303, - 0.0006682072998955846, - -0.0015227979747578502, - -0.0009258793434128165, - -0.0017003326211124659, - 0.0009138498571701348, - 0.0035563213750720024, - -0.010484311729669571, - 0.0008509350591339171, - 0.00012095169950043783, - 0.0005791937001049519, - -0.0004917496116831899, - 0.00027101600426249206, - 0.0003145518421661109, - -0.0006525287171825767, - 0.0011417609639465809, - 0.001430532312951982, - -0.0006445823819376528, - 0.0010132241295650601, - 0.0037804197054356337, - 0.001682259258814156, - 0.0001245265593752265, - 0.000580105057451874, - -0.002814156236127019, - -0.004422743804752827, - 0.00240190327167511, - 0.11140616983175278, - 0.0007535959011875093, - 0.003265511943027377, - 0.0008096467354334891, - 7.991948223207146e-05, - -0.0035525669809430838, - -0.0008274202118627727, - -0.001686057890765369, - 0.004997896961867809, - 0.0006791924242861569, - -0.0008140015415847301, - -0.0023807804100215435, - -0.0014536482049152255, - 0.001212666044011712, - -0.0015198398614302278, - 0.0018409533658996224, - -0.0020800153724849224, - -2.7093983590020798e-05 - ], - [ - -0.021170353516936302, - 0.0069467611610889435, - 0.043927427381277084, - 0.05165665224194527, - -0.004129004664719105, - -0.009306173771619797, - 0.0060124811716377735, - 0.050358161330223083, - 0.014241187833249569, - -0.001304302946664393, - -0.012029671110212803, - -0.020511314272880554, - 0.0039261323399841785, - 0.014519304037094116, - -0.056508202105760574, - -0.05646872520446777, - -0.026776669546961784, - -0.05070304870605469, - -0.023102769628167152, - -0.008203878998756409, - -0.12270846962928772, - 0.010640822350978851, - -0.01856696791946888, - -0.04267709329724312, - 0.0001857452152762562, - -0.03622043877840042, - 0.032966844737529755, - -0.040019888430833817, - -0.022845763713121414, - 0.016825057566165924, - -0.0117220813408494, - -0.017066137865185738, - -0.03866785019636154, - 0.021489322185516357, - 0.025407979264855385, - 0.019464820623397827, - 0.018395107239484787, - -0.005743726622313261, - 0.011002704501152039, - 0.042303700000047684, - 0.03790609911084175, - 0.03874104470014572, - 0.0042486186139285564, - -0.027563003823161125, - 0.018627071753144264, - 0.05974854156374931, - -0.005607098340988159, - 0.008119193837046623, - -0.0015647230902686715, - 0.039534278213977814, - -0.012348780408501625, - -0.01583906263113022, - -0.03156813606619835, - 0.028269082307815552, - 0.03674040362238884, - -0.03960433229804039, - -0.003543517319485545, - 0.00782572291791439, - -0.0639648288488388, - 0.05626939237117767, - -0.02851642481982708, - -0.0059743314050138, - 0.021845296025276184, - 0.02877970039844513, - -0.06972707062959671, - 0.001812306116335094, - -0.015856174752116203, - -0.005881729535758495, - 0.02108178660273552, - 0.03970403969287872, - 0.06728764623403549, - 0.201471745967865, - 0.052490707486867905, - 0.025948017835617065, - -0.02539358101785183, - -0.04669206589460373, - 0.05709704011678696, - -0.018626544624567032, - -0.004478521645069122, - 0.1058448925614357, - 0.03832843527197838, - 0.015949023887515068, - 0.024338576942682266, - 0.008250529877841473, - -0.010914383456110954, - -0.03355240076780319, - 0.05269854888319969, - -0.021065959706902504, - -0.03739484027028084, - -0.028644399717450142, - -0.009064669720828533, - -0.010172557085752487, - -0.009892905130982399, - 0.017413927242159843, - 0.010224845260381699, - 0.038431692868471146, - -0.029630562290549278, - -0.016353914514183998, - 0.0014511793851852417, - -0.030149292200803757, - 0.025720003992319107, - -0.012723982334136963, - 0.048375073820352554, - 0.004008717834949493, - -0.07337091863155365, - -0.04567854851484299, - 0.02726578153669834, - 0.006712738890200853, - -0.0011131976498290896, - -0.025232186540961266, - -0.0045550065115094185, - 0.06052911654114723, - 0.030673542991280556, - 0.004500578157603741, - -0.011217654682695866, - 0.02483952045440674, - 0.030820980668067932, - -0.01721968688070774, - 0.019670972600579262, - 0.017283480614423752, - -0.06448029726743698, - -0.0036441527772694826, - 0.005062195472419262, - 0.020338434725999832, - 0.09079024940729141, - 0.018392013385891914, - -0.5210726857185364, - 0.047675829380750656, - 0.00871629361063242, - 0.05555839464068413, - 0.061549581587314606, - -0.08151127398014069, - 0.0018600551411509514, - -0.03397230803966522, - 0.06851352751255035, - 0.009374956600368023, - -0.007882804609835148, - -0.012245955877006054, - 0.02202073112130165, - -0.02096526138484478, - -0.0003725476562976837, - 0.015570616349577904, - -0.0010387141956016421, - -0.00041657601832412183, - -0.01680954359471798, - -0.04424062371253967, - 0.01919829472899437, - -0.037346187978982925, - -0.022710494697093964, - 0.006911868695169687, - 0.0007049203850328922, - 0.009353091940283775, - -0.017570670694112778, - -0.06691761314868927, - -0.010205765254795551, - 0.03137725219130516, - 0.0269317664206028, - 0.009306792169809341, - -0.02065570279955864, - 0.2500839829444885, - 0.01360390055924654, - 0.012596802785992622, - -0.00038743484765291214, - 0.03844122588634491, - 0.08258295804262161, - -0.07398027181625366, - 0.026179052889347076, - -0.03804700821638107, - -0.003785852575674653, - -0.0007047352264635265, - -0.009664827026426792, - 0.013660978525876999, - -0.07755783200263977, - -0.041215963661670685, - 0.026563774794340134, - 0.0018075387924909592, - -0.02693694271147251, - 0.054350048303604126, - 0.011590720154345036, - -0.006687727756798267, - 0.0004083892854396254, - 0.005202667787671089, - -0.02928263694047928, - -0.018155118450522423, - -0.16982872784137726, - 0.01008401159197092, - 0.020034309476614, - -0.0031707778107374907, - -0.00981565099209547, - -0.015750741586089134, - 0.012856232933700085, - -0.01886061392724514, - 0.2706933319568634, - -0.0038197829853743315, - -0.019502609968185425, - 0.015235936269164085, - -0.019899047911167145, - 0.00905782263725996, - -0.04680921882390976, - 0.012320704758167267, - -0.013710405677556992, - -0.009519343264400959, - 0.01511599775403738, - 0.03690179064869881, - -0.017789430916309357, - -0.03775682672858238, - -0.016914870589971542, - -0.013139655813574791, - -0.0017127164173871279, - 0.005029293708503246, - 0.031221771612763405, - 0.0058566490188241005, - 0.17576293647289276, - 0.007058347575366497, - -0.007470372598618269, - -0.03577722981572151, - -0.0008703481289558113, - 0.011657465249300003, - -0.01632360741496086, - -0.11365416646003723, - 0.018554508686065674, - -0.02449585124850273, - 0.004220222122967243, - -0.008826825767755508, - 0.005817051976919174, - -0.015330911614000797, - -0.0057847467251122, - -0.0071260398253798485, - 0.00467462046071887, - -0.011288698762655258, - -0.002075202763080597, - 0.06119237467646599, - 0.012961547821760178, - 0.01123049482703209, - 0.011605637148022652, - -0.041726332157850266, - 0.0035122560802847147, - 0.03944523259997368, - -0.4778936207294464, - 0.024399640038609505, - 0.05233962833881378, - 0.0013523418456315994, - 0.02340223453938961, - -0.005813748110085726, - 0.04930669069290161, - -0.04190918803215027, - 0.011890088208019733, - 0.013289961963891983, - -0.0012306231074035168, - -0.04954400286078453, - -0.05450640991330147, - 0.03735104948282242, - 0.0032595780212432146, - 0.020408911630511284, - 0.010759863071143627, - 0.00848221406340599 - ], - [ - 0.0005039946408942342, - 0.0004880826745647937, - -0.0005908705061301589, - 0.001658304943703115, - 1.5227422409225255e-05, - 0.0005836808704771101, - -0.0012937381397932768, - 0.001861377153545618, - 0.0013145479606464505, - 0.0013109500287100673, - -0.002904169959947467, - -0.00021083216415718198, - 0.0004060875508002937, - -0.0017410952132195234, - -0.001169281080365181, - 0.005880494602024555, - 0.00010726153413997963, - -0.005060025490820408, - -0.0038598375394940376, - 0.0015225934330374002, - -0.009344832971692085, - 0.004212396685034037, - -0.00137697986792773, - -0.0026596575044095516, - -0.00029175891540944576, - -0.002121063880622387, - 0.0008000208763405681, - 0.0008314120932482183, - -0.000325786997564137, - -0.0008758326293900609, - 0.0004803093906957656, - 0.0014288442907854915, - -0.0004882465582340956, - 0.0006907216156832874, - 0.0022630877792835236, - 0.0007357297581620514, - 0.0023704534396529198, - 0.0010240457486361265, - 0.0006343721179291606, - 0.0012787627056241035, - 0.0005860968376509845, - 0.0031033519189804792, - -2.3284808776224963e-05, - 0.00026799849001690745, - -0.0022282178979367018, - -0.000862898537889123, - 0.0021300113294273615, - 0.0009130302350968122, - 0.001172441989183426, - 0.0027966692578047514, - -0.001962166978046298, - 0.009736376814544201, - 0.000100341894722078, - -0.0017252258257940412, - -0.00272677605971694, - -0.002869904274120927, - 0.000529411481693387, - -0.0011034957133233547, - -0.00848541222512722, - 0.00023602308647241443, - 8.113119838526472e-05, - -0.002327374881133437, - -0.0011741179041564465, - 0.003391302889212966, - -0.004494220018386841, - 0.0008029440650716424, - -0.011278698220849037, - 0.002482224488630891, - -0.00015673655434511602, - -0.0023879711516201496, - -0.0008565307944081724, - -0.07208864390850067, - 0.004311813041567802, - 0.0033200441394001245, - -0.0008188631618395448, - 0.00014271930558606982, - 0.0024005775339901447, - 0.0018890543142333627, - -0.0014514591312035918, - 0.004707314074039459, - 0.0002743799122981727, - -0.0005618628347292542, - -0.9196372628211975, - 8.38851192384027e-05, - -0.005283182021230459, - 0.0018072925740852952, - 0.002522552851587534, - 0.001018655952066183, - -0.00026541034458205104, - 0.0053249835036695, - -7.100161019479856e-05, - 0.0027438034303486347, - 0.0052644056268036366, - -0.0008706174558028579, - 0.0021301181986927986, - 0.004333523567765951, - -1.1874943993461784e-05, - -0.003989462740719318, - 0.0038304156623780727, - -0.0014256343711167574, - 0.0014623430324718356, - 0.0015406952006742358, - 0.0020274699199944735, - 0.0011041666148230433, - 0.003438335144892335, - -0.0017807682743296027, - -0.0029063276015222073, - 0.002098167547956109, - -0.002635488286614418, - -0.0017614231910556555, - 0.00764137739315629, - 0.004610138479620218, - -0.0013085388345643878, - 0.00149819056969136, - 0.000859589024912566, - 0.0031761620193719864, - -0.0017077517695724964, - 0.0005243094637989998, - -0.0009635953465476632, - 0.002329082926735282, - -0.0015506102936342359, - -0.003229917958378792, - -0.0016301412833854556, - 0.0035015419125556946, - -0.002245299518108368, - -0.002492741448804736, - 0.2776808738708496, - 0.0012167992535978556, - 0.0006326970760710537, - 0.00011771045683417469, - 0.0011892736656591296, - 0.002140684751793742, - 0.0008442031103186309, - 1.032373165799072e-05, - -0.00012024698662571609, - 0.002666256157681346, - -0.0037379872519522905, - -0.00039578162250109017, - -0.00244274758733809, - 0.00016841813339851797, - 0.0015394958900287747, - -0.0011561141582205892, - -0.002115241251885891, - -0.0020417238119989634, - -0.0016295664245262742, - -0.0061637284234166145, - 0.0013402258045971394, - -0.0009507364011369646, - -0.0005085568409413099, - -0.00016754152602516115, - -0.0014334425795823336, - -0.007087289821356535, - -0.0015238565392792225, - -0.00553301814943552, - -0.0024161215405911207, - 0.0004526559787336737, - 0.0024377175141125917, - -0.0018590028630569577, - -0.00040065846405923367, - 0.20846977829933167, - -0.0017623365856707096, - 0.001559715485200286, - 0.0016420664032921195, - 0.004623498301953077, - 0.010123668238520622, - 0.09201037138700485, - 0.003487258218228817, - -0.004402149934321642, - 0.0001190969196613878, - 0.0006493768887594342, - -0.005653887987136841, - 0.0022468639072030783, - -0.0010751151712611318, - 7.48232050682418e-05, - -0.0017951689660549164, - -0.0011667372891679406, - -0.00025215247296728194, - 0.006778615992516279, - -0.00104057346470654, - 0.005205833353102207, - -0.0004251444770488888, - 0.001728351810015738, - 0.00041796787991188467, - -0.0004899572231806815, - -0.006989611312747002, - -2.656253673194442e-05, - -0.0013827334623783827, - -0.0015322022372856736, - -0.00035894589382223785, - 0.00025195584748871624, - 0.0016041803173720837, - -0.0017292129341512918, - -0.05765068531036377, - -0.003650520695373416, - 0.0058884150348603725, - -0.0010162665275856853, - 0.001565494341775775, - 0.0009820460109040141, - -0.0009553426061756909, - 0.002449893858283758, - -0.0021608842071145773, - -0.0033866101875901222, - 0.004031391814351082, - -0.0007536042830906808, - 0.0016896105371415615, - 0.005695159547030926, - -0.001702936366200447, - -0.000811650650575757, - -0.000928059802390635, - -0.0006370331975631416, - 0.0006174873560667038, - -0.001863566692918539, - -0.0521070770919323, - 0.0008868305594660342, - -0.0013336878037080169, - -0.0012430085334926844, - -0.0019241463160142303, - 0.0014614496612921357, - 0.004954855423420668, - -0.011200524866580963, - 0.0008838529465720057, - -8.730152330826968e-06, - 0.00031360521097667515, - 7.455503509845585e-05, - 0.0002196784334955737, - 0.000554868602193892, - -0.0005123353912495077, - 0.0018926538759842515, - 0.0016098562628030777, - 0.0004973832983523607, - 0.001837663701735437, - 0.003885256825014949, - 0.002206232398748398, - -0.0004606580187100917, - 0.0008761431672610343, - -0.002490362385287881, - -0.0050938804633915424, - 0.002953709103167057, - 0.10927210003137589, - 0.0004348072980064899, - 0.002697909716516733, - 0.001265534432604909, - -0.0010379917221143842, - -0.004022880923002958, - -0.0008600323344580829, - -0.0012507075443863869, - 0.006154820788651705, - 0.0005034826463088393, - -0.001305936835706234, - -0.0013882003258913755, - -0.00366219412535429, - 0.0015440639108419418, - -0.0006846662727184594, - 0.0028607582207769156, - -0.0017567971954122186, - -0.0005758663755841553 - ], - [ - 0.0002196719142375514, - 0.0019307845504954457, - 0.0004515426990110427, - 0.0009640547214075923, - -0.0009738686494529247, - 0.0001351361133856699, - -0.00024345144629478455, - 0.00014321379421744496, - 0.0019561066292226315, - 0.001161000458523631, - -0.002105270279571414, - 0.0011556405806913972, - 0.0006274957559071481, - -0.0014747220557183027, - -0.0010619143722578883, - 0.006308816373348236, - -0.00018158720922656357, - -0.0037826320622116327, - -0.003898371011018753, - 0.002330911112949252, - -0.00817133765667677, - 0.004065774846822023, - -0.0006063691689632833, - -0.0014875599881634116, - -0.0008718934841454029, - -0.0031915479339659214, - 0.001330425264313817, - -0.0004536645137704909, - -0.0005081826238892972, - 0.000451913132565096, - 0.0009030192159116268, - 0.0018658533226698637, - 0.00041813947609625757, - -0.0007393974810838699, - 0.0011069192551076412, - 0.001944706542417407, - 0.0018246087711304426, - 0.000784735195338726, - 0.0005595859838649631, - -0.0008329689735546708, - -0.00047006033128127456, - 0.0023760823532938957, - 0.00025482490309514105, - 0.0011420896044000983, - -0.002411107299849391, - -0.00037696451181545854, - 0.0012488928623497486, - -0.0008317087194882333, - 0.00039078883128240705, - 0.0021335931960493326, - -0.002622611355036497, - 0.008323377929627895, - 0.00047690726933069527, - -0.0003417984116822481, - -0.0025716826785355806, - -0.0024114088155329227, - 0.00066127855097875, - -0.000652256712783128, - -0.00795766618102789, - 0.0006460493896156549, - 0.0001430118572898209, - -0.0024669019039720297, - -0.0012438661651685834, - 0.002266034483909607, - -0.004832349717617035, - 0.0020893211476504803, - -0.009987578727304935, - 0.004098532721400261, - -0.0005669309175573289, - -0.0020586897153407335, - -0.0013568655122071505, - -0.07328344881534576, - 0.0031845695339143276, - 0.005486646201461554, - -0.00030660192715004086, - 0.0010996275814250112, - 0.0014862564858049154, - 0.0022932286374270916, - -0.0013219972606748343, - 0.002938852645456791, - -0.0004954179166816175, - -6.671099254162982e-05, - -0.918552041053772, - -0.0004973450559191406, - -0.005265142302960157, - 0.002790705533698201, - 0.001489330898039043, - 0.0011804954847320914, - -0.0007115753833204508, - 0.003916407935321331, - 0.00045544584281742573, - 0.002350896829739213, - 0.004620293155312538, - 0.00028683061827905476, - 0.0019586344715207815, - 0.0031463594641536474, - 0.0007777088321745396, - -0.0024691929575055838, - 0.0035210622008889914, - -0.001549716223962605, - 0.001964063383638859, - 0.0010381514439359307, - 0.0005422736867330968, - 0.0005325655802153051, - 0.002671975875273347, - 0.0008618351421318948, - -0.003422895912081003, - 0.0017009929288178682, - -0.002118306001648307, - -0.0010609180899336934, - 0.00716359680518508, - 0.0033367550931870937, - -0.0006554172141477466, - 0.001250050263479352, - 0.001926387776620686, - 0.0033465013839304447, - -0.0018226765096187592, - 0.0007610913598909974, - 1.8716538761509582e-05, - 0.0008621802553534508, - -0.0007476164610125124, - -0.002644105814397335, - -0.0019998783245682716, - 0.002611055737361312, - -0.002780579263344407, - -0.0013982222881168127, - 0.2819099724292755, - 0.0012647551484405994, - 0.0006358616519719362, - 0.00035375345032662153, - -0.00015900636208243668, - 0.001960070338100195, - 0.0012750771129503846, - -0.0006673596217297018, - -0.001280276570469141, - 0.0019194392953068018, - -0.0020896908827126026, - 0.00024509435752406716, - -0.0017538010142743587, - 8.869767043506727e-05, - 0.0016681968700140715, - -0.00037238653749227524, - -0.0020708530209958553, - -0.0012176587479189038, - -0.0006614130106754601, - -0.005746719893068075, - 0.0004002133500762284, - 2.7031601348426193e-05, - -3.3170108508784324e-05, - 0.0008152827504090965, - -0.001802964718081057, - -0.005968851502984762, - -0.0022099248599261045, - -0.005225485190749168, - -0.0019646710716187954, - 0.000707126862835139, - 0.0018045388860628009, - -7.316243136301637e-05, - 0.001122546149417758, - 0.2053391933441162, - -0.001623941003344953, - 0.0011921186232939363, - 0.00046758976532146335, - 0.002188333310186863, - 0.010465255007147789, - 0.09303916245698929, - 0.0027788688894361258, - -0.003916280344128609, - 0.00112414569593966, - 0.0018049535574391484, - -0.004471722524613142, - 0.0016329140635207295, - -0.0018923319876194, - 0.0019313899101689458, - -0.0028911400586366653, - -0.001824956969358027, - 0.00023867300478741527, - 0.006060842890292406, - -0.00012380116095300764, - 0.005241464823484421, - -0.0008847728604450822, - 0.002093910938128829, - 0.00013287056935951114, - -0.0007519947248511016, - -0.005643881857395172, - -0.001083907438442111, - 0.00039292912697419524, - -0.0017587423790246248, - 0.0009918882278725505, - 8.448595326626673e-05, - 0.0016820762539282441, - -0.00024768084404058754, - -0.059265658259391785, - -0.005324325989931822, - 0.005405943840742111, - -0.0019178888760507107, - 0.0012976268772035837, - 0.00037660193629562855, - 4.406329753692262e-05, - 0.0017187900375574827, - -0.001385043142363429, - -0.003273636568337679, - 0.0035046839620918036, - -0.001988797914236784, - 0.0005800861981697381, - 0.006191556807607412, - -0.0004890934797003865, - -0.002381557133048773, - 3.233892857679166e-05, - -0.00026503283879719675, - 0.0010479618795216084, - -0.0015806129667907953, - -0.052984222769737244, - 0.0009893178939819336, - -0.0013075508177280426, - -0.0007252976065501571, - -0.001903624041005969, - 0.0009649349376559258, - 0.0044134268537163734, - -0.009940055198967457, - 0.0007584788836538792, - 0.00036997071583755314, - 0.0005036873044446111, - -9.474400576436892e-05, - 0.00014534675574395806, - 0.0007187986630015075, - -0.001171309151686728, - 0.0013260904233902693, - 0.0009460891014896333, - -0.00035473096068017185, - 0.0015913053648546338, - 0.0033365958370268345, - 0.0019583238754421473, - -0.0005119161796756089, - 0.00021771872707176954, - -0.003468937473371625, - -0.004517355002462864, - 0.0021163099445402622, - 0.1121026873588562, - 0.000707771978341043, - 0.0028090092819184065, - 0.0010694608790799975, - -0.0006191725842654705, - -0.0034957281313836575, - -0.0015620734775438905, - -0.0016527563566341996, - 0.004942499566823244, - 0.0007595136412419379, - -0.0012004802701994777, - -0.00205785408616066, - -0.0009677467751316726, - 0.001031577936373651, - -0.0014662924222648144, - 0.0018463812302798033, - -0.0021122952457517385, - -1.229592180607142e-05 - ], - [ - 0.02001749351620674, - -0.038089316338300705, - 0.013785314746201038, - 0.024171052500605583, - 0.05506736785173416, - 0.022997014224529266, - -0.015524701215326786, - 0.05578826740384102, - -0.04025598615407944, - -0.014257455244660378, - -0.061999741941690445, - 0.008622352965176105, - -0.012956375256180763, - 0.01477936189621687, - -0.06321997195482254, - -0.03724357485771179, - 0.009422198869287968, - -0.08920881152153015, - 0.003644695971161127, - 0.016013318672776222, - -0.0677637979388237, - 0.06516091525554657, - -0.021208370104432106, - -0.08859271556138992, - 0.031232645735144615, - -0.036221906542778015, - 0.008555284701287746, - 0.01705113798379898, - 0.01278748456388712, - -0.02549801580607891, - -0.024357585236430168, - -0.05339090898633003, - -0.03142451122403145, - 0.07678044587373734, - 0.01313692331314087, - 0.00224767392501235, - 0.0028024972416460514, - 0.013489048928022385, - 0.014597865752875805, - 0.09415189921855927, - 0.04491264373064041, - 0.04725883528590202, - -0.05191325396299362, - -0.02339256927371025, - 0.03863558545708656, - 0.029684891924262047, - 0.03511085733771324, - 0.0702485740184784, - -0.012844020500779152, - 0.04818418622016907, - -0.027882661670446396, - 0.031011847779154778, - -0.007425288669764996, - -0.036451760679483414, - 0.06457340717315674, - -0.037716809660196304, - 0.0038487755227833986, - 0.01562797650694847, - -0.07907553017139435, - 0.008801976218819618, - -0.04135671257972717, - 0.012790769338607788, - -0.021023213863372803, - 0.04589447006583214, - 0.010573283769190311, - -0.043167322874069214, - -0.05075014382600784, - -0.043251242488622665, - 0.050768181681632996, - -0.047133516520261765, - 0.0562007874250412, - 0.1613503247499466, - 0.05275745689868927, - -0.03131202235817909, - -0.026606889441609383, - -0.01488280575722456, - 0.020816421136260033, - -0.004950048867613077, - -0.02153904363512993, - 0.09839390963315964, - 0.025229591876268387, - -0.045191917568445206, - -0.2764941155910492, - 0.0076553430408239365, - -0.023964274674654007, - -0.04942237213253975, - 0.045804720371961594, - 0.0029189232736825943, - -0.03575070947408676, - 0.07097161561250687, - -0.032515645027160645, - 0.00927684921771288, - 0.017105240374803543, - -0.03057219088077545, - -0.010902532376348972, - 0.06742554903030396, - -0.03061203844845295, - -0.04434831067919731, - 0.03736339882016182, - -0.002636744873598218, - 0.026638714596629143, - -0.0078001911751925945, - 0.0883963406085968, - -0.020378416404128075, - -0.05847838893532753, - -0.08563531190156937, - 0.0013393968110904098, - 0.010327047668397427, - -0.030055712908506393, - -0.057035867124795914, - -0.021370476111769676, - 0.06925859302282333, - 0.011022510938346386, - 0.023204676806926727, - -0.019467800855636597, - -0.01506452914327383, - 0.012022130191326141, - -0.006728538312017918, - -0.02631419152021408, - 0.06625790894031525, - -0.01760818250477314, - 0.008049079217016697, - 0.015056110918521881, - 0.061952006071805954, - 0.06863044947385788, - -0.00805732887238264, - -0.43447932600975037, - 0.028201673179864883, - -0.015796400606632233, - 0.008389602415263653, - 0.06459040939807892, - -0.06884678453207016, - 0.010649612173438072, - 0.026660246774554253, - 0.03258449584245682, - 0.029005268588662148, - 0.01362064853310585, - -0.01761237345635891, - 0.012356174178421497, - -0.03066272847354412, - 0.012879804708063602, - -0.03086298145353794, - 0.010053006000816822, - -0.06061556190252304, - -0.016207771375775337, - -0.0471869632601738, - -0.012574976310133934, - -0.06650205701589584, - -0.019535008817911148, - -0.027821671217679977, - -0.019054876640439034, - -0.02305709756910801, - -0.0387624055147171, - -0.04822254553437233, - -0.014122792519629002, - 0.0029938810039311647, - 0.06594318896532059, - -0.009381812997162342, - -0.020414792001247406, - 0.33122703433036804, - -0.05175761505961418, - 0.01820269227027893, - 0.05639767274260521, - 0.09577181935310364, - 0.05482837185263634, - -0.06559309363365173, - 0.04622187837958336, - -0.022361064329743385, - -0.007080437149852514, - 0.004230997059494257, - 0.003895875532180071, - -0.00903070718050003, - 0.0032511267345398664, - -0.07861838489770889, - 0.04258504882454872, - -0.009300175122916698, - -0.04736779257655144, - 0.025744332000613213, - -0.013673363253474236, - -0.04273384436964989, - 0.036090411245822906, - 0.01899559237062931, - -0.000981166958808899, - -0.0359870083630085, - -0.14095035195350647, - 0.024124037474393845, - -0.050364986062049866, - 0.01028687134385109, - -0.03535383939743042, - 0.016935603693127632, - -0.005274325609207153, - -0.08124440163373947, - 0.21028922498226166, - 0.04794485867023468, - 0.01181086990982294, - 0.06373841315507889, - 0.016255034133791924, - -0.004268315155059099, - -0.04862232133746147, - -0.012298615649342537, - -0.022568613290786743, - 0.009239792823791504, - -0.0012626233510673046, - 0.028307778760790825, - 0.02500256337225437, - -0.061479706317186356, - -0.05496419593691826, - 0.015592132695019245, - -0.018961584195494652, - -0.05091426149010658, - 0.04556414112448692, - -0.05945110693573952, - 0.1131390929222107, - -0.0063216895796358585, - -0.002694840310141444, - -0.024938656017184258, - 0.012291046790778637, - 0.04469576105475426, - -0.001179966377094388, - -0.07119207829236984, - 0.025431286543607712, - -0.04452155530452728, - -0.0032349724788218737, - 0.01630527898669243, - 0.006882183253765106, - 0.011959330178797245, - -0.01568845845758915, - 0.01676175557076931, - -0.0029635298997163773, - 0.0247111264616251, - 0.013974656350910664, - 0.039194777607917786, - -0.0011637310963124037, - -0.03826012834906578, - 0.029900263994932175, - -0.013704665936529636, - -0.04209637641906738, - 0.05468667298555374, - -0.39475762844085693, - 0.014745417051017284, - 0.008455774746835232, - -0.022149229422211647, - -0.023320065811276436, - -0.021106459200382233, - 0.012659221887588501, - -0.007280703634023666, - 0.03333337977528572, - 0.013866521418094635, - 0.04699559137225151, - 0.03462321683764458, - -0.09520029276609421, - 0.03420138359069824, - 0.033556994050741196, - 0.029276812449097633, - 0.023511605337262154, - -0.021506696939468384 - ], - [ - -0.0161212719976902, - 0.021742770448327065, - 0.056551121175289154, - 0.041081275790929794, - -0.0003789710463024676, - 0.005264968145638704, - -0.007224220782518387, - 0.035512667149305344, - 0.017265984788537025, - 0.0054117171093821526, - 0.0016610100865364075, - -0.02454330027103424, - -0.010686410591006279, - -0.006740058306604624, - -0.07370302826166153, - 0.03564634546637535, - 0.004360234830528498, - -0.054198652505874634, - -0.06508304923772812, - 0.023320239037275314, - -0.14651046693325043, - 0.009914127178490162, - -0.001135400147177279, - -0.03400077298283577, - 0.0042566051706671715, - -0.023198522627353668, - 0.02010309509932995, - -0.010952677577733994, - -0.03591516241431236, - -0.002469422062858939, - -0.051650941371917725, - 0.008914874866604805, - -0.06262831389904022, - 0.046390365809202194, - 0.025310609489679337, - 0.020915796980261803, - -0.024427473545074463, - -0.032745733857154846, - -0.00906229205429554, - 0.04991590604186058, - 0.08808843791484833, - -0.03393372520804405, - -0.004857636522501707, - -0.006086653098464012, - 0.030593888834118843, - 0.04434503614902496, - -0.007646614219993353, - 0.002499662572517991, - -0.02712099812924862, - -0.007050227373838425, - -0.03058626875281334, - 0.0011342320358380675, - -0.05649268999695778, - -0.012943745590746403, - 0.03369859606027603, - -0.01156639028340578, - 0.011623579077422619, - 0.07152306288480759, - -0.05962004512548447, - 0.0036043142899870872, - -0.05362478643655777, - -0.03140311688184738, - 0.028111690655350685, - 0.005017323885113001, - -0.06424122303724289, - 0.0044576083309948444, - -0.00611713295802474, - -0.01611027680337429, - -0.020577816292643547, - 0.09229779243469238, - 0.07769780606031418, - 0.15267035365104675, - 0.05894254520535469, - 0.014978627674281597, - -0.023597782477736473, - -0.11426535993814468, - 0.037987880408763885, - 0.012620756402611732, - 0.004177924711257219, - 0.07416024059057236, - 0.05796589329838753, - 0.03662760928273201, - -0.20037232339382172, - 0.06693143397569656, - 0.005191237665712833, - 2.232514589195489e-06, - 0.09017683565616608, - -0.02735319174826145, - -0.0631614550948143, - -0.026226704940199852, - 0.02245003916323185, - -0.02379477582871914, - -0.08495934307575226, - 0.03553716838359833, - 0.013256017118692398, - 0.057647183537483215, - -0.04675470292568207, - -0.0006313925259746611, - -0.010618586093187332, - -0.048915132880210876, - 0.021633485332131386, - -0.05312371626496315, - 0.07309447228908539, - 0.012686283327639103, - -0.10132928937673569, - -0.09289629757404327, - 0.0407288633286953, - 0.004951434209942818, - 0.009463171474635601, - -0.04530520737171173, - 0.00013301284343469888, - 0.05249275267124176, - 0.046870190650224686, - 0.03011949174106121, - 0.014621887356042862, - -0.017580917105078697, - 0.006832556799054146, - -0.038248006254434586, - 0.02842695824801922, - 0.04557899385690689, - -0.06837690621614456, - 0.01731340028345585, - -0.029436152428388596, - 0.012907677330076694, - 0.080465167760849, - 0.030091846361756325, - -0.32119518518447876, - 0.04417533800005913, - -0.014749059453606606, - 0.09552456438541412, - 0.053205717355012894, - -0.0696038082242012, - -0.03209657967090607, - -0.04094561189413071, - 0.08225832879543304, - -0.0006423916784115136, - -0.02952265366911888, - -0.02287476509809494, - -0.013440675102174282, - -0.014875579625368118, - -0.012958748266100883, - 0.008487502112984657, - 0.034027889370918274, - 0.030009886249899864, - -0.004203564487397671, - -0.04721757397055626, - 0.06194140762090683, - -0.0346059612929821, - -0.012246085330843925, - -0.008334039710462093, - -0.012740100733935833, - -0.01499195210635662, - -0.0477340929210186, - -0.07822258025407791, - 0.005558542441576719, - 0.026307718828320503, - 0.04771272465586662, - 0.026179319247603416, - -0.0022299105767160654, - 0.22032541036605835, - 0.02477189153432846, - -0.0034933893475681543, - -0.011609836481511593, - 0.04045667126774788, - 0.1196967214345932, - -0.016998689621686935, - 0.010777035728096962, - -0.019015340134501457, - 0.0016545726684853435, - -0.004152384586632252, - -0.035619232803583145, - 0.029400132596492767, - -0.10728206485509872, - -0.012266961857676506, - 0.012782755307853222, - 0.006047994364053011, - -0.03841617330908775, - 0.06147274747490883, - 0.015329443849623203, - -0.013599925674498081, - -0.009993488900363445, - -0.019221587106585503, - -0.04159143939614296, - -0.03273024410009384, - -0.17457592487335205, - 0.011587308719754219, - -0.004073271993547678, - 0.010951278731226921, - -0.03436162322759628, - -0.04419345036149025, - 0.0449046716094017, - -0.0014573871158063412, - 0.2510681748390198, - 0.008118541911244392, - -0.04890081658959389, - -0.006905082147568464, - -0.014710449613630772, - -0.008620860986411572, - -0.007650652900338173, - 0.00011534699297044426, - 0.0050670793280005455, - 0.0013025555526837707, - -0.003915565088391304, - 0.0439528189599514, - -0.01740656979382038, - -0.04340584576129913, - 0.03088783472776413, - 0.006896137725561857, - -0.0032072109170258045, - 0.0009034050162881613, - -0.01692970283329487, - 0.004009287804365158, - 0.15315455198287964, - 0.038480184972286224, - 0.025084497407078743, - -0.01710563711822033, - -0.014660331420600414, - 0.013086612336337566, - -0.048850852996110916, - -0.10089157521724701, - 0.028095873072743416, - -0.043608658015728, - -0.026578836143016815, - -0.010880405083298683, - 0.009958111681044102, - 0.013986824080348015, - -0.00011635704868240282, - -0.01212741993367672, - 0.005181521642953157, - -0.02772965468466282, - 0.018800465390086174, - 0.021745193749666214, - -0.004829065874218941, - 0.013741213828325272, - 0.03186167776584625, - -0.0643574595451355, - -0.0035881756339222193, - 0.019059980288147926, - -0.5203346014022827, - 0.029937531799077988, - 0.034568384289741516, - 0.015204130671918392, - 0.06513021886348724, - -0.0046899570152163506, - 0.05773558095097542, - -0.06232064589858055, - -0.010593469254672527, - -0.0024443943984806538, - -0.02450534701347351, - -0.0499187670648098, - -0.09023299813270569, - -0.010816576890647411, - -0.03076346032321453, - 0.016622494906187057, - -0.01654805615544319, - 0.058225810527801514 - ], - [ - -0.006212073378264904, - 0.0013238474493846297, - -0.020331615582108498, - 0.02953045815229416, - -0.004841826390475035, - -0.0023165016900748014, - -0.03176156058907509, - -0.01713145337998867, - -0.003006511367857456, - -0.012732231058180332, - 0.026089882478117943, - -0.039636481553316116, - 0.016685128211975098, - 0.02938397228717804, - 0.0007737677660770714, - 0.224029079079628, - 0.016336048021912575, - 0.03500501066446304, - 0.052411992102861404, - -0.038674019277095795, - 0.1399737298488617, - -0.1064404621720314, - 0.01642296463251114, - 0.032184865325689316, - 0.001993076875805855, - 0.011356087401509285, - 0.0025434617418795824, - -0.022914741188287735, - -0.018507149070501328, - 0.027061214670538902, - 0.000949912122450769, - -0.02724778838455677, - 0.03795813024044037, - 0.011837859638035297, - 0.037589192390441895, - -0.048981133848428726, - -0.011639953590929508, - 0.011925029568374157, - -0.02591881901025772, - 0.003267788328230381, - -0.0012924849288538098, - 0.0005896666552871466, - 0.02620852366089821, - -0.023439444601535797, - 0.011967403814196587, - 0.062287651002407074, - -0.015094532631337643, - 0.025521984323859215, - -0.020054049789905548, - -0.057731203734874725, - 0.004334047436714172, - -0.08617871254682541, - -0.014215372502803802, - 0.01887117512524128, - 0.014331668615341187, - 0.05612726882100105, - -0.02074309252202511, - -0.044651925563812256, - 0.030279623344540596, - 0.04663218557834625, - 0.023399509489536285, - 0.07356388866901398, - 0.03926611691713333, - -0.08006852865219116, - 0.0787072479724884, - -0.019045108929276466, - 0.22339095175266266, - -0.025252530351281166, - 0.03411605954170227, - 0.023578235879540443, - 0.08327805250883102, - -0.11529935896396637, - -0.03589951619505882, - 0.01866273581981659, - -0.03656042367219925, - -0.03756096959114075, - -0.045355334877967834, - -0.006533024366945028, - 0.009828639216721058, - 0.02264135517179966, - 0.016389422118663788, - -0.00342714530415833, - 0.3571522533893585, - 0.029528947547078133, - 0.05266664922237396, - -0.06683415919542313, - -0.020561598241329193, - -0.045787207782268524, - -0.0058040618896484375, - -0.04422730952501297, - -0.007840175181627274, - -0.026962120085954666, - -0.2299543172121048, - 0.0002954626106657088, - 0.005479460582137108, - -0.04505787789821625, - -0.02247093804180622, - 0.04315730929374695, - -0.06993646919727325, - -0.012927803210914135, - 0.00414894986897707, - -0.008412168361246586, - 0.01395608764141798, - -0.05257617309689522, - 0.01179016474634409, - 0.023148028180003166, - 0.0480932854115963, - -0.05084734410047531, - 0.0382557213306427, - 0.006064587738364935, - -0.016115490347146988, - -0.024846341460943222, - 0.0031208323780447245, - -0.009757766500115395, - -0.016238298267126083, - -0.017608849331736565, - 0.03986433520913124, - -0.007888169959187508, - 0.014673367142677307, - 0.018099240958690643, - 0.03255098685622215, - 0.04974636062979698, - 0.0661771297454834, - -0.025013523176312447, - 0.05771656334400177, - 0.008703666739165783, - 0.2889547646045685, - -0.020431870594620705, - -0.023361435160040855, - 0.025660088285803795, - 0.021513471379876137, - -0.028531953692436218, - -0.02042076550424099, - -0.014984400942921638, - 0.06051742285490036, - -0.014928236603736877, - 0.02286788634955883, - -0.028336547315120697, - 0.04053518548607826, - -0.028696266934275627, - -0.012399177066981792, - 0.02459339238703251, - 0.017394665628671646, - -0.0029680063016712666, - -0.005974987056106329, - 0.07196896523237228, - -0.050062354654073715, - -0.02353573590517044, - -0.007399873808026314, - 0.014583345502614975, - 0.012315693311393261, - 0.1509469449520111, - 0.003924143500626087, - 0.07150061428546906, - 0.0225076787173748, - 0.00948871299624443, - -0.008270365186035633, - -0.06285090744495392, - -0.035349223762750626, - -0.3788648843765259, - 0.05883967503905296, - -0.020889805629849434, - 0.034326959401369095, - 0.03263545781373978, - -0.10851659625768661, - 0.07880187779664993, - -0.029787681996822357, - 0.07229126989841461, - -0.03246302530169487, - -0.024480057880282402, - 0.10770221799612045, - -0.03130567446351051, - 0.050158336758613586, - -0.04366346076130867, - 0.002550183329731226, - -0.029561828821897507, - 0.018222369253635406, - -0.010561599396169186, - 0.002953203860670328, - -0.10088067501783371, - 0.026724498718976974, - -0.018576661124825478, - 0.0047693997621536255, - 0.03353722766041756, - 0.015033693052828312, - 0.03780549019575119, - 0.032551784068346024, - 0.002364211715757847, - -0.013184605166316032, - -0.026074489578604698, - -0.029167428612709045, - 0.029414432123303413, - -0.10839776694774628, - 0.07693149894475937, - -0.012292846105992794, - 0.05601233243942261, - -0.010510365478694439, - 0.014259353280067444, - -0.018235838040709496, - -0.020879758521914482, - 0.020108411088585854, - 0.08070999383926392, - -0.029657717794179916, - 0.01816723868250847, - -0.01048447284847498, - -0.0028250720351934433, - 0.0013200199464336038, - 0.0238987747579813, - -0.01841578632593155, - 0.01896122843027115, - 0.025694241747260094, - 0.02565515972673893, - -0.0909842699766159, - -0.020000508055090904, - 0.03069276176393032, - -0.012006404809653759, - 0.0990951731801033, - -0.027443183586001396, - -0.06608346849679947, - 0.22217558324337006, - -0.0029922963585704565, - -0.023190028965473175, - -0.005176085978746414, - -0.028728853911161423, - 0.02213991805911064, - -0.04187328368425369, - 0.023827049881219864, - -0.03261428326368332, - 0.03878248110413551, - 0.01996447890996933, - -0.03432727977633476, - -0.07876544445753098, - -0.006886689458042383, - 0.014584764838218689, - 0.0026134508661925793, - 0.001825428451411426, - 0.09226374328136444, - -0.0049936240538954735, - 0.18984559178352356, - 0.004476968664675951, - -0.042144861072301865, - -0.025641482323408127, - 0.0016805045306682587, - 0.036948755383491516, - 0.026200106367468834, - 0.017037566751241684, - -0.08799298107624054, - -0.022508859634399414, - 0.04175001010298729, - 0.056141894310712814, - 0.033471789211034775, - 0.0019860800821334124, - 0.04847932606935501, - -0.048977144062519073, - -0.011311013251543045, - 0.02380598895251751 - ], - [ - 7.434687722707167e-05, - 0.0019869233947247267, - 0.00038871829747222364, - 0.0016527650877833366, - -0.0012660250067710876, - -0.00016853200213517994, - -0.00033068895572796464, - 0.0007536569610238075, - 0.001211248803883791, - 0.0008642447064630687, - -0.0020389510318636894, - 0.00032374932197853923, - 0.0005586213665083051, - -0.0011757495813071728, - -0.0013576402561739087, - 0.006141370162367821, - 0.00019490513659548014, - -0.003661929629743099, - -0.004300384316593409, - 0.0022828192450106144, - -0.008672401309013367, - 0.0032434368040412664, - -0.0005535063683055341, - -0.001871223677881062, - -0.0005374514730647206, - -0.002354035386815667, - 0.0014676576247438788, - -0.00048470788169652224, - -0.0008736394811421633, - 0.0007196476799435914, - 0.0007164078997448087, - 0.0020624168682843447, - 2.5161436497000977e-05, - -0.00034899753518402576, - 0.0014322284841910005, - 0.0014302136842161417, - 0.0018176487646996975, - 0.000274695543339476, - 0.00010044488590210676, - -0.00021010558702982962, - 0.00020878574287053198, - 0.001964733935892582, - 0.0002029134047916159, - 0.0005862250691279769, - -0.002206874778494239, - -0.00017584554734639823, - 0.0015423625009134412, - -0.0003710058517754078, - 0.000546478433534503, - 0.0023746832739561796, - -0.002584798727184534, - 0.008510241284966469, - -5.3825082432013005e-05, - -0.0005269080284051597, - -0.002847106661647558, - -0.0023541711270809174, - 0.00038255820982158184, - -0.0006850155768916011, - -0.008262205868959427, - 0.000463291653431952, - 8.027072180993855e-05, - -0.002431686269119382, - -0.0006030102958902717, - 0.002996354131028056, - -0.005098175723105669, - 0.0020211313385516405, - -0.009993643499910831, - 0.0030136837158352137, - -0.0005974384839646518, - -0.0011392288142815232, - -0.0013050484703853726, - -0.07318852096796036, - 0.0033245570957660675, - 0.005009984131902456, - -0.0005501789273694158, - 0.0005294470465742052, - 0.0018372342456132174, - 0.0022308295592665672, - -0.001531887101009488, - 0.0036532103549689054, - -7.71385311963968e-05, - -8.249258826253936e-05, - -0.918973445892334, - -0.0004070614231750369, - -0.0046249087899923325, - 0.002551614074036479, - 0.0029145926237106323, - 0.0008245614008046687, - -0.0005176136619411409, - 0.0038562521804124117, - 0.000636523705907166, - 0.002340978477150202, - 0.0047988067381083965, - 0.00033203294151462615, - 0.0025780503638088703, - 0.0032845502719283104, - 7.524035754613578e-05, - -0.002585112350061536, - 0.003138528438284993, - -0.0019223628332838416, - 0.0016854366986081004, - 0.0009226546389982104, - 0.0014671905664727092, - 0.0006525465287268162, - 0.0030019620899111032, - -2.041870538960211e-05, - -0.00274487491697073, - 0.0017612369265407324, - -0.002544387709349394, - -0.0013883702922612429, - 0.007162193767726421, - 0.003283643163740635, - -0.0008285963558591902, - 0.0013845901703462005, - 0.0017678963486105204, - 0.0033930300269275904, - -0.0012737185461446643, - 0.0005751632852479815, - -0.0002632589894346893, - 0.0012687906855717301, - -0.0018565943464636803, - -0.002695271745324135, - -0.0019868197850883007, - 0.0022263831924647093, - -0.0020841762889176607, - -0.0013340782606974244, - 0.2807376980781555, - 0.0011877137003466487, - 0.000263664813246578, - 0.0005168957868590951, - 0.0003931221435777843, - 0.0018392604542896152, - 0.001026161597110331, - -0.0005846219137310982, - 0.00012411290663294494, - 0.0019318015547469258, - -0.002870085183531046, - 0.00046013545943424106, - -0.0018607396632432938, - 0.0006244769901968539, - 0.0015145702054724097, - -0.0001410540280630812, - -0.0018044904572889209, - -0.001251522684469819, - -0.0005325534148141742, - -0.006087190005928278, - 0.000722103810403496, - -5.146936382516287e-05, - -7.735331018920988e-05, - 0.0005416546482592821, - -0.0012835271190851927, - -0.006369816139340401, - -0.0015549646923318505, - -0.005014524329453707, - -0.0024055871181190014, - 0.000303935055853799, - 0.0018423229921609163, - -0.0007674087537452579, - 0.000597698031924665, - 0.20592595636844635, - -0.0009003934101201594, - 0.0005301357014104724, - 0.0006064979825168848, - 0.0028560685459524393, - 0.010455303825438023, - 0.09359188377857208, - 0.002718685893341899, - -0.003854963229969144, - 0.0011010761372745037, - 0.0015524392947554588, - -0.004918807651847601, - 0.0016359303845092654, - -0.0023338599130511284, - 0.0010954996105283499, - -0.0020801119972020388, - -0.0016055863816291094, - -1.3085687896818854e-05, - 0.006631731986999512, - -0.00023564572620671242, - 0.005297551397234201, - -0.0010847499361261725, - 0.0017403983511030674, - -0.00043459274456836283, - -0.0006838240078650415, - -0.006657240446656942, - -0.00050079554785043, - 0.00024381115508731455, - -0.0018544725608080626, - 0.0005752961151301861, - 2.9694800105062313e-05, - 0.001812404370866716, - -0.00017089187167584896, - -0.05807831138372421, - -0.005150285549461842, - 0.0054321628995239735, - -0.0017816214822232723, - 0.0011668612714856863, - 0.0006845712196081877, - -0.0005253790295682847, - 0.0022028042003512383, - -0.0015536764403805137, - -0.0035003023222088814, - 0.0031426234636455774, - -0.0011487689334899187, - 0.0007362744072452188, - 0.006162593606859446, - 2.007956254601595e-06, - -0.002490777289494872, - -0.00044878042535856366, - 0.00019663905550260097, - 7.940937211969867e-05, - -0.0008260550093837082, - -0.052325159311294556, - 0.00086932786507532, - -0.0016293757362291217, - -0.00042528327321633697, - -0.0020350043196231127, - 0.0010114810429513454, - 0.0038344557397067547, - -0.010171972215175629, - 0.0011520549887791276, - 0.00032070293673314154, - 0.0002782789815682918, - -0.00012890873767901212, - 0.00017609114001970738, - 0.00018146644288208336, - -0.0008518705144524574, - 0.0014412322780117393, - 0.0013345591723918915, - -0.00046829713392071426, - 0.0013832889962941408, - 0.0033757248893380165, - 0.0018181040650233626, - 3.04387831420172e-05, - 0.00021488773927558213, - -0.003051165724173188, - -0.0042414884082973, - 0.0024683314841240644, - 0.1110023781657219, - 0.0005071292398497462, - 0.003375271800905466, - 0.000873410957865417, - 0.0003591155109461397, - -0.003660978516563773, - -0.0009644528618082404, - -0.0014793878654018044, - 0.0046026441268622875, - 0.0007640534895472229, - -0.0010499433847144246, - -0.002123315120115876, - -0.0016384246991947293, - 0.0009253295720554888, - -0.0015809339238330722, - 0.001596188871189952, - -0.002505775075405836, - 0.00015520949091296643 - ], - [ - -0.029377728700637817, - 0.003422688227146864, - 0.02717794105410576, - -0.034817587584257126, - 0.05014951527118683, - 0.02942931465804577, - 0.013216831721365452, - 0.005657936912029982, - -0.06053752079606056, - 0.010970957577228546, - -0.019980698823928833, - -0.02206851914525032, - 0.03420319780707359, - -0.015683481469750404, - -0.048267047852277756, - -0.2325662076473236, - -0.03056327812373638, - -0.04358624294400215, - -0.014589808881282806, - -0.0018001255812123418, - -0.02992766536772251, - 0.020321602001786232, - -0.026134565472602844, - -0.06218217313289642, - 0.018565336242318153, - -0.03809807449579239, - -0.018055444583296776, - -0.006969414185732603, - 0.0122839892283082, - -0.0066827284172177315, - -0.044226549565792084, - -0.06580004841089249, - -0.010223852470517159, - -0.004156348295509815, - -0.006051762495189905, - 0.028698597103357315, - 0.015487018041312695, - -0.03639232739806175, - 0.007109660189598799, - 0.05163484066724777, - -0.012032857164740562, - 0.048060789704322815, - 0.0070443227887153625, - -0.01975325308740139, - 0.03038344904780388, - 0.0897950753569603, - -0.0025662046391516924, - 0.052641741931438446, - -0.004770316649228334, - 0.06109477952122688, - -0.00409934064373374, - 0.010540410876274109, - -0.007590354885905981, - -0.002832249738276005, - 0.03613154962658882, - -0.050757188349962234, - -0.00282586133107543, - 0.0010399820748716593, - -0.05353974550962448, - 0.042450200766325, - -0.01246779877692461, - 0.03077617473900318, - -0.0033021317794919014, - 0.01755218580365181, - -0.04625745862722397, - -0.02020648866891861, - -0.046877648681402206, - -0.015494628809392452, - 0.03256148099899292, - -0.012887690216302872, - 0.016344336792826653, - 0.15256421267986298, - 0.07394582033157349, - -0.023021969944238663, - 0.004224198404699564, - -0.023097021505236626, - 0.008566549979150295, - 0.0052575175650417805, - -0.005970212630927563, - 0.10796964168548584, - 0.015743589028716087, - 0.03996562957763672, - -0.11124701797962189, - -0.020159102976322174, - -0.0065153236500918865, - -0.05740968510508537, - 0.019774429500102997, - -0.004185672849416733, - -0.03864981606602669, - 0.010608443059027195, - -0.035091135650873184, - -0.03123481012880802, - 0.11761339008808136, - 0.00392176304012537, - 0.00872713327407837, - 0.02955029346048832, - -0.007361020892858505, - -0.016428621485829353, - 0.010472526773810387, - -0.021324938163161278, - 0.03810587152838707, - -0.019283166155219078, - 0.011539828032255173, - -0.023966317996382713, - -0.07697466760873795, - -0.09754198789596558, - -0.008407270535826683, - 0.002425823360681534, - -0.010817994363605976, - -0.06639225780963898, - 0.0001611453917576, - 0.029054397717118263, - 0.014856312423944473, - 0.027194282039999962, - -0.05521642044186592, - -0.009033534675836563, - 0.0076543488539755344, - -0.020022273063659668, - -0.0345333032310009, - 0.02567126601934433, - -0.0060331556014716625, - 0.010521437041461468, - -0.01156033854931593, - -0.0017555330414324999, - 0.09484676271677017, - 0.008164705708622932, - -0.6229787468910217, - 0.026463937014341354, - 0.009234963916242123, - 0.026738235726952553, - 0.020332995802164078, - -0.09497251361608505, - -0.0007000390323810279, - 0.01929968036711216, - 0.06668549031019211, - 0.023461952805519104, - 0.020741989836096764, - -0.034885257482528687, - -0.003978838678449392, - -0.05713990703225136, - 0.04592987149953842, - 0.00451027974486351, - 0.008431931026279926, - -0.057252805680036545, - -0.00979884434491396, - -0.027902955189347267, - -0.015763862058520317, - -0.01204005628824234, - -0.02727963961660862, - 0.0004146921564824879, - -0.05206114798784256, - 0.017243290320038795, - -0.01725786179304123, - 0.003892496693879366, - -0.0020162349101155996, - 0.021130984649062157, - -0.0035133040510118008, - -0.007999411784112453, - -0.02799013815820217, - 0.3348813056945801, - -0.04003450274467468, - 0.045859262347221375, - 0.02377663180232048, - 0.09293106198310852, - 0.01961357146501541, - -0.05765312910079956, - 0.02638835273683071, - -0.007201252970844507, - 0.006704925559461117, - 0.02222045138478279, - 0.0014939323300495744, - -0.02756536193192005, - -0.029216162860393524, - -0.03993774205446243, - 0.024101585149765015, - -0.0041192336939275265, - -0.037467923015356064, - 0.030655182898044586, - 0.0039545027539134026, - -0.05916181951761246, - 0.006094700191169977, - 0.03277961537241936, - 0.015572579577565193, - -0.06944885849952698, - -0.153419628739357, - -0.0071115330792963505, - -0.024144340306520462, - 0.028595972806215286, - -0.03890501707792282, - 0.0032257316634058952, - 0.016225559636950493, - -0.09311550110578537, - 0.20157384872436523, - 0.020130911841988564, - -0.010241231881082058, - 0.007971670478582382, - -0.04300834611058235, - 0.0017249941593036056, - -0.04376628249883652, - -0.0026137453969568014, - -0.027878597378730774, - -0.012249047867953777, - 0.02773774415254593, - 0.03056628629565239, - 0.012626498006284237, - -0.035649802535772324, - -0.025146739557385445, - 0.008467506617307663, - 0.008350271731615067, - -0.0007270899368450046, - 0.04538586363196373, - -0.014391106553375721, - 0.12436027079820633, - 0.049193546175956726, - -0.046745665371418, - -0.003320104908198118, - 0.010758479125797749, - 0.016504960134625435, - -0.015264672227203846, - -0.07024117559194565, - 0.046790387481451035, - -0.020115800201892853, - 0.003189641982316971, - 0.044588860124349594, - 0.00523723429068923, - -0.021671518683433533, - -0.04258783534169197, - -0.025099385529756546, - -0.007340611424297094, - -0.02656671777367592, - 0.04723529517650604, - 0.013844073750078678, - -0.025428244844079018, - -0.002373887225985527, - 0.028276167809963226, - -0.03634697198867798, - -0.002260575769469142, - 0.014001337811350822, - -0.17901122570037842, - 0.009436936117708683, - 0.08982880413532257, - -0.006534401793032885, - -0.016213053837418556, - 0.024134838953614235, - 0.0016157086938619614, - -0.020784592255949974, - 0.029002130031585693, - 0.05017440393567085, - 0.014871546998620033, - -0.002298895735293627, - -0.09620924293994904, - -0.0181844774633646, - 0.02098904550075531, - 0.06240616738796234, - 0.02753075771033764, - -0.023163817822933197 - ], - [ - -0.002994959708303213, - 0.005829757545143366, - 0.03747641667723656, - 0.044725775718688965, - 0.05236291512846947, - 0.006504131015390158, - 0.015215539373457432, - 0.004949413705617189, - -0.05604175105690956, - -0.024536501616239548, - -0.0010897931642830372, - -0.015609247609972954, - 0.040354859083890915, - -0.01374361664056778, - -0.044291164726018906, - -0.21869796514511108, - 0.0052488092333078384, - -0.05513612553477287, - 0.01852310262620449, - 0.005867565516382456, - -0.03439251706004143, - -0.009696449153125286, - -0.01690617948770523, - -0.08287397027015686, - 0.03484764322638512, - -0.0165464635938406, - 0.01269882544875145, - 0.032758064568042755, - 0.0037816124968230724, - -0.029912127181887627, - -0.052104782313108444, - -0.052311331033706665, - -0.028759853914380074, - 0.030780639499425888, - -0.02464243210852146, - 0.012508529238402843, - 0.014925005845725536, - -0.02034108154475689, - 0.023582469671964645, - 0.07048887014389038, - 0.0391339510679245, - 0.057319797575473785, - 0.011333294212818146, - 0.0015151280676946044, - 0.041851792484521866, - 0.11378070712089539, - 0.031015636399388313, - 0.04652431234717369, - 0.011142004281282425, - 0.09657975286245346, - -0.011725847609341145, - -0.009905410930514336, - -0.0009064306505024433, - -0.008703076280653477, - 0.02334936149418354, - -0.06364850699901581, - 0.018020441755652428, - -0.004932715557515621, - -0.06273415684700012, - 0.005712271202355623, - -0.049068283289670944, - 0.036309316754341125, - -0.018324362114071846, - -0.0014433878241106868, - -0.05710064619779587, - -0.005373181309551001, - -0.03445719555020332, - 0.005261375568807125, - 0.05984724685549736, - 0.012771540321409702, - 0.0639638751745224, - 0.13844001293182373, - 0.05021815747022629, - -0.017509562894701958, - 0.0023453710600733757, - -0.0459415502846241, - 0.018922792747616768, - 0.00140534364618361, - 0.010964407585561275, - 0.127597838640213, - 0.03815228119492531, - 0.03157130256295204, - 0.13299010694026947, - 0.015788869932293892, - 0.01706172339618206, - -0.047384437173604965, - 0.06691356003284454, - -0.0024064378812909126, - -0.05017905682325363, - -0.004539499059319496, - -0.024210741743445396, - -0.020908044651150703, - 0.12745733559131622, - 0.002787031466141343, - -0.007792075630277395, - 0.07042255252599716, - -0.015583605505526066, - -0.02440677024424076, - -0.022665981203317642, - -0.04141203686594963, - 0.07029429823160172, - -0.029256334528326988, - 0.07790696620941162, - -0.024530338123440742, - -0.10139493644237518, - -0.07214471697807312, - 0.008998704142868519, - 0.02460746467113495, - -0.032745350152254105, - -0.043296389281749725, - 0.020221831277012825, - 0.05581627041101456, - 0.055474694818258286, - 0.03320852667093277, - -0.05538176745176315, - -0.016321351751685143, - -0.012248155660927296, - -0.028428763151168823, - -0.034013163298368454, - 0.06095188111066818, - 0.0027969926595687866, - -0.010275833308696747, - -0.002338541205972433, - 0.029214492067694664, - 0.11463738232851028, - 0.01671108603477478, - -0.6305258274078369, - 0.02387509122490883, - -0.020580198615789413, - 0.024127349257469177, - 0.002501036273315549, - -0.13031946122646332, - -0.009767011739313602, - 0.019319886341691017, - 0.03969217836856842, - 0.028829198330640793, - 0.010745493695139885, - -0.01564764603972435, - -0.009837252087891102, - -0.05044306069612503, - 0.018281010910868645, - -0.008528071455657482, - 0.039145637303590775, - -0.04657646268606186, - 0.006590061355382204, - -0.032584577798843384, - 0.011511259712278843, - -0.027850434184074402, - -0.03959665447473526, - -0.000450131919933483, - -0.035404983907938004, - -0.011620909906923771, - -0.021648338064551353, - -0.03523837774991989, - -0.03397883474826813, - 0.002400386845692992, - 0.049644749611616135, - -6.85410195728764e-05, - -0.013071373105049133, - 0.23763461410999298, - 0.0037533757276833057, - -0.004465645179152489, - 0.01179945282638073, - 0.07200178503990173, - 0.013762136921286583, - -0.026787079870700836, - 0.016646666452288628, - -0.01532540749758482, - -0.008734527043998241, - 0.017808692529797554, - 0.002638420322909951, - -0.04550127312541008, - -0.04280175268650055, - -0.08754008263349533, - 0.019389288499951363, - -0.0173129104077816, - -0.045411765575408936, - 0.015365628525614738, - 0.0050252703949809074, - -0.03932014852762222, - -0.0030081584118306637, - 0.029062045738101006, - 0.01203248929232359, - -0.0562887117266655, - -0.16709959506988525, - -0.0010675271041691303, - -0.007844547741115093, - 0.007965357042849064, - -0.029229450970888138, - -0.005843854043632746, - 0.02684735134243965, - -0.04977913573384285, - 0.17204436659812927, - 0.04080025851726532, - -0.009424368850886822, - 0.026485053822398186, - -0.013267084024846554, - 0.010617321357131004, - -0.056765586137771606, - -0.027226079255342484, - 0.010456733405590057, - -0.011774103157222271, - 0.019166026264429092, - 0.038728050887584686, - 0.00867681484669447, - -0.03705025464296341, - -0.029824277386069298, - -0.012020905502140522, - 0.023089200258255005, - -0.03703463077545166, - 0.004970900248736143, - -0.0008390082512050867, - 0.09351496398448944, - -0.00330744287930429, - -0.009383528493344784, - -0.0061042532324790955, - 0.01285160705447197, - 0.03409470245242119, - 0.0003035370318684727, - -0.06599362194538116, - 0.04992692172527313, - -0.054957494139671326, - -0.011149548925459385, - 0.016505872830748558, - 0.013204675167798996, - -0.020247487351298332, - -0.003487343667075038, - -0.003899002680554986, - -0.012706232257187366, - -0.007084714714437723, - 0.05124097689986229, - -0.0006578720058314502, - 0.021358763799071312, - 0.004393898416310549, - 0.020433343946933746, - -0.04453618451952934, - 0.0013760142028331757, - 0.005080343224108219, - -0.2084767371416092, - 0.013741735368967056, - 0.0989980474114418, - -0.04190889373421669, - -0.0008632701355963945, - 0.023748353123664856, - 0.042167406529188156, - -0.023183060809969902, - -0.010643388144671917, - 0.06175200641155243, - 0.0025594362523406744, - -0.011900545097887516, - -0.06823720782995224, - -0.02654380537569523, - 0.016051648184657097, - 0.002086939290165901, - 0.01605048030614853, - 0.031907688826322556 - ], - [ - 0.0029131826013326645, - -0.02330566756427288, - 0.03545485809445381, - -0.011177091859281063, - 0.03960537165403366, - 0.007163539528846741, - -0.0003989605756942183, - -0.007875937037169933, - -0.0980052724480629, - 0.0017640003934502602, - 0.0196183230727911, - -0.006143857724964619, - 0.03216930478811264, - 0.010045553557574749, - -0.06250732392072678, - -0.24789083003997803, - 0.017804188653826714, - -0.013040035031735897, - -0.0025925736408680677, - 0.005970860831439495, - 0.012216768227517605, - 0.013459987007081509, - -0.009054739959537983, - -0.07809638977050781, - 0.01691618748009205, - -0.021840693429112434, - 0.019993679597973824, - -0.0018008959013968706, - -0.030597137287259102, - 0.029754307121038437, - -0.014615791849792004, - -0.06131009757518768, - -0.05360168591141701, - 0.0068449764512479305, - -0.02484280802309513, - 0.017995039001107216, - 0.013383142650127411, - -0.0290981512516737, - 0.0033205212093889713, - 0.017206329852342606, - 0.024826684966683388, - 0.06887299567461014, - 0.003418894950300455, - -0.026795433834195137, - 0.005802925676107407, - 0.10341638326644897, - 0.024675169959664345, - 0.07506309449672699, - -0.017308782786130905, - 0.10038355737924576, - -0.02784435823559761, - 0.006103319115936756, - -0.004403139930218458, - 0.0006780503317713737, - 0.039632413536310196, - -0.05643169954419136, - -0.0005372646264731884, - 0.01129643339663744, - -0.0745728611946106, - -0.005198338534682989, - -0.016124654561281204, - 0.03261901065707207, - 0.018955964595079422, - 0.03457485884428024, - -0.07405578345060349, - 0.03925686702132225, - -0.05091404169797897, - -0.02199566923081875, - 0.04685179516673088, - 0.004797074478119612, - 0.022806866094470024, - 0.11885382980108261, - 0.05772861838340759, - 0.0020840989891439676, - -0.012382065877318382, - -0.02152857929468155, - -0.01659880019724369, - -0.025261787697672844, - -0.017669199034571648, - 0.08821457624435425, - 0.0043611591681838036, - 0.0024622587952762842, - -0.18851609528064728, - 0.015947358682751656, - 0.009919490665197372, - -0.046016715466976166, - 0.04510156437754631, - -0.010063779540359974, - -0.047289539128541946, - -0.011509225703775883, - -0.03824058547616005, - -0.006200372241437435, - 0.18129503726959229, - 0.006664663087576628, - -0.012165307067334652, - 0.021199330687522888, - -0.013273022137582302, - -0.028197376057505608, - 0.0025205835700035095, - -0.036723971366882324, - 0.02680101804435253, - 0.002912696683779359, - 0.05533049628138542, - -0.020997893065214157, - -0.07604430615901947, - -0.03768617659807205, - 0.013102144002914429, - 0.0068620340898633, - -0.030315162613987923, - -0.05817016214132309, - 0.033749233931303024, - 0.029402172192931175, - 0.050540659576654434, - 0.013565406203269958, - -0.09055446833372116, - -0.019337866455316544, - 0.033738017082214355, - -0.03114444762468338, - -0.037085987627506256, - 0.00760839506983757, - 0.0003233647148590535, - 0.00014053145423531532, - -0.006011628080159426, - -0.000135987633257173, - 0.1236293613910675, - 0.018232231959700584, - -0.6196158528327942, - 0.0047471229918301105, - -0.02226799912750721, - -0.0132944006472826, - 0.04452593997120857, - -0.11201377958059311, - -0.02225370705127716, - 0.016725478693842888, - 0.04380709305405617, - 0.02420973964035511, - 0.028698446229100227, - 0.03342440724372864, - -0.0051047648303210735, - -0.018593838438391685, - 0.04836619272828102, - -0.0047421203926205635, - 0.023390572518110275, - -0.0445694774389267, - 0.005767385009676218, - 0.00901285745203495, - 0.0025170347653329372, - -0.04475630819797516, - -0.018266888335347176, - -0.011999777518212795, - -0.015155484899878502, - -0.010596519336104393, - 0.009375729598104954, - 0.01422507781535387, - -0.03823934495449066, - -0.032722875475883484, - 0.05388706177473068, - 0.012915125116705894, - -0.004021348897367716, - 0.3378394544124603, - -0.018166041001677513, - -0.028787028044462204, - 0.026091326028108597, - 0.08954349905252457, - -0.0009135979344137013, - -0.042941588908433914, - 0.0030768285505473614, - -0.00731343450024724, - 0.0034737775567919016, - 0.034089554101228714, - 0.049525197595357895, - -0.08307645469903946, - -0.018289556726813316, - -0.028294244781136513, - 0.06003059074282646, - -0.033036891371011734, - -0.04920831695199013, - 0.02253420650959015, - 0.0063475267961621284, - -0.026330038905143738, - -0.008077405393123627, - 0.02297852747142315, - -0.00047812037519179285, - -0.07282718271017075, - -0.16350877285003662, - 0.039538007229566574, - -0.003110431833192706, - 0.01942654326558113, - -0.04203411191701889, - 0.003780532628297806, - 0.00123929837718606, - -0.014117710292339325, - 0.1414099484682083, - -0.009062124416232109, - 0.012937650084495544, - 0.042367879301309586, - 0.02157878875732422, - -0.017541658133268356, - -0.034452956169843674, - -0.022924039512872696, - -0.024423228576779366, - -0.017634131014347076, - 0.007555715274065733, - 0.020278804004192352, - 0.017761526629328728, - -0.03498247638344765, - -0.01453077606856823, - -0.03252911567687988, - 0.021412858739495277, - -0.04932135343551636, - 0.01170867495238781, - 0.005920264404267073, - 0.08422305434942245, - -0.028858685865998268, - -0.018594888970255852, - 0.011420673690736294, - 0.015445972792804241, - 0.022818997502326965, - -0.020749127492308617, - -0.05789712071418762, - 0.05818129703402519, - -0.05692163482308388, - 0.0076925307512283325, - 0.028817737475037575, - 0.018320772796869278, - -0.005207173526287079, - -0.01550404541194439, - -0.022008609026670456, - -0.023224828764796257, - -0.025212902575731277, - 0.01496833749115467, - 0.003727510804310441, - 0.011678885668516159, - -0.015890441834926605, - 0.021162448450922966, - -0.0426926389336586, - -0.002809545723721385, - 0.020169230177998543, - -0.08355013281106949, - 0.014639410190284252, - 0.09667735546827316, - -0.018784767016768456, - -0.025045471265912056, - 0.01999872364103794, - -0.015053538605570793, - 0.0060449871234595776, - -0.021667996421456337, - 0.05703281983733177, - 0.031976137310266495, - 0.015874315053224564, - -0.04617232084274292, - -0.0019759847782552242, - 0.008115800097584724, - -0.002025740686804056, - -0.004635182674974203, - 0.024182720109820366 - ], - [ - -0.018435420468449593, - 0.0013921590289101005, - 0.017529329285025597, - 0.019351180642843246, - 0.02063039131462574, - 0.013615886680781841, - -0.004829281475394964, - 0.025950048118829727, - -0.027204476296901703, - 0.003056391142308712, - -0.004918065387755632, - -0.03794219344854355, - 0.021298376843333244, - 0.018759824335575104, - -0.037839632481336594, - -0.16107331216335297, - -0.011840768158435822, - -0.029754772782325745, - -0.015072740614414215, - -0.024868329986929893, - -0.053860392421483994, - 0.00717113958671689, - -0.011833506636321545, - -0.035321854054927826, - 0.007514040917158127, - -0.019224029034376144, - 0.021016530692577362, - -0.011497845873236656, - -0.014157102443277836, - 0.0067696780897676945, - -0.02502106875181198, - -0.024093011394143105, - -0.026549994945526123, - 0.00888563971966505, - 0.01721998117864132, - 0.01646765135228634, - 0.021591050550341606, - -0.010852519422769547, - -0.014193210750818253, - 0.035207848995923996, - 0.014687039889395237, - 0.03589051216840744, - 0.011116673238575459, - -0.023126771673560143, - 0.02256803959608078, - 0.07352381944656372, - 0.008917996659874916, - 0.03224076330661774, - 0.006744981277734041, - 0.037107452750205994, - 0.0004855621082242578, - 0.008813705295324326, - -0.013501793146133423, - 0.00984649732708931, - 0.0034764327574521303, - -0.031334441155195236, - 0.0025214836932718754, - -0.00657292827963829, - -0.05522903800010681, - 0.0426776185631752, - -0.018874315544962883, - 0.00907880999147892, - 0.017497340217232704, - 0.030997589230537415, - -0.04154029116034508, - -0.016989901661872864, - -0.03610757738351822, - -0.014361941255629063, - 0.021739386022090912, - 0.02293301187455654, - 0.02512391470372677, - 0.06074056774377823, - 0.05138051137328148, - -0.003533879993483424, - -0.015799662098288536, - -0.04627389460802078, - 0.03504444658756256, - -0.016139186918735504, - -0.0019433230627328157, - 0.09653564542531967, - 0.03198159858584404, - 0.02167436107993126, - -0.7413330078125, - -0.007914120331406593, - 0.00555001012980938, - -0.03734268993139267, - 0.009549064561724663, - -0.01239318773150444, - -0.015424517914652824, - -0.014775344170629978, - -0.013403506949543953, - 0.006185662467032671, - 0.10936778783798218, - -0.010115550830960274, - 0.02462598867714405, - 0.030411889776587486, - -0.017607826739549637, - -0.015072735026478767, - -0.006572157144546509, - -0.020693911239504814, - 0.006771768908947706, - -0.011524774134159088, - 0.03564650937914848, - -0.005599100608378649, - -0.045435067266225815, - -0.053752828389406204, - 0.010133463889360428, - -0.004260612186044455, - -0.0064628394320607185, - -0.04655110090970993, - 0.03131082281470299, - 0.0481652170419693, - 0.0084004495292902, - 0.004553789738565683, - -0.044113725423812866, - 0.014059810899198055, - 0.006626120302826166, - -0.005767725873738527, - -0.006911333184689283, - 0.013323932886123657, - -0.027322186157107353, - -0.00036190563696436584, - 0.002719285897910595, - 0.006958645768463612, - 0.07624133676290512, - 0.001917642424814403, - -0.26222720742225647, - 0.023305248469114304, - -0.0018399275140836835, - 0.038963112980127335, - 0.027540072798728943, - -0.054985128343105316, - 0.007019078824669123, - -0.01618052087724209, - 0.028383608907461166, - 0.008917661383748055, - -0.019785897806286812, - -0.011958911083638668, - 0.011474397033452988, - -0.006565265357494354, - 0.02374885417521, - 0.0005366200930438936, - 0.011084928177297115, - -0.02141408808529377, - -0.00931315217167139, - -0.020008690655231476, - -0.0012235559988766909, - -0.00999461393803358, - -0.02569456771016121, - 0.020059190690517426, - -0.014804940670728683, - -0.01383228413760662, - -0.0112333744764328, - -0.0067259869538247585, - -0.015051018446683884, - 0.012568430975079536, - 0.010591914877295494, - -0.021461661905050278, - -0.02895624190568924, - 0.40014412999153137, - -0.008736776188015938, - 0.015421776100993156, - 0.026263808831572533, - 0.05858359858393669, - 0.01825983077287674, - 0.028794758021831512, - 0.028567185625433922, - -0.02583477459847927, - -0.009689616039395332, - -0.006185784470289946, - -0.02960997447371483, - 0.007029235363006592, - -0.03090125322341919, - -0.043776653707027435, - 0.0175652876496315, - -0.02500397153198719, - -0.03849565237760544, - 0.04669793322682381, - -0.0010430342517793179, - -0.022444887086749077, - 0.008912903256714344, - 0.003803443629294634, - -0.008902231231331825, - -0.029568981379270554, - -0.13008886575698853, - 0.0026339890900999308, - -0.0019807766657322645, - 0.012924471870064735, - -0.0323755256831646, - 0.0029820397030562162, - 0.0019186075078323483, - -0.02791101299226284, - 0.10930725187063217, - 0.0005255314172245562, - 0.003147661220282316, - 0.016025330871343613, - -0.006238449830561876, - 0.0023601092398166656, - -0.03420458361506462, - 0.011430181562900543, - -0.017971592023968697, - -0.020190870389342308, - 0.008625790476799011, - 0.04005429521203041, - 0.0037328535690903664, - -0.01268458366394043, - -0.03460458293557167, - 0.0003377075190655887, - -0.007598778232932091, - -0.002675641793757677, - 0.008552538231015205, - -0.002704072277992964, - 0.04858310893177986, - -0.005692493170499802, - -0.02019033208489418, - 0.0047504412941634655, - -0.008275782689452171, - 0.004427937790751457, - -0.006619472522288561, - -0.0847170427441597, - 0.020124174654483795, - -0.020606158301234245, - 0.005970858968794346, - 0.01441566925495863, - 0.005747046787291765, - -0.01583022065460682, - -0.010304045863449574, - 0.0008736107847653329, - 0.002049765083938837, - -0.012500527314841747, - 0.012722950428724289, - 0.024847645312547684, - 0.007795901503413916, - -0.0030362859833985567, - 0.027884960174560547, - -0.01718865893781185, - 0.005090965889394283, - 0.019621122628450394, - -0.06418479979038239, - 0.006111313588917255, - 0.058058105409145355, - -0.010265853255987167, - -0.0014030152233317494, - 0.003172557335346937, - 0.018973594531416893, - -0.005913891363888979, - 0.0013727396726608276, - 0.03078324906527996, - -0.008308914490044117, - -0.00015573525161016732, - -0.058540988713502884, - 0.00011346768587827682, - 0.017012903466820717, - 0.01948538050055504, - 0.0002291247365064919, - 0.0015288257272914052 - ], - [ - -0.02888314425945282, - 0.01585008017718792, - 0.045551616698503494, - 0.04033130034804344, - -0.03632240369915962, - -0.015279941260814667, - 0.02573462203145027, - 0.04187511280179024, - 0.01564229652285576, - -0.005057651549577713, - -0.011503377929329872, - 0.013594789430499077, - -0.031587351113557816, - -0.01956211030483246, - -0.061437152326107025, - 0.02936035394668579, - -0.04279381036758423, - -0.05174054205417633, - -0.0676952674984932, - -0.0015615458833053708, - -0.14229834079742432, - -0.0004733162058982998, - -0.022332999855279922, - -0.06898467987775803, - -0.010688542388379574, - -0.012597424909472466, - 0.04040851444005966, - -0.030249588191509247, - 0.004227869212627411, - 0.028421305119991302, - -0.02707132324576378, - -0.005483721382915974, - -0.06234605610370636, - 0.04369093105196953, - 0.028704583644866943, - -0.007562898099422455, - -0.024648303166031837, - -0.04234856739640236, - 0.015824992209672928, - 0.0646326020359993, - 0.03803069889545441, - 0.01651136577129364, - -0.005607691127806902, - -0.06028948724269867, - 0.02643868513405323, - 0.010143866762518883, - -0.012378194369375706, - -0.014559604227542877, - 0.02143820747733116, - 0.014066806994378567, - -0.013116721995174885, - -0.013245200738310814, - -0.06440462917089462, - 0.014958356507122517, - 0.05887814611196518, - -0.016282346099615097, - -0.02114376239478588, - 0.06437301635742188, - -0.04998623952269554, - 0.040547654032707214, - -0.008870233781635761, - -0.01623460091650486, - 0.040768250823020935, - 0.030764678493142128, - -0.0984204038977623, - 0.0011664382182061672, - -0.007929964922368526, - -0.03189224377274513, - 0.008671595714986324, - 0.03988681733608246, - 0.08468993008136749, - 0.16827423870563507, - 0.04156114533543587, - 0.014350933954119682, - -0.021431593224406242, - -0.049303557723760605, - 0.05193548649549484, - 0.011354147456586361, - -0.04689447209239006, - 0.08007305860519409, - 0.037930238991975784, - 0.013394530862569809, - -0.05479558929800987, - 0.04549383744597435, - -0.014767145738005638, - -0.03199849650263786, - 0.09754385054111481, - 0.015174603089690208, - -0.019312655553221703, - -0.030107293277978897, - 0.0057546040043234825, - -0.035938676446676254, - -0.07363925874233246, - 0.03041837550699711, - 0.01968223787844181, - 0.028711294755339622, - -0.032152339816093445, - -0.029827656224370003, - -0.009444068185985088, - -0.008719321340322495, - 0.01821657083928585, - 0.003962176386266947, - 0.0554487481713295, - 0.014810793101787567, - -0.05068124830722809, - -0.047318235039711, - 0.0336531400680542, - 0.01041770912706852, - -0.011826782487332821, - -0.01545252650976181, - -0.006088754162192345, - 0.04744332283735275, - 0.021926622837781906, - -0.007353184279054403, - 0.03296930715441704, - 0.005502170883119106, - 0.035106319934129715, - -0.030001072213053703, - 0.030111676082015038, - 0.01613994687795639, - -0.08447922021150589, - 0.0087197320535779, - 0.02353961206972599, - 0.013066117651760578, - 0.06172740459442139, - 0.015418262220919132, - -0.3964719772338867, - 0.04387615993618965, - 0.0093690175563097, - 0.08036164939403534, - 0.0874691754579544, - -0.09118751436471939, - 0.0013747862540185452, - -0.03178450092673302, - 0.10737283527851105, - 0.018737562000751495, - -0.004506260622292757, - 0.00012285931734368205, - -0.009441823698580265, - -0.015277190133929253, - -0.03133556246757507, - -0.0055992272682487965, - 0.00355771416798234, - -0.016462020576000214, - -0.02213033102452755, - -0.05305371433496475, - 0.04622844234108925, - -0.060944389551877975, - -0.021397992968559265, - -0.017250265926122665, - 0.013306284323334694, - -0.009678656235337257, - -0.004470578860491514, - -0.037066396325826645, - 0.0022602814715355635, - -0.006597280967980623, - 0.022908898070454597, - 0.008315546438097954, - -0.02155865915119648, - 0.20116209983825684, - 0.021635105833411217, - 0.02399839460849762, - -0.0252142995595932, - 0.04110995680093765, - 0.047401681542396545, - -0.05384140834212303, - 0.001488790730945766, - -0.06653081625699997, - 0.018099036067724228, - 0.008996598422527313, - 0.01069007907062769, - 0.02736319787800312, - -0.08751753717660904, - -0.007154872640967369, - 0.06272022426128387, - 0.04035724699497223, - -0.02902238629758358, - 0.03490257263183594, - -0.015267678536474705, - 0.019669238477945328, - -0.021160004660487175, - 0.01631830632686615, - -0.05062223598361015, - -0.004775413312017918, - -0.1585969179868698, - 0.0008665266796015203, - 0.015895849093794823, - -0.012038499116897583, - 0.01921073906123638, - -0.010111968964338303, - 0.008221693336963654, - -0.0399630106985569, - 0.2850092947483063, - -0.015544528141617775, - -0.06412095576524734, - 0.011575340293347836, - -0.018075425177812576, - -0.017526153475046158, - -0.05008605867624283, - 0.023460030555725098, - -0.034928228706121445, - 0.0011766216484829783, - 0.018523497506976128, - 0.027258774265646935, - -0.005756697617471218, - -0.04713897407054901, - 0.025845881551504135, - -0.04784977808594704, - -0.002804356627166271, - 0.06257975101470947, - -0.0026905748527497053, - 0.003086764831095934, - 0.20921795070171356, - 0.04167068004608154, - -0.0018078368157148361, - -0.04011765867471695, - -0.00832445826381445, - 0.01379496231675148, - -0.0026497740764170885, - -0.08027338981628418, - 0.04111329838633537, - -0.015160646289587021, - -0.036874402314424515, - 0.003347790800035, - 0.007072959560900927, - -0.024604788050055504, - -0.01138628926128149, - -0.0010964908869937062, - -0.008752104826271534, - -0.02228178270161152, - -0.016693059355020523, - 0.05998498201370239, - 0.009581851772964, - 0.019703952595591545, - -0.019031468778848648, - -0.05200047418475151, - 0.00641811266541481, - 0.037885211408138275, - -0.5272600650787354, - 0.030062353238463402, - 0.04282165318727493, - 0.01617935299873352, - 0.02819785475730896, - -0.008426115848124027, - 0.06771361827850342, - -0.03513326123356819, - 0.042403776198625565, - -0.006659513805061579, - -0.023801011964678764, - -0.0862647071480751, - -0.0292837955057621, - 0.0359063595533371, - -0.03309837728738785, - 0.0054320162162184715, - 0.0007742032175883651, - 0.0429375134408474 - ], - [ - 0.0001984446425922215, - 0.0019767640624195337, - 0.000129839449073188, - 0.002428830834105611, - -0.0012862032745033503, - 0.00013794199912808836, - -0.0006369101465679705, - 0.001636366592720151, - 0.001575404778122902, - 0.0008908217423595488, - -0.0016654400387778878, - -0.0001895993627840653, - 0.0005998295964673162, - -0.001509083085693419, - -0.0013245308073237538, - 0.007113978732377291, - 0.000264721893472597, - -0.0037397495470941067, - -0.0040625701658427715, - 0.0019878759048879147, - -0.009645979851484299, - 0.003338545560836792, - -0.0008675155113451183, - -0.0018305489793419838, - -0.0009425747557543218, - -0.0017286512302234769, - 0.0016036853194236755, - -0.0002669236564543098, - -0.001131667522713542, - 0.0004923960659652948, - 0.0003061534953303635, - 0.0020975619554519653, - -0.0006281972746364772, - -2.5233048290829174e-05, - 0.0018522384343668818, - 0.0012096698628738523, - 0.0019875718280673027, - 0.0005284770741127431, - 0.0005511644994840026, - -3.465589486495446e-07, - 0.0009334237547591329, - 0.0018359036184847355, - 0.0004165902209933847, - 0.0006569722900167108, - -0.001933717168867588, - -0.0001855953159974888, - 0.0012136207660660148, - -0.00021863958681933582, - 0.000777143519371748, - 0.002386203035712242, - -0.002287769690155983, - 0.008808286860585213, - -0.00016432005213573575, - -0.0008138671983033419, - -0.0027424609288573265, - -0.0027980876620858908, - 0.0005406151176430285, - -0.0009220116189680994, - -0.008139182813465595, - 0.00025994147290475667, - -0.00027387824957259, - -0.0023174455855041742, - -0.00035830753040499985, - 0.002932797884568572, - -0.005779888015240431, - 0.002321232808753848, - -0.010062726214528084, - 0.0030601939652115107, - -0.000787089578807354, - -0.0004846937663387507, - -0.000854079145938158, - -0.07258722186088562, - 0.0034917574375867844, - 0.004950166679918766, - -0.0006017173291184008, - -0.00020330018014647067, - 0.0025944269727915525, - 0.0018097093561664224, - -0.0015004145679995418, - 0.0038338571321219206, - 0.0004893043078482151, - 0.0001164836940006353, - -0.9193010926246643, - 0.0004989054286852479, - -0.0042485808953642845, - 0.002689862158149481, - 0.0030576051212847233, - 0.0006633627344854176, - -0.0006313077174127102, - 0.003503604792058468, - 0.0009323233971372247, - 0.001998622203245759, - 0.0040553598664700985, - 3.7473517295438796e-05, - 0.002615586156025529, - 0.003847495187073946, - 7.968900899868459e-05, - -0.002755438908934593, - 0.002881312742829323, - -0.0020750730764120817, - 0.0017095768125727773, - 0.0008016422507353127, - 0.0022491076961159706, - 0.0008584539173170924, - 0.0025924541987478733, - -0.0006245538825169206, - -0.0023676876444369555, - 0.0018220918718725443, - -0.002460532821714878, - -0.0012523545883595943, - 0.0076178815215826035, - 0.0036333585157990456, - -0.00031261422554962337, - 0.001358852139674127, - 0.001382865710183978, - 0.003483228385448456, - -0.0014203374739736319, - 0.0002618929429445416, - 1.3538116036215797e-05, - 0.0015072701498866081, - -0.0025571619626134634, - -0.0027356185019016266, - -0.0020326527301222086, - 0.002310473471879959, - -0.0017063230043277144, - -0.0014400039799511433, - 0.28055140376091003, - 0.0009756968938745558, - 0.0007481874199584126, - 0.0008305807132273912, - 0.0006967295776121318, - 0.0014800617936998606, - 0.0005138963460922241, - -0.0008468357264064252, - 0.0005201036110520363, - 0.0017302186461165547, - -0.003893675049766898, - 0.00019972336303908378, - -0.001884312485344708, - 0.0006360506522469223, - 0.0012465151958167553, - -0.0002324887755094096, - -0.0017171724466606975, - -0.0005013562040403485, - -0.0009593120776116848, - -0.00612305011600256, - 0.001401337911374867, - -0.00014173478120937943, - -0.0005444028647616506, - 0.00027039178530685604, - -0.0011185099137946963, - -0.006731760688126087, - -0.0014435170451179147, - -0.005722156260162592, - -0.0024930990766733885, - 0.0006049963412806392, - 0.0020857616327703, - -0.000747938291169703, - 0.0004140486416872591, - 0.20607730746269226, - -0.0001629716280149296, - 0.0004927587579004467, - 0.00040535174775868654, - 0.003016287926584482, - 0.010606027208268642, - 0.09326949715614319, - 0.002674248768016696, - -0.0038013325538486242, - 0.0006491578533314168, - 0.0012183405924588442, - -0.00516725005581975, - 0.0013771788217127323, - -0.002908846829086542, - 0.0008100218256004155, - -0.0022012251429259777, - -0.0015343843260779977, - 0.0005659264861606061, - 0.006634091958403587, - -5.546411921386607e-05, - 0.0056132846511900425, - -0.0012348401360213757, - 0.0012621460482478142, - -0.00043549961992539465, - -0.0006310022436082363, - -0.007101605646312237, - -0.00015841613640077412, - 0.00038169612525962293, - -0.0019538954365998507, - 0.0007519523496739566, - -0.00019493360014166683, - 0.0017874290933832526, - -5.614054680336267e-05, - -0.05787419527769089, - -0.004912121687084436, - 0.0054964036680758, - -0.0017683072946965694, - 0.001293596113100648, - 0.0012745410203933716, - -0.0005059702671132982, - 0.002028473187237978, - -0.0011136613320559263, - -0.003089984180405736, - 0.003143449081107974, - -0.0005069039179943502, - 0.0003799285914283246, - 0.005922119133174419, - -0.0003270079614594579, - -0.00187017978169024, - -0.00038641609717160463, - 5.337317998055369e-05, - -0.00046913683763705194, - -0.000610111455898732, - -0.05194227769970894, - 0.0009406398748978972, - -0.0013657407835125923, - -0.0008718391763977706, - -0.002108363201841712, - 0.0008155943360179663, - 0.003601327072829008, - -0.01084658969193697, - 0.0008401019149459898, - 2.889286224672105e-05, - -0.00040795403765514493, - -0.0006063491455279291, - 0.00013938084885012358, - 0.0005464455462060869, - -0.00013322090671863407, - 0.0013977900380268693, - 0.0016335378168150783, - -0.0002949155168607831, - 0.0018252714071422815, - 0.003712996607646346, - 0.002384734805673361, - 0.00017046234279405326, - 0.0003940039605367929, - -0.0030179955065250397, - -0.00427080737426877, - 0.002246520249173045, - 0.10899399220943451, - 0.0006096899160183966, - 0.0031320177949965, - 0.0008863898110575974, - 0.0005753822042606771, - -0.003517345292493701, - -0.0005259228055365384, - -0.00149098492693156, - 0.004509832710027695, - 0.0006843418232165277, - -0.0011985833989456296, - -0.002727810526266694, - -0.002515130676329136, - 0.001189792063087225, - -0.001364886644296348, - 0.0018099729204550385, - -0.0023766166996210814, - 0.00023227058409247547 - ], - [ - 4.639538747142069e-05, - 0.0014689958188682795, - 0.00023994663206394762, - 0.0011534056393429637, - -0.0006868346827104688, - 0.00015024795720819384, - -0.0003467989736236632, - 0.0003617193433456123, - 0.0011089618783444166, - 0.0011499046813696623, - -0.002071922877803445, - 0.0009222577209584415, - 0.0007454159203916788, - -0.0013925563544034958, - -0.0010519418865442276, - 0.004712630994617939, - 6.085539280320518e-05, - -0.00409252243116498, - -0.0039368318393826485, - 0.002072980860248208, - -0.007387753576040268, - 0.00396353006362915, - -0.000597927370108664, - -0.002641382161527872, - -0.0003270571178290993, - -0.0018747510621324182, - 0.0010996436467394233, - 0.0002401429374003783, - -0.00028396761626936495, - -0.0001964694820344448, - 0.0005576051771640778, - 0.0019772774539887905, - 0.00012820117990486324, - 0.0004120403609704226, - 0.0007220812258310616, - 0.0016543661477044225, - 0.0020132027566432953, - -8.082939893938601e-05, - 0.000542790861800313, - -0.00032664992613717914, - 0.00016069533012341708, - 0.0017336017917841673, - 0.00014633775572292507, - 0.0009286474087275565, - -0.0017111176857724786, - -0.0004871077253483236, - 0.0011280315229669213, - 0.0002908065798692405, - 0.0004976278287358582, - 0.0028498084284365177, - -0.0023300941102206707, - 0.008838814683258533, - 0.00027952995151281357, - -0.0009709229343570769, - -0.0022117923945188522, - -0.0026589753106236458, - 0.0007570839952677488, - -0.0009411251521669328, - -0.007970758713781834, - -0.00029870751313865185, - -5.0547583668958396e-05, - -0.002009433461353183, - -0.0013512021396309137, - 0.0037608107086271048, - -0.005713818594813347, - 0.0024598529562354088, - -0.011249837465584278, - 0.00275348755531013, - -0.0005708160460926592, - -0.002055291086435318, - -0.0022890253458172083, - -0.07285881042480469, - 0.003307314356788993, - 0.00472298776730895, - -3.800136619247496e-05, - 0.0006692004972137511, - 0.0021284641698002815, - 0.0021579228341579437, - -0.0015860182465985417, - 0.003123803762719035, - -0.0006932142423465848, - 0.00013290101196616888, - -0.9194309115409851, - -0.000908460991922766, - -0.005032889544963837, - 0.0017668072832748294, - 0.0022279610857367516, - 0.0015715716872364283, - -0.0003368352190591395, - 0.004719695076346397, - 0.00033519446151331067, - 0.00205915211699903, - 0.007459393236786127, - 3.546621428540675e-06, - 0.0022136031184345484, - 0.0034612291492521763, - 0.0005232361145317554, - -0.0032447772100567818, - 0.0035929230507463217, - -0.0015513376565650105, - 0.0017761094495654106, - 0.0013064612867310643, - 0.0022898807656019926, - 0.0004070128779858351, - 0.0031737524550408125, - -0.0007131097954697907, - -0.0029340730980038643, - 0.0023162432480603456, - -0.003008694387972355, - -0.0010944033274427056, - 0.008067531511187553, - 0.003969369921833277, - -0.0004528776044026017, - 0.0015284818364307284, - 0.0009864099556580186, - 0.00263965898193419, - -0.0014428512658923864, - 0.0005221632891334593, - -0.0005652571562677622, - 0.0016706432215869427, - -0.0009031275403685868, - -0.0028672385960817337, - -0.0023950031027197838, - 0.002292148070409894, - -0.002390744397416711, - -0.0017295816214755177, - 0.27749374508857727, - 0.0006228601559996605, - 0.0002829191798809916, - -0.00014248171646613628, - 3.94874659832567e-05, - 0.0013661965494975448, - 0.0012503593461588025, - -6.914823461556807e-05, - -0.00050307996571064, - 0.002390307607129216, - -0.0020792947616428137, - 0.0007271651411429048, - -0.0024795529898256063, - 0.0003275034250691533, - 0.0018395718652755022, - -0.00019350401998963207, - -0.0017995923990383744, - -0.0014909954043105245, - 8.576468826504424e-05, - -0.005762805230915546, - 0.0005918761016801, - -7.33549750293605e-05, - -0.0005631140666082501, - 0.0007093283929862082, - -0.0012835983652621508, - -0.007257453631609678, - -0.0008739140466786921, - -0.00521377008408308, - -0.002008708892390132, - 8.148882625391707e-05, - 0.001703431480564177, - -0.00040466475184075534, - 0.0002938496763817966, - 0.20741300284862518, - -0.0017054124036803842, - 0.0009345354046672583, - 0.00019780614820774645, - 0.002694141585379839, - 0.009169829078018665, - 0.09225598722696304, - 0.002316024387255311, - -0.0035810954868793488, - 0.0013724835589528084, - 0.0019663104321807623, - -0.004944345448166132, - 0.00044232566142454743, - -0.0018954796250909567, - 0.0010951082222163677, - -0.001392437843605876, - -0.001482945866882801, - 0.00018753371841739863, - 0.006003931630402803, - -0.0008519739494659007, - 0.005242201033979654, - -0.0010820822790265083, - 0.0020788623951375484, - -0.0004452837456483394, - -0.0009409281774424016, - -0.005881266202777624, - -0.0006823930889368057, - -0.0005926244193688035, - -0.0017833559541031718, - 0.0006288563599810004, - 0.0006986878579482436, - 0.0013203785056248307, - -0.0007697730325162411, - -0.05951034277677536, - -0.004664984066039324, - 0.005183461122214794, - -0.001201721141114831, - 0.0009818975813686848, - 0.000380507466616109, - -0.0005066358717158437, - 0.001574851805344224, - -0.0011281137121841311, - -0.0032361801713705063, - 0.0035428223200142384, - -0.0012535188579931855, - 0.0013195229694247246, - 0.006169355008751154, - -6.76263589411974e-05, - -0.002107543870806694, - -0.00040317169623449445, - 5.181127926334739e-05, - -0.0007103338139131665, - -0.0011153164086863399, - -0.05245646461844444, - 0.0009636065806262195, - -0.0010371704120188951, - -0.0006294394843280315, - -0.0022159579675644636, - 0.0019180158851668239, - 0.004185771569609642, - -0.010018764063715935, - 0.0008391939336434007, - -0.00024456996470689774, - -0.00018264453683514148, - 0.00012570632679853588, - -9.709525329526514e-05, - 0.0006601799395866692, - -0.00027798902010545135, - 0.0017294392455369234, - 0.0005703192437067628, - -0.00034038510057143867, - 0.001984190894290805, - 0.0026623248122632504, - 0.0018144313944503665, - -5.962348586763255e-05, - -0.000591110612731427, - -0.0032522473484277725, - -0.004738516174256802, - 0.0019338567508384585, - 0.1129523515701294, - 0.0004894490703009069, - 0.003400358371436596, - 0.0008079262915998697, - -0.0005822626408189535, - -0.0031996516045182943, - -0.001736022299155593, - -0.0009171950514428318, - 0.005080553703010082, - 0.0013152804458513856, - -0.000886213150806725, - -0.0025793605018407106, - -0.002544010290876031, - 0.0013867468805983663, - -0.0013867885572835803, - 0.002403748221695423, - -0.0024746928829699755, - -0.00010633980127749965 - ], - [ - 0.00166723458096385, - 0.06507205963134766, - 0.030579254031181335, - 0.02389797568321228, - -0.035334594547748566, - 0.0030001963023096323, - -0.009437862783670425, - 0.03381761536002159, - 0.02047145739197731, - -0.010973195545375347, - -0.021072307601571083, - 0.01828152686357498, - 0.0304525475949049, - 0.10535598546266556, - -0.03101826086640358, - -0.08676091581583023, - 0.03588797524571419, - -0.13857324421405792, - -0.027397802099585533, - 0.001970533747226, - -0.1599487066268921, - -0.002065669745206833, - -0.08128545433282852, - 0.004613105673342943, - 0.024953581392765045, - -0.056394051760435104, - 0.05361500754952431, - -0.038365378975868225, - -0.03335610777139664, - 0.02363528124988079, - -0.02996162138879299, - -0.032319292426109314, - -0.10827170312404633, - -0.08651954680681229, - 0.023303933441638947, - 0.01129493210464716, - 0.009171765297651291, - -0.019087927415966988, - -0.0040188077837228775, - 0.03797656670212746, - 0.03237173333764076, - -0.015016596764326096, - 0.06825900822877884, - 0.02554510347545147, - 0.05509323999285698, - 0.023816317319869995, - 0.016041772440075874, - -0.03664632514119148, - 0.026564788073301315, - 0.05585843697190285, - -0.0519765242934227, - -0.018557783216238022, - -0.022192593663930893, - 0.07077886909246445, - -0.026941154152154922, - 0.016174061223864555, - 0.011802385561168194, - 0.08667191118001938, - -0.03756043314933777, - -0.014774600975215435, - -0.021415235474705696, - -0.044426459819078445, - 0.020653417333960533, - -0.021749166771769524, - -0.009115331806242466, - -0.010092547163367271, - 0.11321035027503967, - -0.03371205925941467, - 0.014621473848819733, - 0.03431731089949608, - 0.06978627294301987, - 0.09027686715126038, - 0.040058013051748276, - 0.02426900528371334, - -0.01754949986934662, - -0.03209782764315605, - 0.020817019045352936, - 0.07699593901634216, - -0.03506971895694733, - 0.05313096567988396, - 0.07854516804218292, - -0.0725339725613594, - -0.058308396488428116, - 0.013388128019869328, - -0.07642403990030289, - 0.05768148601055145, - 0.08177230507135391, - -0.02389279007911682, - -0.003821480553597212, - -0.041527122259140015, - 0.019144665449857712, - 0.029944315552711487, - -0.16292186081409454, - 0.07288160920143127, - -0.009316415525972843, - 0.011872902512550354, - -0.03236035257577896, - 0.018724920228123665, - -0.05292344093322754, - -0.044852301478385925, - 0.03225424140691757, - -0.021107017993927002, - -0.05141834914684296, - 0.07745649665594101, - -0.005041942466050386, - -0.06990764290094376, - 0.025697218254208565, - 0.04900367185473442, - 0.0616079643368721, - 0.01029224693775177, - 0.027250204235315323, - -0.018338259309530258, - 0.0362238809466362, - 0.04801710322499275, - 0.07490851730108261, - 0.06559165567159653, - 0.05567837134003639, - -0.028717193752527237, - -0.01779535412788391, - 0.06062527745962143, - -0.07414818555116653, - 0.009520705789327621, - 0.012477952055633068, - 0.06991611421108246, - 0.05622054263949394, - 0.008711124770343304, - -0.20954227447509766, - 0.07169823348522186, - -0.06140460819005966, - 0.06809534132480621, - 0.02519305609166622, - -0.062116727232933044, - -0.04865037277340889, - -0.027830738574266434, - 0.1038062795996666, - 0.02454971894621849, - -0.005417458713054657, - 0.0340336412191391, - 0.026195868849754333, - -0.022791873663663864, - -0.06031358242034912, - 0.056783679872751236, - -0.0017416735645383596, - -0.09641223400831223, - 0.01443732250481844, - -0.10117268562316895, - 0.042656779289245605, - 0.01694658026099205, - -0.017948541790246964, - 0.013989274390041828, - -0.010770673863589764, - 0.12929752469062805, - -0.01758355088531971, - -0.12176455557346344, - -0.026472771540284157, - 0.005720216780900955, - 0.032046444714069366, - -0.008566812612116337, - -0.005676620174199343, - 0.11993613094091415, - 0.00527957221493125, - -0.011731554754078388, - 0.014302735216915607, - 0.0740504041314125, - 0.22179286181926727, - 0.021678762510418892, - 0.09530676156282425, - -0.054833922535181046, - 0.01002050843089819, - -0.021992698311805725, - 0.05220235139131546, - 0.05641355738043785, - -0.13930104672908783, - -0.011866886168718338, - -0.09310898184776306, - 0.110152468085289, - -0.09702928364276886, - 0.09296413511037827, - 0.03458915650844574, - 0.04228563979268074, - 0.023816097527742386, - 0.10150127857923508, - 0.011071879416704178, - 0.003822406753897667, - -0.11016099154949188, - -0.02729344740509987, - 0.05764493718743324, - -0.10245537012815475, - 0.015936890617012978, - -0.08343227207660675, - 0.1212887242436409, - 0.012284981086850166, - 0.2232997715473175, - -0.07326061278581619, - 0.004318071063607931, - -0.016275404021143913, - -0.05469632148742676, - -0.029040232300758362, - -0.1379508227109909, - 0.06532135605812073, - -0.09100981056690216, - -0.054387256503105164, - 0.02967272326350212, - -0.08502938598394394, - -0.016581447795033455, - -0.0505676232278347, - 0.031737230718135834, - -0.05274078994989395, - -0.04197206720709801, - -0.020281998440623283, - 0.07639281451702118, - 0.08503536880016327, - 0.09144845604896545, - 0.00015732595056761056, - -0.004579170141369104, - -0.09244784712791443, - 0.051581643521785736, - 0.04904168099164963, - -0.07185312360525131, - -0.12455375492572784, - 0.041789181530475616, - -0.079488106071949, - 0.043584175407886505, - -0.0264387559145689, - 0.047470636665821075, - -0.023974023759365082, - 0.01432007271796465, - -0.008181942626833916, - 0.04294496029615402, - -0.10152921080589294, - 0.008898385800421238, - 0.040342312306165695, - -0.04752679914236069, - 0.013191216625273228, - 0.06798449903726578, - -0.12334282696247101, - -0.035501036792993546, - 0.037745118141174316, - -0.24842092394828796, - 0.02225217968225479, - 0.08297888934612274, - -0.005696601700037718, - 0.05332998186349869, - -0.007515129633247852, - 0.005278121214359999, - -0.12236393988132477, - -0.03658851236104965, - -0.002187322126701474, - -0.06000353395938873, - -0.06157789006829262, - -0.009100986644625664, - 0.05074615776538849, - -0.02902763895690441, - 0.009495140053331852, - -0.03853146359324455, - -0.0018530458910390735 - ], - [ - -0.01507345587015152, - -0.015704594552516937, - 0.027844879776239395, - 0.010693252086639404, - 0.02169041708111763, - 0.01745205745100975, - -0.0019008103990927339, - 0.02482185885310173, - -0.017013350501656532, - -0.008655436336994171, - 0.004500278737396002, - -0.030281316488981247, - 0.025911051779985428, - 0.023252258077263832, - -0.051068130880594254, - -0.19868585467338562, - -2.5831846869550645e-05, - -0.025669768452644348, - -0.004257021471858025, - 0.0016569815343245864, - -0.06466976553201675, - -0.009216300211846828, - -0.014178628101944923, - -0.05513351038098335, - 0.006964374333620071, - -0.03476351127028465, - 0.028823325410485268, - -0.017037060111761093, - -0.013089367188513279, - -0.0007304276805371046, - -0.01818246766924858, - -0.0358784981071949, - -0.03820820152759552, - 0.015562315471470356, - 0.00018370793259236962, - 0.03239649906754494, - 0.015994442626833916, - -0.000592600554227829, - 0.008592654950916767, - 0.04046710208058357, - 0.027882486581802368, - 0.03194635733962059, - 0.0011014073388651013, - -0.003262039739638567, - 0.028336865827441216, - 0.0858481302857399, - -0.01533494796603918, - 0.05090944841504097, - -0.0035218587145209312, - 0.08530427515506744, - 0.0054161143489181995, - -0.011051786132156849, - -0.012424369342625141, - 0.02149052545428276, - 0.02530200406908989, - -0.07569118589162827, - 0.0018829117761924863, - 0.009908324107527733, - -0.07458071410655975, - 0.03206281363964081, - -0.04795178025960922, - 0.02145305834710598, - 1.828800668590702e-05, - 0.04092027619481087, - -0.048973266035318375, - 0.003607937367632985, - -0.04243769124150276, - -0.007136066909879446, - 0.03867192566394806, - 0.01908240281045437, - 0.04794834926724434, - 0.17316851019859314, - 0.06294301897287369, - 0.00422609644010663, - -0.0029422123916447163, - -0.0393056645989418, - 0.017446249723434448, - -0.013641159981489182, - -0.00391086982563138, - 0.11718083918094635, - 0.02884306199848652, - 0.018480034545063972, - -0.018031273037195206, - -0.011360399425029755, - 0.009506378322839737, - -0.03906011953949928, - 0.03141152486205101, - -0.004657913465052843, - -0.04457191377878189, - -0.020391790196299553, - -0.016526998952031136, - -0.0013851710828021169, - 0.1292579174041748, - -0.012125578708946705, - 0.004460879601538181, - 0.05506651848554611, - -0.021735070273280144, - -0.015060264617204666, - 0.00372126791626215, - -0.03517797216773033, - 0.02624056115746498, - -0.03646386042237282, - 0.03803890943527222, - -0.02370167337357998, - -0.08728392422199249, - -0.0561668761074543, - 0.01242805551737547, - 0.01809605583548546, - -0.0037988207768648863, - -0.048897501081228256, - 0.010026253759860992, - 0.05495564639568329, - 0.03720257803797722, - 0.01790599897503853, - -0.05768308788537979, - 0.01556275226175785, - 0.01929158717393875, - -0.002929286565631628, - -0.0016821029130369425, - 0.0029388857074081898, - -0.03059798665344715, - -0.0021770382300019264, - 0.014060896821320057, - 0.0169253908097744, - 0.10234039276838303, - -0.015132536180317402, - -0.6560548543930054, - 0.02034195512533188, - -0.015810828655958176, - 0.04131413251161575, - 0.03198441118001938, - -0.09399500489234924, - -0.016996225342154503, - -0.013856912963092327, - 0.0231245756149292, - 0.03129953518509865, - 0.003047413658350706, - -0.001838900032453239, - 0.007522264029830694, - -0.02566436305642128, - 0.02509988099336624, - -0.011513179168105125, - 0.0011891360627487302, - -0.016955038532614708, - -0.007048910483717918, - -0.028448039665818214, - -0.01549308281391859, - -0.014398222789168358, - -0.027461178600788116, - 0.0077648465521633625, - -0.020036552101373672, - -0.008220206946134567, - 0.006218744441866875, - -0.024152282625436783, - -0.026981625705957413, - 0.020603029057383537, - 0.02835889719426632, - 0.004368863068521023, - -0.024175051599740982, - 0.3065474033355713, - -0.016165275126695633, - 0.017583239823579788, - 0.0014395880280062556, - 0.06354179233312607, - 0.026512818410992622, - -0.06894458830356598, - 0.027339352294802666, - -0.018196025863289833, - -0.010350378230214119, - -0.006811521947383881, - -0.0008505590376444161, - -0.012131726369261742, - -0.05633779615163803, - -0.04642409831285477, - 0.02760026603937149, - -0.03367539867758751, - -0.05179881677031517, - 0.042782437056303024, - 0.014132955111563206, - -0.0424213744699955, - 0.011201830580830574, - 0.022381186485290527, - -0.020351652055978775, - -0.04409119859337807, - -0.16845360398292542, - 0.01980040967464447, - -0.002750835381448269, - 0.011222855187952518, - -0.02325555682182312, - 0.000264083209913224, - 0.010566848330199718, - -0.024378441274166107, - 0.21316546201705933, - -0.00540138827636838, - 0.005135805811733007, - 0.024474723264575005, - -0.007471806835383177, - 0.003307538805529475, - -0.021229196339845657, - -0.0016555520705878735, - -0.0005992940277792513, - -0.029527271166443825, - -0.001196093624457717, - 0.026812274008989334, - 0.0027363263070583344, - -0.03255486115813255, - -0.029103394597768784, - -0.007952854968607426, - 0.002071972470730543, - -0.004270991310477257, - 0.01722300983965397, - 0.023143164813518524, - 0.12681342661380768, - -0.01705232821404934, - -0.006510087288916111, - -0.006933579221367836, - -0.008268576115369797, - 0.023416642099618912, - -0.023408183827996254, - -0.11005577445030212, - 0.027343956753611565, - -0.03543344512581825, - 0.019057009369134903, - 0.01179729588329792, - 0.010701729916036129, - -0.0054791709408164024, - -0.010974394157528877, - -0.014715638011693954, - -0.007807649672031403, - -0.014874128624796867, - 0.007733839098364115, - 0.006755967158824205, - 0.0240637119859457, - 0.017885722219944, - 0.03858339414000511, - -0.041545018553733826, - 0.008136533200740814, - 0.01728702522814274, - -0.24867522716522217, - 0.02229987643659115, - 0.07788337022066116, - -0.019216056913137436, - 0.003939950373023748, - 0.028984395787119865, - 0.008260399103164673, - -0.018605569377541542, - -0.007329674903303385, - 0.03614634647965431, - -0.01181417889893055, - -0.029969342052936554, - -0.0708586722612381, - 0.0056969658471643925, - -0.001607380690984428, - 0.01456984132528305, - 0.0010909972479566932, - 0.028713377192616463 - ], - [ - -0.008824256248772144, - 0.03572754189372063, - 0.03705190122127533, - 0.04671372100710869, - -0.02183808945119381, - -0.00813596136868, - -0.005069202743470669, - 0.05062171071767807, - 0.016195373609662056, - -0.0069777765311300755, - -0.011329577304422855, - -0.011862143874168396, - 0.004152634646743536, - 0.048696115612983704, - -0.046671099960803986, - -0.008166996762156487, - -0.005558545235544443, - -0.0701945424079895, - -0.04225407540798187, - 0.01023494079709053, - -0.1510336548089981, - 0.011899381875991821, - -0.042931437492370605, - -0.023638786748051643, - 0.005458701867610216, - -0.039549779146909714, - 0.030767010524868965, - -0.03318653628230095, - -0.02952585741877556, - 0.026537595316767693, - -0.017577748745679855, - -0.015691567212343216, - -0.04845161736011505, - -0.011295774020254612, - 0.019569743424654007, - 0.014415184035897255, - 0.008387984707951546, - -0.008922659792006016, - 0.0038010149728506804, - 0.043519191443920135, - 0.036202676594257355, - 0.0034657148644328117, - 0.017375802621245384, - -0.005245939828455448, - 0.017788663506507874, - 0.030908197164535522, - 0.00798105914145708, - -0.024627506732940674, - 0.006513245869427919, - 0.02779008261859417, - -0.03534319996833801, - 0.0015931769739836454, - -0.03264160826802254, - 0.026168812066316605, - 0.013328541070222855, - -0.0034134199377149343, - 0.004562149755656719, - 0.049717988818883896, - -0.05040628835558891, - 0.02622830681502819, - -0.022787945345044136, - -0.02453014627099037, - 0.031139718368649483, - 0.010873496532440186, - -0.04897047579288483, - -0.0014211994130164385, - 0.02675725519657135, - -0.012203967198729515, - 0.007705180440098047, - 0.05198203772306442, - 0.06562621146440506, - 0.08642652630805969, - 0.049680549651384354, - 0.030013402923941612, - -0.031036069616675377, - -0.03930274397134781, - 0.03768476843833923, - 0.02217039279639721, - -0.013210359029471874, - 0.07539959251880646, - 0.056057900190353394, - -0.015090464614331722, - -0.6354305148124695, - 0.024382703006267548, - -0.031463395804166794, - 0.01786709949374199, - 0.07570907473564148, - -0.032956913113594055, - -0.027804110199213028, - -0.03691151738166809, - 0.0036328332498669624, - 0.006521339528262615, - -0.10536319762468338, - 0.03998561576008797, - 0.00761893205344677, - 0.03558547422289848, - -0.028329599648714066, - -0.0004751058295369148, - -0.01950417086482048, - -0.03531867265701294, - 0.033638644963502884, - -0.021760422736406326, - 0.005090050399303436, - 0.03983355686068535, - -0.03795406222343445, - -0.04646006226539612, - 0.027748113498091698, - 0.01591738685965538, - 0.017574351280927658, - -0.006920900661498308, - 0.0032222995068877935, - 0.018615642562508583, - 0.019947556778788567, - 0.02187259867787361, - 0.03264201804995537, - 0.03297220915555954, - 0.028159551322460175, - -0.025715436786413193, - 0.019936593249440193, - 0.024520212784409523, - -0.0772661492228508, - -0.0020416993647813797, - -0.0008445489802397788, - 0.03715016320347786, - 0.06293212622404099, - 0.02153429202735424, - -0.08254246413707733, - 0.05028944090008736, - -0.010607777163386345, - 0.06538259238004684, - 0.04500797390937805, - -0.0542575977742672, - -0.018229050561785698, - -0.028776785358786583, - 0.08820582926273346, - 0.01860588602721691, - -0.014555653557181358, - 0.00692946370691061, - 0.013951131142675877, - -0.011388705112040043, - -0.02286367490887642, - 0.02782638743519783, - -0.004872033838182688, - -0.015314409509301186, - -0.013663876801729202, - -0.06586159020662308, - 0.036954522132873535, - -0.015065905638039112, - -0.014659869484603405, - 0.008021919056773186, - -0.005927798338234425, - 0.053243450820446014, - -0.024267470464110374, - -0.09493348002433777, - -0.009309838525950909, - 0.015219121240079403, - 0.030454697087407112, - 0.005839881487190723, - -0.0019071991555392742, - 0.28988248109817505, - 0.018028847873210907, - -0.004717105533927679, - 0.0015575949801132083, - 0.04945981130003929, - 0.1428021937608719, - 0.0392511747777462, - 0.0411565862596035, - -0.046943485736846924, - 0.0010140773374587297, - -0.004111040849238634, - -0.003641905030235648, - 0.03692752122879028, - -0.10256456583738327, - -0.014723815955221653, - -0.022927312180399895, - 0.039050810039043427, - -0.042472854256629944, - 0.06594789028167725, - 0.02552652917802334, - 0.0226523969322443, - 0.003902314230799675, - 0.015023165382444859, - -0.019876444712281227, - -0.004264840856194496, - -0.1321154683828354, - -0.0009558596648275852, - 0.035311874002218246, - -0.044001974165439606, - 0.0050087058916687965, - -0.05193366855382919, - 0.0634152740240097, - 0.011847978457808495, - 0.19486042857170105, - -0.025374773889780045, - -0.00524116912856698, - -0.00394160533323884, - -0.03326384723186493, - -0.008382335305213928, - -0.06494385749101639, - 0.03770432248711586, - -0.03468983620405197, - -0.024249086156487465, - 0.01786213554441929, - -0.005290839821100235, - -0.027655096724629402, - -0.031200256198644638, - 0.014907770790159702, - -0.03781655803322792, - -0.019971666857600212, - 0.0006419330602511764, - 0.04644930735230446, - 0.03366180509328842, - 0.10175801068544388, - 0.0010631370823830366, - -0.010456199757754803, - -0.04768962040543556, - 0.012491303496062756, - 0.018654244020581245, - -0.03303390368819237, - -0.112530916929245, - 0.027613837271928787, - -0.04342198744416237, - 0.021310314536094666, - -0.02150043472647667, - 0.017227236181497574, - -0.01208824198693037, - -0.0030448581092059612, - -0.007129644509404898, - 0.017169101163744926, - -0.04131121188402176, - -0.007784514222294092, - 0.061406947672367096, - -0.011702236719429493, - 0.017382442951202393, - 0.03279683738946915, - -0.06585393846035004, - -0.0157610010355711, - 0.03711055591702461, - -0.325153648853302, - 0.02744162455201149, - 0.05614529177546501, - 0.004257537890225649, - 0.04300786927342415, - -0.019829707220196724, - 0.03781285136938095, - -0.074400894343853, - -0.003749140305444598, - 0.002723504090681672, - -0.008434627205133438, - -0.05490203946828842, - -0.02533549815416336, - 0.02976255491375923, - -0.028890231624245644, - 0.0076232245191931725, - -0.011448346078395844, - 0.012018589302897453 - ], - [ - -0.005556407384574413, - -0.01641562581062317, - 0.03583226725459099, - -0.007178839761763811, - 0.04347176477313042, - 0.011332935653626919, - 0.0010740632424131036, - 0.004240511450916529, - -0.06156375631690025, - -0.0009651306900195777, - -0.005602192599326372, - 0.000988248037174344, - 0.03122362494468689, - 0.0037222481332719326, - -0.059933193027973175, - -0.20296595990657806, - 0.004884445108473301, - -0.053258489817380905, - 0.0029072498437017202, - 0.0031975526362657547, - -0.024811455979943275, - 0.018116282299160957, - -0.021147863939404488, - -0.07598764449357986, - 0.024346090853214264, - -0.04160092771053314, - -0.0009150300174951553, - 0.005283374339342117, - -0.010225005447864532, - -0.0033013303764164448, - -0.022971460595726967, - -0.06317007541656494, - -0.036397404968738556, - 0.020319249480962753, - -0.004236906301230192, - 0.020878562703728676, - 0.012782764621078968, - -0.01596723683178425, - 0.012188521213829517, - 0.048778235912323, - 0.023064054548740387, - 0.05052642896771431, - -0.0014589236816391349, - -0.008115346543490887, - 0.02177676372230053, - 0.08570946007966995, - 0.023089885711669922, - 0.05740397796034813, - -0.017297418788075447, - 0.0894947201013565, - -0.02375745214521885, - 0.0054410467855632305, - -0.005486401729285717, - 0.005077285226434469, - 0.03506311774253845, - -0.05884110927581787, - 0.0061608911491930485, - 0.018760230392217636, - -0.07053738087415695, - 0.016006769612431526, - -0.024468809366226196, - 0.031625229865312576, - -0.014666460454463959, - 0.021694762632250786, - -0.046950455754995346, - 0.005374172702431679, - -0.03818663954734802, - -0.008601948618888855, - 0.050919704139232635, - -0.017881132662296295, - 0.037716515362262726, - 0.16339901089668274, - 0.06680860370397568, - -0.006181054748594761, - -0.005552187096327543, - -0.03693069890141487, - -0.004248497541993856, - 0.013354271650314331, - -0.008933682925999165, - 0.09214018285274506, - 0.014631899073719978, - 0.00832598377019167, - 0.04311782494187355, - -0.0013408261584118009, - -0.008526011370122433, - -0.03937395289540291, - 0.041606355458498, - -0.003659320529550314, - -0.05209732428193092, - 0.011292191222310066, - -0.0337601900100708, - -0.00754077872261405, - 0.10203377157449722, - 0.0048434119671583176, - -0.013442630879580975, - 0.041930682957172394, - -0.020508989691734314, - -0.035574715584516525, - 0.007166663184762001, - -0.0336020328104496, - 0.04612216353416443, - -0.006881854962557554, - 0.0421772226691246, - -0.026512350887060165, - -0.0759892612695694, - -0.06670118868350983, - 0.0025665927678346634, - 0.01638505607843399, - -0.018106551840901375, - -0.056438084691762924, - 0.010390869341790676, - 0.04245830699801445, - 0.03404550999403, - 0.02541184425354004, - -0.052862901240587234, - -0.008935900405049324, - 0.013748065568506718, - -0.019524050876498222, - -0.029756249859929085, - 0.03991084173321724, - 0.003392226528376341, - -0.008164064027369022, - 0.0025814564432948828, - 0.029026992619037628, - 0.09733325988054276, - 0.004073284100741148, - -0.66490238904953, - 0.01875331439077854, - -0.019776418805122375, - 0.008738321252167225, - 0.03234957158565521, - -0.11616945266723633, - -0.015049506910145283, - 0.008982913568615913, - 0.048734311014413834, - 0.03603343293070793, - 0.021626949310302734, - -0.007538938894867897, - -0.0071394676342606544, - -0.04520048946142197, - 0.025891825556755066, - -0.008240635506808758, - 0.014416190795600414, - -0.057518091052770615, - -0.002667107619345188, - -0.02329619601368904, - 0.0015495228581130505, - -0.043980129063129425, - -0.023255402222275734, - -0.014587021432816982, - -0.027841007336974144, - 0.008739191107451916, - -0.01050857175141573, - -0.01916872337460518, - -0.021523702889680862, - -0.0016438504680991173, - 0.04268437251448631, - 0.00987795740365982, - -0.011550616472959518, - 0.2853996455669403, - -0.03392181918025017, - 0.009910485707223415, - 0.014240567572414875, - 0.09197194129228592, - 0.026920773088932037, - -0.07400783151388168, - 0.025142353028059006, - -0.013245351612567902, - -0.007415756583213806, - 0.02279512770473957, - 0.02944674901664257, - -0.0521281361579895, - -0.027879200875759125, - -0.04788210615515709, - 0.03316893056035042, - -0.004810044076293707, - -0.04677610099315643, - 0.027576245367527008, - 0.0002990905486512929, - -0.030847372487187386, - 0.0005508232861757278, - 0.03844091296195984, - 0.003973694052547216, - -0.05670873820781708, - -0.1605912297964096, - 0.012005867436528206, - -0.027201741933822632, - 0.009522109292447567, - -0.029798761010169983, - -0.0029264858458191156, - 0.020976977422833443, - -0.04878298193216324, - 0.19851340353488922, - 0.00613780552521348, - 0.003032586770132184, - 0.0378117598593235, - -0.011669019237160683, - -0.01708173379302025, - -0.03859967738389969, - -0.021835627034306526, - -0.019132127985358238, - -0.016515422612428665, - 0.021269002929329872, - 0.011944076046347618, - 0.022536663338541985, - -0.04260861873626709, - -0.026390185579657555, - -0.014660589396953583, - 0.008615643717348576, - -0.029245486482977867, - 0.03927551209926605, - -0.009367482736706734, - 0.11658357083797455, - -0.0006655181641690433, - -0.012110874056816101, - -0.008191108703613281, - 0.01867794618010521, - 0.027822300791740417, - -0.008144373074173927, - -0.07086377590894699, - 0.0419885590672493, - -0.053782377392053604, - 0.005864962004125118, - 0.029467729851603508, - 0.014593217521905899, - -0.0023183622397482395, - -0.01875724457204342, - -0.006319824140518904, - -0.012839878909289837, - -0.00923843588680029, - 0.023076875135302544, - 0.0014623281313106418, - 0.009157601743936539, - -0.010349259711802006, - 0.020937711000442505, - -0.05009942874312401, - -0.006682259030640125, - 0.021230299025774002, - -0.23800599575042725, - 0.01663838140666485, - 0.07906375080347061, - -0.008969267830252647, - -0.028610000386834145, - 0.019710978493094444, - -0.0003327353042550385, - -0.014165385626256466, - 0.0010002683848142624, - 0.04581949859857559, - 0.013462834991514683, - 0.0005070045008324087, - -0.07250595092773438, - -0.006453569512814283, - 0.0043968274258077145, - 0.02627982571721077, - 0.006646186113357544, - 0.010089837945997715 - ], - [ - -0.028342414647340775, - 0.0034140069037675858, - 0.03926294296979904, - 0.014550781808793545, - 0.034066736698150635, - 0.0025844043120741844, - 0.005972822662442923, - -0.0055997734889388084, - -0.08958814293146133, - 0.01859101466834545, - 0.01724265329539776, - -0.023970920592546463, - 0.029819753021001816, - 0.017429392784833908, - -0.05020040646195412, - -0.23874549567699432, - -0.0018605542136356235, - -0.01822596974670887, - -0.015695950016379356, - -0.015662146732211113, - 0.020703140646219254, - 0.008079801686108112, - -0.003831165377050638, - -0.07317303866147995, - 0.01868477836251259, - -0.01327105425298214, - 0.015102284960448742, - 0.004925435874611139, - -0.028135230764746666, - 0.02077682502567768, - -0.02575315721333027, - -0.04811462014913559, - -0.05253145471215248, - 0.0177635345607996, - -0.015338899567723274, - 0.022868752479553223, - 0.03121170401573181, - -0.05218705162405968, - -0.0036217349115759134, - 0.027058206498622894, - 0.005191288888454437, - 0.02946958877146244, - -0.00538941565901041, - -0.045953527092933655, - 0.011444865725934505, - 0.08932973444461823, - 0.01923561282455921, - 0.06636752188205719, - -0.022286027669906616, - 0.06643559783697128, - -0.017238276079297066, - 0.0036394232884049416, - -0.021372312679886818, - 0.016092952340841293, - 0.021740764379501343, - -0.020703060552477837, - 0.006037234328687191, - 0.011152246966958046, - -0.05514148622751236, - 0.020437171682715416, - 0.007517960853874683, - 0.026204729452729225, - 0.026538901031017303, - 0.04593133553862572, - -0.07833579927682877, - 0.0075873276218771935, - -0.0351293571293354, - -0.047196343541145325, - 0.022785551846027374, - 0.016416270285844803, - -0.014185491017997265, - 0.13999512791633606, - 0.060369379818439484, - -0.00763503136113286, - -0.02576202154159546, - -0.0501156821846962, - 0.013102208264172077, - -0.01177965197712183, - -0.019543839618563652, - 0.06884580850601196, - 0.016838902607560158, - 0.03104177862405777, - 0.22270455956459045, - -0.016102252528071404, - 0.02133062668144703, - -0.0702572911977768, - 0.016515420749783516, - -0.022161604836583138, - -0.023663345724344254, - -0.017327724024653435, - -0.03260910138487816, - 0.001615287852473557, - 0.16197995841503143, - 0.01604449190199375, - 0.01627357117831707, - -0.0014587217010557652, - -0.03270331397652626, - -0.024777591228485107, - -0.012575120665133, - -0.03168575465679169, - 0.02439231425523758, - 0.003899719100445509, - 0.060923874378204346, - -0.03186970204114914, - -0.039533838629722595, - -0.06917521357536316, - 0.02361539751291275, - -0.01952672377228737, - -0.024547835811972618, - -0.06189222261309624, - 0.026585569605231285, - 0.03157760947942734, - 0.035327713936567307, - 0.014376908540725708, - -0.07756619155406952, - -0.0029432771261781454, - 0.024288197979331017, - -0.017570851370692253, - -0.04519756883382797, - 0.033842068165540695, - 0.016977563500404358, - -0.003620459232479334, - -0.013809491880238056, - -0.018323643133044243, - 0.1037963256239891, - 0.03165672346949577, - -0.6883577704429626, - 0.017451424151659012, - -0.036566656082868576, - -0.0015733381733298302, - 0.024371955543756485, - -0.10749842971563339, - -0.009215411730110645, - 0.005729675758630037, - 0.05467742308974266, - 0.02125723659992218, - 0.005567815620452166, - 0.010511664673686028, - -0.0011609022039920092, - 0.001620371243916452, - 0.04702344909310341, - 0.026558689773082733, - 0.015716681256890297, - -0.037236616015434265, - 0.016772378236055374, - -0.00022701946727465838, - 0.01050636451691389, - -0.01853671483695507, - -0.03488585352897644, - 0.0037728059105575085, - -0.0006036160048097372, - 0.0008916930528357625, - 0.024884527549147606, - 0.014303241856396198, - -0.015775145962834358, - -0.017182784155011177, - 0.01795666478574276, - -0.0012204267550259829, - -0.018669648095965385, - 0.22071821987628937, - -0.023380190134048462, - -0.01196984015405178, - 0.016806133091449738, - 0.0827922523021698, - 0.0008770325221121311, - -0.07770156860351562, - 0.007283336017280817, - -0.011386661790311337, - 0.008342722430825233, - 0.03176172450184822, - 0.018087226897478104, - -0.071513831615448, - -0.024183345958590508, - -0.021871602162718773, - 0.06370484083890915, - -0.01418290100991726, - -0.04003263637423515, - 0.02575339935719967, - -0.005999088287353516, - -0.014377702958881855, - -0.0023629923816770315, - 0.01143177505582571, - -0.025397062301635742, - -0.05122099444270134, - -0.13911855220794678, - 0.013665077276527882, - -0.02672063745558262, - 0.012936056591570377, - -0.04525112733244896, - 0.013761242851614952, - -0.0031214819755405188, - -0.027133509516716003, - 0.15762576460838318, - 0.003593565197661519, - -0.023055819794535637, - 0.03873875364661217, - -0.014653707854449749, - -0.016993844881653786, - -0.06419870257377625, - -0.023114025592803955, - -0.011072233319282532, - -0.01393713615834713, - 0.0102214515209198, - 0.03407010808587074, - 0.001769552007317543, - -0.030178895220160484, - -0.0188200231641531, - -0.0120247732847929, - 0.007820961996912956, - -0.0007123207324184477, - 0.006329212803393602, - 0.007263080216944218, - 0.10172053426504135, - -0.0027890715282410383, - -0.019037215039134026, - 0.016124453395605087, - 0.0030125733464956284, - 0.007724559400230646, - -0.01788664609193802, - -0.04661864414811134, - 0.05410795286297798, - -0.05008198693394661, - 0.005430757068097591, - 0.03603151813149452, - 0.005258448887616396, - -0.015022124163806438, - -0.025311388075351715, - -0.006460282951593399, - -0.009272413328289986, - -0.032991278916597366, - -0.0018867007456719875, - -0.0030457826796919107, - -0.006251006852835417, - -6.428756023524329e-05, - -0.011358939111232758, - -0.03916873782873154, - 0.0010616456856951118, - 0.017740575596690178, - -0.13384981453418732, - 0.007680769544094801, - 0.10173755884170532, - -0.012734655290842056, - -0.035982921719551086, - 0.004321302752941847, - -0.002742878859862685, - 0.0002525054442230612, - -0.003451388794928789, - 0.0524580292403698, - 0.02284865267574787, - 0.0057560657151043415, - -0.05973447114229202, - -0.017489643767476082, - 0.023620644584298134, - 0.030104633420705795, - 0.002664583967998624, - -0.01207657903432846 - ], - [ - -0.025007298216223717, - -0.004089093301445246, - 0.06376014649868011, - 0.03659452870488167, - -0.0063755568116903305, - -0.0027730243746191263, - -0.0007579289958812296, - 0.019348235800862312, - -0.008766443468630314, - 0.007854300551116467, - -0.01856287382543087, - -0.013193554244935513, - 0.025296112522482872, - 0.02789648063480854, - -0.04240536317229271, - -0.1262066513299942, - -0.032760508358478546, - -0.07510893791913986, - -0.0004770242376253009, - -0.038174767047166824, - -0.07382082939147949, - 0.006943736225366592, - -0.029935626313090324, - -0.05524488538503647, - 0.01750183291733265, - -0.03069949522614479, - 0.0232864897698164, - -0.0244818814098835, - -0.019288120791316032, - -0.005105255637317896, - -0.007057749200612307, - -0.026969298720359802, - -0.02638392522931099, - 0.018256893381476402, - 0.023483213037252426, - 0.02142304740846157, - 0.029735269024968147, - -0.01070728711783886, - 0.009571004658937454, - 0.03473380208015442, - 0.03553937003016472, - 0.0323491133749485, - 0.02415737882256508, - -0.024510113522410393, - 0.03044491447508335, - 0.06825894862413406, - 0.007702392991632223, - 0.02881721965968609, - -0.012431957758963108, - 0.07767945528030396, - -0.0055723548866808414, - -0.018323594704270363, - -0.013055033050477505, - 0.03005222976207733, - 0.032619815319776535, - -0.052786968648433685, - 0.012148330919444561, - -0.0019771712832152843, - -0.04754341393709183, - 0.053805574774742126, - -0.016324317082762718, - 0.011948339641094208, - 0.006545316893607378, - 0.04473373293876648, - -0.07353856414556503, - 0.007612199988216162, - -0.02446739189326763, - -0.007102011237293482, - 0.022697003558278084, - 0.03027915023267269, - 0.038396481424570084, - 0.19375847280025482, - 0.05253829061985016, - 0.02507578581571579, - -0.013181382790207863, - -0.05142993852496147, - 0.0609423890709877, - -0.02374839596450329, - 0.0011384346289560199, - 0.09116984158754349, - 0.02241050824522972, - 0.024752160534262657, - 0.013569328933954239, - -0.010461206547915936, - -0.009989588521420956, - -0.059975601732730865, - 0.023952433839440346, - -0.01764664426445961, - -0.04002760350704193, - -0.017986634746193886, - -0.02473289705812931, - -0.005639946553856134, - 0.060625817626714706, - 0.024519214406609535, - -0.006442722864449024, - 0.02820749208331108, - -0.02838957868516445, - -0.019741259515285492, - 0.007300875149667263, - -0.031029948964715004, - 0.032234057784080505, - -0.012952172197401524, - 0.05279141664505005, - -0.006512635387480259, - -0.061399105936288834, - -0.0500415600836277, - 0.04008299484848976, - 0.021065324544906616, - -6.940654566278681e-05, - -0.006244009360671043, - 0.02772734872996807, - 0.04839198291301727, - 0.042002446949481964, - 0.0044600809924304485, - -0.033860865980386734, - 0.009184258989989758, - 0.030173012986779213, - -0.014830793254077435, - 0.00633350620046258, - 0.04180404916405678, - -0.021370602771639824, - -0.026351623237133026, - 0.00023364384833257645, - 0.01703718677163124, - 0.09091418236494064, - 0.01911240816116333, - -0.6249862909317017, - 0.043542902916669846, - -0.001936157001182437, - 0.0299344751983881, - 0.027899514883756638, - -0.10216951370239258, - 0.0015716287307441235, - -0.022912943735718727, - 0.0457860603928566, - 0.02636919543147087, - 0.0156245157122612, - -0.01084554847329855, - 0.01828117109835148, - -0.02643505297601223, - 0.009963160380721092, - 0.029337206855416298, - -0.009026367217302322, - -0.021649513393640518, - -9.767190931597725e-05, - -0.03736886382102966, - 0.012607919983565807, - -0.02320949360728264, - -0.0351397842168808, - 0.014443396590650082, - 0.005794849246740341, - 0.005684557370841503, - 0.008730527944862843, - -0.060575999319553375, - -0.008972425013780594, - 0.020960120484232903, - 0.027005326002836227, - 0.014280226081609726, - -0.025018103420734406, - 0.2910463511943817, - -0.014143964275717735, - 0.030463125556707382, - -0.020208511501550674, - 0.05322263762354851, - 0.04676395654678345, - -0.09188719838857651, - 0.011513013392686844, - -0.01052943803369999, - -0.016473349183797836, - 0.020285189151763916, - 0.004336962476372719, - -0.032380394637584686, - -0.06977426260709763, - -0.024669717997312546, - 0.030325593426823616, - 0.009042248129844666, - -0.021136557683348656, - 0.04464598000049591, - 0.004388872534036636, - 0.0062630148604512215, - 0.014914688654243946, - 0.012953262776136398, - -0.019321804866194725, - -0.03154510259628296, - -0.14481951296329498, - -0.010328433476388454, - 0.004666334483772516, - -0.005481690634042025, - -0.005686421878635883, - -0.009444916620850563, - 0.01793745532631874, - -0.011443735100328922, - 0.22757191956043243, - -0.004656059667468071, - -0.000852306024171412, - 0.030672138556838036, - -0.021694622933864594, - 0.0009880022844299674, - -0.049474719911813736, - -0.005790680646896362, - -0.006479692179709673, - -0.011770200915634632, - 0.025643151253461838, - 0.030159572139382362, - 0.006092843133956194, - -0.036346618086099625, - -0.020717434585094452, - -0.020472800359129906, - 0.0004250198835507035, - 0.0035340001340955496, - 0.026362808421254158, - 0.017496464774012566, - 0.15148580074310303, - -0.005397687666118145, - 0.003949656616896391, - -0.03823123499751091, - 0.011877557262778282, - 0.036916013807058334, - -0.016245262697339058, - -0.10452241450548172, - 0.012540771625936031, - -0.0546284019947052, - 0.017862733453512192, - 0.0021273638121783733, - 0.006172978784888983, - -0.007085335906594992, - 0.0037874612025916576, - 0.0013242476852610707, - -0.009252396412193775, - -0.008419129997491837, - 0.013370971195399761, - 0.03944006189703941, - 0.005283957347273827, - 0.01118083018809557, - -0.0017674926202744246, - -0.03672251105308533, - 0.006801980547606945, - 0.021152807399630547, - -0.3592221736907959, - 0.015635859221220016, - 0.06858385354280472, - -0.006420230492949486, - -0.01683259755373001, - 0.00496837729588151, - 0.029651356860995293, - -0.02271013706922531, - 0.007839572615921497, - 0.03481854498386383, - -0.018620166927576065, - -0.049383874982595444, - -0.0590914785861969, - 0.03633332625031471, - 0.008100026287138462, - 0.039509814232587814, - 0.017120031639933586, - -0.004275666084140539 - ], - [ - -0.006779576186090708, - -0.011070972308516502, - 0.03402367979288101, - -0.004227121826261282, - 0.04353784769773483, - 0.006100032012909651, - 0.007392668165266514, - -0.008772255852818489, - -0.07419434934854507, - -0.004914646968245506, - 0.011110732331871986, - -0.003666604869067669, - 0.034106917679309845, - 0.0034717642702162266, - -0.05862022563815117, - -0.22041675448417664, - 0.005696724634617567, - -0.03063664771616459, - 0.003271927358582616, - 0.0172189399600029, - 0.001196257770061493, - 0.01096081081777811, - -0.0075109791941940784, - -0.08222302794456482, - 0.02848595380783081, - -0.03530772030353546, - 0.011705816723406315, - 0.0017531018238514662, - -0.010990787297487259, - 0.0004248929617460817, - -0.022434677928686142, - -0.06304415315389633, - -0.032939612865448, - 0.022338390350341797, - -0.02297416515648365, - 0.027523228898644447, - 0.012852504849433899, - -0.030163584277033806, - 0.010423517785966396, - 0.04060135409235954, - 0.02150464616715908, - 0.04829226806759834, - -0.0026362098287791014, - -0.014366534538567066, - 0.023542409762740135, - 0.10847741365432739, - 0.015111694112420082, - 0.06287460029125214, - -0.016698500141501427, - 0.09068043529987335, - -0.020711172372102737, - -0.008481629192829132, - -0.007015922572463751, - 0.010794807225465775, - 0.03865037113428116, - -0.05741020292043686, - 0.007036616560071707, - 0.011842605657875538, - -0.07912537455558777, - 0.013467453420162201, - -0.028231285512447357, - 0.03989117965102196, - -0.0052542840130627155, - 0.022501777857542038, - -0.06540089845657349, - 0.014913021586835384, - -0.036089375615119934, - -0.009125097654759884, - 0.05902145430445671, - -0.00407618610188365, - 0.037403520196676254, - 0.14808067679405212, - 0.06412626057863235, - -0.008619737811386585, - -0.004193224478513002, - -0.03097829595208168, - -0.007825152948498726, - 0.0036356875207275152, - -0.00861434917896986, - 0.09977688640356064, - 0.011285511776804924, - 0.020042285323143005, - 0.04680996388196945, - 0.0023144427686929703, - 0.01145376916974783, - -0.05354504659771919, - 0.04498894512653351, - -0.005437486805021763, - -0.05149822309613228, - -0.0037577420007437468, - -0.03367685526609421, - -0.015218048356473446, - 0.13634724915027618, - 0.0005529276095330715, - -0.007504081353545189, - 0.03699283301830292, - -0.02115500345826149, - -0.02322767674922943, - -0.0004705529718194157, - -0.039531271904706955, - 0.0462857224047184, - -0.01420846488326788, - 0.05419085919857025, - -0.03309719264507294, - -0.08588673174381256, - -0.062419239431619644, - 0.0026153086218982935, - 0.013395357877016068, - -0.02283933199942112, - -0.058597397059202194, - 0.011968662962317467, - 0.043984051793813705, - 0.045287150889635086, - 0.025727439671754837, - -0.06932073086500168, - -0.020328830927610397, - 0.019716836512088776, - -0.01938970945775509, - -0.03045964427292347, - 0.027101030573248863, - 0.003445064416155219, - -0.0012809879845008254, - -0.001825241488404572, - 0.016472939401865005, - 0.11147050559520721, - 0.013294943608343601, - -0.6668466329574585, - 0.014780792407691479, - -0.027219969779253006, - 0.00749657629057765, - 0.023987311869859695, - -0.12219183892011642, - -0.017727402970194817, - 0.014290743507444859, - 0.059940680861473083, - 0.03186541050672531, - 0.03334280103445053, - 0.0027551893144845963, - -0.007035963237285614, - -0.04076135531067848, - 0.036969587206840515, - -0.0062222667038440704, - 0.025461003184318542, - -0.051622916013002396, - 0.01033246424049139, - -0.01013992354273796, - 0.004015207290649414, - -0.03685232996940613, - -0.02551155351102352, - -0.00922456942498684, - -0.028838181868195534, - 0.001986070768907666, - -0.004210498183965683, - -0.007755061145871878, - -0.02267215959727764, - -0.010236725211143494, - 0.04216489940881729, - 0.008264157921075821, - -0.011499677784740925, - 0.2744584381580353, - -0.023285550996661186, - -0.0059245266020298, - 0.010169466957449913, - 0.07811836153268814, - 0.007411553058773279, - -0.055267564952373505, - 0.014490867033600807, - -0.006609372328966856, - 3.6228233511792496e-05, - 0.0267533790320158, - 0.043910231441259384, - -0.06869964301586151, - -0.03137189522385597, - -0.049095530062913895, - 0.04340516775846481, - -0.015451532788574696, - -0.04522739350795746, - 0.018530339002609253, - 0.004742962308228016, - -0.03920689970254898, - -0.0031377049162983894, - 0.03150410205125809, - 0.0006035942933522165, - -0.06681175529956818, - -0.16860972344875336, - 0.008417287841439247, - -0.017360195517539978, - 0.018901070579886436, - -0.03138503059744835, - -0.0014491758774966002, - 0.016624949872493744, - -0.042850036174058914, - 0.18177717924118042, - 0.008963894098997116, - -0.005565382540225983, - 0.03985112905502319, - -0.009925798512995243, - -0.013298734091222286, - -0.03816215693950653, - -0.03131941705942154, - -0.009443382732570171, - -0.016663087531924248, - 0.012035482563078403, - 0.022288557142019272, - 0.01563332974910736, - -0.04169899597764015, - -0.01872389018535614, - -0.01821902021765709, - 0.01708284579217434, - -0.030421623960137367, - 0.023717576637864113, - 0.0034708704333752394, - 0.10720331966876984, - -0.007254337891936302, - -0.015000234358012676, - 0.0025374351534992456, - 0.014689216390252113, - 0.028995225206017494, - -0.013302281498908997, - -0.051875729113817215, - 0.04900316894054413, - -0.05157644674181938, - 0.0055039725266397, - 0.032620787620544434, - 0.012041276320815086, - -0.009929927065968513, - -0.020232291892170906, - -0.015718920156359673, - -0.01959265023469925, - -0.022220619022846222, - 0.026156144216656685, - -0.006251197773963213, - 0.0042432150803506374, - -0.004884447902441025, - 0.014043948613107204, - -0.05596808344125748, - 0.005245722830295563, - 0.017839454114437103, - -0.18331101536750793, - 0.017909055575728416, - 0.09245721995830536, - -0.02183583751320839, - -0.01702312007546425, - 0.029105959460139275, - -0.00503066461533308, - -0.01272995863109827, - -0.01482677087187767, - 0.05834329500794411, - 0.025092530995607376, - 0.0009018683340400457, - -0.06577226519584656, - -0.019115952774882317, - 0.005316439550369978, - 0.015233987011015415, - 0.0027350622694939375, - 0.017193127423524857 - ], - [ - -0.03278392553329468, - 0.005985582713037729, - 0.04160246625542641, - 0.05686378851532936, - -0.023730868473649025, - -0.014659701846539974, - -0.007135351188480854, - 0.053254254162311554, - 0.025120152160525322, - -0.0015951229725033045, - 0.005898045375943184, - -0.04362337663769722, - 0.027072058990597725, - 0.04963981360197067, - -0.0504467636346817, - -0.15971311926841736, - -0.03729706257581711, - -0.03447367995977402, - -0.02321036532521248, - -0.043856892734766006, - -0.11658346652984619, - -0.008852222934365273, - -0.024333635345101357, - -0.020214468240737915, - -0.013213035650551319, - -0.04299158230423927, - 0.03807864338159561, - -0.06287041306495667, - -0.042708639055490494, - 0.03533725067973137, - -0.0039508710615336895, - -0.01819993369281292, - -0.046359531581401825, - 0.002416193252429366, - 0.0439494326710701, - 0.014512219466269016, - 0.03789490833878517, - 0.017630329355597496, - 0.0012671721633523703, - 0.030702069401741028, - 0.01236631628125906, - 0.04972618818283081, - 0.020433785393834114, - -0.02710750140249729, - -0.0046746376901865005, - 0.06987378001213074, - -0.0034203024115413427, - 0.010495674796402454, - 0.003830654313787818, - 0.054287489503622055, - -0.0028693785425275564, - -0.009519442915916443, - -0.025185255333781242, - 0.05369194969534874, - 0.02271847240626812, - -0.057309966534376144, - 0.003660561516880989, - -0.01614491268992424, - -0.0472521148622036, - 0.09605467319488525, - -0.0158492773771286, - 0.015098732896149158, - 0.027125999331474304, - 0.019455064088106155, - -0.061964940279722214, - 0.007569500710815191, - -0.0035509634763002396, - 0.009854531846940517, - 0.03312869369983673, - 0.04593886807560921, - 0.042290009558200836, - 0.18847516179084778, - 0.06104857847094536, - 0.03437601029872894, - -0.029440926387906075, - -0.050333693623542786, - 0.06194533407688141, - -0.02213297039270401, - -0.005618841387331486, - 0.10829461365938187, - 0.04444926977157593, - 0.025116967037320137, - -0.030664309859275818, - 0.00025166827253997326, - -0.003682030364871025, - -0.024886351078748703, - 0.014509901404380798, - -0.03687480837106705, - -0.034480564296245575, - -0.062230128794908524, - -0.012155290693044662, - 0.0030442618299275637, - 0.04631609842181206, - 0.022011209279298782, - 0.010767057538032532, - 0.0327608548104763, - -0.02198753133416176, - -0.016276389360427856, - -0.015649929642677307, - -0.032599590718746185, - 0.026218779385089874, - -0.022547559812664986, - 0.01502396073192358, - 0.004672265611588955, - -0.05222642049193382, - -0.023689163848757744, - 0.028880499303340912, - -0.0020692546386271715, - 0.011993407271802425, - -0.029834892600774765, - 0.023838140070438385, - 0.06555736809968948, - 0.024048304185271263, - -0.01031050831079483, - -0.04671800881624222, - 0.06005476415157318, - 0.032841622829437256, - -0.012094395235180855, - 0.019057465717196465, - -0.0034684010315686464, - -0.047120533883571625, - -0.017556797713041306, - 0.011748658493161201, - 0.016002018004655838, - 0.09389054775238037, - 0.01832541823387146, - -0.57965487241745, - 0.045187223702669144, - 0.013346259482204914, - 0.06548432260751724, - 0.05447114259004593, - -0.08815721422433853, - 0.00613411283120513, - -0.058709390461444855, - 0.051547277718782425, - 0.016631344333291054, - -0.028557460755109787, - -0.0025803057942539454, - 0.037909120321273804, - -0.020946446806192398, - 0.01805732771754265, - 0.021847151219844818, - -0.027672989293932915, - 0.010965581983327866, - -0.027137910947203636, - -0.024139918386936188, - 0.014825810678303242, - -0.026124658063054085, - -0.017194801941514015, - 0.035631246864795685, - 0.0012230778811499476, - 0.035947106778621674, - -0.01064540259540081, - -0.04968484118580818, - -0.007231430150568485, - 0.04629598557949066, - -0.000575064739678055, - -0.005971286911517382, - -0.016250701621174812, - 0.30322375893592834, - 0.015043860301375389, - 0.02418065443634987, - -0.01350205484777689, - 0.04203680530190468, - 0.07635682821273804, - -0.0792493224143982, - 0.011542480438947678, - -0.05401533842086792, - -0.024397803470492363, - -0.004797680303454399, - -0.014691724441945553, - 0.008917509578168392, - -0.07406586408615112, - -0.033367034047842026, - 0.008059610612690449, - -0.0070997620932757854, - -0.029220448806881905, - 0.05963853746652603, - 0.019514253363013268, - -0.007758925203233957, - 0.006998575758188963, - 0.00578475883230567, - -0.031234093010425568, - -0.010992496274411678, - -0.15736547112464905, - 0.007568201050162315, - 0.03353142738342285, - -0.006910876836627722, - -0.013442437164485455, - -0.027760932222008705, - 2.3825475636840565e-06, - 0.019561704248189926, - 0.2443992793560028, - -0.013069425709545612, - 0.00036113563692197204, - 0.021356143057346344, - -0.027416016906499863, - 0.008476361632347107, - -0.028762128204107285, - 0.01631741039454937, - -0.005933997221291065, - -0.017062213271856308, - 0.033467311412096024, - 0.03491532430052757, - -0.024999767541885376, - -0.01727021299302578, - -0.034104980528354645, - -0.03190045431256294, - -0.004975081421434879, - 0.01683053746819496, - 0.04964093491435051, - 0.01978241465985775, - 0.1495361179113388, - -0.022574061527848244, - -0.01727786287665367, - -0.031022554263472557, - 0.012684755027294159, - -0.009855680167675018, - 0.001144298817962408, - -0.13382215797901154, - 0.014033596031367779, - -0.028780000284314156, - 0.03251942992210388, - -0.010373758152127266, - 0.011277876794338226, - -0.027109023183584213, - -0.005184435285627842, - -0.005929994396865368, - -0.0022418524604290724, - -0.015148636884987354, - -0.016617275774478912, - 0.05739152804017067, - 0.02175016514956951, - 0.027990590780973434, - 0.013348165899515152, - -0.04454546794295311, - 0.025478297844529152, - 0.026299435645341873, - -0.3225977122783661, - 0.02365545928478241, - 0.06474164128303528, - 0.0009773768251761794, - -0.0059841955080628395, - -0.002975179348140955, - 0.04000440239906311, - -0.03711496293544769, - -0.0005688693490810692, - 0.02145390398800373, - -0.016764052212238312, - -0.03969907388091087, - -0.040089964866638184, - 0.0489141047000885, - 0.011942384764552116, - 0.018181752413511276, - 0.003433186560869217, - -0.010248343460261822 - ], - [ - 0.0003061049210373312, - 0.004843323025852442, - 0.0028647107537835836, - 0.00525334058329463, - -0.0041726380586624146, - -0.0013510637218132615, - -0.0011372269364073873, - 0.0025330267380923033, - 0.002731719519942999, - -0.0005058748065494001, - -0.0023874654434621334, - 0.0002643675252329558, - 0.0013230376644060016, - 0.0034842395689338446, - -0.0001764956978149712, - 0.003713966580107808, - 0.0014477275544777513, - -0.007311536930501461, - -0.008119186386466026, - 0.0020836403127759695, - -0.015362193807959557, - 0.0038746087811887264, - -0.0016110632568597794, - -0.0003159325569868088, - 0.0008740625926293433, - -0.00411264318972826, - 0.004113554954528809, - -0.0025437225122004747, - -0.003572398331016302, - 0.001961042173206806, - 0.001947319251485169, - 0.0027699077036231756, - -0.002616296522319317, - -0.004452681168913841, - 0.0031742367427796125, - 0.0013237081002444029, - 0.0019115242175757885, - -0.001164094777777791, - -0.0004728850326500833, - 0.002139155985787511, - 0.0009726680582389235, - 0.0007435451843775809, - 0.004035198129713535, - 0.0015674406895413995, - -0.001613587373867631, - 0.0006635170429944992, - 0.0014868975849822164, - -0.0015241685323417187, - 0.0029497528448700905, - 0.0031568403355777264, - -0.004398503806442022, - 0.007720420602709055, - -0.0013269680785015225, - 0.0004635800141841173, - -0.0043817972764372826, - -1.3473682884068694e-05, - 0.0007562412647530437, - 0.0005027989973314106, - -0.009725859388709068, - -0.0020085542928427458, - -0.0007037558825686574, - -0.0036847346927970648, - 0.0004827965167351067, - 0.0018247041152790189, - -0.005502176471054554, - 0.0008732908172532916, - -0.0054457238875329494, - 0.0006693583563901484, - 8.497716771671548e-05, - 0.0012611659476533532, - 0.0019367535132914782, - -0.07087746262550354, - 0.002859382424503565, - 0.00495788361877203, - -0.0023031465243548155, - -0.000697846116963774, - 0.0032522641122341156, - 0.004857606720179319, - -0.0018609091639518738, - 0.005981581285595894, - 0.0030660422053188086, - -0.0037965879309922457, - -0.9194455146789551, - -0.0006792877684347332, - -0.006946454755961895, - 0.004996670410037041, - 0.006190326996147633, - -0.000719592731911689, - -0.000550062395632267, - 0.001437749364413321, - 0.0010389415547251701, - 0.003418570850044489, - -0.002896165708079934, - 0.003480413695797324, - 0.00326333474367857, - 0.0033146182540804148, - -0.0016926544485613704, - -0.0014078514650464058, - 0.00021398636454250664, - -0.0030814134515821934, - 0.0025949347764253616, - -0.0005198760190978646, - -0.0014031330356374383, - 0.0031886291690170765, - 0.005129437893629074, - -0.00440113665536046, - -0.0012470948277041316, - 0.004291999153792858, - -0.00030706520192325115, - -0.000974452355876565, - 0.007675774395465851, - 0.0012801059056073427, - -5.68893756280886e-06, - 0.004900919273495674, - 0.005060617346316576, - 0.006459732074290514, - 0.0016840584576129913, - -0.0002289674011990428, - -0.0011143271112814546, - 0.0026344386860728264, - -0.005827846005558968, - -0.0017864212859421968, - -0.001671785255894065, - 0.004478503949940205, - -0.0008266643271781504, - -0.0005550527130253613, - 0.2791880965232849, - 0.004598706029355526, - -0.0017524592112749815, - 0.002670661313459277, - -0.00010948015551548451, - 0.0015267148846760392, - 0.0004610100877471268, - -0.0019550230354070663, - 0.005528475157916546, - 0.0019857524894177914, - -0.002721443772315979, - 0.002788432640954852, - -0.0007698035915382206, - 0.00031397619750350714, - -0.000505042786244303, - 0.0029550970066338778, - -0.0019459279719740152, - -0.0036093315575271845, - 0.00022950480342842638, - -0.010185354389250278, - 0.004817877896130085, - 0.0007029097178019583, - -4.5060933189233765e-05, - -0.0006686371052637696, - -0.0015688568819314241, - -0.0009443390881642699, - -0.0014989599585533142, - -0.009519736282527447, - -0.003193104639649391, - -0.00029315747087821364, - 0.0018256133189424872, - -0.0016325598116964102, - 3.838380507659167e-05, - 0.20824994146823883, - 0.00012231720029376447, - -0.0009644178790040314, - 0.0009463019669055939, - 0.004706040024757385, - 0.020590098574757576, - 0.09566805511713028, - 0.004911268595606089, - -0.007211038377135992, - 0.0019170977175235748, - 0.0005567620391957462, - -0.0041954698972404, - 0.0044911447912454605, - -0.0079609714448452, - 0.0013843739870935678, - -0.006255174521356821, - 0.0048162625171244144, - -0.003021094249561429, - 0.010640974156558514, - 0.001785348285920918, - 0.009339523501694202, - -0.00028775716782547534, - 0.004534320440143347, - -0.0010985571425408125, - 0.000649595633149147, - -0.010329719632863998, - -0.0016811633249744773, - 0.00415080925449729, - -0.0054880897514522076, - 0.002039454411715269, - -0.004733031615614891, - 0.006702442653477192, - 0.001230267807841301, - -0.04895154386758804, - -0.007217980921268463, - 0.005131795071065426, - -0.002296015154570341, - -0.00039304187521338463, - -0.00027869094628840685, - -0.006756874267011881, - 0.005172788631170988, - -0.00554640730842948, - -0.0051202913746237755, - 0.0034524959046393633, - -0.0036176866851747036, - -0.000786165299359709, - 0.005054190754890442, - 0.001658199937082827, - -0.005586450919508934, - -0.0030675597954541445, - 0.0014037259388715029, - 0.002494532149285078, - 0.0037453642580658197, - -0.04872678220272064, - 0.000346884859027341, - -0.002192497020587325, - -0.002033104421570897, - -0.0011130976490676403, - 0.003442937508225441, - 0.0018916295375674963, - -0.015240397304296494, - 0.002323842141777277, - -0.001517442287877202, - 0.0021283170208334923, - -0.002336897188797593, - 0.0010461572092026472, - -0.0015168769750744104, - 0.0017750150291249156, - 0.0024969594087451696, - 0.0034700147807598114, - -0.0051646484062075615, - 0.0005743603105656803, - 0.007427784614264965, - 0.0005083098076283932, - 0.0010795188136398792, - 0.0018612579442560673, - -0.00750312115997076, - -0.005270788446068764, - 0.0036673613358289003, - 0.10116612911224365, - 0.0013799414737150073, - 0.00540942745283246, - 0.0010500778444111347, - 0.003838423639535904, - -0.005136869382113218, - -0.0009530214592814445, - -0.006610009353607893, - 0.0035550836473703384, - 0.00020032287284266204, - -0.003814281662926078, - -0.004469560459256172, - -0.002672209870070219, - 0.0027536069974303246, - -0.002027645707130432, - -0.0005037971423007548, - -0.005301365628838539, - -8.564814197598025e-05 - ], - [ - -0.00019629888993222266, - 0.001231490634381771, - -7.801504398230463e-05, - 0.0010544752003625035, - -0.0003376110107637942, - 0.000246413896093145, - -0.0006496856804005802, - 0.0013761621667072177, - 0.001154573168605566, - 0.0011502301786094904, - -0.00205856841057539, - 6.293597107287496e-05, - 0.0006552842678502202, - -0.0015814543003216386, - -0.00122333865147084, - 0.006423660553991795, - 0.00018046898185275495, - -0.0034996194299310446, - -0.0036006069276481867, - 0.001699182903394103, - -0.008808010257780552, - 0.003010238753631711, - -0.0012477359268814325, - -0.001737956772558391, - -0.0012335486244410276, - -0.0021677089389413595, - 0.0008791435975581408, - 6.461303564719856e-05, - -0.00047104331315495074, - 2.2241292185753991e-07, - 0.00019258400425314903, - 0.001434843405149877, - -0.00020473432959988713, - -0.0004166825383435935, - 0.0012495896080508828, - 0.0012132648844271898, - 0.0023051886819303036, - 0.0010456248419359326, - 0.0005364773678593338, - 0.0003568898537196219, - -7.408781675621867e-05, - 0.002449472900480032, - 6.009734715917148e-05, - 0.0007376233115792274, - -0.0022427323274314404, - -0.0004597662773448974, - 0.0013196645304560661, - 0.0001569544692756608, - 0.0007207398302853107, - 0.0025719183031469584, - -0.0018921218579635024, - 0.009216665290296078, - 0.00015378107491414994, - -0.0010972110321745276, - -0.0023761603515595198, - -0.00312221422791481, - 0.00024991959799081087, - -0.0009437176049686968, - -0.007823407649993896, - 0.000624851556494832, - -8.099445403786376e-05, - -0.002303935820236802, - -0.0008650986710563302, - 0.002860141219571233, - -0.004382500424981117, - 0.0023336070589721203, - -0.010160055942833424, - 0.002800217131152749, - -0.00045430398313328624, - -0.0019335381221026182, - -0.0011071651242673397, - -0.07269342988729477, - 0.0037837394047528505, - 0.0044084214605391026, - -0.00011833895405288786, - 0.0006058705621398985, - 0.001615759450942278, - 0.0016997767379507422, - -0.0015132923144847155, - 0.004130475223064423, - 0.00011334448208799586, - 9.794870857149363e-05, - -0.919308066368103, - -0.0006255499902181327, - -0.0045417118817567825, - 0.0020539562683552504, - 0.0018365575233474374, - 0.0010732399532571435, - -0.00023500244424212724, - 0.004201820585876703, - 0.0007492104195989668, - 0.0021334842313081026, - 0.0047127194702625275, - -0.0005240322207100689, - 0.0020399531349539757, - 0.0037439095322042704, - 0.0003544854698702693, - -0.003435199148952961, - 0.003249633125960827, - -0.0018806160660460591, - 0.001368480734527111, - 0.0011599723948165774, - 0.0008986779139377177, - 0.0008925368310883641, - 0.002745450707152486, - -0.0005815626354888082, - -0.0026128143072128296, - 0.001579838921315968, - -0.002360787708312273, - -0.001705358037725091, - 0.007488868664950132, - 0.0036720980424433947, - -0.0009354412322863936, - 0.0011925892904400826, - 0.0008840443333610892, - 0.0033885228913277388, - -0.00152791035361588, - 0.0004951513255946338, - -0.0005403237300924957, - 0.0010558645008131862, - -0.0017612699884921312, - -0.002592554083094001, - -0.0014878084184601903, - 0.002363735344260931, - -0.0017586152534931898, - -0.0019241510890424252, - 0.27932634949684143, - 0.0002953546936623752, - 0.0007148332661017776, - 0.0007101611117832363, - 0.0007689864723943174, - 0.0017337520839646459, - 0.00023413637245539576, - -0.00023055178462527692, - -0.0008988684276118875, - 0.002336694858968258, - -0.003199339611455798, - 0.00014401122462004423, - -0.0019308115588501096, - -0.00011107484897365794, - 0.0017908813897520304, - -0.0006349456962198019, - -0.002435417613014579, - -0.0011669641826301813, - -0.0012403574073687196, - -0.005620533600449562, - -0.00012901052832603455, - -1.4737351193616632e-05, - -0.0005950912018306553, - 0.00024694317835383117, - -0.001717326114885509, - -0.0058325366117060184, - -0.0014914306811988354, - -0.004820957314223051, - -0.0018428597832098603, - 0.0006820970447733998, - 0.0016395640559494495, - -0.0010514005552977324, - 0.0003440236032474786, - 0.20638079941272736, - -0.0013506263494491577, - 0.0016557025955989957, - 0.0006105049978941679, - 0.0031064720824360847, - 0.009768601506948471, - 0.09229718893766403, - 0.0025635010097175837, - -0.003942886833101511, - 0.000530876568518579, - 0.001131664146669209, - -0.0054837800562381744, - 0.0018328559817746282, - -0.0015912436647340655, - 0.0009238700149580836, - -0.001793511095456779, - -0.0019113753223791718, - -0.00017676284187473357, - 0.006329013966023922, - -0.00039047494647093117, - 0.004117586649954319, - -0.0009776157094165683, - 0.0017598251579329371, - -1.4936848856450524e-05, - -0.000839924206957221, - -0.006643429398536682, - -0.00012687346315942705, - -0.0006274761399254203, - -0.001916950917802751, - 5.496404264704324e-05, - 0.00039224716601893306, - 0.0012927226489409804, - -0.0009170730481855571, - -0.058948442339897156, - -0.004012225195765495, - 0.0054021175019443035, - -0.001729737501591444, - 0.0009620545315556228, - 0.0007185630383901298, - -0.00022592862660530955, - 0.002273215912282467, - -0.0014048900920897722, - -0.002795476233586669, - 0.0028853730764240026, - -0.0015715562039986253, - 0.0006314857746474445, - 0.006056693382561207, - -0.0011517475359141827, - -0.0016584140248596668, - -0.0005629456718452275, - 0.0003136773011647165, - 0.000695752096362412, - -0.0016049412079155445, - -0.05262187495827675, - 0.0012516271090134978, - -0.0013027646346017718, - -0.0006938640726730227, - -0.0017112598288804293, - 0.0008229439263232052, - 0.0035976420622318983, - -0.010464440099895, - 0.0007610195316374302, - 0.0003473304968792945, - 0.0002269797259941697, - -7.99198096501641e-05, - 0.0002586382906883955, - 0.00045529534691013396, - -0.0005652093677781522, - 0.0009213098092004657, - 0.0014034557389095426, - -1.955248080776073e-05, - 0.0011224460322409868, - 0.0029446249827742577, - 0.002457074820995331, - -0.00021254096645861864, - 0.00045704381773248315, - -0.0028468973468989134, - -0.004584865644574165, - 0.00228144065476954, - 0.11197275668382645, - 0.000686697312630713, - 0.002900882391259074, - 0.0010771699016913772, - -0.0007852874114178121, - -0.0029668686911463737, - -0.0012315509375184774, - -0.0010670124320313334, - 0.005780091509222984, - 0.0007222904823720455, - -0.0011356445029377937, - -0.001950734294950962, - -0.002078454243019223, - 0.0009183416841551661, - -0.0011504932772368193, - 0.001914341002702713, - -0.0019678333774209023, - 0.00014996442769188434 - ], - [ - 0.0014922459376975894, - 0.0020659328438341618, - 0.0006369551992975175, - 0.005307779647409916, - 0.0021938863210380077, - 0.00012151550618000329, - -0.00023814008454792202, - -0.0004034063604194671, - -0.00044558869558386505, - -0.0021499127615243196, - -0.0007152834441512823, - 0.0016679613618180156, - 0.003233089577406645, - -0.0038037116173654795, - -0.0014925283612683415, - -0.008743934333324432, - 0.0011835910845547915, - -0.004312933888286352, - 0.0011254232376813889, - 0.004614913370460272, - -0.009661874733865261, - 0.0004913436714559793, - -0.0010564213152974844, - -0.00856394600123167, - 0.0005479386891238391, - -0.0028044194914400578, - 0.0033503405284136534, - 0.0024428663309663534, - -0.00048574598622508347, - -0.0008635504636913538, - -0.0008876504725776613, - -0.0012767614098265767, - -0.0021121876779943705, - 0.002292708493769169, - -0.0004701423749793321, - 0.0027583357878029346, - 0.0020656168926507235, - -0.0017640097066760063, - 0.0018209938425570726, - 0.0017634332180023193, - 0.002208493184298277, - 0.005482336040586233, - -0.0011895861243829131, - 0.0014670002274215221, - 0.0013570109149441123, - 0.006152952089905739, - 0.0038478488568216562, - 0.0032398232724517584, - 0.002708887215703726, - 0.010543249547481537, - -0.0020102320704609156, - 0.007788628805428743, - 0.0006512355757877231, - -0.001168387825600803, - -0.002096758456900716, - -0.009244444780051708, - 0.0014399634674191475, - -0.0005181376473046839, - -0.0120868980884552, - -0.0013508681440725923, - -0.004931829869747162, - 0.0021013051737099886, - -0.003162733279168606, - 0.00424253661185503, - -0.008091163821518421, - 0.0027208777610212564, - -0.01460767351090908, - 0.004842622205615044, - 0.004584988579154015, - -0.0008826921111904085, - 0.0007784455083310604, - -0.06502442061901093, - 0.005616676993668079, - 0.005229256581515074, - -0.00014837841445114464, - 0.0001939865032909438, - 0.003095878753811121, - 0.00028280445258133113, - -0.0020981058478355408, - 0.011399037204682827, - 0.0013059162301942706, - 0.0011482757981866598, - -0.9262977242469788, - 0.0016303436132147908, - -0.0030881569255143404, - -0.0018309472361579537, - 0.0069604795426130295, - 0.0012751956237480044, - -0.0043323407880961895, - 0.0030721360817551613, - 0.00015073591202963144, - -0.0007152649923227727, - 0.018228836357593536, - -0.0018242596415802836, - 0.0015825466252863407, - 0.010662177577614784, - 8.244385389843956e-05, - -0.0009309532470069826, - 0.003301850985735655, - -0.00472486624494195, - 0.00858010072261095, - -0.002878042869269848, - 0.009167088195681572, - -0.0013693218352273107, - -0.0039603509940207005, - -0.0031242237892001867, - -0.001613267115317285, - 0.004939847160130739, - -0.003969694022089243, - -0.002989941043779254, - 0.008195064030587673, - 0.005339290015399456, - 0.005147651303559542, - 0.004502417985349894, - -0.00413489481434226, - 0.0009143417701125145, - -0.0015685039106756449, - -4.07268526032567e-05, - -0.0021807884331792593, - 0.004302735906094313, - -0.0008703014464117587, - -0.004257658496499062, - -0.0004295358376111835, - 0.006296207662671804, - 0.005433379672467709, - -0.002793931169435382, - 0.24236494302749634, - 0.0006829703925177455, - -0.0027107582427561283, - 0.00014663871843367815, - -0.002996738301590085, - -0.00832164753228426, - -0.0008056429796852171, - 0.0007780875894241035, - -0.0007656327215954661, - 0.00366002949886024, - -0.0026598088443279266, - -0.0004409017856232822, - -0.003939335700124502, - -0.003475006204098463, - 0.003450837219133973, - -0.002963053761050105, - 0.0003823005245067179, - -0.0031861315947026014, - 0.0017945965519174933, - -0.007991033606231213, - -0.00016894702275749296, - 0.0012311299797147512, - -0.0036214387509971857, - -0.0022534234449267387, - -0.004000302404165268, - -0.010107339359819889, - -0.0017766645178198814, - -0.009616508148610592, - -0.005328035913407803, - 0.0014744865475222468, - 0.005998167209327221, - 0.00040507258381694555, - 0.0018459962448105216, - 0.22423557937145233, - 0.0008015205385163426, - 0.0004631674673873931, - -0.003936383873224258, - 0.005688487086445093, - 0.007897017523646355, - 0.0924212634563446, - 0.003721655113622546, - -0.004181952681392431, - 0.0012264287797734141, - 0.0028281298000365496, - -0.002637614728882909, - -0.00489252433180809, - -0.0047373282723128796, - -0.004126796033233404, - 0.0003894600085914135, - -0.0020553655922412872, - -0.0031885087955743074, - 0.00521840387955308, - 0.0011238117003813386, - 0.0022747924085706472, - -0.002089533256366849, - 0.002376996912062168, - 0.0015239090425893664, - -0.0047743297182023525, - -0.01627326011657715, - -0.001803578925319016, - 0.000992011046037078, - -0.0013219459215179086, - -0.0005605885526165366, - -5.447502917377278e-05, - 0.003891706932336092, - -0.0023163307923823595, - -0.05061500146985054, - -0.00460386648774147, - 0.006813117302954197, - 0.0007041844073683023, - 0.0009644028614275157, - 0.003936587832868099, - -0.0021082726307213306, - -0.0020260722376406193, - 0.0019957898184657097, - -0.00500715896487236, - 0.0021377881057560444, - 0.00015539852029178292, - 0.0005809023277834058, - 0.003763836808502674, - -9.641148790251464e-05, - -0.0029906316194683313, - 0.002120586112141609, - -0.0008023144910112023, - -0.0021759350784122944, - 0.0022429772652685642, - -0.048932332545518875, - 0.0014865976991131902, - -0.003041247371584177, - -0.0006431941292248666, - -0.003176811384037137, - 0.005682009272277355, - 0.00283573055639863, - -0.015290612354874611, - 0.0027919216081500053, - -0.002275975653901696, - -0.0017079199897125363, - 0.0007466720417141914, - 0.0005179834552109241, - -0.0002807174751069397, - -0.00028111302526667714, - 0.0004843609931413084, - 0.00022312591318041086, - -0.0011187335476279259, - 0.005093669984489679, - 0.0038021833170205355, - 0.0035424523521214724, - 0.0024679868947714567, - -0.00022668314340990037, - -0.0043723140843212605, - -0.004446184262633324, - 0.0016203102422878146, - 0.10291418433189392, - 0.0008399032521992922, - 0.010363905690610409, - -0.004847100470215082, - 0.001424526679329574, - -0.0007803954649716616, - 8.307684765895829e-05, - -0.0006901094457134604, - 0.002982917008921504, - 0.005615349858999252, - -0.0002062884741462767, - -0.0046151974238455296, - -0.006061275955289602, - -0.0016131569864228368, - -0.0026616582181304693, - 0.0017361831851303577, - -0.003448732662945986, - 0.0024889670312404633 - ], - [ - -0.013995234854519367, - 0.004486772231757641, - 0.03231850638985634, - -0.008850274607539177, - 0.009560713544487953, - 0.0003877979179378599, - 0.0013998907525092363, - -0.014500523917376995, - -0.01125024352222681, - 0.004141056444495916, - 0.022161193192005157, - -0.00586327537894249, - 0.050779517740011215, - 0.02868705429136753, - -0.055041972547769547, - -0.24593663215637207, - -0.011069240048527718, - -0.024025356397032738, - -7.820526661816984e-05, - -0.005083033815026283, - -0.0010666375746950507, - 0.027254821732640266, - 0.007829486392438412, - -0.04353812709450722, - 0.0013446527300402522, - -0.06402003020048141, - 0.013363637961447239, - -0.028807852417230606, - -0.024244258180260658, - 0.02144722267985344, - 0.007495167199522257, - -0.050671085715293884, - -0.026918483898043633, - -0.00018838142568711191, - 0.005808484274893999, - 0.04706050455570221, - 0.029951702803373337, - 0.0005399548099376261, - 0.016078339889645576, - 0.010464279912412167, - -0.014759624376893044, - 0.04684913530945778, - 0.0162652600556612, - 3.06008369079791e-05, - 0.0023640699218958616, - 0.11397717148065567, - -0.018656741827726364, - 0.030115444213151932, - -0.034309230744838715, - 0.08893359452486038, - -0.015280243009328842, - -0.018630189821124077, - -0.0056815012358129025, - 0.05272292345762253, - 0.0314154289662838, - -0.07623594254255295, - 0.010620251297950745, - -0.008280596695840359, - -0.07458999007940292, - 0.059897370636463165, - -0.02551494725048542, - 0.05224107578396797, - -0.02092389017343521, - 0.007302918005734682, - -0.07095419615507126, - 0.01720762439072132, - -0.028167622163891792, - 0.04800187051296234, - 0.06375542283058167, - -0.009036880917847157, - 0.012882097624242306, - 0.17211247980594635, - 0.07165294140577316, - 0.02680809050798416, - -0.012203811667859554, - -0.03404402360320091, - 0.0041731493547558784, - 0.008408922702074051, - -0.000484995252918452, - 0.07900671660900116, - 0.004349668975919485, - 0.022549020126461983, - -0.03375699743628502, - -0.0030355453491210938, - -0.010789246298372746, - -0.024062836542725563, - -0.013653043657541275, - -0.013432890176773071, - -0.06340770423412323, - -0.02603382058441639, - -0.03118072636425495, - -0.0007726827752776444, - 0.1340302675962448, - 0.01722477376461029, - -0.009300881065428257, - 0.033287327736616135, - -0.008218219503760338, - -0.020531708374619484, - 0.011269680224359035, - -0.032781027257442474, - 0.05077669396996498, - -0.014298750087618828, - 0.024424556642770767, - -0.0504203699529171, - -0.07943851500749588, - -0.0280130747705698, - -0.02183382213115692, - 0.008196893148124218, - 0.007935785688459873, - -0.059581905603408813, - 0.010759953409433365, - 0.046439364552497864, - 0.04282880201935768, - 0.010234994813799858, - -0.06390326470136642, - 0.016697993502020836, - 0.012580825947225094, - -0.0031379691790789366, - 0.007318713702261448, - -0.0015943881589919329, - 0.016543880105018616, - -0.012905067764222622, - -0.008096544072031975, - 0.029201103374361992, - 0.09012400358915329, - 0.018723752349615097, - -0.6573370695114136, - 0.028728695586323738, - -0.0033163712359964848, - 0.022891361266374588, - 0.00835851114243269, - -0.12578043341636658, - 0.00276906113140285, - -0.020512599498033524, - 0.02787984348833561, - 0.0240025632083416, - 0.030208401381969452, - -0.005432555917650461, - 0.018122592940926552, - -0.048212528228759766, - 0.03738326206803322, - 0.004567855037748814, - -0.007739009335637093, - -0.03098934143781662, - -0.009306181222200394, - -0.007691515609622002, - 0.005250753369182348, - -0.03961481153964996, - -0.014702253974974155, - 0.022225704044103622, - -0.03462975099682808, - 0.021886179223656654, - -0.012076887302100658, - -0.02764854021370411, - -0.014075548388063908, - 0.028162728995084763, - 0.01568198949098587, - 0.027843596413731575, - 0.0003098734887316823, - 0.3170098066329956, - -0.021295273676514626, - 0.030773382633924484, - -0.010115628130733967, - 0.04772878810763359, - 0.025376390665769577, - -0.0791468396782875, - 0.020877357572317123, - -0.020971691235899925, - -0.008667430840432644, - 0.016195153817534447, - 0.05089125409722328, - -0.06444763392210007, - -0.03592531383037567, - -0.01604398339986801, - 0.003718808526173234, - -0.004198680631816387, - -0.03555789217352867, - 0.02730797417461872, - 0.01671619340777397, - -0.005720276851207018, - 0.0018506855703890324, - 0.04444536566734314, - -3.8143665733514354e-05, - -0.04979289323091507, - -0.15355870127677917, - -0.0045316386967897415, - 0.01011829636991024, - 0.013760261237621307, - 0.004786290228366852, - -0.01638985238969326, - 0.016823183745145798, - -0.016690317541360855, - 0.17969238758087158, - -0.03541635349392891, - 0.005052818451076746, - 0.03966102749109268, - -0.019024794921278954, - -0.02092345431447029, - -0.002710421336814761, - -0.037645354866981506, - 0.0005334945162758231, - -0.021742774173617363, - 0.03878525272011757, - 0.01256032194942236, - 0.006829199846833944, - -0.028784463182091713, - -0.027489539235830307, - -0.02246890217065811, - 0.022463006898760796, - -0.009609793312847614, - 0.06005571782588959, - -0.0027634582947939634, - 0.1068151444196701, - -0.024114588275551796, - -0.016038794070482254, - -0.026640065014362335, - 0.01696252077817917, - 0.0014483717968687415, - 0.01078935619443655, - -0.07901746034622192, - 0.025808468461036682, - -0.03577167168259621, - 0.024927673861384392, - 0.020016591995954514, - 0.010257621295750141, - -0.005992968566715717, - -0.027066458016633987, - -0.0024988967925310135, - -0.018669532611966133, - -0.008248433470726013, - 0.017148226499557495, - 0.008660613559186459, - 0.00839543528854847, - 0.000926174980122596, - -0.0010677067330107093, - -0.0772654265165329, - 0.022438986226916313, - 0.01863986998796463, - -0.18503142893314362, - 0.026650382205843925, - 0.06919954717159271, - -0.006307733245193958, - -0.033528462052345276, - 0.02429812029004097, - -0.023574024438858032, - -0.02611769735813141, - -0.020302534103393555, - 0.05712628737092018, - 0.00930199958384037, - -0.009002872742712498, - -0.05179222673177719, - -0.001879241899587214, - 0.009833002462983131, - 0.02691575326025486, - -0.002757142996415496, - -0.013281278312206268 - ], - [ - 4.4350072130328044e-05, - 0.0013429403770714998, - 0.00020851560111623257, - -8.970555427367799e-06, - 0.00014757129247300327, - 0.0003896230773534626, - -0.00025744698359631, - 9.471697558183223e-05, - -0.00037901222822256386, - 0.0015102651668712497, - -0.0016500239726155996, - 0.0011832305463030934, - 0.0008064931025728583, - -0.0016707383329048753, - -0.0018856185488402843, - 0.0036148186773061752, - 0.00040105488733388484, - -0.0030148853547871113, - -0.003932667430490255, - 0.002377490745857358, - -0.0070626940578222275, - 0.0041424985975027084, - -0.0002974109665956348, - -0.0025399092119187117, - -0.0006806958117522299, - -0.0027764171827584505, - 0.0006303547997958958, - 0.0003609289997257292, - -0.0005552349030040205, - -0.00024897276307456195, - 0.00044767753570340574, - 0.000877153710462153, - -0.00013426558871287853, - -0.00019030710973311216, - 5.377411071094684e-05, - 0.002019413048401475, - 0.0020579106640070677, - -0.00010224957804894075, - 0.00038543978007510304, - -0.0003368930774740875, - -0.0002714440051931888, - 0.0022387595381587744, - -0.0005038176313973963, - 0.0005924846045672894, - -0.002395931165665388, - 0.00040135503513738513, - 0.0015422102296724916, - 0.00037335659726522863, - -8.936166705098003e-05, - 0.0029584765434265137, - -0.0026131102349609137, - 0.008837363682687283, - 0.0004254269297234714, - -0.0006469892105087638, - -0.0024332127068191767, - -0.0027727715205401182, - 0.0006983125349506736, - -0.0004781494499184191, - -0.008602933026850224, - 0.00029832718428224325, - 0.0004515335022006184, - -0.002472046297043562, - -0.0011539013357833028, - 0.0031572289299219847, - -0.005787571892142296, - 0.0025947571266442537, - -0.011270827613770962, - 0.003058179747313261, - -0.00030829987372271717, - -0.002734124893322587, - -0.0021439669653773308, - -0.07324110716581345, - 0.0038667628541588783, - 0.004310395568609238, - -0.00023470995074603707, - 0.0008152084774337709, - 0.0008514493238180876, - 0.002894389908760786, - -0.0014213158283382654, - 0.0035459573846310377, - -0.0007318017305806279, - 0.0006112093105912209, - -0.9191386699676514, - -0.0011518889805302024, - -0.0043724277056753635, - 0.0016791489906609058, - 0.0016290880739688873, - 0.0016053735744208097, - -0.0003790369082707912, - 0.0042338077910244465, - 5.825853077112697e-05, - 0.002349329646676779, - 0.0072613246738910675, - -0.0004109474248252809, - 0.0022512879222631454, - 0.002658349461853504, - 4.1516079363645986e-05, - -0.0033381490502506495, - 0.003550495021045208, - -0.0015720935771241784, - 0.0014353059232234955, - 0.0018395795486867428, - 0.0011336284223943949, - 0.00043205689871683717, - 0.0024218882899731398, - -0.00046788534382358193, - -0.003583329962566495, - 0.0014167450135573745, - -0.002883123466745019, - -0.002416324568912387, - 0.007445671129971743, - 0.003340536030009389, - -0.0008632240351289511, - 0.0012464962201192975, - 0.0009246802655979991, - 0.0026615678798407316, - -0.0018504495965316892, - 0.0009553426061756909, - -0.0010703008156269789, - 0.0013484355295076966, - -0.0002362809464102611, - -0.00264955242164433, - -0.00229078927077353, - 0.0023119982797652483, - -0.0021365652792155743, - -0.0012931129895150661, - 0.2776300013065338, - 8.232649270212278e-05, - -0.00023655494442209601, - -0.0002201018505729735, - -7.506402471335605e-05, - 0.0016300344141200185, - 0.0005418143700808287, - 0.0001624307333258912, - -0.0011465927818790078, - 0.002268078736960888, - -0.0022312661167234182, - 0.00038490595761686563, - -0.002503473311662674, - -6.127889719209634e-06, - 0.0022778979036957026, - -0.000795240281149745, - -0.0015346757136285305, - -0.0020914762280881405, - -0.00024207397655118257, - -0.005592015106230974, - 0.0006458017160184681, - -0.0002615789417177439, - -0.00034014877746813, - 0.00010227664461126551, - -0.0016412565018981695, - -0.006461374927312136, - -0.001607079291716218, - -0.004393198527395725, - -0.001600284012965858, - -0.00017748965183272958, - 0.001994200749322772, - -0.0004140785022173077, - 0.0009315172792412341, - 0.20703600347042084, - -0.0021406267769634724, - 0.0007720875437371433, - 0.0006567197851836681, - 0.0030922789592295885, - 0.009487899020314217, - 0.09289335459470749, - 0.002854778664186597, - -0.00350689934566617, - 0.0009090197272598743, - 0.0018314037006348372, - -0.0038945041596889496, - 0.0011053633643314242, - -0.0012790990294888616, - 0.0014325027586892247, - -0.001697601517662406, - -0.0016831799875944853, - -0.00012556000729091465, - 0.006025007460266352, - -0.0008196381386369467, - 0.004958325065672398, - -0.001621298142708838, - 0.00218431674875319, - 0.00037395511753857136, - -0.0016613175394013524, - -0.006626748479902744, - -0.0006985167856328189, - -0.0010804182384163141, - -0.00106464559212327, - -0.00020935705106239766, - 0.0007064591045491397, - 0.0015353340422734618, - -0.0013362286845222116, - -0.0597076341509819, - -0.005308882798999548, - 0.004969779402017593, - -0.0020787178073078394, - 0.001403028261847794, - -0.0004351922543719411, - -5.3417865274241194e-05, - 0.0016759531572461128, - -0.001602712320163846, - -0.0035058006178587675, - 0.0027203219942748547, - -0.0020119291730225086, - 0.0008879172382876277, - 0.005929466336965561, - -0.000387120817322284, - -0.0017018405487760901, - 7.963861207826994e-06, - -0.0002552011574152857, - 0.0006266972050070763, - -0.002052911324426532, - -0.05315149948000908, - 0.001143594621680677, - -0.0015438726404681802, - 0.00025118363555520773, - -0.002079055178910494, - 0.0007310177898034453, - 0.004382765851914883, - -0.009753615595400333, - 0.0010053276782855392, - 0.00034058827441185713, - 0.0005301377386786044, - 0.0009496503625996411, - -2.8205427952343598e-05, - 0.0006326315342448652, - -0.0017534217331558466, - 0.001280388911254704, - 0.0005944145959801972, - -0.00048394486657343805, - 0.0020522281993180513, - 0.002433598041534424, - 0.0017799841007217765, - -0.001219341647811234, - 0.00023150806373450905, - -0.0033772909082472324, - -0.004461983218789101, - 0.002350366674363613, - 0.11459612101316452, - 0.00045452735503204167, - 0.0037332114297896624, - 0.001235456787981093, - -0.001170871197246015, - -0.002979384735226631, - -0.0025634746998548508, - -0.0005693357088603079, - 0.005289838649332523, - 0.0015350099420174956, - -0.0008252510451711714, - -0.0012882074806839228, - -0.0023588829208165407, - -0.0007693066727370024, - -0.0012504137121140957, - 0.0026063972618430853, - -0.002315642312169075, - -0.0005403299583122134 - ] - ] - ], - "dims": [ - 1, - 50, - 256 - ], - "type": "float32" - }, - "style_dp": { - "data": [ - [ - [ - -0.8209007978439331, - 0.005977323744446039, - 0.023313814774155617, - 0.09849335998296738, - 0.008302883245050907, - 0.5108974575996399, - 0.01879682019352913, - -0.006506809964776039, - -0.10065291076898575, - 0.05719417333602905, - 0.14344583451747894, - 0.016934584826231003, - -0.14121916890144348, - -0.008167250081896782, - 0.009235182777047157, - 0.0005611177766695619 - ], - [ - -0.8449690341949463, - 0.0030888481996953487, - -0.027101855725049973, - 0.06795771420001984, - 0.0007823084597475827, - 0.49523454904556274, - 0.019496938213706017, - -0.005658495239913464, - -0.08050628751516342, - 0.013667912222445011, - 0.1068207323551178, - 0.023550521582365036, - -0.1278635859489441, - -0.003196022706106305, - 0.0006962388288229704, - -0.001355103449895978 - ], - [ - -0.8471846580505371, - 0.0011124840239062905, - -0.0327482707798481, - 0.05292239785194397, - -0.0025158764328807592, - 0.4975791871547699, - 0.006552185397595167, - -0.0016221681144088507, - -0.05561073496937752, - 0.032264918088912964, - 0.11618559807538986, - -0.012835300527513027, - -0.11385118961334229, - -0.0020946983713656664, - 0.0013753679813817143, - -0.000954043644014746 - ], - [ - -0.8221075534820557, - 0.0035819460172206163, - -0.06474988162517548, - 0.06050358712673187, - -0.0013041802449151874, - 0.5084735155105591, - 0.02014523185789585, - -0.004347680602222681, - -0.09459789842367172, - 0.04509423300623894, - 0.1451839953660965, - 0.021571462973952293, - -0.15725083649158478, - -0.0037492301780730486, - 0.0054811579175293446, - -0.0018477833364158869 - ], - [ - -0.8292051553726196, - 0.006626929622143507, - 0.06435257196426392, - 0.11077871918678284, - 0.012616831809282303, - 0.5027661919593811, - 0.007720061577856541, - -0.007608411833643913, - -0.08334564417600632, - 0.02340291626751423, - 0.13386082649230957, - -0.00955616682767868, - -0.13170748949050903, - -0.007231998257339001, - 0.0024915356189012527, - -0.0012785369763150811 - ], - [ - -0.8401716947555542, - 0.003542436985298991, - -0.03457259014248848, - 0.0707651823759079, - 0.0008584201568737626, - 0.49944302439689636, - 0.021635722368955612, - -0.0059182168915867805, - -0.08462473750114441, - 0.022376228123903275, - 0.11048059910535812, - 0.028589915484189987, - -0.13131187856197357, - -0.003411764744669199, - 0.0027580158784985542, - -0.0011910954490303993 - ], - [ - -0.8488211035728455, - -0.0026100424584001303, - -0.1349661499261856, - 0.005371365696191788, - -0.013861246407032013, - 0.48062145709991455, - 0.020468225702643394, - -0.0018331398023292422, - -0.05895563215017319, - 0.028479617089033127, - 0.1018495112657547, - 0.017492089420557022, - -0.12110136449337006, - 0.0022193121258169413, - 0.0017234609695151448, - -0.00023510212486144155 - ], - [ - -0.8382278084754944, - 0.0013292818330228329, - -0.09928973764181137, - 0.037642765790224075, - -0.007804958149790764, - 0.4957273006439209, - 0.023824254050850868, - -0.0026502814143896103, - -0.0814802497625351, - 0.020531633868813515, - 0.10966239869594574, - 0.037032466381788254, - -0.13874869048595428, - -0.0005257808952592313, - 0.0007410793332383037, - -0.0024628699757158756 - ] - ] - ], - "dims": [ - 1, - 8, - 16 - ], - "type": "float32" - }, - "metadata": { - "source_file": "F1.wav", - "source_sample_rate": 44100, - "target_sample_rate": 44100, - "extracted_at": "2025-11-18T17:05:26.283322" - } -} \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/F2.json b/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/F2.json deleted file mode 100644 index ade0e07..0000000 --- a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/F2.json +++ /dev/null @@ -1,13076 +0,0 @@ -{ - "style_ttl": { - "data": [ - [ - [ - -0.01217525266110897, - -0.07527882605791092, - 0.02013952098786831, - -0.10471636056900024, - -0.01248561218380928, - -0.03473096340894699, - 0.0668603926897049, - -0.0613420270383358, - -0.07174413651227951, - -0.023515773937106133, - -0.03529861941933632, - 0.07896256446838379, - 0.018075503408908844, - -0.014409434050321579, - -0.09290209412574768, - -0.11267276853322983, - 0.017371617257595062, - -0.06376972794532776, - 0.009892849251627922, - 0.07096774876117706, - -0.03783527761697769, - 0.018176209181547165, - 0.023428741842508316, - -0.014157718047499657, - 0.02916228398680687, - -0.013032878749072552, - 0.018540626391768456, - -0.0009603819926269352, - 0.0004690378555096686, - 0.05556921288371086, - 0.036837805062532425, - -0.09121215343475342, - -0.008507131598889828, - 0.004724627360701561, - -0.06491189450025558, - 0.018964247778058052, - -0.007012315560132265, - -0.0999426320195198, - -0.03766759857535362, - 0.04356781765818596, - 0.04169824346899986, - -0.005870440974831581, - 0.0009053467656485736, - -0.030885860323905945, - 0.051454395055770874, - 0.09379780292510986, - -0.05028214305639267, - -0.011586800217628479, - -0.0008401262457482517, - 0.011450813151896, - -0.050879791378974915, - -0.08187629282474518, - -0.03529858961701393, - 0.02300291694700718, - 0.05711866542696953, - 0.04186047613620758, - -0.06186327710747719, - 0.04354476183652878, - -0.072868213057518, - -0.004227720201015472, - -0.02477557212114334, - -0.0925033912062645, - 0.010228613391518593, - 0.060990992933511734, - -0.0009989396203309298, - 0.003256609197705984, - -0.03823685273528099, - -0.04859257489442825, - 0.01022322941571474, - -0.011323128826916218, - -0.020629141479730606, - 0.14180441200733185, - 0.08612175285816193, - -0.0030416478402912617, - -0.06095476821064949, - 0.009623422287404537, - -0.0009029575739987195, - 0.002906571142375469, - -0.02105092629790306, - 0.021654833108186722, - -0.016970112919807434, - -0.0365128330886364, - 0.10245616734027863, - -0.0433211475610733, - 0.012547383084893227, - -0.01830333285033703, - 0.03800584375858307, - 0.049314942210912704, - 0.018604062497615814, - 0.02841375581920147, - 0.012235020287334919, - -0.004440359305590391, - 0.1319786161184311, - 0.04312950000166893, - 0.006318329367786646, - -0.025639651343226433, - -0.032813042402267456, - 0.03356129303574562, - 0.033076949417591095, - 0.03504781052470207, - -0.019756048917770386, - 0.021778007969260216, - -0.0077371615916490555, - -0.00412245886400342, - -0.07912400364875793, - 0.018981710076332092, - 0.02758663147687912, - -0.02840902842581272, - 0.03931199014186859, - -0.04379596188664436, - -0.010928060859441757, - 0.024534933269023895, - -0.007151404395699501, - -0.04201410338282585, - 0.032341450452804565, - -0.015288155525922775, - 0.043730054050683975, - 0.016655204817652702, - 0.00010486351675353944, - 0.03913172706961632, - -0.023810764774680138, - 0.02081776037812233, - 0.008894744329154491, - 0.009050074964761734, - 0.07309097796678543, - 0.033244356513023376, - -0.5782443881034851, - -0.012156059965491295, - -0.013664467260241508, - 0.0310679879039526, - 0.06901536136865616, - 0.02661958895623684, - 0.009663878008723259, - 0.013212986290454865, - -0.00856628268957138, - -0.011933117173612118, - 0.12788541615009308, - 0.0363742932677269, - 0.003726391354575753, - -0.010207291692495346, - -0.03249605372548103, - -0.038382500410079956, - 0.03478410840034485, - -0.04769187048077583, - 0.023484885692596436, - -0.01203471515327692, - -0.011836281977593899, - -0.05850740522146225, - -0.03016921877861023, - -0.04259034991264343, - 0.04376968741416931, - -0.042844709008932114, - -0.03185108304023743, - -0.02464419975876808, - -0.04662708565592766, - -0.025320837274193764, - 0.03375033661723137, - 0.009491998702287674, - 0.05238477513194084, - 0.19322367012500763, - 0.0007967193960212171, - -0.04595569893717766, - -0.0797886922955513, - -0.01376400701701641, - -0.02690429799258709, - -0.09990119189023972, - 0.0327698178589344, - -0.009358077310025692, - 0.05544125288724899, - -0.011916343122720718, - 0.05165626481175423, - 0.07378153502941132, - 0.005434131715446711, - 0.01350957527756691, - 0.11251046508550644, - 0.028822995722293854, - -0.0638016015291214, - 0.09714922308921814, - -0.0055022090673446655, - 0.011391812935471535, - -0.07322274148464203, - 0.03173889219760895, - -0.0006102328770793974, - -0.02151896059513092, - -0.20563936233520508, - 0.027124522253870964, - -0.016259176656603813, - 0.028922297060489655, - -0.02061227709054947, - 0.04698776453733444, - 0.018305085599422455, - -0.02746068499982357, - 0.21684274077415466, - -0.02729884535074234, - -0.08336378633975983, - -0.02028544805943966, - -0.036747079342603683, - -0.047666460275650024, - 0.032791245728731155, - 0.018788952380418777, - -0.026407700031995773, - -0.05692513287067413, - -0.04324929788708687, - -0.04932461678981781, - 0.03840397298336029, - -0.0443829782307148, - 0.0010702696163207293, - 0.013522668741643429, - -0.014359449036419392, - 0.0230691060423851, - -0.044593695551157, - -0.048199985176324844, - 0.142086461186409, - 0.05799238383769989, - -0.030274881049990654, - -0.020250989124178886, - -0.025071153417229652, - 0.002926123794168234, - -0.021176956593990326, - -0.0069476463831961155, - -0.0015224876115098596, - 0.012000171467661858, - 0.006851649843156338, - 0.07304767519235611, - 0.0029807535465806723, - -0.025668462738394737, - -0.09874335676431656, - -0.007852112874388695, - -0.02595442347228527, - 0.032317765057086945, - -0.041050735861063004, - 0.027663197368383408, - -0.02293676882982254, - -0.06927744299173355, - 0.025809580460190773, - 0.0032642579171806574, - -0.00737786153331399, - 0.027416665107011795, - -0.20794960856437683, - -0.02920631878077984, - -0.004611021373420954, - 0.014371518045663834, - 0.019065653905272484, - 0.015655741095542908, - -0.034469906240701675, - -0.004501566290855408, - 0.009430269710719585, - 0.037469640374183655, - 0.004549352917820215, - -0.010191181674599648, - 0.018103737384080887, - -0.03074526973068714, - -0.10582151263952255, - -0.012252416461706161, - -0.03369429334998131, - 0.028183329850435257 - ], - [ - -0.03931456431746483, - -0.04364282265305519, - 0.038504358381032944, - -0.06046371906995773, - -0.0019281568238511682, - -0.0011056407820433378, - 0.046137258410453796, - -0.021493833512067795, - 0.0028029491659253836, - 0.017376238480210304, - -0.030141213908791542, - 0.05310214310884476, - 0.021425766870379448, - 0.012684143148362637, - -0.08019471168518066, - -0.2001800686120987, - -0.005668972618877888, - -0.01787545718252659, - 0.04137948527932167, - 0.049571774899959564, - -0.04188825190067291, - 0.025066157802939415, - 0.021153602749109268, - -0.013551352545619011, - 0.0051024132408201694, - -0.019020171836018562, - 0.009867258369922638, - -0.003095571883022785, - -0.004713238216936588, - 0.05393229052424431, - 0.007167215459048748, - 0.012960278429090977, - -0.006456322968006134, - 0.00890896376222372, - -0.014508099295198917, - 0.027265608310699463, - 0.015584914945065975, - -0.02316170558333397, - -0.012527446262538433, - 0.013934869319200516, - -0.0013974623288959265, - 0.014584272168576717, - 0.016851292923092842, - -0.02345510758459568, - 0.045202743262052536, - 0.07446499168872833, - -0.007786312140524387, - -0.006235993932932615, - -0.027969548478722572, - -0.022557469084858894, - -0.04956850782036781, - -0.04924877732992172, - -0.025992318987846375, - 0.024458900094032288, - 0.034166742116212845, - 0.016860557720065117, - -0.01588316448032856, - -0.01194782368838787, - -0.059535637497901917, - 0.03518218547105789, - -0.042188871651887894, - -0.05322761461138725, - 0.01039969827979803, - 0.039675161242485046, - -0.044649653136730194, - -0.004785304889082909, - -0.07091177999973297, - 0.0028968651313334703, - -0.005608954932540655, - -0.030034800991415977, - -0.03818165510892868, - 0.145141139626503, - 0.04924510046839714, - 0.06998719274997711, - -0.04231208190321922, - 0.008130507543683052, - -0.001910349354147911, - 0.005054186563938856, - -0.0339212566614151, - 0.027293218299746513, - -0.00838183518499136, - -0.014600761234760284, - -0.29985103011131287, - -0.013468749821186066, - 0.012514784000813961, - -0.008742118254303932, - 0.007440480403602123, - 0.0323454849421978, - -0.004488899372518063, - -0.009294737130403519, - 0.0020060099195688963, - -0.003946216311305761, - 0.21421457827091217, - 0.03392183780670166, - 0.020963270217180252, - 0.002306952839717269, - -0.006432253867387772, - 0.02577320672571659, - 0.025689033791422844, - 0.0002588002826087177, - -0.01135861687362194, - 0.05606343224644661, - -0.037113871425390244, - -0.034088004380464554, - -0.09167124330997467, - -0.007196229416877031, - 0.04220137745141983, - -0.025553356856107712, - 0.01595916599035263, - -0.040821611881256104, - -0.013877622783184052, - -0.0065144263207912445, - -0.005852712783962488, - -0.014821385964751244, - -0.013662712648510933, - 0.019329681992530823, - -0.008246319368481636, - 0.04195619001984596, - 0.03199680522084236, - 0.017317969352006912, - -0.0061819893307983875, - 0.00269186869263649, - 0.016491858288645744, - 0.02956511452794075, - 0.07536857575178146, - 0.039349596947431564, - -0.573655903339386, - 0.014160314574837685, - 0.011971531435847282, - 0.05034272000193596, - 0.043136294931173325, - -0.03660193458199501, - -0.023557279258966446, - -0.022994492202997208, - 0.03277776390314102, - -0.012778638862073421, - 0.06714440137147903, - -0.00867087859660387, - -0.04456242546439171, - -0.013262403197586536, - 0.015870461240410805, - -0.0015806404408067465, - 0.011023732833564281, - -0.02663910761475563, - -0.0006510138045996428, - 0.002440685173496604, - -0.04205036535859108, - -0.05351667478680611, - -0.05695279315114021, - -0.013596070930361748, - 0.025183729827404022, - -0.021085111424326897, - -0.026137439534068108, - -0.02919432707130909, - -0.01571965031325817, - 0.010227049700915813, - 0.0009758012020029128, - 0.02531561627984047, - 0.006396015174686909, - 0.36745190620422363, - -0.0006614772137254477, - 0.009603030979633331, - -0.0553305447101593, - -0.016499316319823265, - -0.009405860677361488, - -0.07907005399465561, - 0.03152516111731529, - -0.009885027073323727, - -0.006953296717256308, - 0.029171902686357498, - 0.018557535484433174, - 0.034934915602207184, - -0.007660069037228823, - 0.005271142814308405, - 0.09931618720293045, - -0.0060925050638616085, - -0.03309663012623787, - 0.08259767293930054, - -0.013580703176558018, - -0.004901183303445578, - -0.009777403436601162, - 0.014449916779994965, - -0.006692287512123585, - -0.017306778579950333, - -0.17587409913539886, - 0.0051522888243198395, - -0.04319688305258751, - 0.020334482192993164, - 0.02558591030538082, - 0.03882353752851486, - 0.0002039442624663934, - -0.021186910569667816, - 0.18611949682235718, - -0.02479899302124977, - -0.06711358577013016, - -0.010039746761322021, - -0.03935462608933449, - -0.022223293781280518, - 0.03614984080195427, - 0.002290081698447466, - -0.026172297075390816, - -0.018413161858916283, - 0.0218289103358984, - -0.03735890984535217, - -0.0007320272852666676, - -0.018868369981646538, - -0.0251872967928648, - -0.006017482373863459, - -0.019732261076569557, - 0.012011604383587837, - 0.00684348912909627, - -0.030124656856060028, - 0.12471306324005127, - 0.026168210431933403, - -0.005373162683099508, - 0.012014486826956272, - -0.03674033284187317, - -0.007482354529201984, - -0.013959836214780807, - -0.06273667514324188, - 0.0046490151435136795, - -0.022630702704191208, - 0.021896544843912125, - 0.045621857047080994, - -0.002605498768389225, - -0.002786721335723996, - -0.05752711743116379, - -0.010005527175962925, - -0.030392423272132874, - 0.008113701827824116, - -0.03965475782752037, - -0.01953001879155636, - 0.031183471903204918, - -0.026409002020955086, - 0.0005500835250131786, - -0.03406119719147682, - 0.010444242507219315, - 0.015588023699820042, - -0.15558455884456635, - -0.0067268116399645805, - 0.0018271827138960361, - 0.020666034892201424, - -0.023021064698696136, - 0.008593353442847729, - -0.04867924749851227, - -0.02781441994011402, - -0.00978558138012886, - 0.03221151977777481, - 0.06065075844526291, - -0.032040148973464966, - -0.01904042437672615, - -0.006599624175578356, - -0.05517132952809334, - 0.013219675049185753, - -0.021421657875180244, - 0.007989289239048958 - ], - [ - -0.03605549409985542, - -0.0356159470975399, - 0.00983036495745182, - -0.023175014182925224, - -0.020265622064471245, - -0.013146770186722279, - 0.02707573026418686, - -0.011017066426575184, - -0.0001476022880524397, - 0.001307845232076943, - 0.011079063639044762, - 0.0387883260846138, - 0.05345376208424568, - 0.022436948493123055, - -0.06529572606086731, - -0.26063665747642517, - -0.0076193613931536674, - -0.023042012006044388, - 0.03647253289818764, - 0.008265450596809387, - -0.0385618731379509, - -0.010776721872389317, - 0.008442341350018978, - -0.002083275932818651, - 0.0006577077438123524, - -0.013378575444221497, - 0.029612477868795395, - -0.005800527986139059, - -0.026828205212950706, - 0.07598696649074554, - -0.004371160175651312, - 0.00169355736579746, - -0.0515165850520134, - -0.008665977977216244, - 0.01663883402943611, - 0.005276012700051069, - 0.02962697669863701, - -0.019913699477910995, - -0.01807812973856926, - -0.006894805934280157, - 0.0014727110974490643, - 0.020343981683254242, - 0.01701175421476364, - -0.011486236937344074, - 0.023229779675602913, - 0.09864425659179688, - 0.002900756197050214, - 0.0013094645692035556, - -0.01219163741916418, - 0.009335806593298912, - -0.03447495773434639, - -0.046492934226989746, - -0.013939150609076023, - 0.016531897708773613, - 0.009087092243134975, - 0.008451089262962341, - -0.002028173068538308, - -0.010701300576329231, - -0.05178080126643181, - 0.02644389495253563, - -0.03729568421840668, - -0.026950882747769356, - 0.026836136355996132, - 0.03354174643754959, - -0.04034429416060448, - 0.005584252066910267, - -0.042120371013879776, - 0.009687165729701519, - 0.017087401822209358, - 0.013440709561109543, - -0.03469253331422806, - 0.14651770889759064, - 0.050077345222234726, - 0.0788455605506897, - -0.05368131399154663, - -0.024475837126374245, - 0.011935445480048656, - 0.011770259588956833, - -0.04234835505485535, - 0.028869887813925743, - 0.0029786231461912394, - -0.023110169917345047, - -0.0621529184281826, - 0.014592455700039864, - 0.018397318199276924, - 0.009950423613190651, - 0.0033818192314356565, - 0.007917029783129692, - -0.00951902661472559, - -0.0467880479991436, - 0.008395332843065262, - 0.0020992497447878122, - 0.2302876114845276, - 0.036460742354393005, - 0.03532728925347328, - 0.010347294621169567, - -0.009016646072268486, - 0.02637207880616188, - -0.007830031216144562, - -0.011576815508306026, - 0.011364992707967758, - 0.027587972581386566, - -0.018992749974131584, - -0.03128333017230034, - -0.0732388123869896, - 0.004240310750901699, - 0.04469997435808182, - -0.037851378321647644, - 0.04063296318054199, - -0.03566116467118263, - 0.020067311823368073, - 0.0032454447355121374, - 0.01376194879412651, - -0.016448963433504105, - -0.03499477729201317, - 0.0340261235833168, - 0.015378349460661411, - 0.02905680052936077, - 0.015854619443416595, - 0.015221862122416496, - -0.004092730116099119, - -0.0033755803015083075, - 0.026743169873952866, - 0.017733018845319748, - 0.08900630474090576, - 0.022569239139556885, - -0.6844303011894226, - 0.013190246187150478, - 0.005016298498958349, - 0.04115569218993187, - 0.05241147801280022, - -0.05484163016080856, - -0.02151976153254509, - -0.040677234530448914, - 0.017680078744888306, - -0.006892933044582605, - 0.022794554010033607, - 0.03242184594273567, - -0.024559594690799713, - -0.009393928572535515, - 0.0053838700987398624, - 0.003196460660547018, - 0.006799507420510054, - -0.021059159189462662, - -0.0026374005246907473, - 0.009495565667748451, - -0.01601087488234043, - -0.041010648012161255, - -0.053130853921175, - -0.015209503471851349, - 0.03232263773679733, - -0.008738054893910885, - -0.007324011065065861, - -0.03673342987895012, - -0.04397645965218544, - 0.0035544224083423615, - 0.0014008409343659878, - 0.006920442450791597, - 0.017325498163700104, - 0.31527045369148254, - 0.028924454003572464, - -0.011144960299134254, - -0.06034485623240471, - -0.019735049456357956, - 0.004797129891812801, - -0.0910932719707489, - 0.02037365734577179, - -0.03303825110197067, - -0.004149375017732382, - 0.014444801956415176, - 0.016568142920732498, - 0.00364560610614717, - -0.012836286798119545, - -0.016157085075974464, - 0.07750985771417618, - -0.013824050314724445, - -0.03437633067369461, - 0.08762458711862564, - -0.002419282216578722, - 0.028473522514104843, - -0.02093535102903843, - 0.01967260241508484, - 0.003174243727698922, - 8.856526983436197e-05, - -0.1690114587545395, - 0.012878124602138996, - -0.013743882067501545, - 0.0016640620306134224, - 0.022045116871595383, - 0.01182838436216116, - -0.004944550339132547, - 0.008057760074734688, - 0.17982922494411469, - -0.034640077501535416, - -0.029662923887372017, - 0.009184123016893864, - -0.031183959916234016, - -0.01160858478397131, - 0.013721590861678123, - -0.004939262755215168, - -0.011281163431704044, - -0.016903020441532135, - 0.023154744878411293, - -0.023659955710172653, - -0.014160294085741043, - -0.016487615182995796, - -0.031680140644311905, - -0.020716195926070213, - -0.007124805357307196, - 0.009960729628801346, - 0.0020906697027385235, - 0.0066891317255795, - 0.11683686077594757, - 0.003479919396340847, - -0.0027412769850343466, - 0.0032973457127809525, - -0.03357291221618652, - -0.028495870530605316, - 0.006174564827233553, - -0.0789886936545372, - 0.0037352105136960745, - -0.03926194831728935, - 0.01974853128194809, - 0.025004705414175987, - 0.003889448707923293, - -0.01283760741353035, - -0.03981965407729149, - -0.005853892304003239, - -0.026768198236823082, - 0.00030607703956775367, - -0.042829424142837524, - -0.012593619525432587, - 0.03248268738389015, - -0.00809556245803833, - -0.007329076994210482, - -0.02866589091718197, - 0.02250012569129467, - 0.0036552331876009703, - -0.09621508419513702, - -0.01007731445133686, - 0.011971008032560349, - 0.007352752611041069, - -0.03824842721223831, - 0.008318448439240456, - -0.01771065779030323, - -0.01902192458510399, - -0.027347873896360397, - 0.05047915503382683, - 0.013391515240073204, - -0.033072154968976974, - -0.009419809095561504, - 0.01655014418065548, - -0.05166597291827202, - 0.01241198368370533, - -0.03729706257581711, - 0.02425684966146946 - ], - [ - -0.03751949220895767, - -0.02208837680518627, - 0.022233808413147926, - 0.01387367770075798, - -0.019783692434430122, - -0.02420193701982498, - 0.039827242493629456, - -0.039442431181669235, - -0.016967937350273132, - -0.002792125102132559, - 0.012163324281573296, - 0.0526847206056118, - 0.05218585953116417, - 0.003737048711627722, - -0.030556822195649147, - -0.23491397500038147, - -0.009197847917675972, - -0.0030556409619748592, - 0.053153958171606064, - 0.02638528309762478, - 0.000962892547249794, - -0.00997869297862053, - 0.02246708981692791, - -0.02137560024857521, - 0.008301619440317154, - -0.009082861244678497, - 0.0357004813849926, - -0.007088599260896444, - -0.03717596456408501, - 0.08906546980142593, - -0.02316201850771904, - -0.005532268900424242, - -0.058815475553274155, - 0.016868971288204193, - 0.01807141862809658, - 0.0010705470340326428, - 0.021331267431378365, - -0.020323496311903, - -0.011783934198319912, - -0.0373556986451149, - 0.009875805117189884, - 0.016921013593673706, - -0.023539280518889427, - -0.0028561183717101812, - 0.016791053116321564, - 0.08933939784765244, - 0.015656728297472, - 0.01376358326524496, - -0.017805315554142, - 0.0025355436373502016, - -0.025696974247694016, - -0.028696490451693535, - -0.00684333173558116, - -0.012228967621922493, - 0.0162926334887743, - 0.007113820873200893, - 0.014662360772490501, - -0.02124757692217827, - -0.0180802084505558, - 0.011707188561558723, - -0.029751963913440704, - -0.01738724671304226, - 0.01300137024372816, - 0.013420158997178078, - -0.04671888425946236, - 0.03569752722978592, - -0.04802548140287399, - 0.0276945848017931, - -0.004407418426126242, - 0.03593723103404045, - -0.018126554787158966, - 0.14401093125343323, - 0.01649128645658493, - 0.08924239128828049, - -0.047433022409677505, - -0.008809496648609638, - 0.009406235069036484, - -0.015240355394780636, - -0.03766203299164772, - -0.00678785378113389, - 0.0036991327069699764, - 0.0010813717963173985, - 0.29355767369270325, - 0.01748473010957241, - 0.04152118042111397, - -0.0005684611387550831, - 0.0005119081470184028, - -0.0022114268504083157, - -0.025303326547145844, - -0.06470552831888199, - 0.00653613917529583, - -0.017471764236688614, - 0.23849155008792877, - 0.057925570756196976, - 0.019248034805059433, - 0.00046234281035140157, - -0.0029638654086738825, - 0.03211434185504913, - -0.022967034950852394, - -0.024868613108992577, - 0.04244725778698921, - 0.01696191169321537, - 0.013458965346217155, - -0.06401212513446808, - -0.08527166396379471, - 0.00757385091856122, - 0.04979996755719185, - -0.04257062077522278, - 0.02154414728283882, - -0.03749044984579086, - 0.026104889810085297, - 0.002889997325837612, - 0.05092356726527214, - -0.006570879835635424, - -0.04789178445935249, - 0.007810254581272602, - -0.007505345158278942, - 0.008368311449885368, - -0.004309218376874924, - 0.02143605425953865, - 0.02394728735089302, - -0.010933183133602142, - 0.012762360274791718, - -0.013712763786315918, - 0.07206115871667862, - 0.03816912695765495, - -0.6904241442680359, - 0.008776135742664337, - -0.007758545223623514, - 0.025166667997837067, - 0.03255470097064972, - -0.07812294363975525, - -0.026093438267707825, - -0.045768413692712784, - 0.008054373785853386, - -0.017714889720082283, - 0.018291320651769638, - 0.0482194609940052, - -0.024034852162003517, - 0.004604484420269728, - 0.010389328002929688, - 0.02086467482149601, - 0.016399776563048363, - -0.0022239619866013527, - 0.025600332766771317, - 0.023030001670122147, - -0.003361102659255266, - -0.04843144118785858, - -0.035373568534851074, - -0.004859450273215771, - 0.03408149257302284, - -0.007098320405930281, - -0.0012191112618893385, - -0.024009203538298607, - -0.041704751551151276, - 0.007606184110045433, - 0.025932906195521355, - 0.03317058086395264, - 0.05415260046720505, - 0.18988832831382751, - 0.034834422171115875, - -0.025621917098760605, - -0.05861315503716469, - -0.0468062087893486, - 0.015876231715083122, - -0.10738836973905563, - -0.014260079711675644, - -0.021121760830283165, - 0.0042083607986569405, - 0.050586868077516556, - -0.0034011511597782373, - -0.05257808044552803, - -0.013396124355494976, - -0.018881628289818764, - 0.07916436344385147, - -0.016613813117146492, - -0.02435205690562725, - 0.04450954496860504, - -0.0025011785328388214, - 0.03297495096921921, - -0.02381536364555359, - 0.01651970110833645, - 0.015022012405097485, - -0.004011769779026508, - -0.11486224830150604, - 0.017308726906776428, - -0.0034321770071983337, - 0.008327283896505833, - 0.015236606821417809, - 0.005816365126520395, - -0.02017071843147278, - 0.027862869203090668, - 0.12715435028076172, - 0.0004695799434557557, - -0.02032465860247612, - 0.0045081027783453465, - -0.011765426024794579, - 0.010340038686990738, - 0.01410194206982851, - -0.0433947779238224, - 0.014954186975955963, - 0.009565061889588833, - 0.027224471792578697, - -0.0009202902438119054, - -0.031705450266599655, - -0.010931776836514473, - -0.021340791136026382, - -0.03810650482773781, - 0.02281414344906807, - -0.010584011673927307, - -0.00972319021821022, - 0.0057168868370354176, - 0.10348362475633621, - 0.010079962201416492, - 0.019514773041009903, - 0.023607881739735603, - -0.030973978340625763, - -0.043685585260391235, - 0.015749750658869743, - -0.04544229432940483, - 0.014213934540748596, - -0.044630300253629684, - -0.005334398243576288, - 0.008187557570636272, - -0.0047109052538871765, - 0.0008724037907086313, - -0.026024287566542625, - -0.009415959939360619, - -0.030244948342442513, - -0.01935182325541973, - -0.025755951181054115, - -0.022621402516961098, - 0.0292477048933506, - -0.005667058750987053, - -0.045310862362384796, - -0.008822637610137463, - 0.02766534872353077, - -0.011746182106435299, - -0.0934695452451706, - -0.0035250685177743435, - 0.013025324791669846, - -0.004173348657786846, - -0.03576457500457764, - 0.006615680176764727, - -0.0024906264152377844, - -0.012835796922445297, - -0.03198271244764328, - 0.058251507580280304, - 0.01600106619298458, - -0.03757137432694435, - -0.01829499378800392, - 0.023380491882562637, - -0.028844079002738, - -0.00686261523514986, - -0.017109274864196777, - 0.030096789821982384 - ], - [ - -0.014185842126607895, - -0.015101911500096321, - 0.015370864421129227, - 0.030528049916028976, - -0.016359327360987663, - -0.0006134679424576461, - 0.03790692612528801, - 0.07153302431106567, - 0.02849959023296833, - -0.004603956826031208, - -0.012014541774988174, - 0.0021944292820990086, - 0.009071679785847664, - 0.025385718792676926, - -0.0379486009478569, - 0.0006037784623913467, - -0.017444316297769547, - -0.023537863045930862, - -0.02350045181810856, - 0.0024678544141352177, - -0.1297513097524643, - 0.06179523095488548, - 0.009669397957623005, - -0.040678512305021286, - -0.017877783626317978, - 0.0028253551572561264, - 0.008999896235764027, - 0.026149757206439972, - -0.002483302028849721, - 0.049919601529836655, - 0.022240523248910904, - 0.03002241998910904, - -0.006053651683032513, - 0.002984085353091359, - 0.00041409331606701016, - -0.0005779052153229713, - 0.058379240334033966, - 0.0008943540742620826, - -0.006914012599736452, - 0.036575574427843094, - 0.06992276012897491, - -0.003647151170298457, - -0.004719002638012171, - -0.011510568670928478, - -0.005198124796152115, - 0.055594123899936676, - -0.004475077614188194, - -0.02579462341964245, - -0.007699086796492338, - -0.0022666200529783964, - 0.006554881576448679, - 0.0015400833217427135, - -0.011850323528051376, - 0.032280825078487396, - 0.011222558096051216, - 0.010488849133253098, - 0.02279718779027462, - 0.02329978533089161, - -0.05118078738451004, - 0.05069831758737564, - -0.06051693484187126, - -0.051556546241045, - 0.050259459763765335, - 0.07659313082695007, - -0.04860135167837143, - 0.020776188001036644, - -0.03697609528899193, - -0.009234514087438583, - -0.018315227702260017, - 0.045140184462070465, - 0.013749510049819946, - 0.19889411330223083, - 0.01832745596766472, - 0.0926268994808197, - -0.05972597748041153, - -0.10153201222419739, - 0.03952780365943909, - -0.012616967782378197, - 0.00454404903575778, - 0.07146463543176651, - 0.033564984798431396, - -0.06351520866155624, - -0.2034592479467392, - 0.030405806377530098, - -0.03191076219081879, - 0.021311039105057716, - 0.02608104981482029, - -0.030218996107578278, - -0.02290346845984459, - -0.053130462765693665, - -0.013047701679170132, - 0.039531558752059937, - -0.005978460889309645, - 0.0410965271294117, - 0.031099587678909302, - 0.06164451315999031, - 0.005549704190343618, - -0.012250637635588646, - -0.02459658682346344, - -0.008646130561828613, - 0.030678626149892807, - -0.007682328578084707, - -0.01519547775387764, - 0.02334037609398365, - -0.0792359784245491, - -0.0344952829182148, - 0.0372159481048584, - -0.032912567257881165, - 0.05719202384352684, - 0.01063778717070818, - 0.004434243310242891, - 0.010829845443367958, - -0.00040947573143057525, - 0.021713072434067726, - 0.03583833947777748, - 0.034916043281555176, - 0.01304380688816309, - -0.05198695510625839, - 0.023439446464180946, - -0.022424593567848206, - -0.07381170988082886, - 0.02978655695915222, - 0.03455962613224983, - 0.019612371921539307, - 0.060277290642261505, - 0.006038698833435774, - -0.40491941571235657, - 0.032899677753448486, - -0.005321514327079058, - 0.07250700891017914, - 0.09565277397632599, - -0.024401070550084114, - -0.05054249241948128, - -0.03342127427458763, - -0.03463752940297127, - 0.040107958018779755, - 0.033431436866521835, - 0.06516893208026886, - 0.01049246359616518, - -0.02821076288819313, - -0.044443827122449875, - -0.014341476373374462, - 0.01237252913415432, - 0.0009147044620476663, - -0.043804556131362915, - -0.05334983766078949, - 0.09051665663719177, - -0.03976278007030487, - -0.03661510720849037, - 0.0033324596006423235, - -0.004708409775048494, - 0.046728406101465225, - -0.02885523997247219, - -0.0657651424407959, - -0.04586566984653473, - -0.0135065708309412, - 0.050689343363046646, - 0.04204945266246796, - -0.004007685463875532, - 0.2666459381580353, - 0.07736786454916, - -0.029662296175956726, - 0.009430922567844391, - -0.005601305514574051, - 0.09078961610794067, - -0.08391425013542175, - 0.0068242670968174934, - -0.057153865694999695, - 0.007945976220071316, - -0.007246681489050388, - -0.049108851701021194, - 0.022251790389418602, - -0.055909935384988785, - -0.018726957961916924, - 0.06338591873645782, - 0.019964050501585007, - -0.027985956519842148, - 0.07156030833721161, - 0.0049267541617155075, - 0.04514958709478378, - 0.029517624527215958, - -0.03994327783584595, - -0.003712685313075781, - -0.0075457775965332985, - -0.13123877346515656, - 0.03686056286096573, - 0.031178642064332962, - -0.03707880899310112, - -0.03794560208916664, - -0.026588717475533485, - -0.029259076341986656, - 0.034385938197374344, - 0.24904704093933105, - -0.018799981102347374, - -0.004410240799188614, - -0.005892981309443712, - -0.015283873304724693, - 0.002224789699539542, - -0.04853780195116997, - 0.03389313071966171, - -0.0198824480175972, - 0.010160091333091259, - -0.001866521080955863, - 0.024425845593214035, - -0.025569669902324677, - -0.015382406301796436, - -0.022309737280011177, - -0.020232727751135826, - -0.024417519569396973, - 0.002126347739249468, - -0.010438965633511543, - 0.00042433346970938146, - 0.19011002779006958, - -0.02122318744659424, - 0.02494644746184349, - 0.022379709407687187, - -0.02725861594080925, - 0.0044310144148766994, - 0.031062498688697815, - -0.10288532078266144, - -0.00558545533567667, - -0.017462637275457382, - 0.022982172667980194, - -0.017027568072080612, - -0.013409782201051712, - 0.018313078209757805, - -0.015407243743538857, - 0.007561719976365566, - -0.02185194380581379, - -0.003941851668059826, - 0.0033095243852585554, - 0.07893804460763931, - 0.035996291786432266, - 0.02049952745437622, - -0.0029347622767090797, - 0.009032323025166988, - -0.022922774776816368, - 0.022359127178788185, - -0.4835726320743561, - 0.02074763923883438, - 0.01580204628407955, - 0.0008546250755898654, - -0.009226417168974876, - -0.00971390400081873, - 0.045024268329143524, - -0.06002986058592796, - 0.03044411912560463, - 0.033255401998758316, - -0.02091366983950138, - -0.039377253502607346, - -0.021658584475517273, - 0.03455975279211998, - -0.04755258187651634, - -0.010600592941045761, - -0.0513995885848999, - 0.009012442082166672 - ], - [ - -6.374868826242164e-05, - -0.0003632244188338518, - 0.044444020837545395, - -0.020044896751642227, - 0.015770940110087395, - 0.011416571214795113, - 0.0539475679397583, - 0.05377896502614021, - 0.03698989003896713, - -0.014930620789527893, - -0.057546958327293396, - 0.04858332872390747, - -0.04787888377904892, - 0.0038750716485083103, - -0.04971690475940704, - 0.12837527692317963, - -0.028589634224772453, - -0.07000487297773361, - -0.0031839339062571526, - 0.07317045331001282, - -0.1703503131866455, - 0.03642468899488449, - 0.011132917366921902, - -0.060667358338832855, - 0.008790434338152409, - -0.018249409273266792, - 0.02212519198656082, - 0.0037032761611044407, - 0.028757747262716293, - 0.02051684446632862, - 0.016844339668750763, - 0.010098641738295555, - -0.00951334647834301, - 0.04896404594182968, - -0.03572361543774605, - 0.006754719652235508, - 0.010815829038619995, - -0.03434991464018822, - 0.016664128750562668, - 0.06860580295324326, - 0.060201600193977356, - -0.02830701507627964, - -0.02902204357087612, - -0.015066560357809067, - 0.06507671624422073, - -0.020652495324611664, - 0.017848685383796692, - -0.053440168499946594, - -0.00575525825843215, - -0.03719033673405647, - -0.004164367914199829, - -0.017830608412623405, - -0.03556538000702858, - 0.053127583116292953, - 0.07295233756303787, - 0.011864079162478447, - 0.0019700091797858477, - 0.10825226455926895, - -0.06841883063316345, - 0.02588704042136669, - -0.07502675801515579, - -0.07065191119909286, - 0.021160641685128212, - 0.02651435136795044, - -0.05893376097083092, - -0.012967351824045181, - 0.020284106954932213, - 0.0153284203261137, - -0.015568265691399574, - -0.030964823439717293, - 0.06028056889772415, - 0.15816396474838257, - 0.01952497288584709, - 0.00478790421038866, - -0.042039498686790466, - -0.008666422218084335, - 0.029625102877616882, - 0.007512749172747135, - -0.016249170526862144, - 0.06378776580095291, - 0.04063732177019119, - -0.05204570293426514, - -0.09301521629095078, - -0.029411813244223595, - -0.030713137239217758, - 0.01741030625998974, - 0.08425422757863998, - 0.02014930732548237, - -0.005160038825124502, - 0.05214042216539383, - 0.030152317136526108, - -0.022902898490428925, - -0.1796376258134842, - 0.0051886760629713535, - -0.019723324105143547, - 0.07017510384321213, - -0.048951562494039536, - -0.01726687140762806, - 0.017210837453603745, - 0.012063928879797459, - 0.05621935427188873, - 0.009364631958305836, - 0.019951077178120613, - 0.005627665668725967, - -0.08918432146310806, - -0.017669808119535446, - 0.04065030813217163, - 0.04906076565384865, - 0.008715654723346233, - -0.0167812742292881, - -0.047266844660043716, - -0.026801904663443565, - 0.010655106045305729, - 0.033274658024311066, - 0.08141983300447464, - -0.02403121255338192, - -0.0005717789754271507, - -0.037833452224731445, - 0.04663041979074478, - 0.02930872142314911, - -0.06975948810577393, - -0.0003240315418224782, - -0.004428280051797628, - 0.07525837421417236, - 0.051854152232408524, - 0.008216938935220242, - -0.2182379513978958, - 0.06992336362600327, - 0.0006627953262068331, - 0.06050211563706398, - 0.019367501139640808, - -0.02130410261452198, - -0.021779989823698997, - -0.02246948704123497, - 0.03419812396168709, - 0.03845091909170151, - 0.07649800181388855, - -0.001805666252039373, - 0.015104611404240131, - -0.04394649341702461, - -0.06944733113050461, - -0.0439421646296978, - 0.038136355578899384, - -0.07743630558252335, - 0.009624802507460117, - -0.0797581821680069, - 0.09252279996871948, - -0.026884349063038826, - -0.03737315535545349, - -0.01796664483845234, - 0.0016660979017615318, - 0.02855345979332924, - -0.040023040026426315, - -0.09939663857221603, - 0.0023628512863069773, - 0.020251434296369553, - 0.05700529366731644, - 0.02691507898271084, - -0.009393480606377125, - 0.14313596487045288, - 0.01976492442190647, - 0.00810922309756279, - -0.032107237726449966, - 0.004924367647618055, - 0.058160919696092606, - -0.02615789696574211, - 0.03269105777144432, - -0.026366280391812325, - 0.0008211696404032409, - -0.03803157061338425, - -0.02164047211408615, - 0.06056797876954079, - -0.07558848708868027, - -0.06106391176581383, - 0.04100120812654495, - 0.061816927045583725, - -0.028292441740632057, - 0.029085077345371246, - -0.002729750471189618, - 0.014279374852776527, - -0.010388047434389591, - 0.046760305762290955, - -0.013128373771905899, - -0.032356537878513336, - -0.13588553667068481, - 0.005123214330524206, - 0.014578568749129772, - -0.015735121443867683, - 0.002236300380900502, - 0.0035840002819895744, - 0.027498839423060417, - 0.011076582595705986, - 0.2742331027984619, - 0.0036098910495638847, - -0.03297475352883339, - -0.0056218369863927364, - -0.023314744234085083, - -0.017381204292178154, - -0.0205673910677433, - 0.04387102648615837, - -0.014785016886889935, - -0.015563166700303555, - -0.007729731034487486, - -0.01319208275526762, - 0.00980572123080492, - -0.047839272767305374, - 0.008278151042759418, - -0.03335538133978844, - -0.04296194389462471, - 0.024020377546548843, - 0.005035016220062971, - -0.00815946701914072, - 0.1638612002134323, - 0.03310377523303032, - 0.00590472063049674, - -0.03448823466897011, - 0.015190632082521915, - 0.050474535673856735, - -0.008610598742961884, - -0.08181856572628021, - 0.01758844219148159, - -0.016391728073358536, - -0.011485984548926353, - 0.05154547095298767, - 0.014650133438408375, - 0.024953823536634445, - -0.034043088555336, - -0.03888958692550659, - -0.023039327934384346, - -0.0006091556278988719, - 0.014599235728383064, - 0.06702960282564163, - 0.0045857192017138, - 0.009817634709179401, - 0.039573442190885544, - -0.034989532083272934, - -0.03049500845372677, - 0.07088743895292282, - -0.5855333209037781, - 0.010325047187507153, - -0.010099966078996658, - -0.00418050866574049, - 0.04294218495488167, - 0.012543484568595886, - 0.03484091907739639, - -0.06832671910524368, - 0.019342659041285515, - -0.02512049488723278, - 0.001538419397547841, - -0.068049855530262, - -0.005829199217259884, - 0.009071454405784607, - -0.0513865128159523, - 0.022899139672517776, - -0.01722567155957222, - 0.003633553395047784 - ], - [ - -8.677245205035433e-05, - 0.0014022785471752286, - -0.0008028338197618723, - 2.3929893359309062e-05, - -0.0012091773096472025, - 0.0003817375691141933, - -0.00015544188499916345, - 0.0014901402173563838, - 0.0013763350434601307, - 0.001207177760079503, - -0.0017829090356826782, - 0.0014062775298953056, - 0.00019405661441851407, - -0.0018143120687454939, - -0.0015453618252649903, - 0.005358253605663776, - 0.0005032451590523124, - -0.003384392010048032, - -0.003924292512238026, - 0.0022815668489784002, - -0.008154867216944695, - 0.003762203501537442, - -0.0006786369485780597, - -0.0012543273624032736, - -0.0011449974263086915, - -0.0019478911999613047, - 0.0017025788547471166, - 0.0002504241419956088, - 0.0002715399023145437, - 0.00134411605540663, - 0.001123497262597084, - 0.002470343839377165, - 0.0009558937745168805, - -0.0004171963664703071, - -0.00013073411537334323, - 0.001629409147426486, - 0.002370907459408045, - 0.000541157613042742, - 0.0003041675081476569, - -0.0007235403754748404, - -0.0002923308056779206, - 0.0024114197585731745, - 5.431133831734769e-05, - 0.00022234578500501812, - -0.0016568565042689443, - -0.0006693708128295839, - 0.00023748434614390135, - -0.001336770481429994, - 0.0008864799165166914, - 0.0006663033273071051, - -0.0026882055681198835, - 0.007887103594839573, - -8.421643724432215e-05, - -0.0012445306638255715, - -0.0017713294364511967, - -0.001096615451388061, - 0.00041912379674613476, - -0.0007547884015366435, - -0.008044200018048286, - -0.0005651914980262518, - -0.0005710361292585731, - -0.0031993789598345757, - 0.00025446515064686537, - 0.003768141148611903, - -0.005375628359615803, - 0.0018271154258400202, - -0.010804091580212116, - 0.0026074082124978304, - -0.0009286641143262386, - -0.0020221946761012077, - -0.002239028923213482, - -0.07336819916963577, - 0.003918615635484457, - 0.005371337756514549, - -0.0011912921909242868, - -0.0004895830643363297, - 0.0014988441253080964, - 0.0018073292449116707, - -0.0023743959609419107, - 0.002940158359706402, - -0.0008692905539646745, - -0.0007455297163687646, - -0.9189803004264832, - 0.00022698016255162656, - -0.004258682485669851, - 0.002659304765984416, - 0.0011465928982943296, - 0.0018378418171778321, - 0.00045778544154018164, - 0.0038018906489014626, - 0.0016586666461080313, - 0.0017525502480566502, - 0.00806246604770422, - -0.0009127319208346307, - 0.003244369523599744, - 0.003208110574632883, - 0.00016396248247474432, - -0.0018660352798178792, - 0.0038471848238259554, - -0.0010523636592552066, - 0.0007856374722905457, - 0.0017333284486085176, - 0.001059456029906869, - 0.0026233424432575703, - 0.0028998819179832935, - 0.0014880551025271416, - -0.002924127271398902, - 0.0012684811372309923, - -0.0012163498904556036, - -0.0009831530041992664, - 0.007752592675387859, - 0.00331456889398396, - -0.0017542827408760786, - -8.450964378425851e-05, - 0.0019528585253283381, - 0.003432338358834386, - -0.0007550162263214588, - 0.0009132047998718917, - 0.0004005752853117883, - 0.0010657429229468107, - -0.0019722299184650183, - -0.00230859755538404, - -0.0017567189643159509, - 0.001786131993867457, - -0.0023645965848118067, - -0.0014650610974058509, - 0.2796061635017395, - 0.0005934875225648284, - 0.00042548219789750874, - 0.00029277708381414413, - 0.0013406979851424694, - 0.0033989218063652515, - 0.0010841359617188573, - -0.0001158085506176576, - -0.001905829063616693, - 0.0013910045381635427, - -0.0017194242682307959, - 0.0017317964229732752, - -0.002283275593072176, - 0.0007060679490678012, - 0.001019938848912716, - -0.0009284632396884263, - -0.001272419118322432, - -0.0010763208847492933, - -5.5500840971944854e-05, - -0.005330260377377272, - 0.00010770768130896613, - 0.0006103242631070316, - -0.0007163593545556068, - -6.719864904880524e-05, - -0.0005056867958046496, - -0.00781465694308281, - -0.0018038867274299264, - -0.005037724506109953, - -0.003247163025662303, - 3.817386823357083e-05, - 0.0017506805015727878, - -0.0008002188405953348, - 0.0006455609109252691, - 0.2060108780860901, - -0.0014317758614197373, - 0.0006255868938751519, - 2.30032983381534e-05, - 0.0011088146129623055, - 0.008074438199400902, - 0.09224040061235428, - 0.002363992389291525, - -0.00386648066341877, - 0.0015968333464115858, - 0.0011609322391450405, - -0.00529120210558176, - 0.0028740328270941973, - -0.0011914520291611552, - 0.0010284541640430689, - -0.0008490916225127876, - -0.0017037206562235951, - -0.00019436597358435392, - 0.006588520482182503, - -0.0008470637258142233, - 0.004801495466381311, - -0.0007778009749017656, - 0.0020186156034469604, - -0.00021943285537417978, - 3.860407741740346e-05, - -0.006228485144674778, - -9.94225702015683e-05, - -0.00018078830908052623, - -0.0016780657460913062, - 0.0010479713091626763, - 0.0014899995876476169, - 0.0008559078560210764, - -0.0008616286213509738, - -0.0590963251888752, - -0.0054858168587088585, - 0.004164892714470625, - -0.0013071831781417131, - 0.0006134400609880686, - 0.00017112518253270537, - 0.000308800779748708, - 0.0022432708647102118, - -0.001511110458523035, - -0.0033652442507445812, - 0.00230124918743968, - -0.002068896312266588, - 0.0011008315486833453, - 0.006181749515235424, - -0.0006785179721191525, - -0.002150621498003602, - -0.0007619528914801776, - 0.00011319393524900079, - -0.0007202348788268864, - -0.0011587789049372077, - -0.052254922688007355, - 0.0011881098616868258, - -0.0015653660520911217, - -0.0001445096277166158, - -0.003404628485441208, - 0.0009784447029232979, - 0.0035302434116601944, - -0.009946001693606377, - 0.0009619591291993856, - 0.0007135894265957177, - -0.0002524929295759648, - -0.00018151020049117506, - -0.00015009130584076047, - 0.00048716270248405635, - -0.0014543950092047453, - 0.001115810009650886, - 0.0008263416239060462, - 7.986134005477652e-05, - 0.00010929092240985483, - 0.0029814699664711952, - 0.002072098897770047, - -0.0003160178894177079, - 8.788838749751449e-05, - -0.002221888629719615, - -0.004890706855803728, - 0.0022304777521640062, - 0.11414416879415512, - -0.00042332170414738357, - 0.002147120889276266, - 0.0010084215318784118, - -0.0009153492865152657, - -0.0033118906430900097, - -0.001202346640639007, - -0.0007649855688214302, - 0.005211021285504103, - 0.0007136480417102575, - -0.0007811575196683407, - -0.0019814721308648586, - 8.965213055489585e-05, - 0.0008026376599445939, - -0.0026568248867988586, - 0.0017145220190286636, - -0.002912690630182624, - 0.0006905524060130119 - ], - [ - -0.01325992401689291, - -0.05589207634329796, - 0.0435485765337944, - -0.04872383549809456, - -0.00938502699136734, - -0.031248362734913826, - 0.05820047855377197, - -0.06738171726465225, - -0.04681303724646568, - 0.015009699389338493, - -0.006687087006866932, - 0.08290932327508926, - 0.04764742776751518, - -0.013446985743939877, - -0.052164968103170395, - -0.2282238006591797, - -0.004447889514267445, - -0.012086925096809864, - 0.05566384643316269, - 0.06733227521181107, - 0.02576921507716179, - 0.013212351128458977, - 0.015688881278038025, - -0.018260996788740158, - 0.022609220817685127, - -0.012784167192876339, - 0.004142531659454107, - -0.0036678046453744173, - -0.02736005373299122, - 0.07416032999753952, - -0.010432256385684013, - -0.03641296550631523, - -0.02551829069852829, - 0.013203036040067673, - -0.004326154477894306, - -0.00034011685056611896, - 0.010582688264548779, - -0.045860301703214645, - -0.02947039157152176, - -0.012554905377328396, - 0.018015988171100616, - 0.013882918283343315, - -0.021451540291309357, - -0.02262388914823532, - 0.012660450302064419, - 0.09941049665212631, - 0.006564614363014698, - -0.0069502913393080235, - -0.019124198704957962, - -0.00965031050145626, - -0.04059404507279396, - -0.05165602266788483, - -0.018598118796944618, - 0.011998752132058144, - 0.04285500943660736, - 0.01886793226003647, - -0.017249904572963715, - 0.013847555965185165, - -0.033392343670129776, - 0.01835976354777813, - -0.016118451952934265, - -0.04797549173235893, - -0.0033002342097461224, - 0.018925020471215248, - -0.03747379407286644, - 0.026837149634957314, - -0.06310909241437912, - 0.007361364550888538, - -0.00036300832289271057, - -0.011925109662115574, - -0.028153439983725548, - 0.14351385831832886, - 0.058118801563978195, - 0.061281777918338776, - -0.05375361815094948, - 0.014343502931296825, - 0.0006778647657483816, - -0.008999085985124111, - -0.03945579379796982, - -0.012728642672300339, - -0.017868772149086, - -0.0003154774894937873, - 0.1843360960483551, - -0.010035473853349686, - 0.039169955998659134, - -0.01448433380573988, - -0.012500968761742115, - 0.01792541891336441, - -0.016504276543855667, - -0.02914484590291977, - 0.001762606669217348, - -0.0148232476785779, - 0.23736825585365295, - 0.058012451976537704, - 0.019793493673205376, - -0.028104452416300774, - -0.012744448147714138, - 0.03433399274945259, - 0.010088744573295116, - -0.00434543751180172, - 0.0129232257604599, - 0.042042799293994904, - -0.03291789069771767, - -0.055600062012672424, - -0.08516690880060196, - 0.00467365887016058, - 0.034564025700092316, - -0.051116183400154114, - 0.034026291221380234, - -0.06631512194871902, - -0.013547027483582497, - -0.0020433340687304735, - 0.011070825159549713, - -0.030236683785915375, - -0.01439015381038189, - 9.016584226628765e-05, - 0.0021465052850544453, - 0.028752703219652176, - 0.0024067459162324667, - 0.022454528138041496, - 0.014570390805602074, - 0.0004281583824194968, - 0.011396573856472969, - -0.002665122039616108, - 0.061000578105449677, - 0.04237911477684975, - -0.6730218529701233, - -0.008367314003407955, - -0.00516291381791234, - 0.0296246986836195, - 0.035115476697683334, - -0.03549283370375633, - -0.010578958317637444, - -0.02022850699722767, - 0.0185385812073946, - -0.023193158209323883, - 0.06562884896993637, - 0.020558731630444527, - -0.021093450486660004, - -0.01544460840523243, - 0.007799516897648573, - 0.0060302638448774815, - 0.024953190237283707, - -0.032605357468128204, - 0.010570215061306953, - 0.016066059470176697, - -0.005913699511438608, - -0.06674280762672424, - -0.05681785196065903, - -0.03093692660331726, - 0.03508448228240013, - -0.023339133709669113, - -0.02694665640592575, - -0.02026832289993763, - -0.03353128582239151, - 0.005240056198090315, - 0.03429610654711723, - 0.03612475469708443, - 0.05864438787102699, - 0.21652960777282715, - 0.010326438583433628, - -0.021571312099695206, - -0.06758489459753036, - -0.03499365225434303, - -0.012720831669867039, - -0.10779421776533127, - 0.003020031377673149, - -0.013426943682134151, - 0.016482310369610786, - 0.052076030522584915, - 0.03809541463851929, - -0.017161352559924126, - 0.007873202674090862, - 0.007592450827360153, - 0.11183292418718338, - 0.00972020160406828, - -0.03512750566005707, - 0.06173710152506828, - -0.02187911607325077, - 0.018973831087350845, - -0.04123625159263611, - 0.018389999866485596, - 0.022606493905186653, - -0.01949913799762726, - -0.14534491300582886, - 0.003844629740342498, - -0.04742411896586418, - 0.03339162841439247, - 0.02445775642991066, - 0.03646641969680786, - -0.00034778547706082463, - -0.031744543462991714, - 0.1594313085079193, - -0.027928750962018967, - -0.06546126306056976, - -0.014214424416422844, - -0.014969075098633766, - -0.01791846565902233, - 0.04269212484359741, - -0.03612133115530014, - 0.0020553607027977705, - -0.005096666049212217, - 0.015806593000888824, - -0.03742039203643799, - 0.0028265195433050394, - -0.017100289463996887, - -0.016721028834581375, - -0.009676930494606495, - 0.007195128593593836, - 0.017491569742560387, - 0.0053426832892000675, - -0.023219209164381027, - 0.11993185430765152, - 0.04457945376634598, - 0.0002992824593093246, - 0.011938875541090965, - -0.03493211790919304, - -0.039900436997413635, - 0.020770002156496048, - -0.00426835473626852, - 0.013467258773744106, - -0.021288909018039703, - -0.0006325044669210911, - 0.04840024188160896, - -0.006491633132100105, - -0.007502495311200619, - -0.06006490811705589, - 0.00777333602309227, - -0.033005714416503906, - 0.003101402660831809, - -0.053372740745544434, - -0.013645794242620468, - 0.011954966001212597, - -0.042570117861032486, - -0.030507873743772507, - -0.015496603213250637, - 0.02860993705689907, - 0.00014888380246702582, - -0.09589187800884247, - -0.017927251756191254, - -0.0013089240528643131, - 0.02203628607094288, - -0.044991735368967056, - 0.010072272270917892, - -0.051436249166727066, - -0.012840654700994492, - -0.01873769424855709, - 0.05888303369283676, - 0.04449521377682686, - -0.007075331639498472, - -0.0023291942197829485, - -0.010796102695167065, - -0.05522852763533592, - -0.01245956588536501, - -0.006431809160858393, - 0.020063329488039017 - ], - [ - -0.038027577102184296, - -0.01917567290365696, - 0.011731937527656555, - 0.006775007117539644, - -0.01329336129128933, - 0.0028092958964407444, - 0.07418835908174515, - -0.01043904572725296, - 0.025421764701604843, - -0.026393912732601166, - -0.01813678629696369, - 0.09038113802671432, - 0.03378036990761757, - -0.03535953536629677, - -0.02647984027862549, - -0.12471914291381836, - 0.02379707433283329, - -0.014474999159574509, - 0.08980634063482285, - 0.09271565824747086, - -0.05899326130747795, - 0.007977454923093319, - 0.026671871542930603, - -0.05462679639458656, - -0.01166143175214529, - 0.004600766114890575, - 0.043525148183107376, - -0.007464191410690546, - 0.0007696784450672567, - 0.06976130604743958, - -0.023914670571684837, - 0.0322817899286747, - -0.02534053474664688, - 0.04748919606208801, - -0.03851699084043503, - 0.012787600979208946, - -0.015565810725092888, - -0.04281685873866081, - 0.01412993110716343, - 0.027910692617297173, - 0.025828028097748756, - -0.020141053944826126, - -0.026423044502735138, - -0.001305622747167945, - 0.08796153217554092, - 0.09964185208082199, - 0.0005138124106451869, - 0.01832827739417553, - -0.023005133494734764, - 0.003567406442016363, - -0.020490286871790886, - -0.06330249458551407, - -0.031097492203116417, - -0.040741562843322754, - 0.04160284250974655, - -0.0226603876799345, - 0.020446622744202614, - 0.01748107746243477, - -0.06198244169354439, - -0.025760523974895477, - -0.08003687113523483, - -0.034107957035303116, - -0.010684008710086346, - 0.028520923107862473, - -0.058690205216407776, - 0.014433933421969414, - -0.05784681439399719, - 0.05334949120879173, - 0.0009538642480038106, - 0.03440986946225166, - -0.011965700425207615, - 0.14814655482769012, - 0.017643747851252556, - 0.09164608269929886, - -0.03934653103351593, - -0.02834128588438034, - 0.0047377594746649265, - -0.008453289978206158, - -0.050574615597724915, - 0.06508997082710266, - 0.018197383731603622, - -0.019007736817002296, - -0.049368441104888916, - 0.030025800690054893, - 0.03470601886510849, - 0.010051149874925613, - 0.05654453486204147, - 0.045322235673666, - -0.014856238849461079, - -0.045986805111169815, - 0.016777949407696724, - -0.043692536652088165, - 0.19905994832515717, - 0.030421923846006393, - 0.013131760060787201, - 0.03365255892276764, - -0.008244232274591923, - 0.05492119491100311, - -0.025802502408623695, - -0.0016397107392549515, - 0.0434422492980957, - 0.023208217695355415, - 0.05152671039104462, - -0.06773118674755096, - -0.1431453973054886, - 0.00579057028517127, - 0.058071792125701904, - -0.046081848442554474, - 0.01899152621626854, - -0.049509353935718536, - -0.011806627735495567, - -0.028835035860538483, - 0.05580558627843857, - 0.008379003964364529, - -0.00259777600876987, - -0.008832884021103382, - 0.005710300523787737, - -0.0011456042993813753, - 0.006220696493983269, - 0.05239645391702652, - -0.009696857072412968, - -0.0010552939493209124, - 0.004461947362869978, - 0.06040486320853233, - 0.10180104523897171, - 0.02532467246055603, - -0.5693928599357605, - 0.03094877302646637, - -0.04279622435569763, - 0.051689498126506805, - 0.042836420238018036, - -0.08765419572591782, - -0.06351175159215927, - 0.0019552947487682104, - 0.0012065652990713716, - -0.020518450066447258, - 0.0726364478468895, - 0.03586527705192566, - -0.033930882811546326, - 0.010030833072960377, - -0.01714647002518177, - -0.038146086037158966, - 0.02077571488916874, - -0.020004676654934883, - 0.050090011209249496, - -0.02660258859395981, - -0.002255291910842061, - -0.03540617600083351, - -0.0820784866809845, - -0.011683027260005474, - 0.04666019603610039, - -0.05887184664607048, - -0.024850759655237198, - -0.06461460888385773, - -0.06486693769693375, - 0.005349222104996443, - 0.045011006295681, - 0.033912576735019684, - 0.05228680744767189, - 0.24655890464782715, - 0.05955171957612038, - -0.02653529681265354, - -0.1063808724284172, - -0.04308231174945831, - -0.008654705248773098, - -0.03351309895515442, - 0.006604955997318029, - -0.008277230896055698, - 0.028011824935674667, - 0.024581361562013626, - 0.0012169549008831382, - 0.015755370259284973, - -0.04481668025255203, - -0.04026256874203682, - 0.09953605383634567, - 0.0011665367055684328, - -0.030957486480474472, - 0.05331151932477951, - 0.003126017516478896, - 0.007670939899981022, - -0.012305675074458122, - 0.040362901985645294, - 0.026849590241909027, - 0.014147273264825344, - -0.1944030225276947, - 0.0425531268119812, - 0.013356265611946583, - -0.01986575871706009, - 0.0006534949061460793, - 0.02949908934533596, - -0.0019578055944293737, - 0.0223194919526577, - 0.18507058918476105, - -0.00639595789834857, - -0.0647347941994667, - -0.010725117288529873, - -0.024652034044265747, - 0.020337041467428207, - 0.02916783280670643, - -0.01704920083284378, - 0.020026404410600662, - -0.0030158162117004395, - -0.03055427595973015, - 0.02388094924390316, - -0.02129567414522171, - -0.04564278572797775, - -0.012269081547856331, - -0.05282621830701828, - -0.0033368489239364862, - -0.037996988743543625, - -0.07627451419830322, - 0.028496183454990387, - 0.12149350345134735, - 0.0313139446079731, - 0.04041580483317375, - 0.03080642595887184, - -0.04647418111562729, - -0.02889402210712433, - -0.014915176667273045, - -0.05710812658071518, - 0.0291377492249012, - -0.022239893674850464, - -0.03449996933341026, - -0.0065598986111581326, - -0.00044667746988125145, - -0.005929413251578808, - -0.05703302100300789, - -0.029689179733395576, - -0.03441764786839485, - -0.022674815729260445, - 0.016263479366898537, - -0.00930075068026781, - 0.030551431700587273, - 0.02138093300163746, - -0.009517821483314037, - -0.0019887646194547415, - 0.011443139053881168, - -0.011867668479681015, - -0.2484816014766693, - 0.0005896632210351527, - 0.02140938863158226, - -0.03118065558373928, - 0.037441451102495193, - 0.017349716275930405, - 0.01628008484840393, - -0.03177189081907272, - -0.02486802265048027, - 0.05941139906644821, - 0.06684631109237671, - -0.0669962540268898, - -0.03846152126789093, - -0.009282075800001621, - -0.06087663397192955, - -0.009596062824130058, - -0.040846750140190125, - 0.026769565418362617 - ], - [ - -0.025606224313378334, - -0.02801249735057354, - 0.02611897885799408, - -0.057177696377038956, - -0.017935125157237053, - 0.0005933513166382909, - 0.033845383673906326, - 0.02549937181174755, - 0.01908302679657936, - 0.008423763327300549, - -0.02974788099527359, - 0.05562307685613632, - 0.025242144241929054, - 0.007397555746138096, - -0.09132158756256104, - -0.13378721475601196, - -0.011143714189529419, - -0.039203859865665436, - 0.01017188373953104, - 0.03592534363269806, - -0.06804881244897842, - 0.033311981707811356, - -0.00909639522433281, - -0.021507633849978447, - -0.006081180181354284, - -0.04250352829694748, - 0.002873068442568183, - -0.011053807102143764, - 0.0071157836355268955, - 0.05518342927098274, - 0.022646205499768257, - 0.016408240422606468, - -0.005312373396009207, - 0.011671784333884716, - -0.0073489053174853325, - 0.014036599546670914, - 0.03565686196088791, - 0.0036559829022735357, - -0.004657420329749584, - 0.019853541627526283, - 0.002219195244833827, - 0.006491099949926138, - -0.006109241861850023, - -0.03695221617817879, - 0.021436568349599838, - 0.05977535620331764, - 0.004547425080090761, - -0.03560949116945267, - -0.028931137174367905, - -0.00900630559772253, - -0.03119511343538761, - -0.0354992151260376, - -0.02358856238424778, - 0.01195633877068758, - 0.013677557930350304, - 0.008420695550739765, - -0.017123118042945862, - -0.002712173154577613, - -0.060415808111429214, - 0.05101897194981575, - -0.04256167635321617, - -0.05174732208251953, - 0.021165508776903152, - 0.041124679148197174, - -0.02358633652329445, - -0.0027651339769363403, - -0.0686982125043869, - 0.014599742367863655, - 0.012058792635798454, - -0.022860229015350342, - -0.011206483468413353, - 0.19275949895381927, - 0.065996453166008, - 0.06643573939800262, - -0.04855258762836456, - -0.021016230806708336, - -0.016443641856312752, - -0.015918545424938202, - -0.03816720098257065, - 0.04464434087276459, - 0.008143016137182713, - -0.03798471763730049, - -0.11262013018131256, - -0.009142530150711536, - -0.004093920812010765, - -0.004088534042239189, - -0.0024517953861504793, - 0.006559150759130716, - -0.01316317729651928, - 0.00427417503669858, - 0.012521731667220592, - 0.016776323318481445, - 0.14062538743019104, - 0.03430040553212166, - 0.012807248160243034, - 0.027780910953879356, - -0.01617293432354927, - 0.000842324283439666, - 0.02982429228723049, - 0.007719754707068205, - -0.008521361276507378, - 0.0375964380800724, - -0.0428820438683033, - -0.002359851263463497, - -0.09286357462406158, - 0.01096336543560028, - 0.037176068872213364, - -0.041447654366493225, - 0.03162254020571709, - -0.04286458343267441, - -0.015207037329673767, - 0.002283249283209443, - -0.012261198833584785, - -0.009458205662667751, - 0.0007122993119992316, - 0.02478349581360817, - 0.015926072373986244, - 0.01855088211596012, - 0.047009360045194626, - 0.011442737653851509, - -0.03762625902891159, - -0.00045292425784282386, - 0.02017650008201599, - 0.029032964259386063, - 0.08112343400716782, - 0.02593924291431904, - -0.6059706807136536, - 0.03743702545762062, - 0.020005367696285248, - 0.04345850273966789, - 0.07033398002386093, - -0.05478855222463608, - -0.022031256929039955, - -0.013324303552508354, - 0.03915267065167427, - 0.019852491095662117, - 0.07439500838518143, - 0.02790975570678711, - -0.012458699755370617, - -0.028032440692186356, - 0.003466977272182703, - 0.0005582810845226049, - -0.014407696202397346, - -0.04830491542816162, - -0.015545021742582321, - -0.012621087953448296, - -0.010119341313838959, - -0.04909605160355568, - -0.034049514681100845, - -0.02536243572831154, - 0.012099613435566425, - -0.002091894391924143, - -0.016018547117710114, - -0.026248382404446602, - -0.004366815090179443, - 0.010264360345900059, - 0.020073221996426582, - 0.029628276824951172, - 0.008930946700274944, - 0.3178524672985077, - -0.0005509668262675405, - 0.015552297234535217, - -0.0404626727104187, - -0.01735813543200493, - 0.023402582854032516, - -0.11975288391113281, - 0.03070170246064663, - -0.03982527181506157, - -0.003362284041941166, - 0.013164354488253593, - 0.029889028519392014, - 0.04440698400139809, - -0.007322041317820549, - 0.005350293591618538, - 0.08633797615766525, - 0.015085390768945217, - -0.04261455312371254, - 0.08255921304225922, - -0.0013189123710617423, - 0.013151055201888084, - -3.849117274512537e-05, - 0.014369957149028778, - 0.004009854514151812, - -0.011181563138961792, - -0.16966193914413452, - 0.018183276057243347, - -0.03081466443836689, - 0.007858109660446644, - 0.0405627116560936, - 0.007821033708751202, - 0.009131972678005695, - -0.01860475353896618, - 0.23646025359630585, - -0.016353392973542213, - -0.054061032831668854, - -0.0024075377732515335, - -0.01738853193819523, - -0.03058791719377041, - 0.02487793378531933, - 0.018936103209853172, - -0.03391687572002411, - -0.01691373810172081, - 0.010667975060641766, - -0.03838781267404556, - -0.004032602533698082, - -0.04148626700043678, - -0.038275547325611115, - -0.018595732748508453, - -0.020409531891345978, - 0.01406059879809618, - 0.032916437834501266, - -0.027170520275831223, - 0.1639685332775116, - 0.019270513206720352, - -0.014577583409845829, - 0.020562652498483658, - -0.022975707426667213, - -0.014530188404023647, - -0.015166806988418102, - -0.0800262987613678, - 0.012056071311235428, - -0.011250030249357224, - 0.034318894147872925, - 0.030090399086475372, - 0.002138926647603512, - -0.009815985336899757, - -0.058130089193582535, - -0.0005753275472670794, - -0.031486812978982925, - 0.009465401992201805, - -0.04210704192519188, - 0.028173133730888367, - 0.02675503119826317, - -0.01183162909001112, - -0.011546749621629715, - 0.007310645654797554, - -0.001125312177464366, - 0.02886960655450821, - -0.30075955390930176, - 0.006639513652771711, - 9.620659693609923e-05, - 0.03179392218589783, - -0.04723391681909561, - 0.004200840834528208, - -0.02320801466703415, - -0.04393839091062546, - 0.020368900150060654, - 0.03153220936655998, - 0.04461182281374931, - -0.012504467740654945, - 0.005181462038308382, - 0.015076084062457085, - -0.04145324230194092, - 0.01575329340994358, - -0.013772998005151749, - 0.0137653648853302 - ], - [ - -0.0029645801987499, - -0.006246195174753666, - -0.022369058802723885, - 0.0035990921314805746, - 0.005317055154591799, - -0.0015365970320999622, - -0.02045193873345852, - -0.026131372898817062, - -0.00889323465526104, - -0.017987152561545372, - 0.007986421696841717, - -0.02241617441177368, - 0.005320713389664888, - 0.020314956083893776, - -0.0037711868062615395, - 0.26047688722610474, - 0.024568384513258934, - 0.02483740821480751, - 0.05805191397666931, - -0.011166736483573914, - 0.13916318118572235, - -0.09935006499290466, - 0.0207821037620306, - 0.017297884449362755, - 0.011929398402571678, - 0.01143848430365324, - -0.00827068742364645, - -0.013922917656600475, - -0.005462612025439739, - 0.015194827690720558, - -0.004307340364903212, - -0.026044607162475586, - 0.042179591953754425, - 0.02189355157315731, - 0.02015676721930504, - -0.04371913895010948, - -0.014067486859858036, - 0.007476903963834047, - -0.01777961105108261, - 0.019883109256625175, - 0.006087451707571745, - -0.01611413061618805, - 0.010537910275161266, - -0.01844380982220173, - 0.022640738636255264, - 0.04429153725504875, - -0.011376243084669113, - 0.020417386665940285, - -0.026799067854881287, - -0.06099054962396622, - 0.005069787614047527, - -0.07879329472780228, - -0.012585444375872612, - 0.009801452048122883, - 0.028833551332354546, - 0.05339828506112099, - -0.022842371836304665, - -0.019801504909992218, - 0.027189893648028374, - 0.036384109407663345, - 0.01383205596357584, - 0.05659277364611626, - 0.03005802445113659, - -0.07117606699466705, - 0.08557119965553284, - -0.013065463863313198, - 0.20993545651435852, - -0.027187911793589592, - 0.028440425172448158, - 0.007516083773225546, - 0.07795282453298569, - -0.10813406109809875, - -0.04205143451690674, - 0.002763360505923629, - -0.025521935895085335, - -0.01945420540869236, - -0.0506167933344841, - 0.0012039100984111428, - 0.008005942218005657, - 0.010411816649138927, - 0.008089963346719742, - -0.011824684217572212, - 0.38427162170410156, - 0.022298678755760193, - 0.05197971314191818, - -0.06935606896877289, - -0.002722707577049732, - -0.03351631015539169, - -0.0011006060522049665, - -0.014780326746404171, - -0.0032579521648585796, - -0.035030074417591095, - -0.24177072942256927, - -0.002108893357217312, - -0.004124183673411608, - -0.03712419420480728, - -0.025239840149879456, - 0.0344531424343586, - -0.0575212799012661, - -0.009706413373351097, - 0.005354372784495354, - -0.005575863644480705, - 0.02484113909304142, - -0.060425251722335815, - -0.0008568147313781083, - 0.012815632857382298, - 0.04045555368065834, - -0.03925421088933945, - 0.028168827295303345, - 0.002184550743550062, - -0.03555147722363472, - -0.032512933015823364, - 3.516126162139699e-05, - 0.0013874487485736609, - -0.00101004121825099, - -0.02845693565905094, - 0.033685293048620224, - -0.006032561417669058, - 0.006495640613138676, - 0.03428933769464493, - 0.02781953290104866, - 0.05506667494773865, - 0.0625222697854042, - -0.019448235630989075, - 0.04705524444580078, - 0.008571930229663849, - 0.3029078543186188, - -0.024535968899726868, - -0.029147671535611153, - 0.017808496952056885, - 0.017864424735307693, - -0.021358994767069817, - -0.031111037358641624, - 0.0029803712386637926, - 0.0573408305644989, - -0.00823214091360569, - 0.04769573360681534, - -0.03281167894601822, - 0.02992498129606247, - -0.03459514304995537, - -0.019715242087841034, - 0.01069297082722187, - 0.025084495544433594, - -0.0207408145070076, - 0.004105942789465189, - 0.0603192076086998, - -0.048404548317193985, - -0.02712615206837654, - -0.006952557247132063, - 0.006629118695855141, - 0.006200430914759636, - 0.14428919553756714, - 0.0010111479787155986, - 0.06963849812746048, - 0.02142086811363697, - 0.0004955922486260533, - -0.0008354514138773084, - -0.05789962410926819, - -0.029348278418183327, - -0.39625680446624756, - 0.044277824461460114, - -0.01962253265082836, - 0.02685394324362278, - 0.023241693153977394, - -0.10622885823249817, - 0.06965802609920502, - -0.024016905575990677, - 0.07882920652627945, - -0.028731124475598335, - -0.02031022496521473, - 0.11543317139148712, - -0.029436038807034492, - 0.05379604175686836, - -0.043925780802965164, - 0.01534206047654152, - -0.01953073963522911, - 0.014652281068265438, - -0.020603347569704056, - 0.002817019820213318, - -0.10391169786453247, - 0.028221942484378815, - -0.007272813934832811, - 0.008471793495118618, - 0.023052919656038284, - 0.021308254450559616, - 0.027226006612181664, - 0.01127439085394144, - 0.0028201942332088947, - -0.01288982480764389, - -0.01794399879872799, - -0.022055134177207947, - 0.013409288600087166, - -0.10246329754590988, - 0.08449477702379227, - -0.017017671838402748, - 0.04456226900219917, - -0.017017144709825516, - 0.009066092781722546, - -0.010798899456858635, - -0.020683608949184418, - 0.01442707795649767, - 0.07546783238649368, - -0.03869488090276718, - 0.011419098824262619, - -0.0020239234436303377, - -0.012945632450282574, - 0.014123242348432541, - 0.024005545303225517, - -0.0193003062158823, - 0.015221580862998962, - 0.019665122032165527, - 0.014351997524499893, - -0.08630843460559845, - -0.005288549233227968, - 0.031401436775922775, - -0.007822150364518166, - 0.0961635410785675, - -0.008867825381457806, - -0.06995938718318939, - 0.23148992657661438, - 0.003725772025063634, - -0.023718470707535744, - -0.013699311763048172, - -0.009424397721886635, - 0.019460204988718033, - -0.03364855796098709, - 0.006242681760340929, - -0.03654298931360245, - 0.03185008093714714, - 0.01966182328760624, - -0.020248020067811012, - -0.08671891689300537, - -0.015104519203305244, - 0.013420827686786652, - 0.003222034312784672, - 0.011221401393413544, - 0.0809236541390419, - -0.002141010481864214, - 0.14217765629291534, - 2.7407690140535124e-05, - -0.04837958142161369, - -0.028619233518838882, - 0.013216925784945488, - 0.04689962416887283, - 0.015660319477319717, - 0.01102441269904375, - -0.07991126924753189, - -0.023968584835529327, - 0.046948958188295364, - 0.05358630418777466, - 0.027897445484995842, - -0.004650529474020004, - 0.03749784827232361, - -0.03942383825778961, - -0.00959633570164442, - 0.023206325247883797 - ], - [ - -0.04352521896362305, - -0.0373830609023571, - -0.0054321931675076485, - -0.03357582911849022, - -0.021863289177417755, - -0.0033252891153097153, - 0.033937565982341766, - -0.010481809265911579, - 0.0012570840772241354, - -9.1291825810913e-05, - -0.009534046985208988, - 0.05762491375207901, - 0.03151584416627884, - 0.005763625726103783, - -0.070084348320961, - -0.2046920359134674, - -0.0037505999207496643, - -0.00827295146882534, - 0.05182044953107834, - 0.044772036373615265, - -0.029464416205883026, - 0.008802155032753944, - 0.02702384814620018, - -0.03593515232205391, - 0.019671788439154625, - -0.018273232504725456, - 0.02850443497300148, - 0.009678210131824017, - -0.00930050015449524, - 0.06058115512132645, - -0.008558320812880993, - -0.016173306852579117, - -0.03845686838030815, - 0.02976035512983799, - -0.007230543531477451, - 0.013846120797097683, - 0.013396495953202248, - -0.02336210384964943, - -0.014559493400156498, - -0.017827240750193596, - -0.005645908415317535, - -0.0076965102925896645, - -0.03089025989174843, - -0.014354138635098934, - 0.03706696629524231, - 0.06821265816688538, - 0.009962135925889015, - 0.025908933952450752, - -0.01739831082522869, - 0.002740932162851095, - -0.037484049797058105, - -0.016369374468922615, - -0.006268318276852369, - 0.02863713726401329, - 0.024698155000805855, - 0.009384901262819767, - -0.0021699119824916124, - 0.013543465174734592, - -0.041618794202804565, - 0.02763248421251774, - -0.04484587907791138, - -0.026154059916734695, - 0.025962861254811287, - 0.04777969792485237, - -0.04045777767896652, - 0.02143474481999874, - -0.06295721977949142, - 0.0027789738960564137, - 0.01019254606217146, - -0.01702481508255005, - -0.02881058119237423, - 0.1141732931137085, - 0.029991725459694862, - 0.06996612995862961, - -0.028331618756055832, - 0.021679455414414406, - -0.017878511920571327, - -0.00637721735984087, - -0.05405266955494881, - 0.02757243998348713, - 0.0009093096014112234, - -0.01559479907155037, - -0.47126123309135437, - -0.009468186646699905, - 0.022212160751223564, - -0.0066064875572919846, - 0.012736465781927109, - 0.012307697907090187, - -0.032379332929849625, - -0.0072813089936971664, - 0.012536926195025444, - -0.01160082221031189, - 0.21231651306152344, - 0.030712975189089775, - 0.015960734337568283, - 0.021816931664943695, - -0.012373186647891998, - 0.021335911005735397, - 0.008516030386090279, - -0.019487770274281502, - 0.02826407179236412, - 0.0134833799675107, - -0.000565439579077065, - -0.0461139976978302, - -0.09929253160953522, - -0.030784960836172104, - 0.04718578979372978, - -0.00759197399020195, - 0.015566496178507805, - -0.05353185161948204, - 0.010656436905264854, - -0.001657020067796111, - 0.024545064195990562, - 0.009358944371342659, - -0.023207224905490875, - -0.006671940442174673, - 0.004415624309331179, - 0.03611190989613533, - 0.012984962202608585, - 0.01013076864182949, - 0.006165803875774145, - -0.011777865700423717, - 0.031240388751029968, - 0.016352245584130287, - 0.07598227262496948, - 0.021236367523670197, - -0.5241174101829529, - -0.00046821520663797855, - -0.00703435717150569, - 0.029075412079691887, - 0.04309684783220291, - -0.051477063447237015, - -0.042304594069719315, - -0.04526999592781067, - 0.018323805183172226, - 0.0042313882149755955, - 0.03687923029065132, - 0.02292642928659916, - -0.0365181565284729, - -0.009786432608962059, - 0.0004236393142491579, - -0.007272126618772745, - 0.01888394169509411, - -0.031241511926054955, - 0.01332010980695486, - -0.006835834588855505, - -0.0126343984156847, - -0.029399922117590904, - -0.04902742803096771, - -0.017689526081085205, - 0.03034147247672081, - -0.018795989453792572, - 0.0036727492697536945, - -0.032265495508909225, - -0.022336898371577263, - 0.008109449408948421, - 0.011079526506364346, - 0.03550705313682556, - 0.02472608909010887, - 0.3873887360095978, - -0.009148925542831421, - -0.011256317608058453, - -0.05937296524643898, - -0.031179247424006462, - 0.01630764827132225, - -0.05187579616904259, - -0.0036092507652938366, - -0.011838645674288273, - -0.007118455599993467, - 0.040298789739608765, - 0.011960054747760296, - -0.012979798950254917, - -0.0194715466350317, - -0.023454485461115837, - 0.09021469950675964, - -0.023388205096125603, - -0.031969573348760605, - 0.05051068961620331, - -0.0034835750702768564, - 0.005580482538789511, - -0.02375948615372181, - 0.021737536415457726, - 0.006170612759888172, - -0.03379443287849426, - -0.13038195669651031, - 0.008735911920666695, - -0.03928666561841965, - 0.023526553064584732, - 0.016843566671013832, - 0.021686440333724022, - -0.01676650531589985, - 0.0007471254211850464, - 0.14092345535755157, - -0.0017650568624958396, - -0.009861153550446033, - 0.007181781809777021, - -0.028843780979514122, - -0.007204590830951929, - 0.013579749502241611, - -0.012683546170592308, - 0.008007087744772434, - -0.010391862131655216, - 0.00021204870427027345, - -0.02710789442062378, - -0.007456895429641008, - -0.025323614478111267, - -0.00023326183145400137, - -0.019235892221331596, - 0.0009784282883629203, - 0.01645529642701149, - -0.011508719995617867, - -0.004377353470772505, - 0.09188684076070786, - 0.009111524559557438, - -0.006750385742634535, - 0.026625515893101692, - -0.03448062762618065, - 0.0030306396074593067, - -0.0023270300589501858, - -0.06356550753116608, - 0.009636429138481617, - -0.052123378962278366, - 0.002000943524762988, - 0.05500730127096176, - -0.007402630057185888, - 0.00987978745251894, - -0.028010033071041107, - -0.02839425764977932, - -0.02206449955701828, - -0.00569091597571969, - -0.03023872897028923, - -0.022384852170944214, - 0.017468979582190514, - -0.00670459633693099, - -0.010577679611742496, - -0.019721824675798416, - 0.01313171349465847, - 0.003731522476300597, - -0.08546876907348633, - -0.0013410976389423013, - 0.0007378840236924589, - 0.013275195844471455, - -0.04098842665553093, - 0.015346373431384563, - -0.03823622316122055, - -0.020116522908210754, - -0.03241664916276932, - 0.049197275191545486, - 0.02862229011952877, - -0.05197339877486229, - -0.04674544185400009, - 0.011393817141652107, - -0.06748329102993011, - 0.018511105328798294, - -0.04842555150389671, - 0.03928894177079201 - ], - [ - -0.00023047775903251022, - 0.0007155055645853281, - -0.006163870915770531, - 0.002393638249486685, - 4.142264515394345e-05, - 5.260223406367004e-05, - -0.00586246931925416, - -0.0043328870087862015, - -0.00024192893761210144, - -0.0024183320347219706, - 0.0009771654149517417, - -0.004654891323298216, - 0.0016920588677749038, - 0.002818330191075802, - -0.0008844106341712177, - 0.06408989429473877, - 0.005514185875654221, - 0.0029621832072734833, - 0.008757364936172962, - -0.0012735024793073535, - 0.023753594607114792, - -0.018502626568078995, - 0.003852656576782465, - 0.003501012921333313, - 0.0008432944887317717, - 0.0015217633917927742, - -0.00035512217436917126, - -0.0028026942163705826, - -0.0016352056991308928, - 0.004175386391580105, - -8.503609569743276e-05, - -0.0035581588745117188, - 0.01014897134155035, - 0.0038202719297260046, - 0.005168956238776445, - -0.008823533542454243, - -0.0008614981197752059, - 0.0033440962433815002, - -0.0036179441958665848, - 0.00307858781889081, - 0.0006730768363922834, - -0.0004941778024658561, - 0.00248741009272635, - -0.0031849308870732784, - 0.0017075211508199573, - 0.008342424407601357, - -0.002129289787262678, - 0.0035042893141508102, - -0.004503475967794657, - -0.01269618235528469, - -0.001011578133329749, - -0.007903387770056725, - -0.0022533375304192305, - 0.0004963905666954815, - 0.0035096497740596533, - 0.01001802459359169, - -0.004090299364179373, - -0.005937312729656696, - -0.000543544883839786, - 0.006879197899252176, - 0.0036614828277379274, - 0.010412090457975864, - 0.006440210621803999, - -0.012940333224833012, - 0.013758529908955097, - -0.0006548416567966342, - 0.03590879216790199, - -0.002772674895823002, - 0.004895389080047607, - 6.547011435031891e-05, - 0.01487282570451498, - -0.10396583378314972, - -0.006381300278007984, - 0.005978678818792105, - -0.006406992673873901, - -0.004162714350968599, - -0.009133624844253063, - 0.0019379117293283343, - -0.00037624462856911123, - 0.004575222264975309, - 0.0009151684935204685, - -0.0025231176987290382, - -0.8751705288887024, - 0.0057312804274261, - 0.0068773082457482815, - -0.012118011713027954, - -0.0004518200585152954, - -0.006229208316653967, - 0.00047360174357891083, - -0.00010918303451035172, - 0.0005245805950835347, - -0.0052640740759670734, - -0.04655016213655472, - -0.0015610420377925038, - 0.002459572162479162, - -0.00547702657058835, - -0.004907980561256409, - 0.005082063376903534, - -0.009497194550931454, - -0.0031932650599628687, - 0.0022061760537326336, - 0.0005162546876817942, - 0.00652748579159379, - -0.010736855678260326, - 0.004672211594879627, - 0.003982820548117161, - 0.005221664905548096, - -0.007502373773604631, - 0.004543927498161793, - 1.811651782190893e-05, - 0.00044824197539128363, - -0.0033959425054490566, - -0.0018116887658834457, - 8.626066846773028e-05, - 0.0010736696422100067, - -0.002420085482299328, - 0.006142300087958574, - -0.0004156605573371053, - 0.0012608000542968512, - 0.007781160529702902, - 0.005291061010211706, - 0.009574441239237785, - 0.011640632525086403, - -0.002566019305959344, - 0.006690733600407839, - -0.00011375661415513605, - 0.369926393032074, - -0.005524845793843269, - -0.005839207209646702, - 0.0035442039370536804, - 0.004109845031052828, - -0.0007085646502673626, - -0.005281066056340933, - 1.0858856512641069e-05, - 0.010006257332861423, - -0.0005555287352763116, - 0.006600363180041313, - -0.006005642004311085, - 0.004732769448310137, - -0.0062872618436813354, - -0.002645422937348485, - 0.00192214734852314, - 0.003790313843637705, - -0.004703331273049116, - 0.0003637218615040183, - 0.00836643110960722, - -0.010513761080801487, - -0.004641217179596424, - -0.002135694958269596, - 0.0019197436049580574, - 0.00038253539241850376, - 0.024165421724319458, - -0.001265154336579144, - 0.010471588931977749, - 0.0018601749325171113, - 0.00045177602441981435, - 0.0009014029637910426, - -0.014142189174890518, - -0.0058000595308840275, - 0.12304501235485077, - 0.008612551726400852, - -0.0034569487906992435, - 0.006842557806521654, - 0.006756855174899101, - -0.015065999701619148, - 0.113646000623703, - -0.0035059270448982716, - 0.013376979157328606, - -0.005153804086148739, - -0.0034615492913872004, - 0.01949765346944332, - -0.004674331285059452, - 0.01103881560266018, - -0.008244947530329227, - 0.0006916180136613548, - -0.006632156670093536, - 0.004092438146471977, - 0.0009958427399396896, - -0.0002846725983545184, - -0.01785111241042614, - 0.005420809146016836, - -4.4645745219895616e-05, - 0.0017135528614744544, - 0.005518455523997545, - 0.0015710415318608284, - 0.005647134967148304, - 0.0029026076663285494, - -0.0016224879072979093, - -0.001969521399587393, - -0.0028751641511917114, - -0.004219705704599619, - 0.002642344916239381, - -0.0894724503159523, - 0.01275602076202631, - 0.0018534415867179632, - 0.008301960304379463, - -0.0022011331748217344, - 0.002606096677482128, - -0.0018070279620587826, - -0.0023724494967609644, - 0.002419277559965849, - 0.01411433145403862, - -0.005661577917635441, - 0.0012949216179549694, - 0.0002686784719116986, - 0.004847255535423756, - 0.002349721034988761, - 0.003394683124497533, - -0.004612373188138008, - 0.0031271104235202074, - 0.0042500882409513, - 0.0023439249489456415, - -0.07711705565452576, - -0.000567677547223866, - 0.005520983133465052, - -0.0020884275436401367, - 0.018017694354057312, - -0.0016495902091264725, - -0.01061137393116951, - 0.04172461852431297, - 0.001192715484648943, - -0.004341111518442631, - -0.0031580831855535507, - -0.0032593512441962957, - 0.003923785872757435, - -0.006731181405484676, - 0.0015141931362450123, - -0.0064425282180309296, - 0.008374299854040146, - 0.004293120466172695, - -0.00404228875413537, - -0.01624055579304695, - -0.0012450952781364322, - 0.0030764606781303883, - 0.000639965757727623, - 0.0004794350534211844, - 0.013386751525104046, - 0.0010654503712430596, - 0.1582021266222, - -0.0003116977750323713, - -0.008525887504220009, - -0.005041597411036491, - 0.0015367816668003798, - 0.006442561279982328, - 0.002112636575475335, - 0.0022624339908361435, - -0.012385384179651737, - -0.004689555149525404, - 0.00909795518964529, - 0.01051104161888361, - 0.005750209093093872, - -0.00010837410809472203, - 0.006901822984218597, - -0.007422265596687794, - -0.004108699969947338, - 0.0055206832475960255 - ], - [ - -0.0007605229620821774, - 0.0012552323751151562, - -0.0009823526488617063, - -0.0008147587068378925, - -0.0007764954934827983, - 0.0008655095007270575, - -0.00013281770225148648, - 0.00150485266931355, - 0.0019745230674743652, - 0.0011118847178295255, - -0.0021009554620832205, - 0.002007025294005871, - 0.0004541577654890716, - -0.0018529457738623023, - -0.0019413509871810675, - 0.005174329970031977, - -0.0007219968247227371, - -0.003327663755044341, - -0.0041031865403056145, - 0.0027464625891298056, - -0.008721590973436832, - 0.004755400121212006, - -0.0003032244567293674, - -0.0011166324838995934, - -0.0016624268610030413, - -0.0025848739314824343, - 0.0012021036818623543, - 0.00033493340015411377, - 0.00032714297412894666, - 0.0010471700225025415, - 0.0012656532926484942, - 0.002319109858945012, - 0.001046906691044569, - -0.0005900872638449073, - 9.47824155446142e-05, - 0.001756011857651174, - 0.002986605977639556, - 0.0010234253713861108, - -5.474325007526204e-05, - -0.0006753626512363553, - -0.001109611475840211, - 0.0026434690225869417, - -0.000682417768985033, - 0.0006643543019890785, - -0.0020439301151782274, - -0.0008740589255467057, - -7.629613537574187e-05, - -0.0016288935439661145, - 0.00035906818811781704, - 0.00015477700799237937, - -0.002545279450714588, - 0.008751972578465939, - 0.0001150165408034809, - -0.0009089143131859601, - -0.0024654578883200884, - -0.0012148054083809257, - 0.001035923371091485, - -0.00039171415846794844, - -0.007822051644325256, - -0.0003955927677452564, - -0.0006779229152016342, - -0.0035016676411032677, - 2.0408369891811162e-05, - 0.0036763425450772047, - -0.005282173398882151, - 0.0022237515076994896, - -0.01133611612021923, - 0.003073427127674222, - -0.0014290758408606052, - -0.0026726871728897095, - -0.002881295746192336, - -0.07185894250869751, - 0.003993540536612272, - 0.006123466417193413, - -0.0012779063545167446, - 0.00015276081103365868, - 0.001330872531980276, - 0.002173895947635174, - -0.002179093426093459, - 0.0031743631698191166, - -0.0008430202142335474, - -0.00028570377617143095, - -0.919924259185791, - -0.0002685534709598869, - -0.0050339000299572945, - 0.002726322738453746, - 0.00020080307149328291, - 0.001573560992255807, - 5.918575880059507e-06, - 0.004127455409616232, - 0.0012631663121283054, - 0.001907043275423348, - 0.006868495140224695, - -0.0004984734696336091, - 0.003114890307188034, - 0.0033072384539991617, - 0.0002913953212555498, - -0.0024986176285892725, - 0.00392755214124918, - -0.0008504610741510987, - 0.0014527339953929186, - 0.002286637667566538, - 0.0004926364053972065, - 0.0018841538112610579, - 0.002207393292337656, - 0.00030130764935165644, - -0.002953689079731703, - 0.0009004640742205083, - -0.0010922541841864586, - -0.0017498161178082228, - 0.006983987521380186, - 0.0031483827624469995, - -0.002118383999913931, - 0.00038592173950746655, - 0.002468409948050976, - 0.0034520213957875967, - -0.0010698449332267046, - 0.0011486111907288432, - 0.0008782505174167454, - 0.0008717955206520855, - -0.0011894486378878355, - -0.002365712309256196, - -0.0017502555856481194, - 0.0023304016795009375, - -0.002535106847062707, - -0.001341753057204187, - 0.27735498547554016, - 0.0007751467055641115, - 0.000943303806707263, - 0.0005834161420352757, - 0.0013561013620346785, - 0.0032462608069181442, - 0.0007225489243865013, - -0.00044226524187251925, - -0.0019331383518874645, - 0.001877875649370253, - -0.001958537148311734, - 0.0011057315859943628, - -0.002379842335358262, - 0.00011024400737369433, - 0.0008959391852840781, - -0.0011039783712476492, - -0.0016332161612808704, - -0.0015181114431470633, - -0.0005078015383332968, - -0.0057327719405293465, - 0.00016514827439095825, - 0.00048306328244507313, - -0.0006518366280943155, - -0.00022050719417165965, - -0.0011815973557531834, - -0.006712109316140413, - -0.002035917714238167, - -0.005670295562595129, - -0.0027025798335671425, - 0.0004479065537452698, - 0.0011062849080190063, - -0.0002895488578360528, - 0.0008499316172674298, - 0.20773150026798248, - -0.002039408078417182, - 0.0015087757492437959, - 4.0568396798335016e-05, - 0.0011549656046554446, - 0.009046660736203194, - 0.09127755463123322, - 0.002729196334257722, - -0.004150517750531435, - 0.0013066476676613092, - 0.0012732966570183635, - -0.005591943860054016, - 0.003123719710856676, - -0.0013307438930496573, - 0.0011581052094697952, - -0.0010710624046623707, - -0.0011847032001242042, - -0.0001915979664772749, - 0.006709194276481867, - -0.0008241530740633607, - 0.004775456618517637, - -0.0008315173909068108, - 0.00243952008895576, - 9.966835204977542e-05, - -0.0005217620637267828, - -0.006093296688050032, - -0.00036186916986480355, - -0.0004604002751875669, - -0.0015778103843331337, - 0.0008456183131784201, - 0.0008611969533376396, - 0.0012039716821163893, - -0.0012740306556224823, - -0.05770488455891609, - -0.005632305983453989, - 0.0043299454264342785, - -0.002091779839247465, - 0.00023210559447761625, - -2.1611473130178638e-05, - 0.0010660883272066712, - 0.002640787046402693, - -0.0016679445980116725, - -0.003209795570001006, - 0.002333521842956543, - -0.002199215581640601, - 0.0009491507662460208, - 0.00646720826625824, - -0.0007956520421430469, - -0.002037287224084139, - -0.0008104458102025092, - -5.18144679517718e-06, - 0.00026286565116606653, - -0.0015593762509524822, - -0.05106138065457344, - 0.0018768592271953821, - -0.0018611650448292494, - 0.00033957260893657804, - -0.00323974690400064, - 0.0006140823825262487, - 0.003786366432905197, - -0.01045140903443098, - 0.0005037010996602476, - 0.00094377197092399, - 0.0001416449376847595, - 0.00029657737468369305, - -0.00035647646291181445, - 0.0010623676935210824, - -0.0016658368986099958, - 0.0010905411327257752, - 0.00041670724749565125, - -0.00025491564883850515, - 0.0005100027192384005, - 0.003126221476122737, - 0.0016782332677394152, - -0.00042952559306286275, - 0.00022629676095675677, - -0.0022626654244959354, - -0.004986830987036228, - 0.002511050319299102, - 0.11121776700019836, - -0.00020096010121051222, - 0.0018442727159708738, - 0.0020579753909260035, - -0.0017594832461327314, - -0.003064116695895791, - -0.00236970535479486, - -0.0014403327368199825, - 0.0060378750786185265, - 0.0010019608307629824, - -0.0004233896324876696, - -0.0021221796050667763, - -0.0013012945419177413, - 0.00038624583976343274, - -0.003206632100045681, - 0.0027740965597331524, - -0.0030711565632373095, - -7.700939750066027e-05 - ], - [ - -0.0038521478418260813, - -0.036827798932790756, - 0.011668136343359947, - 0.016760259866714478, - -0.0018385157454758883, - -0.009545410051941872, - -0.024841658771038055, - 0.03279363736510277, - 0.038538482040166855, - 0.01087230909615755, - 0.0370585173368454, - -0.029222911223769188, - 0.05989907309412956, - 0.03961082920432091, - -0.035295967012643814, - -0.16236057877540588, - -0.03799878805875778, - 0.025291090831160545, - -0.013733088038861752, - -0.046561677008867264, - -0.07962706685066223, - 0.004207521677017212, - -0.02942655421793461, - 0.039244990795850754, - -0.05289062485098839, - -0.03815825656056404, - -0.002300976775586605, - -0.03625040873885155, - -0.044404178857803345, - 0.10724155604839325, - 0.05690434202551842, - 0.021466683596372604, - -0.008806382305920124, - -0.05155599117279053, - 0.07133452594280243, - -0.007191061042249203, - 0.0684008076786995, - 0.051992472261190414, - -0.026409385725855827, - -0.0009029002394527197, - -0.024051684886217117, - 0.08929232507944107, - 0.030158616602420807, - -0.026705102995038033, - -0.04314631596207619, - 0.0845567062497139, - 0.018694007769227028, - -0.020291641354560852, - -0.0027092581149190664, - -0.033645469695329666, - 0.03235376626253128, - -0.001887977821752429, - -0.010000147856771946, - 0.0418449342250824, - -0.028428619727492332, - 0.00406132685020566, - -0.0037891948595643044, - -0.03820491582155228, - -0.037566088140010834, - 0.1024327352643013, - -0.032992877066135406, - -0.0210671816021204, - 0.04195139929652214, - 0.01836850494146347, - -0.01712089776992798, - -0.022258399054408073, - -0.018532466143369675, - 0.05025729909539223, - 0.00884814653545618, - 0.009926993399858475, - -0.01631840318441391, - 0.17486847937107086, - 0.07229737937450409, - 0.06902466714382172, - -0.06424378603696823, - -0.050924792885780334, - 0.034973837435245514, - -0.018834242597222328, - 0.00431675324216485, - 0.050690364092588425, - 0.023082824423909187, - -0.02757284604012966, - 0.34063655138015747, - 0.01546439528465271, - -0.015375019051134586, - 0.02731899917125702, - -0.06885247677564621, - -0.046553123742341995, - 0.00548519566655159, - -0.07370933145284653, - -0.021305812522768974, - 0.07462026923894882, - 0.09232264012098312, - 0.0055246902629733086, - 0.04396761208772659, - 0.05160976201295853, - -0.010136798024177551, - -0.003266801591962576, - 0.0012482056627050042, - 0.009794676676392555, - -0.00610237754881382, - 0.019702520221471786, - -0.10735180228948593, - 0.02443930134177208, - -0.02735024318099022, - 0.04150170087814331, - 0.04116903617978096, - -0.0627530962228775, - 0.08067011088132858, - -0.022380076348781586, - 0.016523027792572975, - 0.037505682557821274, - -0.03269362449645996, - -0.028052525594830513, - -0.03941106051206589, - 0.06603160500526428, - 0.012939000502228737, - 0.013679110445082188, - 0.05356380343437195, - -0.08686802536249161, - -0.03055436536669731, - -0.024979105219244957, - 0.03471313416957855, - 0.04134760797023773, - 0.06901820749044418, - -0.005542167462408543, - -0.5571738481521606, - 0.0185837559401989, - 0.04747201129794121, - 0.04732406511902809, - 0.04932427406311035, - -0.01949489302933216, - 0.015372068621218204, - -0.057913754135370255, - -0.011660955846309662, - 0.007692916784435511, - -0.010699252597987652, - 0.03166361153125763, - 0.01243369746953249, - -0.03032529354095459, - 0.008511768653988838, - -0.019225426018238068, - -0.026173578575253487, - -0.004031084012240171, - -0.06307763606309891, - 0.020694509148597717, - -0.013103262521326542, - -0.027448611333966255, - -0.012875315733253956, - -0.00854334607720375, - -0.03365763649344444, - 0.048864781856536865, - -0.01678525283932686, - -0.030389022082090378, - 0.015763526782393456, - 0.013886154629290104, - -0.0048767696134746075, - 0.007695413660258055, - 0.004649874288588762, - 0.1413595974445343, - 0.051111068576574326, - 0.026706498116254807, - -0.02251356467604637, - 0.024383720010519028, - 0.0027383218985050917, - -0.12775012850761414, - 0.026423461735248566, - -0.09566587954759598, - -0.04879068583250046, - -0.022232260555028915, - 0.008208316750824451, - 0.033474262803792953, - 0.0017494442872703075, - 0.018776360899209976, - 0.038250040262937546, - -0.055524714291095734, - -0.036988917738199234, - 0.10753246396780014, - 0.02117367833852768, - 0.05304413661360741, - 0.024690812453627586, - -0.04796268418431282, - -0.0021764463745057583, - 0.014440798200666904, - -0.1476803719997406, - -0.008868109434843063, - 0.02072204276919365, - -0.003154830075800419, - 0.031915582716464996, - -0.03132280334830284, - -0.0004647655296139419, - 0.04314280301332474, - 0.18685424327850342, - -0.062094591557979584, - -0.009816666133701801, - 0.006637147162109613, - -0.002956416690722108, - -0.013839754275977612, - 0.045483238995075226, - 0.024840980768203735, - -0.03900369629263878, - -0.013784692622721195, - 0.04447903856635094, - 0.010093620046973228, - -0.031793635338544846, - 0.0091536371037364, - -0.06990811973810196, - -0.02941764146089554, - -0.010928185656666756, - -0.005320452619343996, - 0.09310372918844223, - 0.02566215768456459, - 0.13158930838108063, - -0.04139937832951546, - -0.034932319074869156, - -0.0019582866225391626, - -0.016207976266741753, - -0.04406871646642685, - 0.048493556678295135, - -0.11141985654830933, - -0.0006836560205556452, - 0.02560584619641304, - 0.06997772306203842, - 0.008440621197223663, - 0.0015422747237607837, - -0.01450219377875328, - -0.031047707423567772, - 0.01211699191480875, - -0.002051305491477251, - 0.0058654360473155975, - -0.06249071657657623, - 0.06179511547088623, - 0.04628128558397293, - 0.016670595854520798, - 0.01948324590921402, - 0.019482765346765518, - 0.03946434333920479, - 0.011204495094716549, - -0.1822461485862732, - 0.005333451554179192, - 0.004434708505868912, - 0.012086644768714905, - -0.06630893051624298, - -0.009483839385211468, - 0.000653754104860127, - -0.02506966143846512, - 0.005723346956074238, - 0.02905334159731865, - 0.006359065417200327, - 0.034535881131887436, - 0.027021333575248718, - 0.04126604646444321, - -0.01146942749619484, - -0.008547426201403141, - 0.0025577726773917675, - 0.0016640610992908478 - ], - [ - -1.5900752259767614e-05, - 0.0017936992226168513, - -0.0005144081660546362, - 0.0013774492545053363, - -0.0011932544875890017, - 0.0006157191237434745, - -0.0007684628362767398, - 0.0019382759928703308, - 0.002483835443854332, - 0.0010205792495980859, - -0.0014551051426678896, - 0.0008358078193850815, - 1.644824988034088e-05, - -0.0011393604800105095, - -0.0006397048127837479, - 0.0074039422906935215, - -1.4079338143346831e-05, - -0.003099083434790373, - -0.003733409335836768, - 0.0024305612314492464, - -0.008934618905186653, - 0.004270090255886316, - -0.0002190469967899844, - -0.001175842247903347, - -0.00168072828091681, - -0.0014142266009002924, - 0.002133780624717474, - 0.00024171083350665867, - -0.00013106806727591902, - 0.0010392371332272887, - 0.0010049419943243265, - 0.002583522815257311, - 0.0006655857432633638, - -0.0005706604570150375, - 0.00024819312966428697, - 0.0012431369395926595, - 0.002584267407655716, - 0.0011728571262210608, - 0.0007092081941664219, - -0.0004034804296679795, - -0.0002608926151879132, - 0.0028020809404551983, - 0.0003521890321280807, - 0.000716231414116919, - -0.00199231063015759, - -0.0010857536690309644, - 0.0003916259447578341, - -0.001577917137183249, - 0.0013936632312834263, - 0.0004490679129958153, - -0.0022183710243552923, - 0.008802849799394608, - -3.091308462899178e-05, - -0.0012015410466119647, - -0.0019502415088936687, - -0.0014279759488999844, - 0.000670492765493691, - -0.0007500562351197004, - -0.007295902818441391, - -0.0007201025728136301, - -0.00036836115759797394, - -0.0029941541142761707, - 8.758770127315074e-05, - 0.003232449060305953, - -0.005418433342128992, - 0.002123558660969138, - -0.010191389359533787, - 0.0030193529091775417, - -0.0015174226136878133, - -0.0015080270823091269, - -0.0018537507858127356, - -0.07384481281042099, - 0.002757921116426587, - 0.005655184388160706, - -0.0013864778447896242, - 8.286737283924595e-06, - 0.002231528516858816, - 0.0009902594611048698, - -0.0023053965996950865, - 0.0033729239366948605, - -0.0001949851866811514, - -0.0006993847200646996, - -0.9179462790489197, - 0.0007219146937131882, - -0.0043955217115581036, - 0.0034089689143002033, - 0.0009268408175557852, - 0.0014098549727350473, - 0.0005225549102760851, - 0.003164510941132903, - 0.0014591102954000235, - 0.0020307337399572134, - 0.005629611201584339, - -0.000632667331956327, - 0.002951365429908037, - 0.0034269513562321663, - 0.000388696527807042, - -0.0020069831516593695, - 0.003040608251467347, - -0.0009510896634310484, - 0.0017579549457877874, - 0.001327409059740603, - 0.0013010874390602112, - 0.0027692150324583054, - 0.0030215117149055004, - 0.0006801337003707886, - -0.0027381223626434803, - 0.0012307593133300543, - -0.001160348649136722, - -0.0005964452284388244, - 0.00812289398163557, - 0.003608210012316704, - -0.0012419245904311538, - 0.00021389425091911107, - 0.0018797980155795813, - 0.0034567888360470533, - -0.0011585191823542118, - 0.00044655808596871793, - 0.0004916230100207031, - 0.0005240179016254842, - -0.0019038955215364695, - -0.0021118654403835535, - -0.0016322614392265677, - 0.0026838667690753937, - -0.0023659190628677607, - -0.0013079653726890683, - 0.28411415219306946, - 0.000835896993521601, - 0.0005480801337398589, - 0.0006975410506129265, - 0.0005485002184286714, - 0.003496218239888549, - 0.0006386364111676812, - -0.0005381130031310022, - -0.002205750672146678, - 0.0017447266727685928, - -0.0027957051061093807, - 0.0013666226295754313, - -0.0018692745361477137, - 0.0006538087618537247, - 0.001079154433682561, - -0.001009724335744977, - -0.0016654888167977333, - -0.00022416662250179797, - -0.00017440317606087774, - -0.0054242657497525215, - 0.0009242159430868924, - 0.0010551470331847668, - -0.0013016995508223772, - 0.00032757828012108803, - -0.0009216737234964967, - -0.007186228409409523, - -0.0018192504066973925, - -0.006284480914473534, - -0.0031438996084034443, - 0.0006976367440074682, - 0.0017626665066927671, - -0.0008923343266360462, - 0.0008523776778019965, - 0.20396274328231812, - -0.0006850209319964051, - 0.0008802148513495922, - -0.00019516481552273035, - 0.001532923779450357, - 0.009160042740404606, - 0.09306816011667252, - 0.001959171611815691, - -0.004091895185410976, - 0.0013222477864474058, - 0.0008052059565670788, - -0.006086169742047787, - 0.002700635464861989, - -0.0016986880218610168, - 0.0012100941967219114, - -0.00177490571513772, - -0.001836613635532558, - 0.0003372108330950141, - 0.006009959150105715, - -0.00028771013603545725, - 0.005176244769245386, - -0.000470460276119411, - 0.0015878332778811455, - -4.563410402624868e-05, - -0.00020554156799335033, - -0.005366774741560221, - -0.0003867314080707729, - 0.0010043057845905423, - -0.002293241210281849, - 0.0008651832467876375, - 0.0006905555492267013, - 0.0012436098186299205, - -4.4759617594536394e-05, - -0.059875596314668655, - -0.004712747875601053, - 0.004899088758975267, - -0.0017798802582547069, - 0.0006360516417771578, - 0.0003552149864844978, - 0.0006917060236446559, - 0.002625484252348542, - -0.0008160906727425754, - -0.002484736731275916, - 0.002467576414346695, - -0.0011436353670433164, - 0.00044433027505874634, - 0.006615443620830774, - -0.0007461875211447477, - -0.0020116514060646296, - -0.0007273592054843903, - -0.00020910496823489666, - -0.0005003029364161193, - -0.0005857034120708704, - -0.05305717512965202, - 0.0008751485729590058, - -0.0010148863075301051, - -0.0005504437140189111, - -0.0030248896218836308, - 0.0009627177496440709, - 0.004172391723841429, - -0.010199195705354214, - 0.00035171545459888875, - 0.0006604872760362923, - -0.0003045082848984748, - -0.0005983859882690012, - -0.00010891707643168047, - 0.0008242160547524691, - -0.0009915842674672604, - 0.0007193073397502303, - 0.0008323880028910935, - -0.00046670917072333395, - 0.0007438389002345502, - 0.00398426316678524, - 0.002229052595794201, - 0.0002690297260414809, - 0.00045983598101884127, - -0.0021350979804992676, - -0.005007130093872547, - 0.0019894344732165337, - 0.11305328458547592, - -0.0001121036839322187, - 0.00205415696837008, - 0.0010394796263426542, - -0.00038941585808061063, - -0.0036237090826034546, - -0.001202127430588007, - -0.0013524884125217795, - 0.005324776284396648, - 0.0005946329911239445, - -0.0009013256640173495, - -0.002471189247444272, - -0.0005973469815216959, - 0.0007035253802314401, - -0.002639776561409235, - 0.0014702639309689403, - -0.0025584849063307047, - 0.0005305978120304644 - ], - [ - -0.03273426368832588, - -0.025627154856920242, - 0.005927663296461105, - 0.01520298421382904, - -0.028697315603494644, - -0.0049383314326405525, - 0.044898223131895065, - -0.005219495855271816, - 0.028284292668104172, - -0.011810366995632648, - 0.009597785770893097, - 0.043157678097486496, - 0.062063414603471756, - -0.003830359550192952, - -0.04204047471284866, - -0.25179323554039, - 0.012610690668225288, - 0.007163891568779945, - 0.05653693526983261, - 0.029061101377010345, - -0.03814810886979103, - -0.018501579761505127, - 0.020102376118302345, - -0.013916905969381332, - -0.020306667312979698, - 0.0017162718577310443, - 0.03340733051300049, - -0.031318534165620804, - -0.03110579587519169, - 0.10396968573331833, - -0.004662897437810898, - 0.01738642528653145, - -0.04161527752876282, - 0.0038799792528152466, - 0.011478472501039505, - 0.0011292708804830909, - 0.009777792729437351, - -0.012746024876832962, - -0.010470918379724026, - -0.0187933761626482, - 0.007340999785810709, - -0.004137103911489248, - -0.004693170543760061, - -0.014869649894535542, - 0.03097684495151043, - 0.1130274161696434, - -0.005443786736577749, - 0.01853490248322487, - -0.008661593310534954, - -0.012743726372718811, - -0.013779723085463047, - -0.038920141756534576, - -0.01787211373448372, - -0.004547837655991316, - 0.014490519650280476, - -0.007604808546602726, - 0.007730423007160425, - -0.030063726007938385, - -0.04076987877488136, - 0.039126913994550705, - -0.05025458335876465, - -0.02402849867939949, - 0.017376290634274483, - 0.022014016285538673, - -0.06772075593471527, - 0.00937210489064455, - -0.05319908261299133, - 0.05808759853243828, - -0.00046790263149887323, - 0.04132894054055214, - -0.0248885340988636, - 0.1342926323413849, - 0.04145863652229309, - 0.09655216336250305, - -0.048914581537246704, - -0.028580300509929657, - 0.014866385608911514, - -0.018957046791911125, - -0.04060117527842522, - 0.049454525113105774, - 0.018168555572628975, - -0.010779856704175472, - -0.048364490270614624, - 0.010865647345781326, - 0.023663867264986038, - 0.0034723980352282524, - 0.007522265426814556, - 0.008677144534885883, - -0.006874968763440847, - -0.07023146003484726, - 0.010855604894459248, - -0.01093923207372427, - 0.27651846408843994, - 0.03088841214776039, - 0.03546863794326782, - 0.0207077469676733, - -0.004945576656609774, - 0.05230466276407242, - -0.024077828973531723, - -0.003904441138729453, - 0.012298230081796646, - 0.02562355063855648, - -0.016986239701509476, - -0.04788105562329292, - -0.10722725093364716, - 0.020670795813202858, - 0.04917731136083603, - -0.048860710114240646, - 0.0355709083378315, - -0.041021596640348434, - 0.027827566489577293, - -0.005444303620606661, - 0.03177189081907272, - -0.0048159160651266575, - -0.05343073233962059, - 0.016713174059987068, - 0.0010738439159467816, - 0.010959462262690067, - 0.015604722313582897, - 0.0006679239450022578, - -0.003489546477794647, - -0.005943226162344217, - 0.0027221250347793102, - 0.027779173105955124, - 0.10432735085487366, - 0.026639694347977638, - -0.6532755494117737, - 0.014737850055098534, - -0.010761990211904049, - 0.049612872302532196, - 0.05478278547525406, - -0.07517299056053162, - -0.02696252427995205, - -0.05872311443090439, - -0.005933929234743118, - -0.025205569341778755, - 0.04291793704032898, - 0.042752671986818314, - -0.027351856231689453, - 0.007946543395519257, - 0.010953023098409176, - -0.00869384128600359, - 0.01100024301558733, - -0.008370564319193363, - 0.015994759276509285, - 0.016601309180259705, - -0.021011175587773323, - -0.027370352298021317, - -0.05982030928134918, - 0.007979818619787693, - 0.03374321758747101, - -0.027323400601744652, - -0.007053519133478403, - -0.03411223739385605, - -0.02890002354979515, - 0.01883164420723915, - 0.025509869679808617, - 0.016125807538628578, - 0.03481912985444069, - 0.2900758981704712, - 0.053541455417871475, - -0.019596759229898453, - -0.08298121392726898, - -0.029336197301745415, - -0.019106373190879822, - -0.06285864859819412, - -0.003144263057038188, - -0.03475494682788849, - -0.0028177958447486162, - 0.022825758904218674, - 0.025817034766077995, - 0.014600134454667568, - -0.02891739271581173, - -0.013693119399249554, - 0.08373502641916275, - -0.03902535140514374, - -0.0397568978369236, - 0.08202067762613297, - 0.002051579300314188, - 0.014033802784979343, - -0.0124759990721941, - 0.006760819815099239, - 0.015309678390622139, - 0.01776662841439247, - -0.18071512877941132, - 0.02161981351673603, - 0.007350776810199022, - -0.001620149821974337, - 0.01845446415245533, - 0.013994070701301098, - -0.008098049089312553, - 0.04320143908262253, - 0.1420881450176239, - -0.03263606131076813, - -0.0413743332028389, - -0.0035607421305030584, - -0.01220336277037859, - 0.01006530411541462, - 0.03931737691164017, - -0.005393833387643099, - -0.010110127739608288, - -0.008750242181122303, - 0.015883132815361023, - 0.012473744340240955, - -0.0350952222943306, - -0.018345968797802925, - -0.014334116131067276, - -0.04630507156252861, - 0.0006397069082595408, - -0.014573333784937859, - -0.021709514781832695, - 0.02954047918319702, - 0.09775134176015854, - 0.0059759486466646194, - 0.007513292599469423, - 0.015269399620592594, - -0.04532213509082794, - -0.04361419752240181, - 0.0026552050840109587, - -0.08046410232782364, - 0.0249903816729784, - -0.017161373049020767, - 0.0002063256106339395, - -0.0004972554743289948, - -0.004034712444990873, - -0.01830172911286354, - -0.0306780356913805, - -0.023793315514922142, - -0.019014373421669006, - -0.01755915768444538, - -0.011661450378596783, - -0.0019679248798638582, - 0.04059816896915436, - 0.020710134878754616, - -0.006658438127487898, - -0.00922261644154787, - 0.038036562502384186, - -0.025250764563679695, - -0.05502517893910408, - -0.002171690110117197, - 0.031086081638932228, - -0.005470266565680504, - -0.016553331166505814, - 0.013658704236149788, - -0.0014320078771561384, - -0.015193351544439793, - -0.030700184404850006, - 0.06398391723632812, - 0.03189072012901306, - -0.040162160992622375, - -0.024888331070542336, - 0.018903816118836403, - -0.027664341032505035, - -0.020169859752058983, - -0.04270045831799507, - 0.018794724717736244 - ], - [ - -0.039862848818302155, - -0.03404049575328827, - 0.022949060425162315, - -0.042301978915929794, - -0.0027290498837828636, - -0.013344126753509045, - 0.037175923585891724, - -0.028839973732829094, - -0.0027065386530011892, - 0.0006811916246078908, - -0.016686635091900826, - 0.04192741587758064, - 0.03150200471282005, - 0.02674134634435177, - -0.06719321757555008, - -0.1713796854019165, - -0.04054775834083557, - -0.024325687438249588, - 0.006396763026714325, - 0.03485146537423134, - -0.050324637442827225, - 0.026322195306420326, - 0.02402416430413723, - -0.005167410708963871, - -0.014994367957115173, - -0.021457212045788765, - 0.03672247380018234, - -0.010742170736193657, - -0.025002891197800636, - 0.05911387875676155, - 0.0007572259637527168, - 0.010045863687992096, - -0.027157574892044067, - -0.004569642711430788, - 0.001443865243345499, - 0.0188310407102108, - 0.04159627482295036, - -0.010885785333812237, - -0.009298402816057205, - 0.023447072133421898, - 0.002950891386717558, - 0.0309282336384058, - 0.0019025990040972829, - -0.01661340333521366, - 0.033142898231744766, - 0.07193359732627869, - -0.008560790680348873, - -0.024266298860311508, - -0.026173995807766914, - -0.012730257585644722, - -0.03887202590703964, - -0.03313329070806503, - -0.03364991396665573, - 0.005040107294917107, - 0.010840906761586666, - 0.015029553323984146, - -0.001347320736385882, - -0.01621847227215767, - -0.049159105867147446, - 0.03830059617757797, - -0.03480943664908409, - -0.042305126786231995, - 0.02782154642045498, - 0.03818250447511673, - -0.03803405910730362, - 0.01044386439025402, - -0.06564182788133621, - -0.00010190383909502998, - 0.004702301230281591, - 0.006427127402275801, - -0.03066008910536766, - 0.12995164096355438, - 0.04456113278865814, - 0.06026451289653778, - -0.06531613320112228, - -0.0034438720904290676, - 0.013453337363898754, - -0.0008107367902994156, - -0.03719031438231468, - 0.02231666073203087, - 0.00490547576919198, - -0.009926645085215569, - -0.5107529163360596, - 0.0027722599916160107, - 0.020281268283724785, - 0.007770480588078499, - -0.006124850828200579, - 0.01966898888349533, - -0.010567136108875275, - -0.03445705398917198, - 0.0005509014590643346, - 0.0026818334590643644, - 0.1867033690214157, - 0.0423237681388855, - 0.022552790120244026, - 0.00011440825619501993, - -0.005643625743687153, - 0.01530120987445116, - 0.003010817803442478, - -0.01191750168800354, - -0.0035565232392400503, - 0.035508934408426285, - -0.018463503569364548, - -0.03713323920965195, - -0.06858839839696884, - -0.01958581618964672, - 0.04501422867178917, - -0.051014747470617294, - 0.022858742624521255, - -0.04009399935603142, - 0.002272289479151368, - 0.0013738848501816392, - 0.004465402569621801, - -0.007909444160759449, - -0.018268434330821037, - 0.027439003810286522, - -0.007805971894413233, - 0.023306624963879585, - 0.02114868350327015, - 0.008162329904735088, - -0.004261983558535576, - 0.0014918812084943056, - 0.023712852969765663, - -0.002717084251344204, - 0.07279805094003677, - 0.04520558565855026, - -0.46407386660575867, - 0.01620866358280182, - 0.021642617881298065, - 0.05714944005012512, - 0.04759557545185089, - -0.04369482398033142, - -0.025940842926502228, - -0.027526017278432846, - 0.02717388980090618, - -0.005287772044539452, - 0.0235922671854496, - 0.0247200820595026, - -0.027599994093179703, - -0.0013007745146751404, - 0.009913982823491096, - 0.003740582149475813, - -0.003167242044582963, - -0.00218421989120543, - -0.010403478518128395, - 0.007664512377232313, - -0.03343850374221802, - -0.041013672947883606, - -0.026043247431516647, - -0.0011410386068746448, - 0.017642498016357422, - -0.008603297173976898, - -0.02036888711154461, - -0.03887948766350746, - -0.028501100838184357, - 0.01282405760139227, - 0.0064286040142178535, - 0.02268897369503975, - 0.029837315902113914, - 0.3971124589443207, - 0.016414789482951164, - 0.012446900829672813, - -0.03851966932415962, - -0.01753561571240425, - 0.029072687029838562, - -0.06555532664060593, - 0.02232961356639862, - -0.038040321320295334, - -0.005399500019848347, - 0.024520888924598694, - -0.004274338483810425, - 0.015573577024042606, - -0.0027476411778479815, - -0.004790190607309341, - 0.08171489834785461, - 0.004614724311977625, - -0.028232557699084282, - 0.07992994040250778, - 0.0032695129048079252, - 0.026035627350211143, - 0.0007929068524390459, - 0.01971207559108734, - -0.013401021249592304, - -0.01970226876437664, - -0.1600406914949417, - 0.0168323777616024, - -0.01258210651576519, - 0.020349808037281036, - 0.01538577489554882, - 0.019327333196997643, - -0.000779094931203872, - 0.000236006555496715, - 0.17095057666301727, - -0.009518164210021496, - -0.06516192108392715, - 0.002111732494086027, - -0.027969978749752045, - -0.013790464960038662, - 0.03000759333372116, - -0.005807806272059679, - -0.019879760220646858, - -0.013461542315781116, - 0.018389711156487465, - -0.024663761258125305, - -0.005737985018640757, - -0.021098604425787926, - -0.05432884395122528, - -0.011560607701539993, - -0.014170954935252666, - 0.0017910274909809232, - 0.02002723515033722, - -0.019765270873904228, - 0.11495460569858551, - 0.02210673876106739, - -0.00040721718687564135, - 0.02543707750737667, - -0.03432649374008179, - -0.030986128374934196, - -0.007625973783433437, - -0.06723096966743469, - -0.005182215012609959, - -0.017704740166664124, - 0.029085366055369377, - 0.03459172323346138, - -0.004935146775096655, - -0.006043736822903156, - -0.05669040605425835, - -0.010469137690961361, - -0.04457841441035271, - -0.005099252797663212, - -0.04253678396344185, - -0.006688006687909365, - 0.027924127876758575, - -0.020296888425946236, - -0.01713723875582218, - -0.0259853545576334, - 0.005889220628887415, - 0.01931205950677395, - -0.1432311087846756, - 0.004414533264935017, - 0.014886384829878807, - 0.015115189366042614, - -0.027334529906511307, - 0.005816324148327112, - -0.032473836094141006, - -0.032175272703170776, - 0.00011073913628933951, - 0.04091330245137215, - 0.029538901522755623, - -0.029178382828831673, - -0.018042922019958496, - 0.01032145507633686, - -0.06219088286161423, - 0.014649922028183937, - -0.013172524981200695, - 0.007713492959737778 - ], - [ - -0.0010964482789859176, - -0.001949398429132998, - 0.00016016517474781722, - -0.0038985181599855423, - 5.163122114026919e-05, - -0.0006531584658659995, - 0.0019431356340646744, - 0.00419702148064971, - 0.0017687947256490588, - -9.195633174385875e-05, - -0.002528958488255739, - 0.006169159896671772, - 0.00015327580331359059, - -0.001255876966752112, - -0.004857563879340887, - -0.002354425610974431, - 0.0018157789018005133, - -0.0054844957776367664, - -0.0007620857795700431, - 0.004528895951807499, - -0.012535183690488338, - 0.0036531956866383553, - -0.0005226130015216768, - -0.0039971983060240746, - 0.002056255005300045, - -0.001920563168823719, - 0.002621916588395834, - 0.0024124090559780598, - 0.0019358752761036158, - 0.0023130509071052074, - 0.0013770073419436812, - 0.0042119394056499004, - 0.00010330551594961435, - 0.0017571018543094397, - -0.0012525973143056035, - 0.0015494887484237552, - 0.002812625840306282, - -0.004189371131360531, - 0.000525300798472017, - 0.0036522860173135996, - 0.0013820166932418942, - 0.0035824852529913187, - 0.0020698001608252525, - 0.001736903446726501, - 0.0018578877206891775, - 0.0035587467718869448, - 0.0022148736752569675, - 5.853011316503398e-05, - 1.5701938536949456e-05, - 0.0018820648547261953, - -0.005844825878739357, - 0.002723801415413618, - -0.001255800947546959, - -0.0023826693650335073, - 0.0034519194159656763, - -0.0009934426052495837, - -0.0011289847316220403, - 0.00039887463208287954, - -0.014263549819588661, - -0.0014835868496447802, - -0.0052701933309435844, - -0.005529873538762331, - 0.0017646560445427895, - 0.005874677561223507, - -0.006866554729640484, - 0.0008345750393345952, - -0.01306445524096489, - 0.0005219478625804186, - 0.002006219932809472, - -0.002521681133657694, - -0.0019619627855718136, - -0.06503186374902725, - 0.0040451530367136, - 0.008150859735906124, - -0.005213672760874033, - -0.00018944742623716593, - 0.0027626464143395424, - 0.0041136471554636955, - -0.0023451223969459534, - 0.009145916439592838, - -0.0014563885051757097, - -0.004458890296518803, - -0.9270198345184326, - 0.0001874768640846014, - -0.0032334798015654087, - 0.0027887108735740185, - 0.005019497126340866, - 0.0042382110841572285, - 0.0009227736154571176, - 0.0037067667581140995, - 0.0037077406886965036, - 7.404255939036375e-06, - 0.015250997617840767, - -0.0009306375868618488, - 0.0034864810295403004, - 0.0063485028222203255, - -0.0013611536705866456, - -0.00019564101239666343, - 0.004406352993100882, - -0.0007082971278578043, - 0.002456553978845477, - 0.002790370723232627, - 0.0038456146139651537, - 0.002238311804831028, - -0.0030580342281609774, - 0.002423930214717984, - 0.000958374934270978, - 0.0005218083970248699, - 0.0007724608876742423, - -0.0021490377839654684, - 0.0075334208086133, - 0.0021071855444461107, - -0.0009644462261348963, - -0.00014669880329165608, - 0.0009921356104314327, - 0.005065841134637594, - 0.0018096177373081446, - 0.002159259282052517, - 0.0002262131602037698, - 0.00428502494469285, - -0.004382213111966848, - -0.0012471943628042936, - 0.0033246828243136406, - 0.005092662293463945, - 0.005054723005741835, - -0.00036120309960097075, - 0.2462158501148224, - -0.0002765631361398846, - 0.001066940720193088, - 0.0027568091172724962, - 0.0036880658008158207, - 0.0013651576591655612, - -0.002238568849861622, - 0.0024656199384480715, - -0.0009231230360455811, - 0.0033353683538734913, - 0.002393855946138501, - 0.002551578450948, - -0.006927862763404846, - -0.003242214908823371, - 0.0015141622861847281, - -0.0025605065748095512, - 0.0007900226046331227, - -0.0031142134685069323, - 0.0006614906014874578, - -0.0065009742975234985, - 0.000697927491273731, - -0.0038095891941338778, - -0.003603791119530797, - -0.007321629673242569, - 0.002171303378418088, - -0.008904599584639072, - -0.0017566478345543146, - -0.00986508745700121, - -0.005411925259977579, - -0.0007712284568697214, - 0.002157042268663645, - -0.0018144852947443724, - -0.000904673885088414, - 0.22307837009429932, - -0.0001870172272901982, - -0.002247472293674946, - -0.005699078552424908, - -0.0003584429214242846, - 0.007926522754132748, - 0.09018871933221817, - 0.0027099738363176584, - -0.004808677360415459, - 0.0035308338701725006, - 0.00035805534571409225, - -0.006550694350153208, - 0.0057711610570549965, - -0.0003243311366531998, - -0.0009765696013346314, - 0.005316901486366987, - -0.0011900392128154635, - -0.0003014575340785086, - 0.010642627254128456, - -0.0007559038349427283, - 0.005793596152216196, - -0.003167408052831888, - 0.0026134217623621225, - -0.00020719709573313594, - 0.00044691242510452867, - -0.019599884748458862, - 0.002642796142026782, - -0.002668366301804781, - -0.002136099385097623, - 0.0009969451930373907, - 0.0032257656566798687, - -0.00025928940158337355, - -0.0016668634489178658, - -0.04573862627148628, - -0.003182391170412302, - 0.0011362272780388594, - -0.0004935933975502849, - -0.002427714178338647, - -0.002208088291808963, - -0.0006488923681899905, - 0.0035966834984719753, - 0.00014942861162126064, - -0.0033421856351196766, - 0.0008737064781598747, - -0.003068597288802266, - -0.00026907052961178124, - 0.003602763405069709, - -0.0013525922549888492, - -0.0011276790173724294, - -0.003069221042096615, - 0.0023223278112709522, - -0.0015844113659113646, - -0.0010619591921567917, - -0.045670103281736374, - 0.0015682376688346267, - -0.001135052414610982, - -0.0027692713774740696, - -0.004436860326677561, - 0.0014369048876687884, - 0.005348165985196829, - -0.014125294052064419, - 0.0019227497978135943, - -0.0025402901228517294, - 0.0009561563492752612, - 0.0018636557506397367, - 0.00055705476552248, - -0.0009984101634472609, - -0.005422857124358416, - -0.0006570103578269482, - -0.001411936362273991, - 0.002374808769673109, - -0.003978553228080273, - 0.0037287615705281496, - 0.005205504596233368, - -0.000799609930254519, - 0.0009644142119213939, - -0.004740327131003141, - -0.0068418835289776325, - 0.003831090172752738, - 0.09834498167037964, - -0.0011239799205213785, - 0.00030562488245777786, - -7.337647730309982e-06, - 0.0011482973350211978, - -0.00041041788063012064, - 0.0005049325991421938, - -0.0013121162774041295, - 0.005092480685561895, - 0.0018960889428853989, - 0.0003758195380214602, - -0.005551266483962536, - 0.0017757569439709187, - 0.000417456089053303, - -0.006267244927585125, - 0.005150751676410437, - -0.0051482361741364, - 0.0032241239678114653 - ], - [ - -0.001967119984328747, - -0.015316620469093323, - -0.01270157191902399, - -0.04026235267519951, - -0.018481498584151268, - 0.00544428825378418, - 0.04227329045534134, - -0.0015238234773278236, - 0.025934820994734764, - -0.0024353573098778725, - -0.0114968940615654, - 0.04531767964363098, - 0.032024234533309937, - 0.010746486485004425, - -0.024054165929555893, - -0.04616064950823784, - 0.002026006579399109, - -0.10198923945426941, - 0.023999344557523727, - 0.050956595689058304, - -0.1179753914475441, - -0.014704149216413498, - -0.028187885880470276, - -0.010789955034852028, - 0.021430347114801407, - -0.03005681373178959, - 0.008382164873182774, - 0.013170898891985416, - -0.01122319046407938, - 0.02287641540169716, - -0.019538426771759987, - 0.009469839744269848, - -0.04928864911198616, - -0.042785678058862686, - 0.005259531084448099, - -0.01424285490065813, - 0.016094092279672623, - -0.03315391018986702, - 0.0032986714504659176, - 0.04412713646888733, - 0.02354126237332821, - 0.0026097765658050776, - 0.0424666553735733, - 0.002719022799283266, - 0.058824628591537476, - 0.06893669813871384, - -0.002946523018181324, - -0.0433473214507103, - -0.005770609248429537, - 0.018429530784487724, - -0.017666403204202652, - -0.054597724229097366, - -0.006948188878595829, - 0.025178566575050354, - -0.029879121109843254, - 0.028393741697072983, - 0.0004617533122655004, - 0.06769556552171707, - -0.07938643544912338, - -0.009650489315390587, - -0.036708004772663116, - -0.05548001453280449, - 0.02553601562976837, - 0.008808474987745285, - 0.0032377885654568672, - -0.01545803714543581, - 0.06813953816890717, - 0.0014236769638955593, - 0.019324252381920815, - -0.027420898899435997, - 0.005584593862295151, - 0.11938738822937012, - 0.0468125157058239, - 0.04443815350532532, - -0.03243621066212654, - -0.04013119637966156, - -0.008293427526950836, - 0.07893198728561401, - -0.04292859137058258, - 0.05003863573074341, - 0.01844056323170662, - -0.060851018875837326, - -0.44701898097991943, - 0.030126523226499557, - -0.016078155487775803, - 0.0699106901884079, - 0.07299769669771194, - 0.013319582678377628, - -0.01506416779011488, - 0.006568888667970896, - 0.026045408099889755, - -0.00506792264059186, - -0.0782008022069931, - 0.0498407743871212, - 0.012158606201410294, - 0.015595282427966595, - -0.01941411755979061, - 0.010692455805838108, - -0.014902964234352112, - -0.012422855943441391, - 0.027176862582564354, - 0.022863853722810745, - -0.009460236877202988, - -0.012995602563023567, - -0.06194580718874931, - -0.00683927396312356, - 0.05078377202153206, - 0.005902365315705538, - 0.05522618070244789, - -0.017020735889673233, - -0.0355868898332119, - -0.03581114858388901, - 0.0035733222030103207, - 0.006997242569923401, - 0.0761616975069046, - 0.03777586296200752, - 0.023018455132842064, - -0.010730179958045483, - 0.02274603396654129, - 0.0629587322473526, - -0.03740815818309784, - 0.0010625972645357251, - 0.02528911456465721, - 0.0787646546959877, - 0.0799725353717804, - -0.012946936301887035, - -0.3402259647846222, - 0.06171990558505058, - -0.037291284650564194, - 0.03086354024708271, - 0.02399137243628502, - -0.060718778520822525, - -0.043187133967876434, - -0.009846976958215237, - 0.05199035257101059, - 0.03492284193634987, - 0.0324033685028553, - 0.0032683201134204865, - -0.0038963581901043653, - -0.02549261972308159, - -0.08093810826539993, - -0.014646095223724842, - 0.018447697162628174, - -0.09152239561080933, - -0.01625523529946804, - -0.06466621905565262, - 0.029331516474485397, - -0.01646416448056698, - -0.06056385859847069, - -0.017470818012952805, - 0.01807151734828949, - 0.03287259861826897, - -0.031056130304932594, - -0.0833454504609108, - -0.052810728549957275, - -0.0051353140734136105, - 0.01841331273317337, - -0.014181888662278652, - 0.0014284240314736962, - 0.2673353850841522, - 0.03875293582677841, - -0.011320718564093113, - -0.03701439127326012, - 0.03715713322162628, - 0.06621988862752914, - 0.0063541666604578495, - 0.06567815691232681, - -0.023497693240642548, - 0.008591827936470509, - -0.03002067841589451, - 0.04888449236750603, - 0.04579237475991249, - -0.06183457747101784, - -0.04295377433300018, - 0.022337233647704124, - 0.06760021299123764, - -0.054551489651203156, - 0.10442133247852325, - 0.012597782537341118, - 0.044936127960681915, - -0.011020077392458916, - 0.10042372345924377, - 0.020679792389273643, - 0.00920802354812622, - -0.185515359044075, - -0.00018188197282142937, - -0.011106952093541622, - -0.06185100972652435, - 0.020075084641575813, - -0.007970389910042286, - 0.0671440064907074, - -0.020470714196562767, - 0.259583443403244, - -0.07054618746042252, - -0.016229256987571716, - -0.0002561307337600738, - -0.04942144826054573, - -0.021234190091490746, - -0.04668648913502693, - 0.04358586668968201, - -0.03737499564886093, - -0.044883813709020615, - -0.0026605543680489063, - -0.04098670184612274, - 0.028854960575699806, - -0.05712605267763138, - -0.009043247438967228, - -0.04373077675700188, - -0.03386174514889717, - 0.009054402820765972, - -0.0032612918876111507, - 0.04814806953072548, - 0.12245839834213257, - 0.025293296203017235, - -0.0032138621900230646, - -0.03631977364420891, - 0.022301869466900826, - 0.01294067595154047, - -0.022494539618492126, - -0.07472774386405945, - 0.032574377954006195, - -0.04135913401842117, - 0.009037786163389683, - 0.017611518502235413, - 0.038105547428131104, - -0.0010955313919112086, - -0.04073367267847061, - -0.017594581469893456, - -0.003396238898858428, - 0.005570051725953817, - -0.020650481805205345, - -0.001462264102883637, - 0.00785798765718937, - 0.016089316457509995, - 0.04406183958053589, - -0.05523955821990967, - -0.0201045423746109, - 0.056823089718818665, - -0.33363965153694153, - -0.009605097584426403, - 0.012944338843226433, - 0.0138394208624959, - 0.003208532929420471, - 0.015386716462671757, - -0.01576763018965721, - -0.06246426701545715, - -0.018923521041870117, - 0.009676954708993435, - -0.007070193532854319, - -0.0395115427672863, - 0.023577982559800148, - 0.026520254090428352, - -0.09282013028860092, - 0.024974865838885307, - -0.05977153778076172, - 0.01996418833732605 - ], - [ - -0.007301803212612867, - -0.011617693118751049, - 0.010006905533373356, - 0.0010473905131220818, - -0.005625434685498476, - 0.0033430636394768953, - 0.014983314089477062, - 0.03394527733325958, - 0.019211500883102417, - -0.0026510541792958975, - -0.013081280514597893, - 0.012049850076436996, - 0.004588040057569742, - 0.0036781758535653353, - -0.025210054591298103, - 0.0021206920500844717, - -0.0034460942260921, - -0.027220238000154495, - -0.01122987736016512, - 0.013944264501333237, - -0.0757368728518486, - 0.026712294667959213, - -0.004351229872554541, - -0.017456142231822014, - -0.011372976936399937, - -0.011877908371388912, - 0.005353237502276897, - 0.00980786606669426, - 0.0058126929216086864, - 0.029648758471012115, - 0.011798112653195858, - 0.014773882925510406, - -0.0006842242437414825, - 0.001956491032615304, - 0.0016679379623383284, - -0.0003699935332406312, - 0.022568494081497192, - 0.0012858797563239932, - 0.004380723461508751, - 0.01831514574587345, - 0.022266101092100143, - 0.0036283996887505054, - 0.005647663027048111, - -0.003648200770840049, - 0.009157040156424046, - 0.023648355156183243, - 0.0009123091003857553, - -0.02492106892168522, - -0.0087122218683362, - -0.01598740741610527, - 1.766193781804759e-05, - -0.0026557601522654295, - -0.012998810037970543, - 0.016984716057777405, - 0.008878269232809544, - 0.009791629388928413, - 0.004019702784717083, - 0.017655562609434128, - -0.03947761282324791, - 0.024941368028521538, - -0.03673315420746803, - -0.023763153702020645, - 0.021107513457536697, - 0.023946527391672134, - -0.026685351505875587, - -0.0044786506332457066, - -0.02187269926071167, - 0.00945334229618311, - -5.2457235142355785e-05, - 0.0027749030850827694, - 0.0062364088371396065, - 0.031709473580121994, - 0.0273597352206707, - 0.04239939525723457, - -0.02766694314777851, - -0.034367915242910385, - 0.019080033525824547, - 0.0012883477611467242, - -0.004079969599843025, - 0.036250028759241104, - 0.014694813638925552, - -0.02650448866188526, - -0.8887168765068054, - 0.013978769071400166, - -0.016521112993359566, - 0.017457013949751854, - 0.007255576550960541, - -0.0024086632765829563, - -0.011035283096134663, - -0.003575582755729556, - -0.00020752966520376503, - 0.012214885093271732, - -0.008241320960223675, - 0.01151276659220457, - 0.007736284285783768, - 0.040255844593048096, - -0.0038949332665652037, - -0.005484480410814285, - 0.0029468280263245106, - -0.0008287907112389803, - 0.017436696216464043, - 0.008897179737687111, - -0.0017698324518278241, - 0.01490712072700262, - -0.03661026433110237, - 0.002581180538982153, - 0.017459377646446228, - -0.009437990374863148, - 0.0271918885409832, - -0.0026082471013069153, - 0.0031067871022969484, - 0.001997784012928605, - -0.0026201242581009865, - 0.008403357118368149, - 0.02301543392241001, - 0.014080755412578583, - 0.009451153688132763, - -0.019107172265648842, - 0.025519566610455513, - 0.005476756487041712, - -0.04410785809159279, - 0.0038373246788978577, - 0.01389759685844183, - 0.02478526160120964, - 0.030260827392339706, - 0.0009049689979292452, - 0.036853525787591934, - 0.01792118325829506, - 0.00668285321444273, - 0.02898612804710865, - 0.03146979212760925, - -0.017543599009513855, - -0.01558354590088129, - -0.012612626887857914, - 0.005881820805370808, - 0.014998732134699821, - 0.024478532373905182, - 0.021156365051865578, - 0.004770639352500439, - -0.020281082019209862, - -0.026942439377307892, - -0.01364960242062807, - 0.0018410463817417622, - -0.017481127753853798, - -0.015710461884737015, - -0.028835682198405266, - 0.03621666133403778, - -0.01924886740744114, - -0.021198339760303497, - -0.011526442132890224, - -0.004770825617015362, - 0.007729906123131514, - -0.015555406920611858, - -0.04016761854290962, - -0.017050012946128845, - -0.003015250666067004, - 0.021134017035365105, - 0.018144771456718445, - -0.0008865646086633205, - 0.30617234110832214, - 0.023378713056445122, - 0.0003847882617264986, - -0.010041553527116776, - 0.005654173903167248, - 0.0337434783577919, - 0.0460648350417614, - 0.015611549839377403, - -0.032854266464710236, - 0.0026650147046893835, - -0.005882576107978821, - -0.007009685970842838, - 0.018703389912843704, - -0.02601536735892296, - -0.009927529841661453, - 0.028486596420407295, - 0.015745997428894043, - -0.011939429678022861, - 0.04431917145848274, - 0.0012681662337854505, - 0.024165919050574303, - 0.013021405786275864, - -0.0014863427495583892, - 0.0025567810516804457, - -0.0019077786710113287, - -0.09158453345298767, - 0.0035047961864620447, - 0.008902175351977348, - -0.013163337484002113, - 0.009283557534217834, - -0.007331033702939749, - 0.010607797652482986, - 0.007378056645393372, - 0.0816413089632988, - -0.01654461957514286, - -0.012661456130445004, - 0.0034555760212242603, - -0.016116542741656303, - -0.0066877203062176704, - -0.013830029405653477, - 0.01405798364430666, - -0.011490187607705593, - -0.005441239103674889, - 0.0019468823447823524, - 0.0024648746475577354, - -0.0021994528360664845, - -0.015955787152051926, - -0.01338838879019022, - -0.01735672354698181, - -0.012093579396605492, - 0.007375083398073912, - 0.0037034512497484684, - 0.0016255956143140793, - 0.043825432658195496, - 0.00010694481898099184, - 0.0015219917986541986, - -0.005850628018379211, - -0.00866466574370861, - 0.00615525571629405, - -6.824341107858345e-05, - -0.06129549816250801, - 0.00828598253428936, - -0.004196858033537865, - 0.004271790385246277, - 0.0024579756427556276, - 0.0022998382337391376, - 0.0073562623001635075, - -0.020147250965237617, - 0.0003078277804888785, - -0.0043879407458007336, - 0.0033551789820194244, - -0.004119440913200378, - 0.03992143273353577, - 0.01595856435596943, - 0.010240571573376656, - 0.002675398485735059, - -0.012201943434774876, - -0.01255681924521923, - 0.019751477986574173, - -0.13786424696445465, - 0.005829503759741783, - -0.0029786815866827965, - 0.000681232544593513, - 0.0006976270815357566, - 0.002402796410024166, - 0.012109719216823578, - -0.029122045263648033, - 0.01748860441148281, - 0.009718612767755985, - 0.0047980728559195995, - -0.01813672110438347, - 0.007448204793035984, - 0.011150429956614971, - -0.027416717261075974, - 0.0040053268894553185, - -0.027258269488811493, - 0.003620377741754055 - ], - [ - -0.04123446345329285, - -0.04537726566195488, - 0.025165565311908722, - 0.0013452498242259026, - 0.008290008641779423, - 0.001997515792027116, - 0.016567282378673553, - 0.05628243461251259, - 0.04020718112587929, - -0.019198017194867134, - -0.014675147831439972, - 0.04179081320762634, - 0.03838518261909485, - 0.03644006326794624, - -0.04654666781425476, - -0.14383777976036072, - 0.024645226076245308, - -0.00336792622692883, - 0.0705973207950592, - 0.03830312564969063, - -0.08510392159223557, - 0.022227413952350616, - -0.0007163873524405062, - -0.010386123321950436, - -0.017172034829854965, - 0.014477703720331192, - 0.05623145401477814, - -0.00022801459999755025, - -0.0006091653485782444, - 0.05907884240150452, - -0.0012944383779540658, - 0.03955456614494324, - -0.03642445057630539, - 0.01278841495513916, - -0.0044269380159676075, - 0.0013051644200459123, - 0.034298770129680634, - -0.012818179093301296, - -6.423428567359224e-05, - 0.056928157806396484, - 0.0017601007129997015, - 0.044723156839609146, - 0.037942707538604736, - 0.03301301226019859, - 0.03205893188714981, - 0.09635075181722641, - 0.006902566645294428, - 0.036583442240953445, - -0.02543797716498375, - -0.002083482453599572, - -0.045330751687288284, - -0.04424463212490082, - -0.01409071870148182, - -0.022881638258695602, - 0.037747930735349655, - -0.016998715698719025, - -0.00501895509660244, - 7.08802544977516e-05, - -0.05893052741885185, - 0.00967100914567709, - -0.057837072759866714, - -0.013004646636545658, - 0.013103891164064407, - 0.039819732308387756, - -0.02017011120915413, - 0.000838457839563489, - -0.028912462294101715, - 0.027766669169068336, - 0.016073741018772125, - 0.024623293429613113, - 0.007893740199506283, - 0.17596986889839172, - 0.011218659579753876, - 0.07294773310422897, - -0.05283396318554878, - -0.017142925411462784, - 0.04964355379343033, - 0.006777985952794552, - -0.030002595856785774, - 0.08608752489089966, - 0.01954023353755474, - -0.01831182651221752, - -0.11365573108196259, - 0.044078148901462555, - 0.020955679938197136, - 0.023241402581334114, - -0.004743794444948435, - 0.019489966332912445, - 0.00014072303019929677, - -0.04614640399813652, - 0.0024066667538136244, - -0.02316128835082054, - 0.1524009108543396, - 0.0029963566921651363, - 0.03128568083047867, - 0.03990207985043526, - 0.006279839668422937, - 0.04086693003773689, - -0.02299252338707447, - -0.012596268206834793, - 0.05039503425359726, - 0.02171202376484871, - 0.044517166912555695, - -0.02842237800359726, - -0.08199556171894073, - -0.005040052812546492, - 0.05037987232208252, - -0.05253671109676361, - 0.03687542304396629, - -0.03032766841351986, - 0.02324865572154522, - -0.002776453737169504, - 0.028608107939362526, - -0.0002591302618384361, - -0.02837156504392624, - 0.047369323670864105, - 0.04327181726694107, - 0.009700082242488861, - -0.00247030146420002, - 0.05368747562170029, - -0.031412333250045776, - 0.003822260070592165, - 0.05879741534590721, - 0.06491856276988983, - 0.10542839020490646, - 0.00011448758596088737, - -0.6125817894935608, - -0.00047182172420434654, - -0.004439030308276415, - 0.054366372525691986, - 0.060844678431749344, - -0.03287495672702789, - -0.06365577131509781, - 0.010987450368702412, - -0.0026933099143207073, - -0.008790601044893265, - 0.024582982063293457, - 0.026928499341011047, - -0.026487629860639572, - -0.02438596449792385, - -0.0016232721973210573, - -0.032798171043395996, - -0.0001567284343764186, - 0.017381230369210243, - 0.0003808152978308499, - -0.010944798588752747, - -0.020024186000227928, - -0.038919754326343536, - -0.07841063290834427, - -0.041482459753751755, - 0.034381475299596786, - -0.017777979373931885, - -0.014450594782829285, - -0.07024956494569778, - -0.0682080090045929, - -0.011622925288975239, - -0.004055779427289963, - -0.010094895958900452, - 0.012647525407373905, - 0.3124302625656128, - 0.05525057017803192, - -0.02951173298060894, - -0.08263606578111649, - -0.013912888243794441, - 0.032087091356515884, - -0.08005555719137192, - 0.005838308017700911, - -0.023326503112912178, - 0.01253233291208744, - -0.010792365297675133, - -0.009988204576075077, - 0.015114975161850452, - 0.005337778013199568, - -0.009300008416175842, - 0.07066167891025543, - -0.03412007912993431, - -0.0016221781261265278, - 0.07946634292602539, - 0.025418337434530258, - 0.007578174117952585, - 0.004326524678617716, - -0.017555346712470055, - 0.01582637056708336, - 0.004907315131276846, - -0.19084878265857697, - 0.01384750846773386, - 0.04168025776743889, - -0.01517140306532383, - 0.0026562572456896305, - -0.0009767399169504642, - -0.03370548039674759, - 0.0405106395483017, - 0.200217604637146, - 0.010727503336966038, - -0.027595272287726402, - 0.0033035255037248135, - -0.05413193628191948, - 0.005669577978551388, - 0.013497387990355492, - 0.0017318188911303878, - 0.026369750499725342, - 0.020279185846447945, - -0.034760117530822754, - 0.028263481333851814, - -0.04476168751716614, - -0.02513245679438114, - -0.042411718517541885, - -0.030382681638002396, - -0.0186720322817564, - -0.01101339515298605, - -0.01817796565592289, - 0.03901293873786926, - 0.10331239551305771, - -0.021934382617473602, - 0.033870428800582886, - -0.014423330314457417, - -0.03842679783701897, - -0.02259010635316372, - 0.01865973509848118, - -0.08530827611684799, - 0.0016731604700908065, - -0.03283177316188812, - 0.0009076498681679368, - 0.003532279748469591, - -0.014737024903297424, - -0.007777562364935875, - -0.06061077490448952, - -0.02092166617512703, - -0.013417799957096577, - -0.004623564425855875, - -0.008348091505467892, - 0.03234442323446274, - 0.05213616043329239, - 0.010583159513771534, - 0.010823502205312252, - -0.005022331140935421, - 0.0036515695974230766, - -0.00013906262756790966, - -0.2450897991657257, - -0.009994874708354473, - -0.01728621870279312, - -0.0344434455037117, - 0.04152780398726463, - 0.02185220457613468, - 0.029984693974256516, - -0.01382703147828579, - -0.012924916110932827, - 0.04902491718530655, - 0.050399843603372574, - -0.06536271423101425, - -0.013444346375763416, - 0.00256568705663085, - -0.04151321202516556, - 0.0015383013524115086, - -0.030172038823366165, - 0.031212739646434784 - ], - [ - -0.00030211920966394246, - 0.0018457019468769431, - -0.0009781485423445702, - 0.0011904354905709624, - -0.0010332256788387895, - 0.0007922867662273347, - -0.0007445365772582591, - 0.002191318431869149, - 0.0024062390439212322, - 0.000840564607642591, - -0.0017416831105947495, - 0.000877458427567035, - 9.077897266251966e-05, - -0.001146501861512661, - -0.0010723391314968467, - 0.006913767196238041, - -0.00025017818552441895, - -0.003317127702757716, - -0.004452620632946491, - 0.002366241766139865, - -0.00950094498693943, - 0.0043389275670051575, - -0.00048209706437774, - -0.0011314740404486656, - -0.0020980844274163246, - -0.00164366967510432, - 0.0015406935708597302, - 0.00021835781808476895, - -0.00015468754281755537, - 0.0013173549668863416, - 0.0010283984011039138, - 0.00253038271330297, - 0.0010634214850142598, - -0.0008006274001672864, - 0.000987506122328341, - 0.0009993902640417218, - 0.002737542148679495, - 0.0017330729169771075, - 0.0006462116143666208, - -0.0004514274187386036, - -0.0006803873693570495, - 0.0024971517268568277, - 0.0005719716427847743, - 0.00040408020140603185, - -0.002387324348092079, - -0.001131681026890874, - 0.00025970456772483885, - -0.002206414006650448, - 0.0010487546678632498, - -9.411057544639334e-05, - -0.0021328451111912727, - 0.009054216556251049, - -5.061426054453477e-05, - -0.000803901522886008, - -0.0023305723443627357, - -0.0011175221297889948, - 0.0010279954876750708, - -0.0005288455868139863, - -0.007044184021651745, - 0.0001743685861583799, - -0.0003880697477143258, - -0.0032404675148427486, - 0.0006851924699731171, - 0.0031614750623703003, - -0.00596168078482151, - 0.0021151243709027767, - -0.010402435436844826, - 0.0032021403312683105, - -0.0017625261098146439, - -0.0016665668226778507, - -0.0021226939279586077, - -0.0729464665055275, - 0.0030982743483036757, - 0.005845772568136454, - -0.0013961924705654383, - -0.0005804852698929608, - 0.001820640405640006, - 0.0013636259827762842, - -0.00231559737585485, - 0.003411125624552369, - -0.00011253941192990169, - -0.0005982485017739236, - -0.9185522794723511, - 0.0008825835539028049, - -0.004486718215048313, - 0.0032606832683086395, - 0.0006607314571738243, - 0.0009779956890270114, - 0.0002936828532256186, - 0.0034272652119398117, - 0.0011751236161217093, - 0.002100214594975114, - 0.005250304937362671, - -0.00024973147083073854, - 0.002854445483535528, - 0.0034308547619730234, - 0.0004112589522264898, - -0.002378808567300439, - 0.0030704070813953876, - -0.0008146175532601774, - 0.0015220820205286145, - 0.0017911761533468962, - 0.0008120983256958425, - 0.0026329036336392164, - 0.002816632855683565, - 0.0008926915470510721, - -0.0029371154960244894, - 0.0010718059493228793, - -0.0012710979208350182, - -0.0006798265967518091, - 0.007886049337685108, - 0.0032438079360872507, - -0.0015423961449414492, - 0.00026637950213626027, - 0.0021356833167374134, - 0.0035924669355154037, - -0.001392940292134881, - 8.027881995076314e-05, - 0.0006796864909119904, - 0.0003819125995505601, - -0.0017746812663972378, - -0.0020956865046173334, - -0.001762212603352964, - 0.002088977722451091, - -0.00235926965251565, - -0.0009516889113001525, - 0.28240489959716797, - 0.0010148491710424423, - 0.001094731967896223, - 0.0008706914377398789, - 0.0007394797867164016, - 0.0032826706301420927, - 0.0007663722499273717, - -0.0008648887742310762, - -0.0019856158178299665, - 0.0017319597536697984, - -0.002270579570904374, - 0.0013183869887143373, - -0.0018394895596429706, - 0.000685970124322921, - 0.0007294029928743839, - -0.0007062043296173215, - -0.0016274680383503437, - -0.0007856315933167934, - -0.0008716453448869288, - -0.005655551794916391, - 0.0010467784013599157, - 0.0010142821120098233, - -0.0005426967982202768, - 0.00040149441338144243, - -0.0011552460491657257, - -0.006582643371075392, - -0.0018941423622891307, - -0.005778202321380377, - -0.0022573345340788364, - 0.0006101994076743722, - 0.0013727329205721617, - -0.00045341369695961475, - 0.0008632534299977124, - 0.20527814328670502, - -0.0011609670473262668, - 0.0011572574730962515, - 0.0005962062859907746, - 0.0018513610120862722, - 0.00945065077394247, - 0.09228864312171936, - 0.0018535524141043425, - -0.004391518887132406, - 0.000780741625931114, - 0.0011470888275653124, - -0.006081715691834688, - 0.00290513108484447, - -0.001853463239967823, - 0.0012202081270515919, - -0.0019438422750681639, - -0.0016014081193134189, - 0.00029617437394335866, - 0.00624188082292676, - -0.00048693432472646236, - 0.005078671034425497, - -1.9338335732754786e-06, - 0.0015126364305615425, - -0.0001296668197028339, - -0.00032017938792705536, - -0.005566520616412163, - -0.0004551709280349314, - 0.00037228805013000965, - -0.0021565130446106195, - 0.0011577130062505603, - 0.0006019099382683635, - 0.0015426072059199214, - 4.519697176874615e-05, - -0.05882423743605614, - -0.005030642729252577, - 0.004611155483871698, - -0.0018949367804452777, - 0.0005386295961216092, - 0.0005828466964885592, - 0.0005327556282281876, - 0.0029421672224998474, - -0.0011708635138347745, - -0.002386129926890135, - 0.0028531341813504696, - -0.0010266272583976388, - 0.000485691474750638, - 0.00636540912091732, - -0.0007011074339970946, - -0.002332839649170637, - -0.0006373070064000785, - -0.00018197717145085335, - 0.00036464043660089374, - -0.001178398379124701, - -0.0521717295050621, - 0.000771289283875376, - -0.0012860704446211457, - -0.00014925666619092226, - -0.0028322727885097265, - 0.0007307784981094301, - 0.003494417294859886, - -0.010688004083931446, - 0.0006443484453484416, - 0.0005792233278043568, - 3.099937430306454e-06, - -0.00037801574217155576, - -0.00019447365775704384, - 0.0009412349900230765, - -0.0009973269188776612, - 0.0008603567839600146, - 0.0010208628373220563, - -0.0002852465258911252, - 0.0003965857904404402, - 0.004213829059153795, - 0.0019126659026369452, - 0.00040154947782866657, - 0.000466748810140416, - -0.0021748750004917383, - -0.004693300928920507, - 0.002041643252596259, - 0.11208109557628632, - 0.000191518192877993, - 0.002221913542598486, - 0.001603981712833047, - -0.0010293107479810715, - -0.003498641075566411, - -0.001196259749121964, - -0.0017805899260565639, - 0.005470386706292629, - 0.0006037144339643419, - -0.0010963372187688947, - -0.002234220504760742, - -0.00022463891946244985, - 0.0010574714979156852, - -0.0021717154886573553, - 0.001757425838150084, - -0.0026633585803210735, - 2.1315938283805735e-05 - ], - [ - -0.020827870815992355, - -0.02867746539413929, - 0.02474345453083515, - -0.0018144928617402911, - -0.006031590048223734, - 0.0025138002820312977, - 0.02991655468940735, - 0.0585777685046196, - 0.0416681244969368, - -0.009462506510317326, - -0.027949687093496323, - 0.025378363206982613, - 0.008148816414177418, - 0.022367380559444427, - -0.06173805892467499, - -0.02157299965620041, - -0.019488321617245674, - -0.039890874177217484, - -0.012496789917349815, - 0.016992075368762016, - -0.1411057859659195, - 0.04571906104683876, - 0.00522545725107193, - -0.025540094822645187, - -0.0331927165389061, - -0.02737020142376423, - 0.026685576885938644, - -0.0008601798908784986, - -0.000962589168921113, - 0.06923078000545502, - 0.029484329745173454, - 0.027423648163676262, - -0.002621819032356143, - 0.00961100310087204, - 0.0013477903557941318, - 0.004335708916187286, - 0.05071738362312317, - 0.012601509690284729, - 0.0059302616864442825, - 0.04320867359638214, - 0.037025317549705505, - 0.005342024378478527, - 0.0008691902621649206, - -0.016791382804512978, - 0.025404948741197586, - 0.04997902736067772, - -0.00027706174296326935, - -0.050012145191431046, - -0.016336092725396156, - -0.04347521439194679, - 0.004337307531386614, - -0.03028082847595215, - -0.0327276811003685, - 0.039043113589286804, - 0.03288864344358444, - 0.013489032164216042, - 0.0061283232644200325, - 0.027964415028691292, - -0.06284826993942261, - 0.06076294556260109, - -0.08551474660634995, - -0.04412342980504036, - 0.04350142180919647, - 0.04659038037061691, - -0.052518803626298904, - -0.013058526441454887, - -0.039846934378147125, - 0.016194144263863564, - 0.0027027896139770746, - 0.010790600441396236, - 0.002512291306629777, - 0.21316593885421753, - 0.042368464171886444, - 0.07089914381504059, - -0.06474622339010239, - -0.05381704121828079, - 0.04040314257144928, - -0.012984060682356358, - -0.011614472605288029, - 0.06853912770748138, - 0.03632047772407532, - -0.04793776571750641, - 0.00021210519480518997, - 0.013326973654329777, - -0.013174355961382389, - 0.011189330369234085, - 0.009012165479362011, - -0.004550151992589235, - -0.00788041204214096, - -0.020936861634254456, - 0.0003033278917428106, - 0.021515360102057457, - 0.009614918380975723, - 0.015591362491250038, - 0.011330273933708668, - 0.07904516905546188, - -0.020528914406895638, - -0.0036323030944913626, - 0.0019297277322039008, - 0.00448950519785285, - 0.029263576492667198, - 0.013267241418361664, - -0.00890045240521431, - 0.00938122346997261, - -0.08708731830120087, - 0.006551927886903286, - 0.04048696905374527, - -0.02749195136129856, - 0.0524611622095108, - -0.008851056918501854, - -0.013937132433056831, - 0.004217016510665417, - -0.004804797004908323, - 0.013753935694694519, - 0.025836698710918427, - 0.019410569220781326, - 0.02401788718998432, - -0.023877350613474846, - 0.05633664131164551, - -0.0013722812291234732, - -0.07691220194101334, - 0.00460024131461978, - 0.031545136123895645, - 0.04386262223124504, - 0.07543201744556427, - 0.015438217669725418, - -0.4938338100910187, - 0.03743400424718857, - 0.02039722539484501, - 0.06753958761692047, - 0.05855188146233559, - -0.03521079942584038, - -0.01853632554411888, - -0.028925564140081406, - 0.012558702379465103, - 0.015757998451590538, - 0.05525203421711922, - 0.038518790155649185, - 0.011071738786995411, - -0.04057754576206207, - -0.03857986256480217, - -0.031183119863271713, - 0.006255124229937792, - -0.028091292828321457, - -0.02842310443520546, - -0.04027919843792915, - 0.054088134318590164, - -0.03977673500776291, - -0.03388321027159691, - -0.01953243650496006, - -0.01519432757049799, - 0.021905608475208282, - -0.027340766042470932, - -0.06498794257640839, - -0.010350493714213371, - 0.0016141446540132165, - 0.02904048003256321, - 0.03580249845981598, - -0.0008310952689498663, - 0.23508580029010773, - 0.04149293899536133, - 0.014672458171844482, - -0.029107103124260902, - -0.009614760056138039, - 0.043868910521268845, - -0.09816007316112518, - 0.02494099922478199, - -0.06409406661987305, - -0.006787838879972696, - -0.01460300013422966, - -0.006335536018013954, - 0.03448818251490593, - -0.0469801239669323, - -0.02974308654665947, - 0.06639514863491058, - 0.02205541729927063, - -0.022721046581864357, - 0.07280943542718887, - 0.011509356088936329, - 0.027907801792025566, - 0.03114727884531021, - -0.0065467217937111855, - -0.004292041063308716, - -0.01095641404390335, - -0.17630301415920258, - 0.000606372719630599, - 0.017837997525930405, - -0.01066279411315918, - 0.021134166046977043, - -0.009369582869112492, - 0.01387874037027359, - 0.015481517650187016, - 0.2782627046108246, - -0.010561526753008366, - -0.04319304600358009, - 0.009148795157670975, - -0.027571646496653557, - -0.014496930874884129, - -0.00220664544031024, - 0.02258177474141121, - -0.018891295418143272, - -0.0059151132591068745, - 6.0250811657169834e-05, - 0.01085206400603056, - -0.013744191266596317, - -0.04147721827030182, - -0.04171321168541908, - -0.03318433836102486, - -0.024374090135097504, - 0.005576805677264929, - 0.023531656712293625, - -0.003415166400372982, - 0.18768587708473206, - -0.004146800376474857, - 3.588223989936523e-05, - -0.0031396381091326475, - -0.021218305453658104, - 0.0020525306463241577, - -0.0068288235925138, - -0.10877682268619537, - 0.006647057365626097, - -0.0036858965177088976, - 0.018286066129803658, - 0.01966184563934803, - 0.0010772214736789465, - 0.007612473331391811, - -0.04471916705369949, - -0.0015825601294636726, - -0.022589441388845444, - -0.0018124941270798445, - -0.015187959186732769, - 0.07397090643644333, - 0.030389076098799706, - 0.015493805520236492, - 0.004476036410778761, - -0.00678036455065012, - -0.0030579406302422285, - 0.030279409140348434, - -0.4794711172580719, - 0.011649105697870255, - -0.010365188121795654, - -0.008160240016877651, - 0.001673811231739819, - 0.007719142362475395, - 0.023949749767780304, - -0.05960274487733841, - 0.021465376019477844, - 0.023097751662135124, - 0.015328059904277325, - -0.035103701055049896, - 0.011935683898627758, - 0.02152366004884243, - -0.039401959627866745, - 0.011552787385880947, - -0.027906887233257294, - -0.004657108336687088 - ], - [ - -0.00014350023411680013, - 0.0013586444547399879, - -0.00021159794414415956, - 0.0010020063491538167, - -0.0003885381738655269, - 0.0008342929650098085, - -0.0010873276041820645, - 0.002211172366514802, - 0.002647545887157321, - 0.0009784208377823234, - -0.0015943435719236732, - 0.0011893834453076124, - 0.0004360699967946857, - -0.0012245593825355172, - -0.000927537796087563, - 0.0069555905647575855, - 0.0003463747270870954, - -0.0032563370186835527, - -0.0031978480983525515, - 0.002564638387411833, - -0.008438927121460438, - 0.0047652036882936954, - -0.0005534194060601294, - -0.001041783718392253, - -0.0016733340453356504, - -0.00140976847615093, - 0.0019629215821623802, - 0.00017182256851810962, - 0.000215225838473998, - 0.0006581071647815406, - 0.0010330760851502419, - 0.0034087062813341618, - 0.0004498701891861856, - -0.0005703478236682713, - 0.00019552826415747404, - 0.0013337737182155252, - 0.0028720078989863396, - 0.000894700875505805, - 0.0005987308104522526, - 0.00012999041064176708, - -0.0004992673639208078, - 0.002991237910464406, - 0.0004883647779934108, - 0.0011655330890789628, - -0.00164111889898777, - -0.0010287516051903367, - 0.0007745461771264672, - -0.0008545272285118699, - 0.001086234929971397, - 0.0008697633747942746, - -0.0026921029202640057, - 0.008622503839433193, - 0.00010468677646713331, - -0.0019186688587069511, - -0.001962619135156274, - -0.0018495734548196197, - 0.0006662873784080148, - -0.0004600976826623082, - -0.007542957551777363, - -0.0013584163971245289, - -0.000490061123855412, - -0.0028916667215526104, - -0.0004637725360225886, - 0.003462266642600298, - -0.004852691665291786, - 0.002054853131994605, - -0.010445935651659966, - 0.0029238148126751184, - -0.0011999547714367509, - -0.0017984574660658836, - -0.001905719400383532, - -0.07320214062929153, - 0.002955123782157898, - 0.005731929559260607, - -0.0012637603795155883, - -8.411244198214263e-05, - 0.002552695106714964, - 0.0015205038944259286, - -0.002381848404183984, - 0.003580438904464245, - -0.0003184069355484098, - -0.0004911452415399253, - -0.9185553789138794, - 0.0006951794493943453, - -0.0044449386186897755, - 0.003200364764779806, - 0.001013399101793766, - 0.0017691515386104584, - 0.00025195154012180865, - 0.0037460310850292444, - 0.0012602583738043904, - 0.0016970217693597078, - 0.006325243040919304, - -0.0009777734521776438, - 0.0031199282966554165, - 0.003571845358237624, - 0.0006379960104823112, - -0.0018643763614818454, - 0.0031240913085639477, - -0.0010436035227030516, - 0.0018974614795297384, - 0.0015587465604767203, - 0.002047240035608411, - 0.0025607957504689693, - 0.0029374281875789165, - 4.408064341987483e-05, - -0.0031422192696481943, - 0.0010155948111787438, - -0.0010762116871774197, - -0.0007262506987899542, - 0.008061866275966167, - 0.003126334398984909, - -0.0011021513491868973, - 0.00021317001665011048, - 0.0017700657481327653, - 0.004194748587906361, - -0.00030462865834124386, - 0.0006775478250347078, - 0.00019468733808025718, - 0.0014638396678492427, - -0.002101968741044402, - -0.0022475027944892645, - -0.0012250659056007862, - 0.003183539491146803, - -0.0024709857534617186, - -0.002093670889735222, - 0.2818678021430969, - 0.0005357828922569752, - 0.0007428485550917685, - 0.000764290161896497, - 0.0009850056376308203, - 0.0034374434035271406, - -0.00011265604553045705, - 0.0005754790036007762, - -0.0024251367431133986, - 0.001678360509686172, - -0.002757873386144638, - 0.0013405833160504699, - -0.002225287724286318, - 0.00043139353510923684, - 0.0012646972900256515, - -0.0011858406942337751, - -0.001982092624530196, - -7.515501056332141e-05, - 0.00012551333929877728, - -0.005547503475099802, - 0.0006698016077280045, - 0.0008364217355847359, - -0.0017229096265509725, - -0.0005996758700348437, - -0.0006101936451159418, - -0.007639740128070116, - -0.0018327750731259584, - -0.006638657301664352, - -0.003944861236959696, - 0.00018829181499313563, - 0.0015135393477976322, - -0.0009634758462198079, - 0.00022237206576392055, - 0.2051558792591095, - -0.0009114805143326521, - 0.0008551725768484175, - -0.0007591088069602847, - 0.0015197278698906302, - 0.009386173449456692, - 0.09235522150993347, - 0.0025933675933629274, - -0.004077174235135317, - 0.001625484204851091, - 0.000781614042352885, - -0.006619629450142384, - 0.0026140727568417788, - -0.0011595833348110318, - 0.001092666876502335, - -0.0016163756372407079, - -0.0014572306536138058, - 0.0005014132475480437, - 0.006333299446851015, - -0.00034543045330792665, - 0.0052571468986570835, - -0.0002409117587376386, - 0.0015674958704039454, - 8.437655924353749e-05, - -0.00016838108422234654, - -0.005501727573573589, - -0.0005798978381790221, - 0.0012913395185023546, - -0.002055136486887932, - 0.0008745618397369981, - 0.00038107758155092597, - 0.0011897089425474405, - -0.0002071498311124742, - -0.05943220853805542, - -0.0042457180097699165, - 0.00477544916793704, - -0.00169290357735008, - 0.0004084912652615458, - 0.000737892696633935, - 0.0005438874941319227, - 0.0021612064447253942, - -0.0008417551871389151, - -0.002319905674085021, - 0.0017406088300049305, - -0.0013780600856989622, - 0.00041007643449120224, - 0.006567804608494043, - -0.0012270621955394745, - -0.0021168398670852184, - -0.0008191661909222603, - -0.0004946892149746418, - -0.0006053854012861848, - 5.194045297685079e-05, - -0.05303698778152466, - 0.0010445776861160994, - -0.000432512752013281, - -0.000493712374009192, - -0.0033521270379424095, - 0.0008637177525088191, - 0.004438396077603102, - -0.009926559403538704, - 8.320581400766969e-05, - 0.0003796468081418425, - -0.0007781926542520523, - -0.0007708363700658083, - -0.00038560040411539376, - 0.0007688162731938064, - -0.0015390730695798993, - 0.0007942591910250485, - 0.00062633550260216, - -0.0005373491439968348, - 0.0011110568884760141, - 0.004255395382642746, - 0.002324111992493272, - 0.00019061648345086724, - 0.000372562266420573, - -0.0023292526602745056, - -0.005367988720536232, - 0.0018523909384384751, - 0.11252785474061966, - -0.00028809544164687395, - 0.0016536209732294083, - 0.0007976769120432436, - -8.122838335111737e-05, - -0.003269479377195239, - -0.0010273260995745659, - -0.001042625866830349, - 0.00569474883377552, - 0.0007442196365445852, - -0.0005677427398040891, - -0.0027197478339076042, - -0.0012381999986246228, - 0.0003367195022292435, - -0.0025854059495031834, - 0.0018005501478910446, - -0.0023741063196212053, - 0.0004948609857819974 - ], - [ - -0.00033369995071552694, - 0.0014943615533411503, - -0.0006707670399919152, - 0.00012705127301160246, - -0.0009023229358717799, - 0.0005515625816769898, - -0.0001359503949061036, - 0.0008549441699869931, - 0.001631647814065218, - 0.0011854444164782763, - -0.0019177854992449284, - 0.001512980437837541, - 0.00024317670613527298, - -0.0014641215093433857, - -0.0011771551799029112, - 0.00565020926296711, - -0.00018984804046340287, - -0.0031165368854999542, - -0.0038110646419227123, - 0.00296887569129467, - -0.008093803189694881, - 0.004045568872243166, - -0.00025923209614120424, - -0.0010718937264755368, - -0.0014468588633462787, - -0.0018954758998006582, - 0.0013757676351815462, - 0.0002165802288800478, - -0.00016862672055140138, - 0.0012104278430342674, - 0.0009688512072898448, - 0.0022852723486721516, - 0.00119009951595217, - -0.0006208749837242067, - 0.00024738532374612987, - 0.0015427733305841684, - 0.002393771894276142, - 0.0008759558550082147, - 0.0002530534111429006, - -0.0005683121271431446, - -0.0005775398458354175, - 0.00271627283655107, - 6.658399797743186e-05, - 0.0003804547886829823, - -0.001782315201126039, - -0.0007810018723830581, - 0.00013415113789960742, - -0.0017036066856235266, - 0.0008558291010558605, - -9.17371664854727e-07, - -0.002619832521304488, - 0.008404374122619629, - -0.0001255059032700956, - -0.0010129263391718268, - -0.0020401342771947384, - -0.0008693953859619796, - 0.0007927202386781573, - -0.000653918192256242, - -0.007341785356402397, - -0.0005935467779636383, - -0.00018492357048671693, - -0.0034134231973439455, - 5.74153964407742e-05, - 0.0032772766426205635, - -0.005385208409279585, - 0.002228743163868785, - -0.010548149235546589, - 0.0028625898994505405, - -0.0016940862406045198, - -0.002177308313548565, - -0.0024466863833367825, - -0.07340341061353683, - 0.0034417223650962114, - 0.005894732661545277, - -0.001223921892233193, - 6.0952777857892215e-05, - 0.0014763911021873355, - 0.0017289288807660341, - -0.002287687500938773, - 0.0028271167539060116, - -0.0006949332891963422, - -0.0002395998890278861, - -0.918684184551239, - 0.0002318141923751682, - -0.004292366560548544, - 0.0028678833041340113, - 0.0007279553101398051, - 0.0016315620159730315, - 0.0002260517212562263, - 0.0036127290222793818, - 0.001273856032639742, - 0.0016816460993140936, - 0.0071225822903215885, - -0.00015441149298567325, - 0.0030865827575325966, - 0.0026783866342157125, - 0.000317627185722813, - -0.0019591052550822496, - 0.003464285284280777, - -0.0009795856894925237, - 0.0010341195156797767, - 0.0022015757858753204, - 0.000683463120367378, - 0.0019100058125331998, - 0.002658548066392541, - 0.0006048217765055597, - -0.0027731722220778465, - 0.0011560640996322036, - -0.0012736640637740493, - -0.0012319117086008191, - 0.007433014921844006, - 0.0031431354582309723, - -0.001674616476520896, - 4.061048093717545e-05, - 0.0021566543728113174, - 0.003568554762750864, - -0.0015606392407789826, - 0.0008915066719055176, - 0.00042278505861759186, - 0.000768801080994308, - -0.0011101369746029377, - -0.0021117099095135927, - -0.0019753824453800917, - 0.0020201397128403187, - -0.0024555418640375137, - -0.0009242019732482731, - 0.28082916140556335, - 0.0007020480697974563, - 0.0006755220820195973, - 0.0006512922118417919, - 0.0007234258227981627, - 0.0032065422274172306, - 0.000851428194437176, - -0.0005916120717301965, - -0.0018363958224654198, - 0.001423216424882412, - -0.001771888928487897, - 0.0010049815755337477, - -0.002438558265566826, - 0.0007917808252386749, - 0.001066304394043982, - -0.0005762395448982716, - -0.001328562735579908, - -0.0009700925438664854, - -0.00013363620382733643, - -0.005311166401952505, - -7.051401553326286e-06, - 0.0006382468272931874, - -0.0008270280668511987, - 0.00025787908816710114, - -0.0007967872661538422, - -0.0069828638806939125, - -0.002208132529631257, - -0.005439912434667349, - -0.002795735141262412, - 0.0005084880394861102, - 0.00147153006400913, - -0.000593454169575125, - 0.0011512931669130921, - 0.20553146302700043, - -0.001573817222379148, - 0.0009292532922700047, - 9.973865962820128e-05, - 0.001434805104508996, - 0.008788757026195526, - 0.092396579682827, - 0.002228247467428446, - -0.0037972028367221355, - 0.0011523336870595813, - 0.0015719461953267455, - -0.005549739580601454, - 0.0027984799817204475, - -0.0013314697425812483, - 0.0013368291547521949, - -0.001110267941839993, - -0.001570547348819673, - -0.0001111492165364325, - 0.0064833140932023525, - -0.0009161334601230919, - 0.004695257171988487, - -0.00068122852826491, - 0.0021823185961693525, - -0.0002279874315718189, - -0.00031601611408405006, - -0.00578278535977006, - -0.0004166909493505955, - -0.00027086344198323786, - -0.0018134755082428455, - 0.000919736921787262, - 0.001235472853295505, - 0.0012372098863124847, - -0.0006638354971073568, - -0.059342462569475174, - -0.005332766566425562, - 0.003930880222469568, - -0.0019809475634247065, - 0.00037198953214101493, - 0.0003511474351398647, - 0.0008461122633889318, - 0.002376733347773552, - -0.0014658506261184812, - -0.002850717632099986, - 0.0027113615069538355, - -0.0019491532584652305, - 0.0008922069682739675, - 0.0065210238099098206, - -0.0005155376857146621, - -0.0021159902680665255, - -0.0006683121901005507, - -8.194363181246445e-05, - -7.002085476415232e-05, - -0.0014335878659039736, - -0.05243659019470215, - 0.0015524540795013309, - -0.0014510909095406532, - 0.00010902976646320894, - -0.003094920190051198, - 0.0007900954224169254, - 0.0034447237849235535, - -0.009644512087106705, - 0.0006591077544726431, - 0.0006206361576914787, - -7.149796147132292e-05, - -0.00010946809925371781, - -0.0002447227016091347, - 0.000844728434458375, - -0.001350879785604775, - 0.000976409821305424, - 0.0007083073141984642, - -0.0002009934833040461, - 0.00022548952256329358, - 0.002816584659740329, - 0.0017963108839467168, - -0.0002874417114071548, - 0.0001530553272459656, - -0.002388027496635914, - -0.004608205985277891, - 0.0020428872667253017, - 0.11423086374998093, - -0.0002122744917869568, - 0.0023009604774415493, - 0.001587012317031622, - -0.0010484791127964854, - -0.0033674759324640036, - -0.0020319600589573383, - -0.0013852431438863277, - 0.00514033529907465, - 0.0007100446964614093, - -0.00041137891821563244, - -0.0020223793108016253, - -0.0006546075455844402, - 0.0006790725165046751, - -0.0027507347986102104, - 0.0017411207081750035, - -0.0026365602388978004, - 0.000258877087617293 - ], - [ - -0.055219948291778564, - -0.0414956733584404, - 0.017492275685071945, - -0.011303688399493694, - 0.0017287629889324307, - -0.016337547451257706, - 0.013664229772984982, - 0.014247801154851913, - 0.0061681075021624565, - -0.028605535626411438, - -0.02631368674337864, - 0.04141176491975784, - 0.0323326401412487, - 0.039078135043382645, - -0.047626446932554245, - -0.08049025386571884, - 0.014105631969869137, - -0.03874082863330841, - 0.052333764731884, - 0.049756620079278946, - -0.08198492974042892, - 0.0404847152531147, - 0.00025233966880477965, - -0.002740425057709217, - -0.0007970844162628055, - 0.004433068446815014, - 0.07102133333683014, - 0.012594387866556644, - 0.002957560122013092, - 0.05396496504545212, - 0.00817673560231924, - 0.0007936643669381738, - -0.031931716948747635, - 0.017049118876457214, - -0.015218192711472511, - 0.005925747100263834, - 0.027635449543595314, - -0.023438384756445885, - -0.0118453623726964, - 0.060514386743307114, - -0.013293755240738392, - 0.052795205265283585, - 0.0348057821393013, - 0.021476613357663155, - 0.03664417564868927, - 0.07296449691057205, - -0.011717519722878933, - 0.022093025967478752, - -0.02640393003821373, - 0.018173810094594955, - -0.05505802854895592, - -0.01349429227411747, - -0.014408664777874947, - -0.03252793848514557, - 0.019159769639372826, - -0.0069136968813836575, - -0.010113186202943325, - 0.015799134969711304, - -0.04588696360588074, - -0.0186301339417696, - -0.03954070061445236, - -0.02951059117913246, - 0.005711810197681189, - 0.047964125871658325, - 0.00219762627966702, - 0.01295844092965126, - -0.02920672670006752, - 0.011911807581782341, - 0.006008267402648926, - 0.014232592657208443, - 0.012647408060729504, - 0.12895838916301727, - 0.03352757915854454, - 0.047017768025398254, - -0.0429333858191967, - -0.004166312515735626, - 0.030615083873271942, - -0.0031091102864593267, - -0.037381816655397415, - 0.04415992274880409, - 0.014221994206309319, - -0.020145995542407036, - -0.5845577120780945, - 0.047287534922361374, - 0.019431451335549355, - 0.029088808223605156, - -0.010905119590461254, - 0.019745776429772377, - -0.01198482047766447, - -0.004305267706513405, - 0.001658688299357891, - -0.01020468957722187, - 0.09657102823257446, - 0.03247437626123428, - 0.014073108322918415, - 0.025203878059983253, - -0.00021602390916086733, - 0.01784760132431984, - -0.003801874350756407, - -0.020634571090340614, - 0.05815698578953743, - 0.016624433919787407, - 0.0709705799818039, - -0.034439414739608765, - -0.05622606724500656, - -0.023542560636997223, - 0.043860241770744324, - -0.0426587276160717, - 0.019774099811911583, - -0.027811866253614426, - 0.025140728801488876, - 0.013333930633962154, - 0.039925552904605865, - -0.003943291027098894, - 0.0027305593248456717, - 0.030942730605602264, - 0.027727212756872177, - 0.01340135931968689, - -0.020531881600618362, - 0.06795313954353333, - -0.009400482289493084, - -0.006408007349818945, - 0.034577179700136185, - 0.046617064625024796, - 0.07085492461919785, - 0.0013461669441312551, - -0.37870490550994873, - 0.008021539077162743, - -0.007748504169285297, - 0.035800665616989136, - 0.053896356374025345, - -0.01219999324530363, - -0.056538257747888565, - 0.013598237186670303, - -0.0028626329731196165, - -0.005140491295605898, - 0.017463836818933487, - 0.028078578412532806, - -0.012956056743860245, - 0.002170579507946968, - -0.015765249729156494, - -0.023455124348402023, - -0.003609192091971636, - 0.010899921879172325, - 0.02129911631345749, - -0.027291538193821907, - -0.02075139619410038, - -0.0400700718164444, - -0.04576565697789192, - -0.023348309099674225, - 0.04012708738446236, - -0.02705245278775692, - -0.023305920884013176, - -0.05711115151643753, - -0.08119520545005798, - -0.01074687484651804, - -0.004171660169959068, - 0.00981194619089365, - 0.0405302457511425, - 0.3847442865371704, - 0.03471662849187851, - -0.021082572638988495, - -0.06421350687742233, - -0.0056487638503313065, - 0.06839700788259506, - -0.05080370232462883, - 0.020634884014725685, - -0.020815758034586906, - 0.02203258126974106, - -0.007372535299509764, - -0.01940319687128067, - 0.006072044838219881, - 0.016472583636641502, - -0.0021801649127155542, - 0.05906647443771362, - -0.014546874910593033, - -0.014658951200544834, - 0.08172105997800827, - 0.026036646217107773, - 0.022912967950105667, - -0.013995320536196232, - -0.0013096517650410533, - 0.009330465458333492, - -0.017237819731235504, - -0.15423759818077087, - 0.020149383693933487, - 0.04906204715371132, - -0.005476758815348148, - -0.009750694036483765, - -0.0028516119346022606, - -0.028040723875164986, - 0.03268224373459816, - 0.1549231857061386, - 0.016456592828035355, - -0.009575044736266136, - 0.0018343525007367134, - -0.06247039511799812, - -0.0015261437511071563, - 0.012251307256519794, - -0.007597377989441156, - 0.023765448480844498, - 0.007937866263091564, - -0.033079519867897034, - 0.01436506025493145, - -0.01551838405430317, - -0.017784278839826584, - -0.052033718675374985, - -0.023310299962759018, - -0.003338372800499201, - -0.0185896884649992, - -0.02575957030057907, - -0.0013007883680984378, - 0.07148155570030212, - -0.007751116529107094, - 0.025594547390937805, - -0.0035516005009412766, - -0.025049349293112755, - -0.01746472716331482, - -0.0008387998677790165, - -0.07077436149120331, - -0.014352569356560707, - -0.03218306601047516, - 0.004156479146331549, - 0.0168117955327034, - -0.010446809232234955, - 0.0016804607585072517, - -0.06822976469993591, - -0.020652450621128082, - -0.01101987436413765, - 0.009128585457801819, - -0.00482007022947073, - 0.03260284289717674, - 0.025868531316518784, - -0.009723075665533543, - 0.003368108533322811, - 0.010429571382701397, - -0.012360140681266785, - 0.026623284444212914, - -0.22694574296474457, - -0.00859295018017292, - -0.023925943300127983, - -0.019644489511847496, - 0.029842333868145943, - -0.0009583737119100988, - 0.022830985486507416, - -0.015038551762700081, - -0.003623511642217636, - 0.037757910788059235, - 0.025916585698723793, - -0.05836748331785202, - -0.024441273882985115, - 0.008369294926524162, - -0.06198890507221222, - 0.00015500660811085254, - -0.016944488510489464, - 0.0439288392663002 - ], - [ - -0.005422401707619429, - -0.014871823601424694, - 0.028093479573726654, - -0.0061031365767121315, - -0.011345873586833477, - 0.00824376568198204, - 0.045699819922447205, - 0.05191798135638237, - 0.021904803812503815, - -0.009683647193014622, - -0.03578948974609375, - 0.028659706935286522, - -0.007090416271239519, - 0.004447944927960634, - -0.042129967361688614, - 0.04450593888759613, - -0.010130449198186398, - -0.03607489913702011, - -0.015970854088664055, - 0.03310731425881386, - -0.12739937007427216, - 0.0568188838660717, - 0.005067078396677971, - -0.054871607571840286, - -0.007207293063402176, - -0.01661529205739498, - 0.001630377839319408, - 0.03499128296971321, - 0.02247454971075058, - 0.035353485494852066, - 0.02341059222817421, - 0.021629679948091507, - 0.006808802019804716, - 0.02464848756790161, - -0.011222189292311668, - 0.0015691393055021763, - 0.03633163124322891, - -0.008008704520761967, - 0.0026214318349957466, - 0.035162463784217834, - 0.07179144024848938, - -0.00385830900631845, - -0.019026590511202812, - -0.005979945417493582, - 0.021369773894548416, - 0.03385717794299126, - 0.004801514558494091, - -0.03482862934470177, - -0.009427315555512905, - -0.02206990122795105, - 0.004634322598576546, - -0.011241470463573933, - -0.02290540188550949, - 0.032441116869449615, - 0.03050398640334606, - 0.019618654623627663, - 0.01269427128136158, - 0.04663226380944252, - -0.057820696383714676, - 0.03707841411232948, - -0.06562772393226624, - -0.05259236693382263, - 0.04121828079223633, - 0.05928320810198784, - -0.03259681537747383, - 0.010894335806369781, - -0.029927019029855728, - -0.0017537885578349233, - -0.014184212312102318, - 0.01858290284872055, - 0.03191260248422623, - 0.18646466732025146, - 0.02308603748679161, - 0.07881693542003632, - -0.05272844061255455, - -0.07458420097827911, - 0.017857417464256287, - -0.011076969094574451, - 0.0007425235235132277, - 0.0636943131685257, - 0.027710162103176117, - -0.05205552279949188, - -0.32003098726272583, - 0.004891648422926664, - -0.028480997309088707, - 0.00833777617663145, - 0.02848859876394272, - -0.003922165837138891, - -0.03359271213412285, - -0.004227332305163145, - 0.007279639597982168, - 0.017382921651005745, - -0.04552615061402321, - 0.037632524967193604, - 0.01048128679394722, - 0.0650557428598404, - -0.012858603149652481, - -0.005024025682359934, - 0.0006035184487700462, - -0.002807926619425416, - 0.026904964819550514, - 0.0020261111203581095, - -0.00848898570984602, - 0.018492572009563446, - -0.09110523760318756, - -0.021784000098705292, - 0.04558563977479935, - -0.017025785520672798, - 0.05032787472009659, - 0.005008022300899029, - -0.0027640382759273052, - -0.0029083958361297846, - -0.0009049606160260737, - 0.030231207609176636, - 0.05180639773607254, - 0.01308396179229021, - 0.00854406226426363, - -0.05271858349442482, - 0.030057590454816818, - -0.0009880963480100036, - -0.07507147639989853, - 0.03144373744726181, - 0.028101881965994835, - 0.036896608769893646, - 0.056508541107177734, - 0.011423167772591114, - -0.352468341588974, - 0.0321187898516655, - -0.00048371945740655065, - 0.06703834235668182, - 0.07688835263252258, - -0.03959108144044876, - -0.050237733870744705, - -0.009194744750857353, - -0.007677893619984388, - 0.0424824133515358, - 0.07085501402616501, - 0.051444731652736664, - -0.004974030423909426, - -0.04442683234810829, - -0.04871832951903343, - -0.0093672601506114, - 0.01671738177537918, - -0.027764640748500824, - -0.022518418729305267, - -0.05765059217810631, - 0.07367056608200073, - -0.04475424066185951, - -0.025531237944960594, - -0.007282236125320196, - 0.0011070080799981952, - 0.03989849612116814, - -0.03426513075828552, - -0.07448522746562958, - -0.03427506238222122, - -0.013211332261562347, - 0.06645960360765457, - 0.054573558270931244, - 0.004090411122888327, - 0.27054929733276367, - 0.03909328579902649, - -0.02332855388522148, - -0.014906717464327812, - -0.0025937873870134354, - 0.07693513482809067, - -0.06631006300449371, - 0.012178813107311726, - -0.04025152325630188, - 0.012204461731016636, - 0.00014663697220385075, - -0.0250424612313509, - 0.03176449239253998, - -0.047333382070064545, - -0.01620365120470524, - 0.07204964011907578, - 0.036490753293037415, - -0.037407539784908295, - 0.06976296007633209, - -0.01096267532557249, - 0.03051743470132351, - 0.02429843321442604, - -0.02137417159974575, - 0.005429792683571577, - -0.013565665110945702, - -0.14362499117851257, - 0.029827117919921875, - 0.014996382407844067, - -0.01834077015519142, - -0.03186143562197685, - -0.01649767905473709, - -0.0052088787779212, - 0.018718553707003593, - 0.25050491094589233, - 0.00032948452280834317, - -0.032154567539691925, - 0.0022642684634774923, - -0.01817489042878151, - -0.012244525365531445, - -0.038313496857881546, - 0.02099132537841797, - -0.015892403200268745, - 0.0012731757014989853, - -0.010455908253788948, - 0.00289402948692441, - -0.005877207033336163, - -0.03647512197494507, - -0.00996133591979742, - -0.018671534955501556, - -0.022740444168448448, - 0.008825501427054405, - -0.013229095377027988, - -0.017011618241667747, - 0.1815372109413147, - 0.006018009036779404, - 0.021461207419633865, - 0.012763495557010174, - -0.011000573635101318, - 0.026040280237793922, - 0.006742639932781458, - -0.08000539988279343, - 0.008039473555982113, - 0.00023329694522544742, - 0.01023090910166502, - -0.0021843649446964264, - 0.00038796698208898306, - 0.020226290449500084, - -0.0364827997982502, - -0.00609947182238102, - -0.01760796085000038, - 0.0033750233706086874, - -0.0012348504969850183, - 0.06966317445039749, - 0.02459028922021389, - 0.014445270411670208, - -0.008557119406759739, - -0.004594499710947275, - -0.03382153809070587, - 0.027246814221143723, - -0.5110318660736084, - 0.013493642210960388, - 0.0012833530781790614, - 0.0034621120430529118, - 0.017421169206500053, - 0.0011021371465176344, - 0.035101745277643204, - -0.0675048753619194, - 0.04214613512158394, - 0.013428366743028164, - 0.001718083512969315, - -0.03951321542263031, - -0.0140068419277668, - 0.013935772702097893, - -0.0578506663441658, - 0.0040291715413331985, - -0.0593130923807621, - 0.018887648358941078 - ], - [ - -0.003582841483876109, - -0.0040522352792322636, - -0.027004865929484367, - 0.021721407771110535, - 0.0015445937169715762, - -0.001628258964046836, - -0.031248079612851143, - -0.019108666107058525, - -0.00021793172345496714, - -0.017309335991740227, - 0.021713577210903168, - -0.038538869470357895, - 0.016773322597146034, - 0.031590141355991364, - -0.0027400278486311436, - 0.22809547185897827, - 0.022426903247833252, - 0.03461908549070358, - 0.05495477467775345, - -0.03123517334461212, - 0.14179696142673492, - -0.10631029307842255, - 0.022652948275208473, - 0.028889184817671776, - 0.001192315947264433, - 0.014910256490111351, - -0.0016409388044849038, - -0.01917443610727787, - -0.016673361882567406, - 0.028030624613165855, - -0.0016017836751416326, - -0.021213874220848083, - 0.036303646862506866, - 0.01158121507614851, - 0.037534281611442566, - -0.0473800003528595, - -0.0017914596246555448, - 0.018184473738074303, - -0.02001534216105938, - 0.012585906311869621, - -0.00039118315908126533, - -0.00662290258333087, - 0.021264243870973587, - -0.01904708705842495, - 0.01139693334698677, - 0.05590910464525223, - -0.012532389722764492, - 0.0222417451441288, - -0.021457720547914505, - -0.06155817210674286, - 0.007485935930162668, - -0.07614629715681076, - -0.01166152860969305, - 0.012478352524340153, - 0.018442507833242416, - 0.05212993919849396, - -0.02098933793604374, - -0.03792611137032509, - 0.03142278641462326, - 0.048817142844200134, - 0.01666092686355114, - 0.06613924354314804, - 0.03708391264081001, - -0.07503030449151993, - 0.07984725385904312, - -0.015707535669207573, - 0.2149766981601715, - -0.019799107685685158, - 0.029651310294866562, - 0.020356621593236923, - 0.07200707495212555, - -0.11480003595352173, - -0.04147154465317726, - 0.011970535852015018, - -0.033881109207868576, - -0.0290368739515543, - -0.041428711265325546, - -0.0024839516263455153, - 0.007189421448856592, - 0.012933756224811077, - 0.015452052466571331, - -0.011462892405688763, - 0.371359258890152, - 0.030956009402871132, - 0.052614495158195496, - -0.06362960487604141, - -0.014466920867562294, - -0.04394131153821945, - 0.003975511994212866, - -0.03555667772889137, - -0.0074905529618263245, - -0.025886643677949905, - -0.21987083554267883, - -0.0032763471826910973, - 0.006150887347757816, - -0.03484687581658363, - -0.021477721631526947, - 0.03615351766347885, - -0.06757888197898865, - -0.010322131216526031, - 0.005542763043195009, - -0.00799642875790596, - 0.01635887287557125, - -0.057926006615161896, - 0.008581290021538734, - 0.017059199512004852, - 0.04067861661314964, - -0.049820855259895325, - 0.03478962928056717, - 0.0049507105723023415, - -0.021281858906149864, - -0.027152879163622856, - 6.890349322929978e-05, - -0.0009852498769760132, - -0.018234428018331528, - -0.019763462245464325, - 0.03291918337345123, - -0.004973001312464476, - 0.009160879999399185, - 0.020993465557694435, - 0.02934766188263893, - 0.05326870456337929, - 0.06521918624639511, - -0.022103067487478256, - 0.05312757566571236, - 0.00722781615331769, - 0.2956639528274536, - -0.026220370084047318, - -0.02248062565922737, - 0.022637298330664635, - 0.019251104444265366, - -0.023234300315380096, - -0.02522926591336727, - -0.012059316039085388, - 0.05422724038362503, - -0.012093004770576954, - 0.027944881469011307, - -0.027153801172971725, - 0.03473355993628502, - -0.03280114009976387, - -0.012983512133359909, - 0.015049634501338005, - 0.019094236195087433, - -0.007714414037764072, - -0.004889757838100195, - 0.07272817939519882, - -0.050789058208465576, - -0.025174634531140327, - -0.008937154896557331, - 0.01413652766495943, - 0.0032000867649912834, - 0.15342086553573608, - 0.004521678667515516, - 0.06822573393583298, - 0.02267816662788391, - 0.0050058020278811455, - -0.005872492678463459, - -0.06568354368209839, - -0.032693568617105484, - -0.38723108172416687, - 0.06020151078701019, - -0.018601031973958015, - 0.030847400426864624, - 0.02807595580816269, - -0.11004523187875748, - 0.07135342806577682, - -0.027102485299110413, - 0.06872385740280151, - -0.036727916449308395, - -0.026441598311066628, - 0.11364418268203735, - -0.03262990713119507, - 0.055944859981536865, - -0.043455976992845535, - 0.006101424340158701, - -0.03472958505153656, - 0.01785673387348652, - -0.012756896205246449, - 0.008607631549239159, - -0.09719938784837723, - 0.03325503319501877, - -0.019715530797839165, - 0.0069038341753184795, - 0.03147332742810249, - 0.020221786573529243, - 0.026679428294301033, - 0.024254178628325462, - -0.0011679697781801224, - -0.007374770473688841, - -0.026218930259346962, - -0.023766906931996346, - 0.029006559401750565, - -0.11741027235984802, - 0.07870371639728546, - -0.008594638668000698, - 0.04882512986660004, - -0.013815873302519321, - 0.011694575659930706, - -0.008508077822625637, - -0.018633045256137848, - 0.01388260442763567, - 0.07891565561294556, - -0.028661202639341354, - 0.020653771236538887, - -0.011593814007937908, - -0.0029244842007756233, - 0.006034965626895428, - 0.022855373099446297, - -0.019691625609993935, - 0.014576883986592293, - 0.028153443709015846, - 0.023832350969314575, - -0.09695451706647873, - -0.01940096914768219, - 0.029731737449765205, - -0.010199771262705326, - 0.09398338198661804, - -0.02004188485443592, - -0.06283679604530334, - 0.2226620614528656, - -0.00026882681413553655, - -0.024513017386198044, - -0.008974391967058182, - -0.018468590453267097, - 0.018434597179293633, - -0.03883085399866104, - 0.013585526496171951, - -0.03295609727501869, - 0.03624788299202919, - 0.01701989769935608, - -0.0234793983399868, - -0.08278652280569077, - -0.005119899287819862, - 0.019727973267436028, - 0.003859122982248664, - 0.012888594530522823, - 0.09075815230607986, - -0.010100972838699818, - 0.1970887929201126, - 0.0017637029523029923, - -0.04428812488913536, - -0.030963703989982605, - 0.005876507144421339, - 0.04321794956922531, - 0.020993676036596298, - 0.014678257517516613, - -0.08756541460752487, - -0.019004669040441513, - 0.04225270077586174, - 0.05761141702532768, - 0.02926371619105339, - 0.0015915087424218655, - 0.04663680121302605, - -0.046813689172267914, - -0.012538430280983448, - 0.0209721177816391 - ], - [ - -0.0001071687729563564, - 0.0012675243197008967, - -0.00044958406942896545, - 0.0006230013095773757, - -0.001388760283589363, - 0.00021869779448024929, - -0.00024365101126022637, - 0.0014968100003898144, - 0.0016082049114629626, - 0.000987799372524023, - -0.0015708979917690158, - 0.0014410833828151226, - 0.00013059705088380724, - -0.0017907640431076288, - -0.0014152488438412547, - 0.006313415709882975, - 0.00023025811242405325, - -0.003499148413538933, - -0.004148578271269798, - 0.002304524416103959, - -0.008501270785927773, - 0.004103316925466061, - -0.00035133148776367307, - -0.00111119425855577, - -0.0016561935190111399, - -0.0016516997711732984, - 0.0020366834942251444, - 0.0003884473699145019, - -0.00017492439656052738, - 0.0014247148064896464, - 0.000970102904830128, - 0.0022489249240607023, - 0.0006699171499349177, - -0.0004723878810182214, - -7.3056980909314e-05, - 0.0012518946314230561, - 0.00255966535769403, - 0.0008971720235422254, - 0.00039014071808196604, - -0.0007958195637911558, - 0.00035512191243469715, - 0.002332293661311269, - 5.0363789341645315e-05, - 0.000378646538592875, - -0.0021604765206575394, - -0.0008603055612184107, - 5.7268276577815413e-05, - -0.0017496433574706316, - 0.0009708757279440761, - 0.00013706323807127774, - -0.002510612830519676, - 0.008119256235659122, - -0.00010773684334708378, - -0.0013254783116281033, - -0.0018589574610814452, - -0.001045023207552731, - 0.0005940186674706638, - -0.0008891581674106419, - -0.007531928364187479, - -0.0007070532883517444, - -0.0006727912114001811, - -0.0032990435138344765, - 0.00047161843394860625, - 0.003379093948751688, - -0.005556600168347359, - 0.0023278577718883753, - -0.010864654555916786, - 0.0028220275416970253, - -0.001298791728913784, - -0.001406104420311749, - -0.0023035448975861073, - -0.07365334033966064, - 0.003532631788402796, - 0.005863247439265251, - -0.0015880510909482837, - -0.0003745084104593843, - 0.0024557290598750114, - 0.0009445134783163667, - -0.0021116919815540314, - 0.0029422203078866005, - -0.0004998146323487163, - -0.0005610021762549877, - -0.9183852076530457, - 0.0005152804078534245, - -0.004361716564744711, - 0.0028957535978406668, - 0.0010036141611635685, - 0.0018286184640601277, - 0.0006439632852561772, - 0.003234196687117219, - 0.0014203190803527832, - 0.0020411296281963587, - 0.006881101056933403, - -0.0005743299261666834, - 0.0028660425450652838, - 0.0033070389181375504, - 0.00022314867237582803, - -0.002198419999331236, - 0.0034536703024059534, - -0.0007644839351996779, - 0.0010501723736524582, - 0.0019075649324804544, - 0.0013841490726917982, - 0.0026488169096410275, - 0.0030472215730696917, - 0.0015017226105555892, - -0.002852627309039235, - 0.0010642888955771923, - -0.0012142825871706009, - -0.0006924545741640031, - 0.008004236035048962, - 0.0038661309517920017, - -0.0014390995493158698, - 1.7328948160866275e-05, - 0.0019290595082566142, - 0.0035540307871997356, - -0.0009498902363702655, - 0.00041049299761652946, - 0.0006263737450353801, - 0.0008939387043938041, - -0.0021004322916269302, - -0.002034927485510707, - -0.0018075024709105492, - 0.0020890175364911556, - -0.0025409709196537733, - -0.0011436649365350604, - 0.2820448577404022, - 0.00064184854272753, - 0.0005106842145323753, - 0.0004917841288261116, - 0.001128413830883801, - 0.003590750740841031, - 0.0011731196427717805, - -0.0006680252845399082, - -0.0020395363681018353, - 0.001353984116576612, - -0.0018446305766701698, - 0.0018711640732362866, - -0.001845714868977666, - 0.0008268554229289293, - 0.0009104175842367113, - -0.000938311917707324, - -0.001023505232296884, - -0.0007660134579055011, - 7.883306352596264e-06, - -0.005242204759269953, - 0.0008106767782010138, - 0.0004886671667918563, - -0.0010418974561616778, - 0.00024095502158161253, - -0.0007899943157099187, - -0.007514984346926212, - -0.0020769296679645777, - -0.005690565798431635, - -0.00311804236844182, - -0.00010472089343238622, - 0.0018876263638958335, - -0.0006759740062989295, - 0.0011537724640220404, - 0.2049708366394043, - -0.0009391177445650101, - 0.00027469531050883234, - -6.0883292462676764e-05, - 0.0009358312236145139, - 0.008649619296193123, - 0.09256679564714432, - 0.0021524333860725164, - -0.004378676414489746, - 0.0016476345481351018, - 0.0009185472154058516, - -0.005716178100556135, - 0.002773153828456998, - -0.0014632184756919742, - 0.0012874999083578587, - -0.0012568543897941709, - -0.0014187967171892524, - -4.491462095757015e-05, - 0.006297839339822531, - -0.0008107004687190056, - 0.005249418318271637, - -0.000819301581941545, - 0.0017334668664261699, - -0.0002526915050111711, - 0.00010027358075603843, - -0.005897011607885361, - -0.0003953662817366421, - 0.00031897524604573846, - -0.0019163949182257056, - 0.000915015407372266, - 0.001143485656939447, - 0.0011636189883574843, - -0.00020855785987805575, - -0.0596114844083786, - -0.005365786608308554, - 0.004088203422725201, - -0.0015864382730796933, - 0.0007509707938879728, - -2.6247656933264807e-05, - 0.0005484003340825438, - 0.0023777890019118786, - -0.0012096806894987822, - -0.003010199638083577, - 0.002340214094147086, - -0.0013915338786318898, - 0.000873749318998307, - 0.006484660319983959, - -0.0006747145671397448, - -0.002275375649333, - -0.0005706324009224772, - -0.00019995582988485694, - -0.0008763528312556446, - -0.0015650016721338034, - -0.05269678309559822, - 0.001187652931548655, - -0.0012865730095654726, - -0.00037878091097809374, - -0.0032534522470086813, - 0.0007798931910656393, - 0.003897093702107668, - -0.009980526752769947, - 0.0005627429345622659, - 0.000940302386879921, - -0.0002543102309573442, - -0.0006377745885401964, - -0.00011895888019353151, - 0.0006982370978221297, - -0.001138337654992938, - 0.0012134743155911565, - 0.0007364456541836262, - -0.00011664638441288844, - 0.00041878659976646304, - 0.00365866394713521, - 0.0022487714886665344, - -0.00018104974878951907, - -3.241634840378538e-05, - -0.0018751570023596287, - -0.004848936107009649, - 0.001884713303297758, - 0.11374419182538986, - -0.0002948769833892584, - 0.001996578648686409, - 0.001156309968791902, - -0.0006095888093113899, - -0.0033761661034077406, - -0.0014244912890717387, - -0.001071379636414349, - 0.005416247993707657, - 0.000724533514585346, - -0.0008386684930883348, - -0.0018529167864471674, - -5.632360989693552e-05, - 0.0009768379386514425, - -0.0026068987790495157, - 0.0012757173972204328, - -0.00278662727214396, - 0.0005630705272778869 - ], - [ - -0.018421467393636703, - -0.016395054757595062, - -0.0064078401774168015, - -0.03914791718125343, - -0.010207999497652054, - -0.002284203888848424, - 0.024870121851563454, - 0.0067961933091282845, - 0.0119557473808527, - 0.004057036247104406, - -0.019498826935887337, - 0.009811458177864552, - 0.023497330024838448, - 0.03475170582532883, - -0.0896727591753006, - -0.166253462433815, - -0.007549688685685396, - -0.03712518885731697, - -0.005026468075811863, - 0.0018496947595849633, - -0.06796889752149582, - 0.035952866077423096, - 0.006531411781907082, - -0.010511276312172413, - 0.002534520346671343, - -0.05810057371854782, - 0.021049577742815018, - -0.035671379417181015, - 0.0017737047746777534, - 0.062761589884758, - 0.022130446508526802, - 0.017500249668955803, - -0.0038883155211806297, - -0.014437814243137836, - 0.00473386375233531, - 0.055602315813302994, - 0.03670061379671097, - -0.005641293711960316, - -0.022227028384804726, - 0.021174142137169838, - -0.011536567471921444, - 0.010604608803987503, - 0.02068902738392353, - -0.05161576345562935, - 0.03683044761419296, - 0.07751046121120453, - -0.027237923815846443, - 0.020313257351517677, - -0.006466131657361984, - 0.03138808161020279, - -0.03893766179680824, - -0.02447955496609211, - -0.011038269847631454, - 0.03206968680024147, - 0.0322137251496315, - 0.008378492668271065, - -0.020752593874931335, - -0.007742142770439386, - -0.08944737166166306, - 0.09242723882198334, - -0.032679829746484756, - -0.03927809000015259, - 0.026671068742871284, - 0.08753687888383865, - -0.006516924127936363, - -0.02628232166171074, - -0.03504214435815811, - -0.01866874098777771, - 0.021674765273928642, - -0.024313772097229958, - -0.05094260722398758, - 0.1624310165643692, - 0.062012068927288055, - 0.004026513081043959, - -0.03544507548213005, - -0.02383606694638729, - -0.02547353319823742, - 0.021238893270492554, - -0.038381706923246384, - 0.018154598772525787, - 0.0033969832584261894, - -0.055969927459955215, - -0.2823805809020996, - -0.032780721783638, - -0.004298051819205284, - 0.006498571950942278, - 0.011807949282228947, - -0.009052003733813763, - 0.021037092432379723, - 0.006448735948652029, - 0.01581079326570034, - 0.01854064129292965, - 0.1800105720758438, - -0.006238899193704128, - 0.038437504321336746, - 0.029172351583838463, - -0.016544882208108902, - 0.016268370673060417, - 0.02067549154162407, - -0.0012719713849946856, - -0.011043485254049301, - -0.026900658383965492, - -0.07035452127456665, - -0.0068764579482376575, - -0.05305683612823486, - 0.004154917784035206, - 0.017419837415218353, - -0.02769078128039837, - 0.02791968174278736, - -0.0284755639731884, - -0.0003058107104152441, - 0.010571799241006374, - -0.02812115289270878, - -0.01726684905588627, - -0.031598050147295, - 0.014154746197164059, - 0.04029511287808418, - 0.04247620329260826, - 0.010636962950229645, - -0.020365756005048752, - -0.029585232958197594, - -0.013729222118854523, - 0.02937503717839718, - 0.0021857076790183783, - 0.07889052480459213, - 0.014591822400689125, - -0.5828096270561218, - 0.029907308518886566, - 0.016076574102044106, - 0.042349379509687424, - 0.08063345402479172, - -0.020502710714936256, - 0.003647403558716178, - -0.0013939413474872708, - -0.007068241015076637, - 0.014709373004734516, - 0.049787722527980804, - 0.03549841046333313, - -0.013748393394052982, - -0.020119501277804375, - 0.017716942355036736, - -0.016651278361678123, - -0.02925276570022106, - -0.016114598140120506, - -0.024280205368995667, - 0.0057541439309716225, - -0.03694150596857071, - -0.010732799768447876, - -0.004322450142353773, - 0.01189526729285717, - 0.0037672901526093483, - 0.0020497574005275965, - -0.0025306656025350094, - -0.010038226842880249, - -0.003662241157144308, - 0.00927876029163599, - 0.0011887631844729185, - 0.003328887280076742, - -0.01747501641511917, - 0.3607498109340668, - -0.008067898452281952, - 0.03181302174925804, - -0.026838669553399086, - -0.002500502159819007, - -0.0034383053425699472, - -0.11811058968305588, - 0.029525822028517723, - -0.028934355825185776, - -0.008118332363665104, - -0.008515478111803532, - -0.01475991029292345, - 0.031903889030218124, - -0.0010341329034417868, - -0.015102255158126354, - 0.06481638550758362, - -0.0398237518966198, - -0.04634840413928032, - 0.08737190812826157, - 0.02596803940832615, - -0.009257118217647076, - 0.01796146109700203, - 0.0072942874394357204, - -0.0249628983438015, - -0.015299225226044655, - -0.1659122109413147, - 0.02164909429848194, - -0.01083480753004551, - 0.0002512535429559648, - 0.020282762125134468, - 0.017042653635144234, - -0.004000257235020399, - -0.008608715608716011, - 0.21258363127708435, - 0.0024321575183421373, - -0.0020784814842045307, - 0.026521239429712296, - -0.019804667681455612, - -0.006526321172714233, - 0.0034131549764424562, - 0.01546730101108551, - -0.029606688767671585, - -0.04087698459625244, - 0.01586058922111988, - -0.03710847720503807, - -0.00018907414050772786, - -0.03208332508802414, - -0.06046978011727333, - -0.015322934836149216, - -0.03196796029806137, - -0.0024140626192092896, - 0.027615049853920937, - -0.0033421937841922045, - 0.1425664722919464, - -0.014232341200113297, - -0.03927898779511452, - 0.00910207536071539, - -0.03486693650484085, - -0.013341209851205349, - -0.020575223490595818, - -0.09295058250427246, - 0.013201883062720299, - -0.0226302370429039, - 0.03291710466146469, - 0.05933534353971481, - -0.0062290458008646965, - -0.008398276753723621, - -0.07402883470058441, - -0.02090774103999138, - -0.0196810532361269, - 0.006139951758086681, - -0.05118434131145477, - 0.01853863336145878, - 0.014860508032143116, - -0.012452632188796997, - 0.019468357786536217, - -0.0018731103045865893, - -0.01335526630282402, - 0.030075157061219215, - -0.17384235560894012, - 0.0027589304372668266, - 0.017309661954641342, - -0.007082379423081875, - -0.04209015890955925, - -0.013954783789813519, - 0.006612303201109171, - -0.020294031128287315, - 0.00324827223084867, - 0.03499908000230789, - -0.015120857395231724, - -0.02669038623571396, - 0.008893380872905254, - 0.03900972753763199, - -0.06319016963243484, - 0.01204720139503479, - -0.023975273594260216, - 0.01128806360065937 - ], - [ - -0.022021006792783737, - -0.029508477076888084, - -0.0021134689450263977, - -0.02815532498061657, - -0.014910511672496796, - 0.0043450105004012585, - 0.02680119313299656, - 0.03613519296050072, - 0.020160656422376633, - -0.0062188198789954185, - -0.01707940548658371, - 0.03740160912275314, - 0.029271844774484634, - 0.01728438027203083, - -0.0781402587890625, - -0.18330952525138855, - 0.005270523484796286, - -0.014978820458054543, - 0.038770705461502075, - 0.0009812318021431565, - -0.065796859562397, - 0.0006543169147334993, - -0.004163846373558044, - -0.030139388516545296, - 0.004435344133526087, - -0.022222379222512245, - 0.020359940826892853, - -0.014387763105332851, - 0.011082182638347149, - 0.06327605992555618, - 0.0074891867116093636, - 0.018687644973397255, - -0.016773872077465057, - 0.012835381552577019, - -0.003474394092336297, - 0.02381274662911892, - 0.022285636514425278, - -0.010039225220680237, - -0.00609611114487052, - 0.022269589826464653, - 0.0024018578696995974, - -0.0014585654716938734, - 0.005933371372520924, - -0.02239193208515644, - 0.04114465415477753, - 0.0726388692855835, - 0.008569040335714817, - 0.009350782260298729, - -0.010118022561073303, - 0.02266670949757099, - -0.02764512039721012, - -0.03487076610326767, - -0.014573569409549236, - 0.01018520724028349, - 0.03266464173793793, - -0.015702031552791595, - -0.009243534877896309, - -0.007724717725068331, - -0.0682934895157814, - 0.05378996580839157, - -0.057024840265512466, - -0.02294885367155075, - 0.019955182448029518, - 0.06205575913190842, - -0.02066073939204216, - -0.016398653388023376, - -0.060066107660532, - 0.0033318002242594957, - 0.022593339905142784, - -1.0575559826975223e-05, - -0.014192821457982063, - 0.1774628609418869, - 0.04037116840481758, - 0.04902218282222748, - -0.027661887928843498, - -0.024270178750157356, - -0.005549063440412283, - 0.005160215776413679, - -0.0374971479177475, - 0.048558250069618225, - 0.003891215892508626, - -0.04721446335315704, - 0.08166909962892532, - -0.01182763371616602, - 0.010286320932209492, - -0.002814125968143344, - 0.020001955330371857, - 0.006304580718278885, - 0.0007208599708974361, - -0.008983064442873001, - 0.015318687073886395, - 0.005365969613194466, - 0.21253934502601624, - -0.0017217788845300674, - 0.023865707218647003, - 0.049632009118795395, - -0.016376864165067673, - 0.01911154016852379, - 0.011767645366489887, - -0.0009230996365658939, - 0.0061068907380104065, - 0.0005432457546703517, - -0.02252170816063881, - -0.009317561984062195, - -0.09052671492099762, - 0.010769392363727093, - 0.03567635267972946, - -0.024995550513267517, - 0.0282160472124815, - -0.02109016664326191, - 0.0052510714158415794, - -0.0028030099347233772, - -0.006090725772082806, - -0.0065109082497656345, - -0.037665534764528275, - 0.015937164425849915, - 0.027592195197939873, - 0.030331993475556374, - 0.019430162385106087, - 0.0025387206114828587, - -0.03222275152802467, - -0.014186982996761799, - 0.040283702313899994, - 0.025996163487434387, - 0.09135190397500992, - 0.00988773349672556, - -0.6900907158851624, - 0.013065095990896225, - 0.007887189276516438, - 0.039821844547986984, - 0.05954831466078758, - -0.05199604853987694, - -0.02774200588464737, - -0.014546949416399002, - 0.005908783990889788, - 0.012661592103540897, - 0.0365489237010479, - 0.02925148978829384, - -0.026764703914523125, - -0.024271663278341293, - 0.011265022680163383, - -0.01964523084461689, - -0.013023221865296364, - -0.029329735785722733, - -0.011503261514008045, - -0.004139193799346685, - -0.02607010118663311, - -0.030566511675715446, - -0.03570685535669327, - -0.01696215756237507, - 0.019441677257418633, - -0.02253733202815056, - 0.0033049918711185455, - -0.02289593033492565, - -0.023548517376184464, - 0.011887338012456894, - 0.009714346379041672, - 0.008211846463382244, - -0.008547961711883545, - 0.2734147012233734, - 0.003962095361202955, - 0.018975241109728813, - -0.05724213272333145, - -0.013905877247452736, - -0.021431084722280502, - -0.11631478369235992, - 0.020757801830768585, - -0.03183833509683609, - -0.010913961566984653, - 0.005706306081265211, - 0.0026450040750205517, - 0.02193135768175125, - -0.0074770464561879635, - -0.02382751554250717, - 0.08649791032075882, - -0.03388329595327377, - -0.04421144351363182, - 0.06801118701696396, - 0.004090448841452599, - 0.0050794025883078575, - -0.0007591290632262826, - 0.0072103762067854404, - 0.0011692557018250227, - -0.0004610552859958261, - -0.1689298450946808, - 0.019696054980158806, - -0.01624685898423195, - -0.004843730013817549, - 0.022113550454378128, - 0.018712062388658524, - -0.019146515056490898, - -0.00030135310953482985, - 0.20495514571666718, - -0.004945574793964624, - -0.014711122028529644, - 0.019663067534565926, - -0.01462805550545454, - -0.00888228602707386, - 0.0024466942995786667, - 0.008991818875074387, - -0.015471050515770912, - -0.02289588935673237, - 0.0017401851946488023, - -0.025602541863918304, - -0.005980617366731167, - -0.038557130843400955, - -0.03274524211883545, - -0.01719849370419979, - -0.025113698095083237, - 0.020008962601423264, - 0.010463884100317955, - 0.01078895851969719, - 0.14074108004570007, - -0.006511959247291088, - -0.012970061041414738, - 0.007044213358312845, - -0.03861534968018532, - -0.0035498645156621933, - -0.008996978402137756, - -0.09505432844161987, - 0.019459234550595284, - -0.03548930212855339, - 0.019882116466760635, - 0.030554190278053284, - -0.0008739467593841255, - -0.005132115446031094, - -0.04448646679520607, - -0.017249785363674164, - -0.022948801517486572, - 0.01217789389193058, - -0.03948264941573143, - 0.0008836689521558583, - 0.03594217821955681, - 0.006813276559114456, - 0.008851658552885056, - 0.000492257357109338, - 0.007199103478342295, - 0.017913740128278732, - -0.20529808104038239, - -0.0016090056160464883, - 0.004847952164709568, - -0.009131032973527908, - -0.02360697090625763, - 0.011658532544970512, - 0.006361158564686775, - -0.022270184010267258, - -0.012262155301868916, - 0.041296038776636124, - 0.0036583917681127787, - -0.044959656894207, - 0.0015137400478124619, - 0.022135639563202858, - -0.04574882611632347, - 0.01646467112004757, - -0.026760701090097427, - 0.0285170990973711 - ], - [ - -0.046256083995103836, - -0.020495234057307243, - 0.026619773358106613, - -0.012369319796562195, - -0.03999584540724754, - -0.017343983054161072, - 0.049005262553691864, - -0.015233898535370827, - -0.01070310641080141, - -0.015330885536968708, - 0.008838750422000885, - 0.07433557510375977, - 0.041101519018411636, - 0.013246905989944935, - -0.06530717015266418, - -0.19000934064388275, - 0.0012084897607564926, - -0.0020392783917486668, - 0.04539182409644127, - 0.06640924513339996, - -0.031045904383063316, - -0.004749275743961334, - 0.03048083186149597, - -0.04112713783979416, - 0.011262234300374985, - -0.012014846317470074, - 0.027307655662298203, - -0.0367763377726078, - -0.0162457674741745, - 0.06291594356298447, - 0.020430246368050575, - 0.00019543700909707695, - -0.04621574282646179, - 0.03607523441314697, - -0.010299494490027428, - 0.01957072876393795, - 0.01655574142932892, - -0.01856514997780323, - 0.005402828566730022, - 0.01499925460666418, - -0.028965314850211143, - 0.019590016454458237, - -0.034907132387161255, - -0.01886100508272648, - 0.02125338464975357, - 0.07999572902917862, - 0.014114709571003914, - -0.004696415271610022, - -0.03528229147195816, - 0.029797617346048355, - -0.0519847646355629, - -0.02812524512410164, - -0.024094080552458763, - -0.028215479105710983, - 0.014679696410894394, - -0.011111984960734844, - -0.014500156044960022, - 0.0024157462175935507, - -0.04841367155313492, - 0.024240415543317795, - -0.03206484764814377, - -0.03740410506725311, - -0.015312664210796356, - 0.04056578129529953, - -0.038255494087934494, - 0.05328778922557831, - -0.04704608395695686, - 0.03916724771261215, - 0.000622978201135993, - 0.007448021788150072, - 0.028790762647986412, - 0.13095372915267944, - 0.0233701653778553, - 0.056653235107660294, - -0.04047711566090584, - -0.007072145584970713, - -0.021072667092084885, - -0.013271895237267017, - -0.06736376136541367, - -0.005594877991825342, - -0.009146255441009998, - -0.027973752468824387, - -0.33174753189086914, - 0.018440216779708862, - 0.03530184179544449, - -0.007624066434800625, - -0.0009472239180468023, - 0.027647873386740685, - -0.019809439778327942, - -0.03074871376156807, - 0.02605457790195942, - -0.012666149996221066, - 0.23029257357120514, - 0.05811513587832451, - 0.013683676719665527, - -0.009966828860342503, - -0.001724072266370058, - 0.029040606692433357, - -0.002472923370078206, - -0.018822278827428818, - 0.009340659715235233, - 0.005473307799547911, - -0.010462719947099686, - -0.02882678061723709, - -0.09480324387550354, - -0.008159994147717953, - 0.04342937842011452, - -0.05634814500808716, - 0.0036820056848227978, - -0.0631544291973114, - 0.02390419878065586, - 0.003423588816076517, - 0.033228348940610886, - -0.0019434149144217372, - -0.032286062836647034, - 0.017697757109999657, - 0.005770768038928509, - 0.010859854519367218, - 0.003256993368268013, - 0.03287492319941521, - 0.016400469467043877, - -0.012893160805106163, - 0.018975209444761276, - 0.003509259084239602, - 0.07881290465593338, - 0.035503752529621124, - -0.5708184242248535, - 0.009875268675386906, - -0.027656540274620056, - 0.030332600697875023, - 0.053252559155225754, - -0.09196449816226959, - -0.055454954504966736, - -0.010084274224936962, - 0.031729649752378464, - 0.006266056094318628, - 0.05739648640155792, - 0.06460787355899811, - -0.0035429431591182947, - 0.008959457278251648, - 0.01712883822619915, - 0.0005646481877192855, - -0.005891821347177029, - -0.03036673739552498, - 0.03365857154130936, - 0.0008414146723225713, - -0.038222819566726685, - -0.05569502338767052, - -0.019385797902941704, - -0.017819954082369804, - 0.029397645965218544, - -0.027776673436164856, - -0.0004864428483415395, - -0.03166104480624199, - -0.026789294555783272, - 0.0035549395252019167, - -0.0049308366142213345, - 0.015346716158092022, - 0.06725703924894333, - 0.35792112350463867, - 0.03383335843682289, - -0.031389035284519196, - -0.07503136992454529, - -0.04170551523566246, - 0.04820366948843002, - -0.07014347612857819, - -1.5612640709150583e-06, - 0.006721756886690855, - 0.014425912871956825, - 0.04817024618387222, - 0.04910130798816681, - -0.02989923395216465, - -0.009191448800265789, - 0.026296986266970634, - 0.10612792521715164, - 0.0015132774133235216, - -0.044210080057382584, - 0.05876702442765236, - 0.010190051980316639, - 0.045384153723716736, - -0.01676466502249241, - 0.01925818622112274, - 0.008893894031643867, - -0.009550096467137337, - -0.1536027491092682, - 0.018767250701785088, - -0.0115700988098979, - -0.016627054661512375, - 0.007198685314506292, - 0.0050607770681381226, - -0.024166062474250793, - 0.026202930137515068, - 0.14063304662704468, - -0.04085000231862068, - -0.04842381924390793, - 0.0028066046070307493, - -0.03559643402695656, - 0.013355609029531479, - 0.041868455708026886, - -0.034390270709991455, - -0.0034523301292210817, - -0.001292246743105352, - -0.020767124369740486, - -0.021304253488779068, - -0.027136534452438354, - -0.04461432993412018, - -0.03294694796204567, - -0.045709278434515, - -0.00634343083947897, - -0.006220328621566296, - -0.007535357493907213, - 0.015169690363109112, - 0.0975814089179039, - 0.016574015840888023, - 0.024797925725579262, - 0.02045525051653385, - -0.029117433354258537, - -0.011987620033323765, - -0.00031332552316598594, - -0.068368099629879, - 0.016649609431624413, - -0.0366717129945755, - 0.012172333896160126, - 0.01856076531112194, - -0.009762557223439217, - 0.006208683364093304, - -0.052405159920454025, - -0.032699402421712875, - -0.0424184575676918, - 0.010782838799059391, - -0.022554421797394753, - -0.031565386801958084, - 0.04428565129637718, - -0.015801899135112762, - -0.044779736548662186, - 0.0027714199386537075, - 0.012788393534719944, - 0.010795922949910164, - -0.10084684938192368, - 0.005654808599501848, - 0.020733928307890892, - 0.009011434391140938, - -0.015776032581925392, - 0.008277599699795246, - -0.027521993964910507, - -0.02904636785387993, - -0.01899106614291668, - 0.05500301346182823, - 0.06038413941860199, - -0.030143139883875847, - -0.017130058258771896, - 0.011821112595498562, - -0.04120800644159317, - -0.007961339317262173, - -0.007452007848769426, - 0.05843746289610863 - ], - [ - -0.020167730748653412, - -0.013659432530403137, - -0.0023292028345167637, - -0.024014579132199287, - -0.008814310654997826, - -0.0021929023787379265, - 0.013003796339035034, - 0.01770138368010521, - 0.008203758858144283, - 0.005000477656722069, - -0.009516539983451366, - 0.006290367338806391, - 0.014328144490718842, - 0.017874974757432938, - -0.05232474207878113, - -0.10719212889671326, - -0.00529898377135396, - -0.01823505572974682, - -0.010075283236801624, - -0.007283502258360386, - -0.04949657618999481, - 0.014729319140315056, - 0.0006486496422439814, - -0.005198371130973101, - -0.007838679477572441, - -0.02521693892776966, - 0.02054782584309578, - -0.020389452576637268, - 0.0028676646761596203, - 0.0390731543302536, - 0.01100374385714531, - 0.021398479118943214, - -0.01184482779353857, - -0.006283843424171209, - 0.0015680792275816202, - 0.02536132000386715, - 0.02552410587668419, - -0.00044205092126503587, - -0.007167533505707979, - 0.006654850207269192, - -0.012656830251216888, - 0.0036433448549360037, - 0.012971068732440472, - -0.0231285709887743, - 0.016600707545876503, - 0.042534347623586655, - -0.010781969875097275, - -0.006111331284046173, - -0.009218772873282433, - 0.007625434082001448, - -0.018368804827332497, - -0.02002182975411415, - -0.010656592436134815, - 0.014300059527158737, - 0.010861216112971306, - 0.0008079864783212543, - -0.0071774753741919994, - -0.014562107622623444, - -0.05344022065401077, - 0.04770609736442566, - -0.02922062762081623, - -0.02025257609784603, - 0.02306978963315487, - 0.049253638833761215, - -0.025024857372045517, - -0.014939269050955772, - -0.04627121984958649, - -0.0005116935353726149, - 0.01811356656253338, - -0.001019928022287786, - -0.023878781124949455, - 0.04374644160270691, - 0.04347732663154602, - 0.01703093759715557, - -0.026753725484013557, - -0.025691799819469452, - -0.003567740088328719, - 0.008660947903990746, - -0.024572104215621948, - 0.023351749405264854, - 0.0029742892365902662, - -0.027199966832995415, - -0.838813841342926, - -0.010302056558430195, - 0.0009757570223882794, - -0.0037858786527067423, - -0.0009703852701932192, - -0.0006572823040187359, - 0.008441436104476452, - -0.006008435040712357, - 0.00590331107378006, - 0.006861570756882429, - 0.1343519687652588, - -0.00856472086161375, - 0.027939213439822197, - 0.02074623480439186, - -0.009874382987618446, - 0.014180407859385014, - 0.015171834267675877, - -0.005966894328594208, - -0.009408574551343918, - -0.0023079158272594213, - -0.0284119825810194, - 0.004322396125644445, - -0.03013349510729313, - 0.014522970654070377, - 0.008525148965418339, - -0.01688200980424881, - 0.017605610191822052, - -0.012412666343152523, - 0.01338179875165224, - 0.003246330888941884, - -0.01340867206454277, - -0.008493068628013134, - -0.017131322994828224, - 0.009675190784037113, - 0.022220371291041374, - 0.018969988450407982, - 0.01735580712556839, - -0.000974154332652688, - -0.027417482808232307, - -0.006319452542811632, - 0.013023615814745426, - -0.005254208575934172, - 0.04002251848578453, - 0.007921985350549221, - -0.15210838615894318, - 0.019122067838907242, - 0.012610881589353085, - 0.03140156716108322, - 0.04515376314520836, - -0.007750818971544504, - -0.0002709343680180609, - -0.0044854311272501945, - 0.0012440680293366313, - -0.00024846059386618435, - 0.022723950445652008, - 0.02735293097794056, - -0.007991142570972443, - -0.00864099245518446, - 0.008506925776600838, - -0.01100393570959568, - -0.011404254473745823, - -0.008643115870654583, - -0.014424934983253479, - -0.001549913315102458, - -0.01743513159453869, - -0.008853264153003693, - -0.004938818980008364, - 0.004354854114353657, - 0.005433055572211742, - -0.01640835776925087, - -0.0003250676381867379, - -0.0046332599595189095, - -0.011813852936029434, - 0.0018326567951589823, - -0.004909474868327379, - 0.0010815572459250689, - -0.014202646911144257, - 0.37658220529556274, - 0.0006308845477178693, - 0.018719224259257317, - -0.014720536768436432, - -0.012202391400933266, - -0.0013099979842081666, - -0.0023252174723893404, - 0.02049359679222107, - -0.017699411138892174, - -0.0033623497001826763, - -0.0007097104680724442, - -0.0023419465869665146, - 0.024453027173876762, - -0.005892489571124315, - -0.008398962207138538, - 0.04015734791755676, - -0.019442187622189522, - -0.016451388597488403, - 0.054502200335264206, - 0.010915414430201054, - 0.0022889890242367983, - 0.015549332834780216, - -0.003518012585118413, - -0.008796035312116146, - -0.003611934371292591, - -0.10004273056983948, - 0.005327288992702961, - -0.0012691178126260638, - 0.00934488233178854, - 0.015160706825554371, - 0.009939543902873993, - -0.0077389744110405445, - -0.006759353913366795, - 0.0797930657863617, - -0.009784053079783916, - -0.011780782602727413, - 0.016666105017066002, - -0.017789116129279137, - -0.0038790120743215084, - 0.0053082737140357494, - 0.007167659234255552, - -0.022591689601540565, - -0.023346737027168274, - 0.012644500471651554, - -0.017548516392707825, - -0.007289217785000801, - -0.015350084751844406, - -0.033417731523513794, - -0.012919692322611809, - -0.015134988352656364, - 0.004248940385878086, - 0.010075027123093605, - -0.0021226138342171907, - 0.050335679203271866, - -0.00710076279938221, - -0.01209471095353365, - 0.007154405582696199, - -0.03067006729543209, - -0.004916537553071976, - -0.01115985307842493, - -0.066587433218956, - 0.005565030034631491, - -0.0057799071073532104, - 0.01933511346578598, - 0.02645966224372387, - -0.004083618056029081, - -0.012691227719187737, - -0.039206963032484055, - -0.009913850575685501, - -0.01609559915959835, - -0.003053754335269332, - -0.022442303597927094, - 0.016082363203167915, - 0.017314815893769264, - -0.005346218124032021, - 0.003015554044395685, - -0.010252406820654869, - -0.0016016103327274323, - 0.01850166544318199, - -0.019799834117293358, - 0.0008130514179356396, - 0.013281721621751785, - -0.004875582177191973, - -0.021900499239563942, - -0.0038485154509544373, - 0.008944109082221985, - -0.008589309640228748, - 0.00749425170943141, - 0.02311771921813488, - -0.005854131653904915, - -0.02102210931479931, - 0.012859867885708809, - 0.01203302200883627, - -0.023913642391562462, - 0.01848825253546238, - -0.02535906620323658, - 0.0013319684658199549 - ], - [ - -0.04251078516244888, - -0.028226077556610107, - 0.05247863754630089, - -0.005853750742971897, - -0.04273198917508125, - -0.005416566040366888, - 0.0407835878431797, - 0.06269552558660507, - 0.011603124439716339, - -0.022814026102423668, - -0.013859911821782589, - 0.051708269864320755, - -0.01848573610186577, - -0.018842710182070732, - -0.0827614963054657, - 0.008732469752430916, - 0.038822926580905914, - -0.05904996767640114, - -0.019803237169981003, - 0.04231761395931244, - -0.10565495491027832, - 0.05268620327115059, - -0.002046511508524418, - -0.05829489603638649, - -0.0002484479045961052, - -0.031182823702692986, - 0.024592610076069832, - 0.004782709758728743, - 0.028258157894015312, - 0.06601617485284805, - 0.003891357220709324, - 0.03947940468788147, - -0.014333044178783894, - 0.03481851890683174, - -0.039310768246650696, - 0.025370106101036072, - 0.028459524735808372, - -0.04036011919379234, - 0.021857719868421555, - 0.012386157177388668, - 0.05349663645029068, - -0.06503436714410782, - 0.0030874854419380426, - -0.0444224588572979, - 0.057783760130405426, - 0.03739508241415024, - 0.0013806360075250268, - -0.04836467280983925, - -0.03909142687916756, - -0.03231941908597946, - -0.012851168401539326, - -0.05328876152634621, - -0.033874813467264175, - 0.00743299163877964, - 0.06502115726470947, - 0.03606420010328293, - -0.01929841935634613, - 0.0274607352912426, - -0.0890139564871788, - 0.031363971531391144, - -0.09428737312555313, - -0.04635080695152283, - 0.03725248947739601, - 0.03715894743800163, - -0.0756368637084961, - -0.005366635508835316, - -0.060935065150260925, - -0.011065511964261532, - 0.02789682149887085, - 0.03426662087440491, - 0.026888029649853706, - 0.1673935055732727, - 0.06617686152458191, - 0.07042457163333893, - -0.03952181339263916, - -0.07865573465824127, - 0.04461444541811943, - -0.039323996752500534, - 0.000793692481238395, - 0.07362232357263565, - 0.01822931505739689, - -0.05876780301332474, - 0.07801863551139832, - 0.03915400803089142, - -0.002819109009578824, - -0.007851656526327133, - 0.03828531503677368, - 0.022363606840372086, - -0.02177850902080536, - -0.026918282732367516, - 0.006295506376773119, - -0.020535165444016457, - 0.014992428943514824, - 0.00466188183054328, - -0.01599278301000595, - 0.07519380003213882, - 0.0006168597610667348, - 0.0009559609461575747, - 0.006240283604711294, - -0.00010866673255804926, - 0.024218890815973282, - 0.012068181298673153, - 0.05024847388267517, - 0.06263311952352524, - -0.0973968431353569, - 0.04491248354315758, - 0.03534829244017601, - -0.007610207423567772, - 0.04199301078915596, - -0.013803652487695217, - 0.026607844978570938, - 0.006167138926684856, - 0.02132965438067913, - -0.0018897538539022207, - 0.038801487535238266, - 0.01069546863436699, - 0.03974713385105133, - -0.04848511144518852, - 0.08307736366987228, - 0.05162748694419861, - -0.1403777003288269, - 0.0336330384016037, - 0.032576218247413635, - 0.026099836453795433, - 0.06114064157009125, - 0.035303995013237, - -0.4406539797782898, - 0.039635736495256424, - 0.0026526544243097305, - 0.03643046319484711, - 0.08699265867471695, - -0.032242268323898315, - -0.034033969044685364, - -0.014132100157439709, - 0.045717302709817886, - 0.005301857367157936, - 0.09771019220352173, - 0.05148358270525932, - 0.02808227576315403, - -0.02635941095650196, - -0.05877659097313881, - -0.04902287572622299, - 0.03848089277744293, - -0.036609359085559845, - 0.014277873560786247, - -0.03728281706571579, - 0.08741464465856552, - -0.053323570638895035, - -0.06821172684431076, - -0.049473073333501816, - 0.0036076069809496403, - -0.021243371069431305, - -0.009594431146979332, - -0.031114595010876656, - -0.049238260835409164, - -0.033976949751377106, - 0.046936217695474625, - 0.03263065218925476, - 0.005594880320131779, - 0.16980712115764618, - 0.05039457976818085, - -0.03273579478263855, - -0.043043240904808044, - -0.04412759095430374, - 0.013923217542469501, - -0.06126660108566284, - 0.03292689844965935, - -0.04382239282131195, - 0.0351860485970974, - -0.005886221770197153, - 0.020704587921500206, - 0.04084546118974686, - -0.04856462404131889, - -0.010778583586215973, - 0.0830036997795105, - 0.06744332611560822, - -0.022755758836865425, - 0.03888145834207535, - 0.005412076134234667, - 0.0495276004076004, - 0.016461146995425224, - 0.0028328050393611193, - 0.002404704922810197, - -0.003139049978926778, - -0.17072926461696625, - 0.009707841090857983, - -0.0016123515088111162, - 0.0041044591926038265, - 0.049537383019924164, - -0.0021233134903013706, - 0.019884426146745682, - -0.013043027371168137, - 0.24696171283721924, - -0.00048029457684606314, - -0.058665335178375244, - 0.007568999659270048, - -0.04656629636883736, - -0.018518008291721344, - -0.035922225564718246, - 0.009522193111479282, - -0.03307448327541351, - -0.014788217842578888, - -0.023779969662427902, - 0.0075750877149403095, - 0.0009512369870208204, - -0.06343036890029907, - 0.001969599165022373, - -0.03284661844372749, - -0.014679066836833954, - 0.021107923239469528, - -0.08237434923648834, - -0.004014260601252317, - 0.17624709010124207, - 0.013876676559448242, - 0.020163871347904205, - 0.0041270144283771515, - -0.016108104959130287, - 0.031065629795193672, - -0.0593704879283905, - -0.0734962671995163, - 0.02730506658554077, - -0.01594497822225094, - -0.02898647077381611, - 0.005607787985354662, - 0.019031964242458344, - -0.006093342322856188, - -0.05702989175915718, - -0.000761235598474741, - -0.018774937838315964, - -0.006225816439837217, - 0.015662821009755135, - 0.08042427152395248, - 0.026189932599663734, - -0.01083200704306364, - -0.008045867085456848, - -0.019724521785974503, - -0.015209849923849106, - 0.036108892410993576, - -0.46746161580085754, - 0.0029579654801636934, - -0.018668681383132935, - -0.016442004591226578, - 0.016928154975175858, - 0.03189102187752724, - 0.01095504593104124, - -0.030779751017689705, - 0.02035912312567234, - 0.012240573763847351, - 0.025239218026399612, - -0.03745321184396744, - 0.03813078999519348, - 0.007198399398475885, - -0.054729022085666656, - -0.0023694911506026983, - -0.06932992488145828, - 0.021857386454939842 - ], - [ - -3.439027932472527e-05, - 0.0018710974836722016, - -0.0005802992964163423, - 0.0014809002168476582, - -0.001353943138383329, - 0.0007736002444289625, - -0.00034039790625683963, - 0.0020539022516459227, - 0.0021169402170926332, - 0.001085315947420895, - -0.0015796428779140115, - 0.0009489190997555852, - 0.0002458438684698194, - -0.0012813304783776402, - -0.0004923548549413681, - 0.007216624915599823, - -6.0739435866707936e-05, - -0.0034035935532301664, - -0.0038227373734116554, - 0.0021714004687964916, - -0.008746585808694363, - 0.004330270923674107, - -6.463014869950712e-05, - -0.0014858286594972014, - -0.0018886454636231065, - -0.0011447131400927901, - 0.002105445833876729, - 0.0007995449122972786, - -8.941256965044886e-05, - 0.0014750789850950241, - 0.0007196677615866065, - 0.002290126634761691, - 0.000647222506813705, - -7.752698729746044e-05, - 0.00022196430654730648, - 0.0007971536833792925, - 0.0026166222523897886, - 0.001239375094883144, - 0.0006070550298318267, - -0.000747224607039243, - 0.00040754827205091715, - 0.002267244039103389, - -0.00043669523438438773, - 0.0009522911859676242, - -0.001971757272258401, - -0.0009969553211703897, - 0.0003859378630295396, - -0.0017131228232756257, - 0.0012441362487152219, - -0.00012946123024448752, - -0.001922158757224679, - 0.008631122298538685, - -0.00018329547310713679, - -0.0008135191164910793, - -0.0020173732191324234, - -0.000959052296821028, - 0.001217631041072309, - -0.0004498727503232658, - -0.006838778965175152, - -0.0006706597632728517, - -0.0007001907797530293, - -0.002854058053344488, - 0.0006401589489541948, - 0.0032564597204327583, - -0.006038994062691927, - 0.002366321161389351, - -0.010192071087658405, - 0.0028784023597836494, - -0.0018712426535785198, - -0.0009547320660203695, - -0.0019292572978883982, - -0.07359692454338074, - 0.0028073403518646955, - 0.006551625207066536, - -0.001853831228800118, - -0.000695672701112926, - 0.0022776825353503227, - 0.0011483489070087671, - -0.0021174137946218252, - 0.003012744477018714, - 0.00011273442942183465, - -0.0006666062981821597, - -0.918299674987793, - 0.0010907328687608242, - -0.004490826278924942, - 0.0032108118757605553, - 0.0011942718410864472, - 0.0011483938433229923, - -6.684990512439981e-05, - 0.002976080635562539, - 0.0013367504579946399, - 0.002181390766054392, - 0.005710437428206205, - -8.22338042780757e-05, - 0.0029671541415154934, - 0.0035672893282026052, - 0.00021822736016474664, - -0.002211169106885791, - 0.0028798794373869896, - -0.000994832837022841, - 0.0022921287454664707, - 0.001640624599531293, - 0.0019425160717219114, - 0.002336326753720641, - 0.002664647763594985, - 0.0006036089034751058, - -0.0027591101825237274, - 0.001267818734049797, - -0.0009034077520482242, - -0.000337304052663967, - 0.008148787543177605, - 0.0031773250084370375, - -0.0010799560695886612, - 0.0005114704836159945, - 0.0021858757827430964, - 0.00321517838165164, - -0.001103995949961245, - -0.0003063620824832469, - 0.0007922498043626547, - 0.0008598417043685913, - -0.0019471619743853807, - -0.0021993613336235285, - -0.0018370216712355614, - 0.0024019633419811726, - -0.002505689160898328, - -0.0013379964511841536, - 0.28324615955352783, - 0.0006610674317926168, - 0.0002579429419711232, - 0.0008374604512937367, - 0.000699538504704833, - 0.002941329265013337, - 0.0005331016727723181, - -0.0008964355802163482, - -0.002189064398407936, - 0.0017671663081273437, - -0.0025542154908180237, - 0.001781409839168191, - -0.0017799698980525136, - 0.000710920721758157, - 0.00045705074444413185, - -0.000646229658741504, - -0.0011703596683219075, - -0.0005749982665292919, - -0.00018803444982040673, - -0.0057623134925961494, - 0.001789077534340322, - 0.0006722675752826035, - -0.0009279900114051998, - 0.00037570513086393476, - -0.0006338286329992115, - -0.0070555973798036575, - -0.0017893592594191432, - -0.006201691459864378, - -0.0031758048571646214, - 0.00015209901903290302, - 0.0024081801529973745, - -0.00023288298689294606, - 0.0009413285879418254, - 0.20424151420593262, - -0.0005573102971538901, - 0.0006546116783283651, - 0.00025569560239091516, - 0.001561508048325777, - 0.009152337908744812, - 0.09290992468595505, - 0.0016669131582602859, - -0.003952797036617994, - 0.001446963520720601, - 0.0011156650725752115, - -0.005688603036105633, - 0.0019778083078563213, - -0.002112786052748561, - 0.0006708463188260794, - -0.0016459719045087695, - -0.0013458476169034839, - 0.0003421797591727227, - 0.005892087239772081, - -0.0008123285952024162, - 0.005371341481804848, - -0.00014028367877472192, - 0.001609002472832799, - -1.2552532098197844e-05, - -4.04716884077061e-05, - -0.005071955733001232, - -0.0002863616682589054, - 0.0008618928259238601, - -0.0022894684225320816, - 0.0009582355269230902, - 0.0006912623648531735, - 0.001297798240557313, - 0.00010674021177692339, - -0.05984441190958023, - -0.004951645154505968, - 0.004763592034578323, - -0.0015174802392721176, - 0.0008429185254499316, - 0.00035977986408397555, - 6.164384831208736e-05, - 0.0022575492039322853, - -0.0006081642350181937, - -0.00228891777805984, - 0.0026055392809212208, - -0.0009506240021437407, - 0.000648465589620173, - 0.006408977322280407, - -0.0003534716961439699, - -0.002680669305846095, - -0.0005973736988380551, - -5.664450873155147e-05, - -0.0007181504042819142, - -0.0007068879203870893, - -0.05271964892745018, - 0.0007008292595855892, - -0.0005622731405310333, - -0.0004527448327280581, - -0.0030737752094864845, - 0.0007297574775293469, - 0.004136808682233095, - -0.009904387407004833, - 0.00044777023140341043, - 0.00031550333369523287, - -0.0004281611763872206, - -0.0010029211407527328, - -0.00018989703676197678, - 0.0012426034081727266, - -0.0006704661063849926, - 0.001256322837434709, - 0.0009262610110454261, - -0.00034096193849109113, - 0.0008295104489661753, - 0.003794353222474456, - 0.0018912508385255933, - 0.000521032779943198, - -0.00017243652837350965, - -0.0021175977308303118, - -0.004691776353865862, - 0.0018547845538705587, - 0.11247796565294266, - -5.03804039908573e-05, - 0.0018020191928371787, - 0.0010856089647859335, - -0.0006679773796349764, - -0.0034560137428343296, - -0.0007193897617980838, - -0.0012162895873188972, - 0.005111630540341139, - 0.0008494812063872814, - -0.0009581042104400694, - -0.0026954577770084143, - -0.0008875179919414222, - 0.0007669360493309796, - -0.0025460643228143454, - 0.0014914055354893208, - -0.0026089423336088657, - 0.00033350157900713384 - ], - [ - -0.000842174282297492, - 0.0014408135320991278, - -0.001151275704614818, - 0.00016209746536333114, - -0.0007816513534635305, - 0.0008011023746803403, - -0.0002623648033477366, - 0.0013460855698212981, - 0.001724891597405076, - 0.0009557484881952405, - -0.0019890889525413513, - 0.0016409489326179028, - 0.00029095797799527645, - -0.0016816091956570745, - -0.0014771108981221914, - 0.00509633356705308, - -0.00019233395869378, - -0.0033388501033186913, - -0.003936298657208681, - 0.0027711663860827684, - -0.00862426869571209, - 0.004264379385858774, - -0.00016658070671837777, - -0.001182865584269166, - -0.0016972551820799708, - -0.0019269807962700725, - 0.00141918717417866, - 0.0002554851525928825, - -0.00016612157924100757, - 0.0013740406138822436, - 0.0006769736646674573, - 0.0022193167824298143, - 0.0005868792068213224, - -0.00043467682553455234, - 0.0006572328857146204, - 0.0013930965214967728, - 0.0025094952434301376, - 0.0011839125072583556, - 0.0002829314034897834, - -0.0010801078751683235, - -0.000871236261446029, - 0.002455586101859808, - -7.719986024312675e-05, - 0.000579862215090543, - -0.0018581347540020943, - -0.0010572347091510892, - 1.4433817341341637e-05, - -0.0015794899081811309, - 0.0007462636567652225, - -6.0951162595301867e-05, - -0.0025329813361167908, - 0.008891191333532333, - 0.00010056990868179128, - -0.0011377546470612288, - -0.002349677961319685, - -0.0009993775747716427, - 0.0011725490912795067, - -0.0005355445900931954, - -0.007069324608892202, - -0.0005031180335208774, - -0.0003227938723284751, - -0.0035326501820236444, - 0.00034966616658493876, - 0.0033549005165696144, - -0.005891931243240833, - 0.002517594024538994, - -0.01111666765064001, - 0.003058437258005142, - -0.0019761782605201006, - -0.002005284884944558, - -0.0027688154950737953, - -0.07279250770807266, - 0.003380582667887211, - 0.0060048289597034454, - -0.0010049070697277784, - -0.00019626801076810807, - 0.0013135349145159125, - 0.001790177309885621, - -0.0023756844457238913, - 0.002746325684711337, - -0.0005877749063074589, - -2.178368049499113e-05, - -0.9191036224365234, - 0.0005534847732633352, - -0.004238248337060213, - 0.0027257294859737158, - 0.0007405444048345089, - 0.001360140973702073, - 9.970618702936918e-05, - 0.0038212519139051437, - 0.001157077495008707, - 0.0015503823524340987, - 0.007254703436046839, - -0.00012614659499377012, - 0.0029380095656961203, - 0.0028847400099039078, - 0.0002825447008945048, - -0.002250990131869912, - 0.003406224772334099, - -0.000966810854151845, - 0.0015116807771846652, - 0.002304692519828677, - 0.0012496603885665536, - 0.00151403050404042, - 0.0023915308993309736, - 0.0005489350878633559, - -0.0029745728243142366, - 0.001296004862524569, - -0.00169818673748523, - -0.0012999603059142828, - 0.00769251910969615, - 0.003093155100941658, - -0.0013263871660456061, - 0.0002004510461119935, - 0.0020715598948299885, - 0.0034285702276974916, - -0.001553478417918086, - 0.0006194289308041334, - 0.00037975056329742074, - 0.0010406015207991004, - -0.0008233434637077153, - -0.0022940586786717176, - -0.0020442793611437082, - 0.001701788860373199, - -0.002582729561254382, - -0.000862248707562685, - 0.27923789620399475, - 0.0008379933424293995, - 0.0009877131087705493, - 0.0005103222210891545, - 0.0009279166697524488, - 0.0031597798224538565, - 0.000704719393979758, - -0.0007965929107740521, - -0.0021475222893059254, - 0.0013639862881973386, - -0.002066372660920024, - 0.0011479284148663282, - -0.0025119921192526817, - 0.0009128579986281693, - 0.0008713948191143572, - -0.0005299602635204792, - -0.001240899320691824, - -0.0011319037294015288, - -0.00021455025125760585, - -0.005523162893950939, - 0.00035970148746855557, - 0.0007641318952664733, - -0.000374102994101122, - 0.00025108849513344467, - -0.0007110979058779776, - -0.007018360309302807, - -0.0018616024171933532, - -0.005327593069523573, - -0.002609726507216692, - 0.00040485482895746827, - 0.0012088732328265905, - -0.00019023996719624847, - 0.0010858293389901519, - 0.20671163499355316, - -0.0020178460981696844, - 0.0010976195335388184, - 0.0003108473611064255, - 0.0013489006087183952, - 0.00910914596170187, - 0.09173640608787537, - 0.0020529075991362333, - -0.003829005640000105, - 0.0010129396105185151, - 0.0016785592306405306, - -0.006338705774396658, - 0.00256380089558661, - -0.0016371228266507387, - 0.001022762036882341, - -0.0013698183465749025, - -0.0015171242412179708, - 7.175390055635944e-05, - 0.006295317783951759, - -0.0009442996815778315, - 0.004714996088296175, - -0.0006910902447998524, - 0.0023203163873404264, - -0.0001029767154250294, - -0.0005358377238735557, - -0.005474346689879894, - -0.00030940704164095223, - -0.00046705640852451324, - -0.001576094888150692, - 0.0008469123858958483, - 0.0009874446550384164, - 0.0012363673886284232, - -0.0004643648862838745, - -0.059077903628349304, - -0.00499921478331089, - 0.00438667880371213, - -0.0021571703255176544, - 0.0004816704022232443, - 0.0007749666110612452, - 0.0007237416575662792, - 0.0023520186077803373, - -0.0012099443702027202, - -0.002612857148051262, - 0.0027925355825573206, - -0.001502373837865889, - 0.0007622548146173358, - 0.006513697560876608, - -0.0004599069943651557, - -0.002354120370000601, - -0.0003005925682373345, - -0.00039183482294902205, - -0.0001256249233847484, - -0.0017138510011136532, - -0.05203009769320488, - 0.0015383970458060503, - -0.0013190684840083122, - 0.0002851829049177468, - -0.003182269399985671, - 0.0005072602652944624, - 0.003343726973980665, - -0.010278180241584778, - 0.0006970717222429812, - 0.0003522317565511912, - -0.00032404004014097154, - 4.646391244023107e-05, - -0.0003683796676341444, - 0.0011515541700646281, - -0.001268093939870596, - 0.0008296720334328711, - 0.0007384087075479329, - -0.0003763752174563706, - 0.0005633736145682633, - 0.0031746779568493366, - 0.0016436021542176604, - -0.0001844930520746857, - 0.00019364358740858734, - -0.0022937715984880924, - -0.004621407017111778, - 0.0019493631552904844, - 0.11353061348199844, - -4.6931629185564816e-05, - 0.0022285610903054476, - 0.0018699935171753168, - -0.0014085002476349473, - -0.0031740586273372173, - -0.0017473939806222916, - -0.001439105486497283, - 0.0052851345390081406, - 0.0007928478298708797, - -0.0009915379341691732, - -0.002521890215575695, - -0.0010928574483841658, - 0.0008788497070781887, - -0.0023231361992657185, - 0.0024526624474674463, - -0.002791064791381359, - 7.506888505304232e-05 - ], - [ - 0.008264574222266674, - 0.013754126615822315, - 0.009798809885978699, - 0.005868067499250174, - -0.03198117017745972, - 0.020000703632831573, - 0.0383320078253746, - 0.024328894913196564, - 0.05901951342821121, - -0.011909264139831066, - -0.02144496701657772, - 0.012689664028584957, - 0.00046739724348299205, - 0.04831317812204361, - 0.002597753657028079, - 0.0341862328350544, - -0.006238778121769428, - -0.1064627543091774, - -0.012457099743187428, - 0.05327976122498512, - -0.15030166506767273, - 0.011244657449424267, - -0.011733930557966232, - -0.01825997792184353, - 0.03501180559396744, - -0.04026379436254501, - 0.02354954555630684, - 0.010584862902760506, - 0.00117097410839051, - -0.004045354668051004, - -0.017887338995933533, - 0.010706884786486626, - -0.03902388736605644, - -0.046149421483278275, - -0.005905526224523783, - 0.01645577698945999, - 0.022680696099996567, - -0.0261753611266613, - 0.03252914920449257, - 0.05913843959569931, - 0.02177545242011547, - -0.010619757696986198, - 0.054992448538541794, - 0.003063392825424671, - 0.06159903481602669, - 0.033079858869314194, - 0.014020845293998718, - -0.06774994730949402, - 0.018679747357964516, - 0.021131712943315506, - -0.0016253053909167647, - -0.015242434106767178, - 0.0024577765725553036, - 0.05232066661119461, - -0.010573789477348328, - 0.04230419546365738, - 0.006018863525241613, - 0.07277970761060715, - -0.07699530571699142, - 0.023655056953430176, - -0.02619055286049843, - -0.06352681666612625, - 0.03452613204717636, - 0.010032600723206997, - -0.0013706085737794638, - -0.005426500458270311, - 0.09097771346569061, - -0.011668880470097065, - -0.002273532096296549, - -0.022347021847963333, - 0.027270479127764702, - 0.09844925999641418, - 0.019181814044713974, - 0.01047813892364502, - -0.03238336369395256, - -0.02556011639535427, - 0.0018118164734914899, - 0.04865904524922371, - -0.03627355396747589, - 0.04873722419142723, - 0.047595590353012085, - -0.07529661804437637, - -0.448047935962677, - 0.00900927186012268, - -0.03129211813211441, - 0.09936779737472534, - 0.05425262078642845, - -0.007922811433672905, - -0.0064369020983576775, - 0.010302153415977955, - 0.03404289856553078, - -0.019043635576963425, - -0.15878929197788239, - 0.03903048112988472, - 0.01106301136314869, - 0.017420798540115356, - -0.019843025133013725, - 0.014407552778720856, - -0.02657882496714592, - -0.021052300930023193, - 0.05839327350258827, - -0.030268697068095207, - -0.01759491302073002, - 0.01638118550181389, - -0.060383763164281845, - -0.04695937782526016, - 0.04053036496043205, - 0.031350277364254, - 0.06662147492170334, - -0.001676408457569778, - -0.02305523492395878, - -0.037466101348400116, - 0.008487229235470295, - 0.02225622907280922, - 0.08894403278827667, - 0.02283523418009281, - 0.014171368442475796, - -0.02467315085232258, - 0.02485106699168682, - 0.06254445761442184, - -0.050170063972473145, - 0.011412547901272774, - 0.014037582091987133, - 0.07704481482505798, - 0.06647159159183502, - 0.0013379654847085476, - -0.1536942571401596, - 0.09542113542556763, - -0.03542998433113098, - 0.039495088160037994, - -0.005556073971092701, - -0.025736043229699135, - -0.03408656269311905, - -0.020033152773976326, - 0.04951273277401924, - 0.059542134404182434, - 0.0025452643167227507, - 0.004700141493231058, - 0.019861597567796707, - -0.03730227053165436, - -0.07598808407783508, - -0.022223282605409622, - -0.000610537186730653, - -0.05926999822258949, - -0.011722788214683533, - -0.07501538097858429, - 0.05693920701742172, - 0.017570141702890396, - -0.05706873908638954, - 0.027988608926534653, - 0.003841948229819536, - 0.054628804326057434, - -0.0214215200394392, - -0.11616908758878708, - -0.051148656755685806, - 0.017720600590109825, - 0.03417915850877762, - -0.028489915654063225, - 0.00870666466653347, - 0.20281380414962769, - 0.045219022780656815, - -0.001754220575094223, - -0.03093203343451023, - 0.03196699172258377, - 0.12565357983112335, - 0.03660300374031067, - 0.048575256019830704, - -0.0183156318962574, - 0.002390594221651554, - -0.0444987528026104, - 0.03948161005973816, - 0.05963919311761856, - -0.08279558271169662, - -0.03976738825440407, - -0.018883641809225082, - 0.05976260080933571, - -0.039932988584041595, - 0.0743551030755043, - 0.047751862555742264, - 0.0406402088701725, - 0.0004988741129636765, - 0.09192938357591629, - 0.014705080538988113, - -0.015298157930374146, - -0.13002444803714752, - -0.0214520450681448, - 0.047034624963998795, - -0.08281021565198898, - 0.02472970262169838, - -0.033024657517671585, - 0.09039249271154404, - -0.0077614085748791695, - 0.24352720379829407, - -0.03362014517188072, - 0.028789862990379333, - -0.020345469936728477, - -0.06234518066048622, - -0.026293419301509857, - -0.06155728921294212, - 0.06682302057743073, - -0.030445924028754234, - -0.03396967425942421, - 0.011988939717411995, - -0.04737383872270584, - 0.01045199204236269, - -0.04803166538476944, - 0.014111818745732307, - -0.04457451030611992, - -0.038773808628320694, - 0.02839825674891472, - 0.007609461899846792, - 0.06798536330461502, - 0.11015195399522781, - 0.012679127044975758, - -0.010717618279159069, - -0.059858258813619614, - 0.031469665467739105, - 0.04037117958068848, - -0.0394035279750824, - -0.09007720649242401, - 0.021877512335777283, - -0.0472891665995121, - -0.0005689652170985937, - 0.028928933665156364, - 0.03599631413817406, - 0.019286682829260826, - -0.04112439602613449, - -0.04263267293572426, - -0.004538573324680328, - -0.01649848371744156, - 0.005851775873452425, - 0.04485808312892914, - -0.006637376267462969, - 0.03247446194291115, - 0.07293621450662613, - -0.05866505950689316, - -0.04540545865893364, - 0.06817135214805603, - -0.40488943457603455, - -0.00010810920502990484, - 0.0220131017267704, - 0.0030677958857268095, - 0.029580052942037582, - -0.00872552115470171, - -0.006534295622259378, - -0.08794548362493515, - -0.014319812878966331, - -0.003918052650988102, - -0.02147636003792286, - -0.06496436148881912, - 0.017060888931155205, - 0.023522207513451576, - -0.10198981314897537, - 0.01744975335896015, - -0.06803974509239197, - 0.0034018070437014103 - ], - [ - -0.032318178564310074, - -0.005854196846485138, - 0.014456884004175663, - 0.0004766658821608871, - -0.029983190819621086, - 0.004247068427503109, - 0.05470416694879532, - 0.005189436487853527, - 0.03303499147295952, - -0.014157515950500965, - -0.02154070883989334, - 0.054108232259750366, - 0.041910383850336075, - -0.005731499753892422, - -0.05191902071237564, - -0.17943383753299713, - 0.009866200387477875, - -0.02061469294130802, - 0.03861808404326439, - 0.030732594430446625, - -0.06102119758725166, - 0.0026488667353987694, - 0.010706575587391853, - -0.0273190438747406, - -0.020608138293027878, - -0.003705711802467704, - 0.02681669220328331, - -0.029207054525613785, - -0.015633633360266685, - 0.09397722780704498, - 0.00028884148923680186, - 0.02256905473768711, - -0.022213995456695557, - 0.011324220336973667, - -0.009747082367539406, - 0.00443184794858098, - -0.006971925497055054, - -0.007378235459327698, - -0.0033683821093291044, - -0.006665704306215048, - 0.017129098996520042, - -0.02395394816994667, - -0.01110486127436161, - -0.020815670490264893, - 0.040998589247465134, - 0.0924203097820282, - -0.0026405733078718185, - 0.0029200036078691483, - -0.03003280982375145, - -0.013904117979109287, - -0.008119734935462475, - -0.036273494362831116, - -0.02443370409309864, - -0.0173536017537117, - 0.016814181581139565, - -0.0007266575703397393, - 0.015572608448565006, - -0.02765948511660099, - -0.041545938700437546, - 0.04460723325610161, - -0.059046097099781036, - -0.04199615493416786, - 0.02632889710366726, - 0.027911828830838203, - -0.0646863579750061, - 0.008045720867812634, - -0.058720797300338745, - 0.05423131212592125, - -0.01119492668658495, - 0.02359355241060257, - -0.012257353402674198, - 0.16640466451644897, - 0.048009928315877914, - 0.08945498615503311, - -0.04857652634382248, - -0.03671187534928322, - -0.004448647610843182, - -0.013801352120935917, - -0.04742720350623131, - 0.04919230565428734, - 0.011449333280324936, - -0.027000201866030693, - -0.039596859365701675, - 0.010942304506897926, - 0.013453279621899128, - -0.005272075068205595, - 0.016312526538968086, - 0.01567998342216015, - -0.016673194244503975, - -0.04425922781229019, - 0.020926158875226974, - -0.010735958814620972, - 0.22369256615638733, - 0.04755617678165436, - 0.015625441446900368, - 0.02414952963590622, - -0.006307585164904594, - 0.033518142998218536, - -0.010644261725246906, - 0.00022365299810189754, - 0.008551065810024738, - 0.029791131615638733, - -0.0007733136881142855, - -0.0422993041574955, - -0.12762126326560974, - 0.019470345228910446, - 0.05939243361353874, - -0.04108294099569321, - 0.025707097724080086, - -0.031189778819680214, - 0.008989420719444752, - -0.02143416553735733, - 0.02933894284069538, - 0.0024100812152028084, - -0.02533203363418579, - 0.008254063315689564, - 0.0044028908014297485, - 0.0010947227710857987, - 0.030666153877973557, - 0.020972013473510742, - -0.01764879934489727, - -0.004754925612360239, - -0.005045635160058737, - 0.024141525849699974, - 0.10586495697498322, - 0.028122181072831154, - -0.6463686227798462, - 0.02954123727977276, - -0.01970112882554531, - 0.04666716977953911, - 0.06142282858490944, - -0.08198382705450058, - -0.03207921236753464, - -0.045196324586868286, - -0.0017526820302009583, - -0.014108662493526936, - 0.07284669578075409, - 0.041634999215602875, - -0.019915252923965454, - 0.01216647308319807, - -0.002293025841936469, - -0.003631394589319825, - 0.005368417594581842, - -0.028760720044374466, - 0.008709575980901718, - -0.006050808355212212, - -0.007972831837832928, - -0.029099643230438232, - -0.04307510331273079, - 0.005416506435722113, - 0.03722316399216652, - -0.03378918021917343, - -0.000624451320618391, - -0.030477775260806084, - -0.021932968869805336, - 0.011798159219324589, - 0.0355084165930748, - 0.03915446996688843, - 0.029494695365428925, - 0.28943127393722534, - 0.04288732632994652, - -0.007593263406306505, - -0.06519589573144913, - -0.03285696357488632, - -0.0063390713185071945, - -0.08470477163791656, - 0.006364356726408005, - -0.03245465084910393, - -0.003927736543118954, - 0.02782057784497738, - 0.034078098833560944, - 0.025342855602502823, - -0.042767129838466644, - -0.023837875574827194, - 0.09026727825403214, - -0.00912492722272873, - -0.04697198420763016, - 0.0691261813044548, - 0.00411385390907526, - 0.01227518916130066, - -0.0017343520885333419, - 0.023827243596315384, - 0.008875873871147633, - 0.004752761218696833, - -0.17763079702854156, - 0.039476003497838974, - -0.004002637229859829, - -0.0030321942176669836, - 0.02593303844332695, - 0.023055177181959152, - 0.001867285929620266, - 0.02536041848361492, - 0.19163797795772552, - -0.0287430789321661, - -0.0494282990694046, - -0.00771572208032012, - -0.00032475084299221635, - -0.0026300917379558086, - 0.031300973147153854, - 0.007554696407169104, - -0.019253360107541084, - -0.016827579587697983, - 0.00305748893879354, - 0.006400952581316233, - -0.0206840131431818, - -0.04068349674344063, - -0.014414673671126366, - -0.052271485328674316, - -0.0014267604565247893, - -0.0209801122546196, - -0.02203436940908432, - 0.019004277884960175, - 0.14156104624271393, - 0.007912592962384224, - 0.005150683224201202, - 0.023929007351398468, - -0.03501127287745476, - -0.02516942471265793, - -0.019454801455140114, - -0.0836540088057518, - 0.027960941195487976, - -0.01566612720489502, - 0.009771489538252354, - 0.007084635552018881, - 0.0028515243902802467, - -0.007335054688155651, - -0.029524870216846466, - -0.021913882344961166, - -0.02298673801124096, - -0.007642292883247137, - -0.00962426234036684, - -0.0005469209281727672, - 0.027217138558626175, - 0.02071905881166458, - -0.006900456268340349, - -0.009450866840779781, - 0.025554422289133072, - 0.003473703982308507, - -0.2038581520318985, - 0.004403063096106052, - 0.023191146552562714, - 0.005844687577337027, - -0.01762961596250534, - 0.01441870629787445, - 0.005237197503447533, - -0.032301004976034164, - -0.012491347268223763, - 0.0536281019449234, - 0.03054715320467949, - -0.04216298833489418, - -0.021647894755005836, - 0.021512284874916077, - -0.033694565296173096, - -0.007121184375137091, - -0.029281388968229294, - 0.01303368154913187 - ], - [ - -0.004869814030826092, - 0.004928986541926861, - 0.011301538906991482, - 0.010686937719583511, - -0.00986090861260891, - 0.012214293703436852, - 0.018230153247714043, - 0.043874818831682205, - 0.0460236519575119, - -0.009091952815651894, - -0.019467834383249283, - 0.007157637272030115, - -0.006248632445931435, - 0.028617357835173607, - -0.017829973250627518, - 0.032098978757858276, - -0.012467295862734318, - -0.04574934020638466, - -0.017440469935536385, - 0.038472626358270645, - -0.12621545791625977, - 0.04240911826491356, - 0.0039082118310034275, - -0.027313783764839172, - -0.008262516930699348, - -0.014614444226026535, - 0.01259706076234579, - 0.011159839108586311, - 0.001048769918270409, - 0.023494284600019455, - 0.006904745474457741, - 0.019850555807352066, - 0.0012879859423264861, - -0.0044364361092448235, - -0.00395522965118289, - 0.003171779913827777, - 0.025706205517053604, - -0.0006159337935969234, - 0.01713559962809086, - 0.042703039944171906, - 0.025087183341383934, - -0.005448272917419672, - 0.016323147341609, - -0.0025709259789437056, - 0.019306892529129982, - 0.01886378787457943, - 0.005820211488753557, - -0.04631901904940605, - 0.004349387250840664, - -0.016395967453718185, - -0.0010755505645647645, - 0.0026930083986371756, - -0.018753698095679283, - 0.037719760090112686, - 0.012658954598009586, - 0.0186766404658556, - 0.00692766485735774, - 0.038773901760578156, - -0.04287819191813469, - 0.033090442419052124, - -0.04177543893456459, - -0.03761324658989906, - 0.028671177104115486, - 0.022990869358181953, - -0.03161931782960892, - -0.008924581110477448, - 0.004470097832381725, - 0.004963902290910482, - -0.01047352235764265, - 0.0018785321153700352, - 0.022126739844679832, - 0.0675913617014885, - 0.01929120346903801, - 0.04290835186839104, - -0.03606594726443291, - -0.02779252640902996, - 0.01562676578760147, - 0.01074807159602642, - -0.010280583053827286, - 0.056684933602809906, - 0.036543235182762146, - -0.045135051012039185, - -0.7814366221427917, - 0.02091744728386402, - -0.024867266416549683, - 0.04410006105899811, - 0.02860085666179657, - -0.012333737686276436, - -0.01797662116587162, - -0.006224771961569786, - 0.0011771491263061762, - 0.007936605252325535, - -0.07299888134002686, - 0.029992999508976936, - 0.0027735186740756035, - 0.04753456264734268, - -0.009015102870762348, - -0.0025153320748358965, - -0.010043822228908539, - -0.0026959304232150316, - 0.04240705445408821, - -0.006065094377845526, - -0.0065221828408539295, - 0.02670864947140217, - -0.05181611701846123, - -0.019939612597227097, - 0.025741035118699074, - 0.01069545466452837, - 0.04160986840724945, - -0.00474819540977478, - -0.00037368180346675217, - -0.013715199194848537, - 0.005174373276531696, - 0.022930003702640533, - 0.046080272644758224, - 0.01165501493960619, - 0.0026560090482234955, - -0.032573096454143524, - 0.03232832998037338, - 0.007964571937918663, - -0.05407937243580818, - 0.012022824957966805, - 0.01196203101426363, - 0.048253558576107025, - 0.04561365768313408, - 0.010604511015117168, - -0.004419056233018637, - 0.03841521963477135, - -0.0015943696489557624, - 0.04518016800284386, - 0.01973351463675499, - -0.02277512289583683, - -0.03168738633394241, - -0.018611863255500793, - 0.012745174579322338, - 0.03133135288953781, - 0.03302082419395447, - 0.01204376108944416, - 0.01128693949431181, - -0.027768686413764954, - -0.045484792441129684, - -0.015806132927536964, - -0.0017568357288837433, - -0.021849513053894043, - -0.021269962191581726, - -0.05281803011894226, - 0.06069338694214821, - -0.007318674586713314, - -0.029190149158239365, - -0.005614223890006542, - -0.010093340650200844, - 0.03143750876188278, - -0.02309427224099636, - -0.0732855275273323, - -0.016460726037621498, - 0.013499187305569649, - 0.03452809527516365, - 0.018042530864477158, - 0.0004704519233200699, - 0.29331880807876587, - 0.033240191638469696, - 0.004490632563829422, - -0.01045820489525795, - 0.02404608018696308, - 0.07647942751646042, - 0.03958897292613983, - 0.016975199803709984, - -0.03268689662218094, - -0.004056456033140421, - -0.011653260327875614, - -0.007304334081709385, - 0.03536878526210785, - -0.057529546320438385, - -0.019750189036130905, - 0.013582296669483185, - 0.026690738275647163, - -0.014625279232859612, - 0.04721451550722122, - 0.019229382276535034, - 0.027033034712076187, - 0.025380941107869148, - 0.010277533903717995, - 0.004382357466965914, - -0.01211758702993393, - -0.10490241646766663, - -0.00040942910709418356, - 0.019790247082710266, - -0.03330867365002632, - 0.012616700492799282, - -0.023374659940600395, - 0.0354495570063591, - 0.013003983534872532, - 0.14782042801380157, - -0.0035432158038020134, - -0.007672877050936222, - -0.006842102389782667, - -0.030868615955114365, - -0.009793790057301521, - -0.02136019803583622, - 0.0367664135992527, - -0.013226362876594067, - -0.0070853629149496555, - 0.00899220909923315, - 0.0024154435377568007, - -0.008058089762926102, - -0.028929244726896286, - -0.0017049547750502825, - -0.02265903726220131, - -0.022634873166680336, - 0.006801767740398645, - 0.007113422267138958, - 0.01802896149456501, - 0.07755349576473236, - -0.004302528221160173, - 0.0031052674166858196, - -0.016455329954624176, - 0.0042752837762236595, - 0.026188962161540985, - -0.012101396918296814, - -0.08596697449684143, - 0.00875853467732668, - -0.0199646707624197, - 0.012325547635555267, - 0.009728150442242622, - 0.010767616331577301, - 0.0133590716868639, - -0.02720957249403, - -0.017289144918322563, - -0.004356355872005224, - -0.009699448011815548, - 0.003023038851097226, - 0.06716061383485794, - 0.0076053086668252945, - 0.021718451753258705, - 0.02495531737804413, - -0.026886947453022003, - -0.023328276351094246, - 0.033958517014980316, - -0.27405887842178345, - 0.011930755339562893, - 0.009708303958177567, - 0.0009461704175919294, - 0.010052131488919258, - -0.0024851171765476465, - 0.017022499814629555, - -0.057916827499866486, - 0.010842431336641312, - 0.003790120128542185, - 0.0014083395944908261, - -0.03721638396382332, - 0.003260960802435875, - 0.013584096916019917, - -0.050005748867988586, - 0.005833867937326431, - -0.03794735670089722, - 8.419564983341843e-05 - ], - [ - -0.03313983604311943, - -0.0383443608880043, - 0.020973825827240944, - -0.03737255558371544, - -0.014858716167509556, - -0.014051258563995361, - 0.042724572122097015, - -0.015625128522515297, - -0.012246834114193916, - -0.0029368670657277107, - -0.010966294445097446, - 0.0589401014149189, - 0.040311165153980255, - 0.006246615666896105, - -0.06915982067584991, - -0.19910956919193268, - -0.005843208637088537, - -0.028043892234563828, - 0.03867647796869278, - 0.0404682382941246, - -0.04085858166217804, - 0.008833659812808037, - 0.00945329200476408, - -0.021627431735396385, - 0.012921309098601341, - -0.018916428089141846, - 0.021877771243453026, - -0.002915214980021119, - -0.009037612937390804, - 0.07029914855957031, - 0.0015252286102622747, - -0.012372750788927078, - -0.03441651538014412, - 0.009707609191536903, - -0.006575385108590126, - 0.01194411888718605, - 0.023008564487099648, - -0.030289193615317345, - -0.0173575971275568, - 0.002865223214030266, - 0.0058236620388925076, - 0.012223642319440842, - -0.007833260111510754, - -0.014505249448120594, - 0.03019041381776333, - 0.08735742419958115, - 0.0014669225784018636, - 0.006145402789115906, - -0.02295573614537716, - 0.005323234014213085, - -0.03853054344654083, - -0.03773783892393112, - -0.014846660196781158, - 0.009933680295944214, - 0.025672880932688713, - 0.015265914611518383, - -0.00849842093884945, - 0.007173674181103706, - -0.05464955419301987, - 0.023579010739922523, - -0.03750669211149216, - -0.042072393000125885, - 0.016413342207670212, - 0.03869777172803879, - -0.033265452831983566, - 0.012284023687243462, - -0.04670009762048721, - 0.007281033787876368, - 0.0072675845585763454, - -0.003950628452003002, - -0.018419312313199043, - 0.17086519300937653, - 0.048262882977724075, - 0.06270609050989151, - -0.04900475963950157, - -0.005083820316940546, - -0.0016897055320441723, - 0.005201663356274366, - -0.039009369909763336, - 0.020989032462239265, - -0.003776062745600939, - -0.023276740685105324, - 0.00026316504226997495, - -0.006401840131729841, - 0.01670394092798233, - 0.002141439588740468, - 0.009689249098300934, - 0.013859388418495655, - -0.01591380313038826, - -0.01757524348795414, - 0.011643956415355206, - -0.007284246850758791, - 0.19075579941272736, - 0.04275791347026825, - 0.01905934326350689, - 0.007841909304261208, - -0.012194323353469372, - 0.02275620959699154, - 0.005743240471929312, - -0.007746177259832621, - 0.02157732844352722, - 0.02436765842139721, - -0.01434847991913557, - -0.035586219280958176, - -0.09089026600122452, - -0.001016516936942935, - 0.04764246940612793, - -0.03546002879738808, - 0.02726927027106285, - -0.041826747357845306, - 0.00269663636572659, - -0.0023361369967460632, - 0.015229834243655205, - -0.011414403095841408, - -0.01856248453259468, - 0.012715579941868782, - 0.013167919591069221, - 0.020403189584612846, - 0.010687495581805706, - 0.025735508650541306, - -0.004660168197005987, - -0.005602167919278145, - 0.022996438667178154, - 0.0139652444049716, - 0.08332148939371109, - 0.027974138036370277, - -0.6923525333404541, - 0.011203929781913757, - -0.0008959803963080049, - 0.03357542306184769, - 0.054186996072530746, - -0.05224006995558739, - -0.028194228187203407, - -0.023213649168610573, - 0.021484730765223503, - 0.001334235887043178, - 0.05267791077494621, - 0.032960981130599976, - -0.021325092762708664, - -0.012426569126546383, - -0.0016404924681410193, - -0.003126987023279071, - 0.009347272105515003, - -0.03278597071766853, - 0.005321571137756109, - 0.001150523079559207, - -0.015515483915805817, - -0.04930636286735535, - -0.04512707144021988, - -0.022117160260677338, - 0.03256845846772194, - -0.0086555490270257, - -0.010626867413520813, - -0.034122589975595474, - -0.0359373465180397, - 0.0013593070907518268, - 0.017458714544773102, - 0.022983189672231674, - 0.03364236280322075, - 0.29458171129226685, - 0.01368262991309166, - -0.014498869888484478, - -0.06078827753663063, - -0.02423792891204357, - 0.012464573606848717, - -0.11059672385454178, - 0.014348098076879978, - -0.021223969757556915, - 0.0072503709234297276, - 0.02428792044520378, - 0.021700693294405937, - 0.004588017705827951, - -0.009260647930204868, - -0.007922620512545109, - 0.09300350397825241, - -0.000975601957179606, - -0.039991315454244614, - 0.07727866619825363, - -0.0014359341003000736, - 0.019447892904281616, - -0.024469474330544472, - 0.023459723219275475, - 0.00933811441063881, - -0.012285293079912663, - -0.1702628880739212, - 0.021164309233427048, - -0.017660923302173615, - 0.008423678576946259, - 0.014818466268479824, - 0.017708072438836098, - -0.006408924236893654, - -0.0006917635910212994, - 0.20303559303283691, - -0.01734253205358982, - -0.037250302731990814, - 0.0013501652283594012, - -0.0286408644169569, - -0.01437309104949236, - 0.013810275122523308, - -0.008760511875152588, - -0.007394297979772091, - -0.013650378212332726, - 0.0062256441451609135, - -0.028217554092407227, - -0.008696917444467545, - -0.029456209391355515, - -0.023544710129499435, - -0.022368168458342552, - -0.006479548756033182, - 0.009179898537695408, - 0.001067467383109033, - -0.005924014840275049, - 0.1403104066848755, - 0.019219262525439262, - -0.002991819055750966, - 0.011723988689482212, - -0.0272615235298872, - -0.01738242246210575, - -0.004360332153737545, - -0.06263691931962967, - 0.014601214788854122, - -0.03115605190396309, - 0.012131350114941597, - 0.0380575992166996, - -0.0018441576976329088, - -0.0027653456199914217, - -0.05317992344498634, - -0.013926616869866848, - -0.028388338163495064, - 0.004443790297955275, - -0.03597832843661308, - -0.005041413940489292, - 0.0181875117123127, - -0.017409009858965874, - -0.011145205236971378, - -0.014824610203504562, - 0.007812391966581345, - 0.018218107521533966, - -0.19831646978855133, - -0.007912508212029934, - 0.002379212062805891, - 0.010820983909070492, - -0.028988733887672424, - 0.008411682210862637, - -0.021245921030640602, - -0.021251391619443893, - -0.010655638761818409, - 0.047863103449344635, - 0.026648711413145065, - -0.03783491626381874, - -0.013173994608223438, - 0.008831952698528767, - -0.0633273497223854, - 0.009671780280768871, - -0.030284292995929718, - 0.02684389241039753 - ], - [ - -0.05875154212117195, - -0.03315146267414093, - -0.012290948070585728, - -0.024051284417510033, - -0.02517896704375744, - 0.002369950758293271, - 0.01571110263466835, - 0.002565470989793539, - 0.02024386078119278, - -0.0010461166966706514, - 0.01052428875118494, - 0.022321505472064018, - 0.04192458465695381, - 0.02820558100938797, - -0.08117842674255371, - -0.23224027454853058, - -0.024273984134197235, - 0.006412668153643608, - 0.022702744230628014, - 0.003170511918142438, - -0.028128251433372498, - 0.015745513141155243, - 0.04087726026773453, - -0.002560511464253068, - -0.007288369815796614, - -0.022278832271695137, - 0.03931311517953873, - -0.011785554699599743, - -0.021476401016116142, - 0.07280326634645462, - 0.007033687550574541, - -0.007398361340165138, - -0.04001111909747124, - -8.315545710502192e-05, - 0.0015320846578106284, - 0.024858584627509117, - 0.038356587290763855, - -0.0076078446581959724, - -0.025009384378790855, - -0.032792828977108, - -0.02906518243253231, - -0.001027271500788629, - -0.008397513069212437, - -0.016505079343914986, - 0.017951663583517075, - 0.08201941847801208, - -0.020194517448544502, - 0.027267539873719215, - -0.015882903710007668, - -0.009164588525891304, - -0.027246344834566116, - -0.01749993860721588, - -0.00017953159112948924, - 0.04012937843799591, - 0.007696148473769426, - 0.015080885961651802, - 0.0017788938712328672, - -0.020392561331391335, - -0.03956633061170578, - 0.051266759634017944, - -0.038098204880952835, - -0.014811700209975243, - 0.030088113620877266, - 0.04775521159172058, - -0.035020049661397934, - 0.004666386172175407, - -0.04666464030742645, - 0.010522308759391308, - 0.01219903863966465, - 0.0006636714097112417, - -0.05454304814338684, - 0.16422101855278015, - 0.04300285503268242, - 0.06760253012180328, - -0.03867612034082413, - 0.0032170626800507307, - -0.001364709809422493, - -0.007601035758852959, - -0.04471440240740776, - 0.03772495687007904, - 0.01104714348912239, - -0.018970098346471786, - 0.2422054409980774, - -0.007029035594314337, - 0.003933462779968977, - -0.0035591693595051765, - -0.022080102935433388, - -0.008814237080514431, - -0.003160682041198015, - -0.03885098919272423, - -0.007018058095127344, - 0.009292451664805412, - 0.19986630976200104, - 0.008411635644733906, - 0.04092245176434517, - 0.013978853821754456, - -0.009666036814451218, - 0.024247577413916588, - -0.008512048050761223, - -0.010024748742580414, - 0.030656056478619576, - 0.008701498620212078, - -0.0367804616689682, - -0.03497277572751045, - -0.07000087201595306, - -0.02348407171666622, - 0.03303659334778786, - -0.02516302652657032, - 0.03522731736302376, - -0.0396779365837574, - 0.022228198125958443, - 0.012437132187187672, - 0.0026683509349823, - 0.004194083623588085, - -0.03714617341756821, - -0.0027386050205677748, - 0.0171944722533226, - 0.043570633977651596, - 0.02519792504608631, - -0.012195797637104988, - 0.00797942839562893, - 0.0016525676473975182, - 0.022506380453705788, - 0.016897602006793022, - 0.07192462682723999, - 0.021190756931900978, - -0.7097486257553101, - 0.004392326809465885, - 0.011436535976827145, - 0.03992988541722298, - 0.05370250716805458, - -0.02446775510907173, - -0.017195120453834534, - -0.06289993226528168, - 0.005917982663959265, - -0.006976308301091194, - 0.012014377862215042, - 0.02668004296720028, - -0.015258013270795345, - -0.01272659469395876, - 0.010435446165502071, - -0.013311086222529411, - 0.008102674968540668, - -0.008646990172564983, - 0.0038800493348389864, - 0.014496713876724243, - -0.02428261749446392, - -0.011526025831699371, - -0.0445803664624691, - 0.010892583057284355, - 0.012387324124574661, - 0.022527210414409637, - 0.01186380535364151, - -0.024083184078335762, - -0.014602911658585072, - 0.011098953895270824, - -0.018697023391723633, - 0.007936513982713223, - 0.003414558945223689, - 0.2263588160276413, - 0.00897233560681343, - 0.0033226453233510256, - -0.04903407394886017, - -0.02838657796382904, - 0.00043018837459385395, - -0.12584657967090607, - 0.010511673986911774, - -0.014649240300059319, - -0.006906521040946245, - 0.007046045735478401, - 0.02012832835316658, - 0.011049820110201836, - -0.021318797022104263, - -0.01656942442059517, - 0.0564444325864315, - -0.04130877926945686, - -0.01519437413662672, - 0.06215957552194595, - 0.014313830062747002, - -0.003907089587301016, - -0.012076622806489468, - 0.00677503552287817, - 0.003026716411113739, - -0.02025661990046501, - -0.11980582028627396, - -0.0001478074846090749, - -0.00231453450396657, - 0.021622678264975548, - 0.011443248949944973, - -0.0063689881935715675, - -0.013125943019986153, - 0.008924364112317562, - 0.16958652436733246, - -0.0056081549264490604, - 0.0009209918207488954, - 0.0013573936885222793, - -0.03950042277574539, - -0.01326998881995678, - 0.02805536612868309, - 0.005123017821460962, - -0.005718221887946129, - -0.007338361348956823, - 0.014857519418001175, - -0.005911254324018955, - -0.025234347209334373, - -0.003793909214437008, - -0.010778329335153103, - -0.01684962585568428, - -0.005970804486423731, - 0.005316778551787138, - -0.004293527919799089, - 0.005532140843570232, - 0.12711331248283386, - -0.004043686669319868, - -0.016629833728075027, - 0.01775924116373062, - -0.03672962635755539, - -0.013903582468628883, - 0.00150828727055341, - -0.07018277049064636, - -0.009733188897371292, - -0.021596089005470276, - 0.017471328377723694, - 0.050235580652952194, - -0.014439038001000881, - -0.005561476573348045, - -0.036202721297740936, - -0.027798857539892197, - -0.02303721010684967, - -0.030952097848057747, - -0.011417903006076813, - 0.001008572755381465, - 0.013666206039488316, - -0.00396887818351388, - 0.0051850867457687855, - -0.008796398527920246, - 0.024418307468295097, - 0.005033987108618021, - -0.11581970751285553, - -0.0014497290831059217, - 0.010114424861967564, - 0.018392065539956093, - -0.056052934378385544, - 0.009023732505738735, - -0.03367286175489426, - -0.015277284197509289, - -0.020644260570406914, - 0.05510123446583748, - 0.022169705480337143, - -0.04013100266456604, - -0.05499168857932091, - -0.0014274785062298179, - -0.0527714341878891, - 0.02718058042228222, - -0.0596981942653656, - 0.007930715568363667 - ], - [ - -0.045124348253011703, - -0.0052734860219061375, - 0.001756627461872995, - -0.004519338253885508, - -0.021951837465167046, - 0.004426707047969103, - 0.02950170449912548, - 0.044946275651454926, - 0.018840502947568893, - -0.026098094880580902, - -0.012266975827515125, - 0.03770852088928223, - 0.022477205842733383, - 0.04279350861907005, - -0.07410495728254318, - -0.1031339094042778, - -0.027481915429234505, - -0.03810057044029236, - -0.01972401887178421, - -0.0012875754619017243, - -0.12182249873876572, - 0.0459120012819767, - 0.010566070675849915, - -0.025842837989330292, - -0.029118219390511513, - -0.030758371576666832, - 0.02788362465798855, - -0.00980584416538477, - 0.004186026286333799, - 0.06763511151075363, - 0.005566425621509552, - 0.013004271313548088, - -0.027416931465268135, - 0.0042426870204508305, - 0.02551710046827793, - 0.022259026765823364, - 0.05442731827497482, - 0.009004768915474415, - -0.003306945553049445, - 0.025619203224778175, - -0.005121423862874508, - -0.02613486349582672, - -0.008915028534829617, - -0.022533223032951355, - 0.032497335225343704, - 0.05775030329823494, - -0.012802681885659695, - -0.040081772953271866, - -0.02496887743473053, - -0.02146703377366066, - -0.011243402026593685, - -0.0301028024405241, - -0.01923268660902977, - 0.05237140879034996, - 0.013835241086781025, - 0.01711314171552658, - 0.03101603128015995, - 0.028433388099074364, - -0.051500990986824036, - 0.0677034929394722, - -0.08286529779434204, - -0.04390442743897438, - 0.04748602956533432, - 0.0636683851480484, - -0.06848138570785522, - 0.003285493701696396, - -0.05236281454563141, - -0.0014763115905225277, - 0.0033201444894075394, - 0.014145872555673122, - -0.0203559510409832, - 0.19492748379707336, - 0.038243770599365234, - 0.08188579231500626, - -0.04709630459547043, - -0.058433618396520615, - -0.0006497960421256721, - 0.008309951052069664, - -0.03935279697179794, - 0.06178708001971245, - 0.026166878640651703, - -0.040292102843523026, - -0.15914590656757355, - 0.010344508104026318, - 0.0023881972301751375, - -0.0012236929032951593, - 0.013944965787231922, - -0.01335463859140873, - -0.012780090793967247, - -0.02146845869719982, - 0.00902269035577774, - 0.005031936336308718, - 0.09520875662565231, - 0.03105618618428707, - 0.019278014078736305, - 0.05523854121565819, - -0.010812022723257542, - -0.00148925487883389, - -0.01495704147964716, - -0.006141728721559048, - 0.03934735432267189, - -0.00020999756816308945, - -0.0009130151593126357, - -0.01868177019059658, - -0.10400565713644028, - -0.015515264123678207, - 0.033940885215997696, - -0.02695515565574169, - 0.037018563598394394, - -0.0007564035477116704, - 0.0021338886581361294, - -0.010615763254463673, - 0.00040416052797809243, - 0.006014891434460878, - 0.009451090358197689, - 0.01529686152935028, - 0.03266257792711258, - -0.00018258998170495033, - 0.040631234645843506, - 0.0031068972311913967, - -0.05672723054885864, - -2.793273415591102e-05, - 0.03769994154572487, - 0.006338116247206926, - 0.07698211818933487, - 0.03591540455818176, - -0.5533618330955505, - 0.027220118790864944, - 0.026949871331453323, - 0.06755797564983368, - 0.064710333943367, - -0.04496223106980324, - -0.03390283137559891, - -0.03244561702013016, - 0.004053999204188585, - 0.010560382157564163, - 0.04631730914115906, - 0.049089040607213974, - 0.01067945547401905, - -0.01563737727701664, - -0.03153998404741287, - -0.01566001959145069, - 0.007188200484961271, - -0.03151542320847511, - -0.02787209488451481, - -0.03771907091140747, - 0.05109594389796257, - -0.027531040832400322, - -0.0035897560883313417, - -0.016113396733999252, - 0.0013088323175907135, - 0.02250608429312706, - 0.0027123414911329746, - -0.03777305781841278, - -0.01085690688341856, - -0.013861567713320255, - -0.006752309389412403, - 0.04009357467293739, - -0.0005344347446225584, - 0.3167480230331421, - 0.017107632011175156, - 0.01604495942592621, - -0.019033752381801605, - -0.036566562950611115, - 0.05632626637816429, - -0.10481330752372742, - 0.023983987048268318, - -0.03840931877493858, - -0.010125454515218735, - 0.005819970276206732, - -0.017679927870631218, - 0.020959680899977684, - -0.05283258855342865, - -0.03920739144086838, - 0.05742008984088898, - 0.028371289372444153, - -0.013705834746360779, - 0.060144953429698944, - 0.017961034551262856, - 0.027453282848000526, - 0.04204121604561806, - 0.0048444196581840515, - -0.011413739994168282, - -0.02445193938910961, - -0.14796166121959686, - 0.007835561409592628, - 0.007701158057898283, - -0.004355075769126415, - 0.025915993377566338, - -0.017912011593580246, - 0.00968201830983162, - 0.0104365861043334, - 0.25249990820884705, - 0.0018149008974432945, - -0.027533357962965965, - 0.00709343608468771, - -0.043523408472537994, - 0.0056495689786970615, - -0.011635531671345234, - 0.020645348355174065, - -0.009581945836544037, - -0.002638145349919796, - 0.00822530034929514, - 0.006187555380165577, - -0.026392797008156776, - -0.04149067401885986, - -0.03022921271622181, - -0.04450478032231331, - -0.01653345301747322, - 0.007193630561232567, - 0.01581447571516037, - -0.008573372848331928, - 0.17868493497371674, - -0.01646641083061695, - 0.009540915489196777, - 0.026789475232362747, - -0.029528260231018066, - 0.005734244827181101, - -0.03154483810067177, - -0.10939504206180573, - -0.010581505484879017, - -0.03499302268028259, - 0.018724579364061356, - 0.033836957067251205, - -0.012142615392804146, - 0.003936308436095715, - -0.03462464362382889, - -0.013437413610517979, - -0.03634987771511078, - -0.010003441013395786, - -0.02183408848941326, - 0.05637701600790024, - 0.005435653496533632, - 0.012932579033076763, - -0.0075216228142380714, - -0.007656000554561615, - 0.01134819071739912, - 0.03404587507247925, - -0.34564208984375, - 0.01225915364921093, - 0.0006921698804944754, - 0.010776733048260212, - -0.030451206490397453, - 0.010842503979802132, - 0.02102043107151985, - -0.041984207928180695, - 0.004791689570993185, - 0.045942749828100204, - -0.031175509095191956, - -0.06913051009178162, - -0.00877423770725727, - 0.012448197230696678, - -0.048396818339824677, - 0.03352579101920128, - -0.03536072373390198, - -0.0058053769171237946 - ], - [ - -0.03176899626851082, - -0.04617914929986, - 0.02579105645418167, - -0.03911376744508743, - -0.016571659594774246, - -0.02055087871849537, - 0.05505261570215225, - -0.04575906693935394, - -0.02215108834207058, - 0.0007954437751322985, - -0.011012624949216843, - 0.07127412408590317, - 0.04571371525526047, - -0.004406782798469067, - -0.06690709292888641, - -0.21091949939727783, - 0.001531498390249908, - -0.018393591046333313, - 0.0557081513106823, - 0.05499803274869919, - -0.00874678697437048, - 0.0029202797450125217, - 0.02308828756213188, - -0.02326105907559395, - 0.015034726820886135, - -0.017036177217960358, - 0.01959177479147911, - -0.010380806401371956, - -0.020784500986337662, - 0.08504607528448105, - -0.0035229718778282404, - -0.022435955703258514, - -0.030069174244999886, - 0.017246181145310402, - -0.011008378118276596, - 0.009990151040256023, - 0.011087344959378242, - -0.03993317112326622, - -0.020837930962443352, - -0.010358499363064766, - 0.014009550213813782, - 0.006042111665010452, - -0.019952667877078056, - -0.024786921218037605, - 0.03795996308326721, - 0.10054320842027664, - -0.0009118888410739601, - 0.004712578374892473, - -0.019294390454888344, - -0.007460963912308216, - -0.03851102665066719, - -0.05113432556390762, - -0.020936425775289536, - 0.00964392814785242, - 0.038511794060468674, - 0.017786258831620216, - -0.012165412306785583, - -0.0005283407517708838, - -0.04707753658294678, - 0.022093158215284348, - -0.036738310009241104, - -0.04665699228644371, - 0.009724550880491734, - 0.030315175652503967, - -0.042011842131614685, - 0.018378302454948425, - -0.055528368800878525, - 0.00941560324281454, - 0.001999173080548644, - 0.0015632514841854572, - -0.024457642808556557, - 0.15395301580429077, - 0.04930412396788597, - 0.07383840531110764, - -0.05130485072731972, - 0.0045760683715343475, - -0.006017253268510103, - -0.009315486066043377, - -0.04339918866753578, - 0.01247942540794611, - -0.0055045802146196365, - -0.015456849709153175, - 0.03763424605131149, - -0.006371034309267998, - 0.033459123224020004, - -0.015887485817074776, - 0.013709567487239838, - 0.016507213935256004, - -0.015046299435198307, - -0.02964050881564617, - 0.00867885909974575, - -0.012295486405491829, - 0.23121820390224457, - 0.05171135067939758, - 0.017796358093619347, - -0.003553937654942274, - -0.01725696586072445, - 0.03766899183392525, - 0.003493900876492262, - -0.0044160038232803345, - 0.01678478717803955, - 0.03146088868379593, - -0.013395408168435097, - -0.0522729866206646, - -0.10487586259841919, - 0.005833607167005539, - 0.046650514006614685, - -0.042325835675001144, - 0.02988872304558754, - -0.0514497347176075, - -0.0010256050154566765, - -0.002355227479711175, - 0.023968541994690895, - -0.017129801213741302, - -0.023430652916431427, - 0.002539009554311633, - 0.005990855395793915, - 0.023716559633612633, - 0.010415114462375641, - 0.02227954939007759, - 0.006939647253602743, - -0.0007393794949166477, - 0.015976035967469215, - 0.00827779620885849, - 0.08602672815322876, - 0.03943093121051788, - -0.6810768246650696, - 0.002377099124714732, - -0.006961825769394636, - 0.035690829157829285, - 0.05258004739880562, - -0.05358346179127693, - -0.02548956498503685, - -0.029425837099552155, - 0.01427716575562954, - -0.015581081621348858, - 0.07072947919368744, - 0.030748091638088226, - -0.025529496371746063, - -0.00971998367458582, - 0.004228823818266392, - -0.0007659930270165205, - 0.020802270621061325, - -0.030731113627552986, - 0.019264264032244682, - 0.011799591593444347, - -0.018264412879943848, - -0.05627875030040741, - -0.0533067025244236, - -0.02082051709294319, - 0.03649095818400383, - -0.017208531498908997, - -0.017259160056710243, - -0.024372676387429237, - -0.03341081738471985, - 0.009932308457791805, - 0.03065134398639202, - 0.030876407399773598, - 0.04534110799431801, - 0.2677954435348511, - 0.018758678808808327, - -0.018006907775998116, - -0.07409042119979858, - -0.035624656826257706, - -0.007591821253299713, - -0.10007582604885101, - 0.00782026257365942, - -0.01673738658428192, - 0.010865741409361362, - 0.038360752165317535, - 0.031164981424808502, - -0.0030352973844856024, - -0.008647450245916843, - -0.00923471711575985, - 0.11173340678215027, - -0.0031811201479285955, - -0.04273301735520363, - 0.07262111455202103, - -0.00991761963814497, - 0.0097635667771101, - -0.031946394592523575, - 0.024426905438303947, - 0.014088462106883526, - -0.015186130069196224, - -0.1707278937101364, - 0.019110707566142082, - -0.028399836272001266, - 0.021609313786029816, - 0.017099110409617424, - 0.02649950422346592, - -0.006403763312846422, - -0.007331559434533119, - 0.17705991864204407, - -0.01342509314417839, - -0.05546338111162186, - -0.006971646565943956, - -0.021872369572520256, - -0.013519841246306896, - 0.03280237317085266, - -0.02308378741145134, - -0.006019277032464743, - -0.010623613372445107, - 0.010153345763683319, - -0.027403434738516808, - -0.007444745395332575, - -0.026718320325016975, - -0.015495667234063148, - -0.019315289333462715, - 0.003150228876620531, - 0.003302510129287839, - -0.007841222919523716, - -0.012074051424860954, - 0.12736737728118896, - 0.034649331122636795, - -0.000745033728890121, - 0.016608968377113342, - -0.030947908759117126, - -0.02873479202389717, - -0.0031022424809634686, - -0.03205851837992668, - 0.016640212386846542, - -0.028817614540457726, - 0.002552174963057041, - 0.039837226271629333, - -0.0009074388071894646, - -0.009327370673418045, - -0.0574914887547493, - -0.013846111483871937, - -0.031825579702854156, - -0.0016511318972334266, - -0.035900089889764786, - -0.014795969240367413, - 0.015700019896030426, - -0.022393610328435898, - -0.018670527264475822, - -0.01340313721448183, - 0.02300005964934826, - 0.00381386186927557, - -0.13627025485038757, - -0.01094228308647871, - 0.005347089376300573, - 0.010088974609971046, - -0.03155452385544777, - 0.01375112310051918, - -0.03331921622157097, - -0.020826969295740128, - -0.02168462425470352, - 0.05592796579003334, - 0.03691593557596207, - -0.028039047494530678, - -0.015147269703447819, - 0.003208260051906109, - -0.05656123533844948, - -0.002646882552653551, - -0.022845789790153503, - 0.02520635910332203 - ], - [ - -0.029586322605609894, - -0.03644052520394325, - 0.020485302433371544, - -0.04240043833851814, - 0.0019882277119904757, - 0.015261352993547916, - 0.05220973864197731, - 0.052759766578674316, - 0.030349547043442726, - -0.016384029760956764, - -0.043232887983322144, - 0.04240679740905762, - -0.005912478081882, - 0.027318421751260757, - -0.0514456145465374, - 0.04467853531241417, - -0.018174076452851295, - -0.06190770864486694, - -0.0301577840000391, - 0.028582792729139328, - -0.13634563982486725, - 0.06588225811719894, - 0.020654886960983276, - -0.04097363352775574, - -0.038238003849983215, - -0.012184237129986286, - 0.022714052349328995, - 0.0002429802407277748, - 0.021616827696561813, - 0.03915264084935188, - 0.021367596462368965, - 0.02277173474431038, - 0.01079693716019392, - 0.03056907095015049, - -0.017452601343393326, - 0.0055920775048434734, - 0.023959463462233543, - -0.0019712084904313087, - 0.016138866543769836, - 0.06204311177134514, - 0.034536365419626236, - -0.018633350729942322, - -0.016574561595916748, - -0.006510005332529545, - 0.05813106149435043, - 0.019723152741789818, - -0.025726625695824623, - -0.07419552654027939, - -0.014171535149216652, - -0.06178084388375282, - 0.008106415160000324, - -0.036249659955501556, - -0.05557013303041458, - 0.041389886289834976, - 0.04054487869143486, - 0.02945922315120697, - 0.012199262157082558, - 0.044453538954257965, - -0.05453750863671303, - 0.03245967999100685, - -0.08667724579572678, - -0.04047982022166252, - 0.047159649431705475, - 0.05046234652400017, - -0.06628373265266418, - -0.011791165918111801, - -0.04284261167049408, - -0.01564970053732395, - 0.0041078622452914715, - 0.010431904345750809, - 0.0012111351825296879, - 0.20996201038360596, - 0.024569571018218994, - 0.06855012476444244, - -0.06319338083267212, - -0.048814527690410614, - 0.03169061616063118, - -0.0029108277522027493, - -0.0005042608245275915, - 0.05338441953063011, - 0.048134636133909225, - -0.048557545989751816, - -0.0005197579739615321, - 0.000621224578935653, - -0.01231500506401062, - -0.005957035347819328, - 0.027293315157294273, - 0.014523815363645554, - -0.017292309552431107, - 0.01804935932159424, - 0.001789105823263526, - 0.016435246914625168, - -0.011386055499315262, - 0.019615178927779198, - -0.007738237269222736, - 0.06426442414522171, - -0.027033628895878792, - 0.00261897430755198, - 0.010395837016403675, - 0.00964767299592495, - 0.014078493230044842, - 0.02042500115931034, - 0.02519172430038452, - 0.008250612765550613, - -0.08798988163471222, - -0.018258947879076004, - 0.01634800434112549, - -0.008725527673959732, - 0.03447253257036209, - 0.01286813523620367, - -0.024299893528223038, - -0.013722343370318413, - 0.008639035746455193, - 0.026032021269202232, - 0.04698823392391205, - -0.012278079055249691, - 0.024939676746726036, - -0.04760964587330818, - 0.07568266987800598, - 0.02088393084704876, - -0.0743434950709343, - 0.004858564585447311, - 0.012567163445055485, - 0.03455085679888725, - 0.05663693696260452, - 0.017612800002098083, - -0.4292454719543457, - 0.039661768823862076, - 0.016557667404413223, - 0.08352222293615341, - 0.04538877308368683, - -0.04822034016251564, - -0.03348540887236595, - -0.0011306839296594262, - 0.01879761554300785, - 0.026246143504977226, - 0.0781150683760643, - 0.05028398334980011, - -0.0010681990534067154, - -0.0332205556333065, - -0.046807270497083664, - -0.028137031942605972, - 3.0923190934117883e-05, - -0.03547367453575134, - 0.0035267663188278675, - -0.0441497303545475, - 0.05908986181020737, - -0.03170233964920044, - -0.00852485653012991, - -0.01588297076523304, - -0.006954746320843697, - 0.008617289364337921, - -0.032641902565956116, - -0.061752159148454666, - -0.003892612410709262, - -0.009102344512939453, - 0.033432792872190475, - 0.053762029856443405, - -0.007594093680381775, - 0.20363235473632812, - 0.007447864860296249, - 0.037979818880558014, - -0.030560649931430817, - 0.001331593026407063, - 0.03952573239803314, - -0.10350445657968521, - 0.020997336134314537, - -0.04280725494027138, - 0.00889943353831768, - -0.004429655149579048, - 0.001936678891070187, - 0.033317748457193375, - -0.056550443172454834, - -0.030478335916996002, - 0.06848661601543427, - 0.04395848512649536, - -0.03637927770614624, - 0.06259595602750778, - -0.005010186228901148, - 0.005996651481837034, - 0.04834272712469101, - 0.0036041666753590107, - -0.007879005745053291, - -0.024254251271486282, - -0.16257566213607788, - -0.014157377183437347, - 0.015389995649456978, - -0.001955954125151038, - 0.023172419518232346, - -0.013163795694708824, - 0.03366955369710922, - -0.001921582268550992, - 0.2808361351490021, - -0.00010367552749812603, - -0.08118420839309692, - 0.018969744443893433, - -0.04213588312268257, - -0.025813015177845955, - -0.0074090962298214436, - 0.010053976438939571, - -0.03084567002952099, - -0.003987140022218227, - 0.011767472140491009, - -0.014863983727991581, - 0.0021362958941608667, - -0.06694918870925903, - -0.02835710719227791, - -0.04091158136725426, - -0.03079073317348957, - 0.010003580711781979, - 0.015167861245572567, - -0.02297946996986866, - 0.19896049797534943, - 0.021813416853547096, - 0.02414475381374359, - -0.013765156269073486, - -0.012261873111128807, - 0.022532440721988678, - -0.04618017002940178, - -0.07523084431886673, - -0.0030209070537239313, - -0.004995370749384165, - 0.013154245913028717, - 0.010827790945768356, - 0.0006226060795597732, - 0.01651415415108204, - -0.04551013931632042, - -0.0004644797882065177, - -0.045160699635744095, - 0.011363971047103405, - 0.0120050935074687, - 0.05461027845740318, - 0.01068863458931446, - 0.015369242988526821, - -0.011621447280049324, - -0.0049387733452022076, - -0.029315408319234848, - 0.03144668787717819, - -0.519625723361969, - 0.02623056434094906, - -0.020853910595178604, - -0.007100245915353298, - 0.02481238543987274, - 0.024182716384530067, - -0.0072664241306483746, - -0.06742803007364273, - 0.02539609745144844, - 0.019778842106461525, - 0.01491702813655138, - -0.05119265615940094, - 0.003557769116014242, - 0.002347275847569108, - -0.04324667900800705, - 0.022409237921237946, - -0.02546624094247818, - -0.026201089844107628 - ], - [ - 0.000566721661016345, - 0.0018752790056169033, - -0.0017991882050409913, - 0.00161410600412637, - -0.0016601583920419216, - 0.0017575901001691818, - 0.0009387004538439214, - 0.0029180580750107765, - 0.004439963959157467, - 0.00019484153017401695, - -0.0025465842336416245, - 0.0005293705617077649, - 0.00022773732780478895, - 0.0003625001118052751, - 0.000667838379740715, - 0.007174051832407713, - 0.0013627546140924096, - -0.004930045455694199, - -0.004972461145371199, - 0.003873158013448119, - -0.013114964589476585, - 0.0036528559867292643, - -0.0006271333550103009, - -0.0010237389942631125, - 0.0001854542933870107, - -0.003562302328646183, - 0.0031385552138090134, - 0.0007425397052429616, - -0.0015983089106157422, - 0.0005359078058972955, - 0.0013231085613369942, - 0.004192150663584471, - 0.0015305663691833615, - -0.0020172405056655407, - 0.00027558996225707233, - 0.002661165315657854, - 0.0035128446761518717, - -0.00023746650549583137, - 0.0017896696226671338, - 0.001164821209385991, - 0.0005763341905549169, - 0.0031626797281205654, - 0.0017827716656029224, - 0.0022712189238518476, - 1.2962587788933888e-05, - -0.001019496819935739, - 0.0011207896750420332, - -0.0030311679001897573, - 0.002884126268327236, - 0.0010958219645544887, - -0.002524027833715081, - 0.008669487200677395, - -0.0003948588273487985, - 0.0006303008995018899, - -0.0028570673894137144, - 0.0006009336211718619, - 0.0012467139167711139, - 0.0001925000688061118, - -0.009751386940479279, - -0.0010525014949962497, - -0.0008420742233283818, - -0.0038395370356738567, - 0.0004000858752988279, - 0.002437996445223689, - -0.005052431020885706, - 0.0020019772928208113, - -0.006282591260969639, - 0.002338009187951684, - -0.0016077901236712933, - -0.0019328888738527894, - -0.0010458509204909205, - -0.07192157208919525, - 0.003980941139161587, - 0.005952321458607912, - -0.001555529423058033, - -0.002659477759152651, - 0.002561701461672783, - 0.004281818866729736, - -0.0009941154858097434, - 0.0048317317850887775, - 0.0014456943608820438, - -0.001999824307858944, - -0.919220507144928, - 0.0017895862692967057, - -0.00544927641749382, - 0.007643251679837704, - 0.0021567270159721375, - 0.0010736527619883418, - -0.000946542713791132, - 0.0026079805102199316, - 0.0024592229165136814, - -0.00015501753659918904, - -0.00011437147622928023, - 2.8783929337805603e-06, - 0.0040606786496937275, - 0.004074245225638151, - 0.00018068475765176117, - -0.0014893519692122936, - 0.002270773984491825, - -0.002880516229197383, - 0.0035445804242044687, - 0.0002881025429815054, - 0.002923958469182253, - 0.00288477074354887, - 0.0024012853391468525, - -0.0012412681244313717, - -0.0014478033408522606, - 0.003825852181762457, - 0.00169785984326154, - -0.0020446586422622204, - 0.007660374511033297, - 0.0026263787876814604, - -0.0012207669205963612, - 0.002119222190231085, - 0.005590488202869892, - 0.0053524598479270935, - -0.0015504886396229267, - -0.000708365289028734, - 0.0016716064419597387, - 0.003392190905287862, - -0.003429298521950841, - -0.0025785842444747686, - -0.0018003666773438454, - 0.004455411806702614, - -0.0007755081751383841, - -0.001787650166079402, - 0.28263020515441895, - 0.003527991008013487, - -0.0009396224049851298, - -2.917576603067573e-05, - -3.643906893557869e-05, - 0.002558028558269143, - 0.0007025129743851721, - -0.002193743595853448, - -0.00037253089249134064, - 0.0031816307455301285, - -0.004683166742324829, - 0.0016218413366004825, - -0.0019823634065687656, - -0.0002593002573121339, - -0.002432623179629445, - -0.00134285690728575, - -0.0014718768652528524, - -0.0009005540050566196, - 0.0003643873205874115, - -0.007666145917028189, - 0.0021706370171159506, - 0.002169679617509246, - -0.002636399120092392, - 0.00025468599051237106, - -0.0007054415182210505, - -0.004223531112074852, - -0.0029470042791217566, - -0.009223136119544506, - -0.005801673978567123, - 0.0016185444546863437, - 0.004034410230815411, - -0.0024000389967113733, - 0.0021158254239708185, - 0.2044724076986313, - 0.0014607040211558342, - -0.000999854295514524, - -0.00041180592961609364, - 0.003629517275840044, - 0.014020632952451706, - 0.09627682715654373, - 0.0029833195731043816, - -0.004875929094851017, - 0.0013096668990328908, - -0.0003620876232162118, - -0.004197973757982254, - 0.004585978575050831, - -0.004647877532988787, - -0.0007904474623501301, - -0.0031422863248735666, - -0.0017267632065340877, - -0.0012329239398241043, - 0.009165932424366474, - 0.0019979330245405436, - 0.006255336571484804, - -0.0010085308458656073, - 0.006060748361051083, - 0.00017915866919793189, - 0.000327396352076903, - -0.008412276394665241, - -0.0007883551297709346, - 0.00165568757802248, - -0.005074408371001482, - 0.001266553532332182, - -0.000657258031424135, - 0.003463926026597619, - -0.0004625300643965602, - -0.053190264850854874, - -0.008233140222728252, - 0.006184563506394625, - -0.0029969275929033756, - -0.0012395306257531047, - -0.0006770926411263645, - -0.0020413834135979414, - 0.0045736804604530334, - -0.00294847902841866, - -0.0051329368725419044, - 0.003101838519796729, - -0.002032643649727106, - 0.0014754548901692033, - 0.005674447398632765, - 0.0021512280218303204, - -0.0036898634862154722, - -0.0021741522941738367, - 0.000685602193698287, - -0.0011540099512785673, - 0.003413305850699544, - -0.050816599279642105, - 0.0005472482880577445, - -0.002993914531543851, - -0.0006113429553806782, - -0.0021151690743863583, - 0.0033816646318882704, - 0.001793961855582893, - -0.01320064440369606, - 0.0023010403383523226, - -0.0008487340528517962, - -0.0013993543107062578, - -0.0008094336371868849, - 0.0007213442004285753, - 0.002070354064926505, - -0.0011792172444984317, - 0.0010562269017100334, - 0.0014854201581329107, - -0.0005073227803222835, - 0.0019081819336861372, - 0.003967321943491697, - 0.0022392221726477146, - 0.001110242446884513, - 0.003228375455364585, - -0.0027183247730135918, - -0.006713748909533024, - 0.0035490510053932667, - 0.10267652571201324, - -0.0009089277009479702, - 0.003534168703481555, - 0.0006160836201161146, - 0.0014933831989765167, - -0.0028385042678564787, - -0.002079416299238801, - -0.0038300526794046164, - 0.00260635232552886, - -0.0005429474404081702, - -0.00013637272058986127, - -0.0033155400305986404, - -0.0007364892517216504, - 0.001378051470965147, - -0.005887212697416544, - 0.0014300452312454581, - -0.006601939909160137, - 6.775843212381005e-05 - ], - [ - -9.404731827089563e-05, - 0.0017027718713507056, - -0.0008602480520494282, - 0.000927740300539881, - -0.0011998526751995087, - 0.0005070294137112796, - -0.0005551765207201242, - 0.0015685224207118154, - 0.0019255734514445066, - 0.0009047500789165497, - -0.0015721439849585295, - 0.000985374441370368, - 0.00028748379554599524, - -0.0013115674955770373, - -0.001021837117150426, - 0.008741131983697414, - 7.621073018526658e-05, - -0.0031011251267045736, - -0.0035903085954487324, - 0.0023167079780250788, - -0.00765475956723094, - 0.0034786094911396503, - -0.00023216975387185812, - -0.001156647689640522, - -0.001615116256289184, - -0.001401471090503037, - 0.0016039198962971568, - 0.00022992113372310996, - 2.1988846128806472e-05, - 0.0013263238361105323, - 0.001012137858197093, - 0.002115692710503936, - 0.00118526432197541, - -0.0003315259236842394, - 0.0003535392170306295, - 0.0008205708581954241, - 0.002363513922318816, - 0.0012404611334204674, - 0.00032404327066615224, - -0.00034306361339986324, - -0.00013790196680929512, - 0.002383581595495343, - -7.3775381679297425e-06, - 0.00038247171323746443, - -0.0020259045995771885, - -0.0005287064122967422, - 0.00013933835725765675, - -0.001492470153607428, - 0.0007721626316197217, - -0.00012699657236225903, - -0.002199220471084118, - 0.008151687681674957, - -0.0001552633329993114, - -0.0011072696652263403, - -0.0018472297815605998, - -0.000819905661046505, - 0.0006785595905967057, - -0.0007775165140628815, - -0.007086870260536671, - -0.00013316872355062515, - -0.00030963082099333405, - -0.002752092434093356, - 0.0005476450896821916, - 0.002961385529488325, - -0.004921787418425083, - 0.002213528146967292, - -0.009000002406537533, - 0.0027523241005837917, - -0.0013526324182748795, - -0.0015532621182501316, - -0.0013745183823630214, - -0.07428154349327087, - 0.002846766961738467, - 0.00588189996778965, - -0.0016740431310608983, - -0.00045529278577305377, - 0.0014571258798241615, - 0.0013058027252554893, - -0.0022676042281091213, - 0.0031541192438453436, - -0.0003980721812695265, - -0.000738592236302793, - -0.9179793000221252, - 0.0007223355351015925, - -0.004093758296221495, - 0.002482828451320529, - 0.0008599566644988954, - 0.0011502992128953338, - 0.00022796849953010678, - 0.0033138070721179247, - 0.00144881010055542, - 0.001864121062681079, - 0.004601858556270599, - -0.0003073876432608813, - 0.002949304645881057, - 0.0029566113371402025, - 0.00017619873688090593, - -0.0019723542500287294, - 0.002809518715366721, - -0.000996612012386322, - 0.0014400023501366377, - 0.0016039095353335142, - 0.0012509636580944061, - 0.002109982306137681, - 0.002752563450485468, - 0.0008323018555529416, - -0.00251579936593771, - 0.0006883560563437641, - -0.0009930829983204603, - -0.0006936484132893384, - 0.007594706956297159, - 0.003126882715150714, - -0.0014786821557208896, - 0.00016194921045098454, - 0.002008080715313554, - 0.0032298131845891476, - -0.0008484530262649059, - 0.00029534994973801076, - 0.0004713705275207758, - 0.0008709519752301276, - -0.001578304567374289, - -0.0017346973763778806, - -0.0012673928868025541, - 0.0019917592871934175, - -0.002060103230178356, - -0.0011930371401831508, - 0.2847975492477417, - 0.00038926192792132497, - 0.0002735274320002645, - 0.0007991743041202426, - 0.0011405542027205229, - 0.003044378012418747, - 0.0003736439102794975, - -0.00046190060675144196, - -0.0017969387117773294, - 0.0017244747141376138, - -0.0017473705811426044, - 0.0014087120071053505, - -0.0017067121807485819, - 0.0005283724749460816, - 0.0008118703262880445, - -0.0006991011323407292, - -0.0013499329797923565, - -0.0008781578508205712, - -0.0003773897187784314, - -0.005096928216516972, - 0.0005077419918961823, - 0.0005600740551017225, - -0.0008136866381391883, - 0.00030840226099826396, - -0.0007450313423760235, - -0.006140376441180706, - -0.001807670807465911, - -0.005242191720753908, - -0.0027434411458671093, - 0.00032668813946656883, - 0.0017522479174658656, - -0.0009001866565085948, - 0.0007469953852705657, - 0.20260918140411377, - -0.0006906500784680247, - 0.0006719646044075489, - 0.0003706720017362386, - 0.0015437444671988487, - 0.008267267607152462, - 0.09311217069625854, - 0.001768156187608838, - -0.00350970565341413, - 0.0011404701508581638, - 0.0010401774197816849, - -0.004849771503359079, - 0.0023402776569128036, - -0.0011659313458949327, - 0.0009191618300974369, - -0.0012161704944446683, - -0.0016335383988916874, - 0.0002515356463845819, - 0.006073074880987406, - -0.0006687759887427092, - 0.004312694538384676, - -0.0002143458987120539, - 0.0015429685590788722, - -2.8794653189834207e-05, - -1.5738545698695816e-05, - -0.0054280576296150684, - 6.236640911083668e-05, - 0.000495844054967165, - -0.002100362442433834, - 0.0007088619167916477, - 0.0008045606664381921, - 0.000917047553230077, - -0.00015311189054045826, - -0.060335732996463776, - -0.0044564069248735905, - 0.004351908806711435, - -0.001364049850963056, - 0.0006493314285762608, - 0.0004450118576642126, - 0.00043274144991301, - 0.002313980832695961, - -0.0009226646507158875, - -0.0020488202571868896, - 0.002110162051394582, - -0.0013035834999755025, - 0.0006175261805765331, - 0.006282668095082045, - -0.0006599941989406943, - -0.002051919000223279, - -0.0007896727183833718, - 1.2870936188846827e-05, - -0.00017998316616285592, - -0.000979635282419622, - -0.05318760499358177, - 0.0010004972573369741, - -0.0008785197860561311, - -0.0002587543858680874, - -0.002401110716164112, - 0.0007033745641820133, - 0.003454550402238965, - -0.008372504264116287, - 0.0005764967063441873, - 0.0005059765535406768, - -0.00013693529763258994, - -0.0006168894469738007, - -7.766437192913145e-05, - 0.0006524709751829505, - -0.000968870532233268, - 0.0006569836405105889, - 0.001010849024169147, - 2.7297761334921233e-05, - 0.0002881897962652147, - 0.0030173142440617085, - 0.0018918486312031746, - 0.0002547031326685101, - 4.2211482650600374e-05, - -0.002034190809354186, - -0.004280332941561937, - 0.0020714232232421637, - 0.11423244327306747, - -6.03917651460506e-05, - 0.001687512150965631, - 0.001196354627609253, - -0.0008091621566563845, - -0.0031611297745257616, - -0.0010968776186928153, - -0.0011963996803388, - 0.00496588135138154, - 0.0006741502438671887, - -0.0005905764410272241, - -0.0018303017131984234, - -0.0003613509179558605, - 0.0008452359470538795, - -0.0023018752690404654, - 0.0012531363172456622, - -0.0026297010481357574, - 0.0006620658095926046 - ], - [ - -0.002392611000686884, - 0.0006699325749650598, - -0.0008312590653076768, - 0.0017691715620458126, - -0.002767898142337799, - 0.0007291602669283748, - 0.004331937525421381, - -0.0009024315513670444, - 0.0031900976318866014, - -0.0007217460661195219, - -0.0028421173337846994, - 0.007410445250570774, - 0.00267112348228693, - -0.005218752194195986, - -0.0022116531617939472, - -0.0037516229785978794, - 0.0021802394185215235, - -0.003531662980094552, - 0.00251176580786705, - 0.00706897210329771, - -0.009149550460278988, - 0.0031252496410161257, - 0.001630320679396391, - -0.004811731167137623, - -0.001737908343784511, - -0.0007878007018007338, - 0.0038622652646154165, - 0.000534645514562726, - -0.0003403481678105891, - 0.006002433132380247, - -0.001085751224309206, - 0.002952827839180827, - -0.0007854084251448512, - 0.002745863748714328, - -0.00199289433658123, - 0.0014466670108959079, - -0.0008554593077860773, - -0.0017227156786248088, - 0.0011778787011280656, - -0.0016656704246997833, - 0.0016122482484206557, - -0.00043799783452413976, - -0.0028399494476616383, - 0.00035062272218056023, - 0.0033514152746647596, - 0.005028346553444862, - 0.00040052388794720173, - 0.0009516660938970745, - -0.0002926836896222085, - 0.000702135672327131, - -0.0030314219184219837, - 0.0053546796552836895, - -0.0012180045014247298, - -0.004495416302233934, - 0.0003893640241585672, - -0.0027714823372662067, - 0.0027057956904172897, - -0.001101696165278554, - -0.009419571608304977, - -0.0029051145538687706, - -0.005308413412421942, - -0.004567188676446676, - -0.0004843437054660171, - 0.0038462558295577765, - -0.009852015413343906, - 0.0029957261867821217, - -0.014870292507112026, - 0.007300851866602898, - -0.0016164539847522974, - 0.0003870012587867677, - -0.0032498002983629704, - -0.0677717998623848, - 0.004119408316910267, - 0.011771869845688343, - -0.002399724442511797, - -0.0003430860524531454, - 0.001138918800279498, - 0.000618421589024365, - -0.0055737667717039585, - 0.006061111576855183, - 5.10679637955036e-05, - -0.0006814506486989558, - -0.9248762130737305, - 0.0016416633734479547, - -0.0023992531932890415, - 0.002353875432163477, - 0.003746967762708664, - 0.00470208004117012, - -0.0008814448374323547, - 0.0008482742705382407, - 0.0025566071271896362, - -0.001085203606635332, - 0.022589024156332016, - 0.0016263701254501939, - 0.0028910976834595203, - 0.005351603031158447, - 0.0004501143121160567, - 0.00196234998293221, - 0.0016521504148840904, - -0.0010355273261666298, - 0.003018847666680813, - 0.0036001219414174557, - 0.004570717457681894, - -0.002969661494717002, - -0.006771695800125599, - 0.0015073847025632858, - 0.001019188784994185, - -0.0009493952966295183, - -0.0011799484491348267, - -0.0033666968811303377, - 0.0076423101127147675, - 0.0010679126717150211, - 0.0029261515010148287, - 0.0010169867891818285, - 0.0004512546875048429, - 0.0016157864592969418, - -0.0021588464733213186, - 0.0011029541492462158, - 0.00011413241008995101, - 0.0036948055494576693, - -0.0004800490860361606, - -0.002654146868735552, - -0.0027934701647609472, - 0.004721282981336117, - 0.0034961835481226444, - 0.0003584187652450055, - 0.2505973279476166, - 0.0017627268098294735, - -0.0022246690932661295, - 0.0027766742277890444, - 0.0030720739159733057, - -0.0033201135229319334, - -0.0023109116591513157, - -0.0019365486223250628, - -0.0033189686946570873, - -0.0007304013124667108, - 0.0023501135874539614, - 0.0036924632731825113, - -0.005265478510409594, - 0.002150770276784897, - 0.0006320145912468433, - -0.002542409347370267, - 0.00041610002517700195, - -0.00241467566229403, - 0.003932900261133909, - -0.0058008963242173195, - -0.00015336000069510192, - -0.00097936880774796, - -0.005278546363115311, - 0.00046075155842117965, - 0.0024205208756029606, - -0.01174208428710699, - -0.0019110109424218535, - -0.008261799812316895, - -0.006139619275927544, - 0.0011883832048624754, - 0.004843766801059246, - 0.002341683255508542, - 0.004468047991394997, - 0.21883022785186768, - 0.0018182122148573399, - -0.0008683623163960874, - -0.0065919458866119385, - -0.0021084605250507593, - 0.005795800127089024, - 0.09198971837759018, - 0.0014238436706364155, - -0.004588685929775238, - 0.002774133114144206, - 0.004122738726437092, - -0.005029114428907633, - 0.0028926907107234, - -0.0038219618145376444, - -0.002070523099973798, - 0.004976056516170502, - -0.0019849410746246576, - -0.0025214958004653454, - 0.008041540160775185, - -0.0016213052440434694, - 0.004858218599110842, - -0.0027060722932219505, - 0.005335742142051458, - 0.0017404732061550021, - 0.0009019883582368493, - -0.015607713721692562, - 0.003355833701789379, - -3.62620412488468e-05, - -0.0024247586261481047, - 0.0009267746936529875, - 0.003850059350952506, - 0.0008663518819957972, - 0.0016622233670204878, - -0.05359278991818428, - -0.0057282899506390095, - 0.0009011870715767145, - -0.0021656793542206287, - 0.0008078109240159392, - 0.0018345590215176344, - 0.0024950350634753704, - 0.0007927178521640599, - 6.513822881970555e-05, - -0.003320288145914674, - 0.0014672430697828531, - -0.0007561749080196023, - 0.00017144490266218781, - 0.004087034612894058, - -7.080612704157829e-05, - -0.005062456242740154, - 0.0004723661404568702, - -0.0025385222397744656, - -0.005944170523434877, - 0.00010568369907559827, - -0.047474488615989685, - 0.0033825624268501997, - 0.0005402451497502625, - 0.0019925711676478386, - -0.005833908915519714, - -0.0012682408560067415, - 0.002822863170877099, - -0.012108595110476017, - 0.0031104867812246084, - -0.000770416809245944, - -0.0029510362073779106, - -0.0012701151426881552, - -0.00018916130647994578, - 0.0002717252937145531, - -0.002132418565452099, - -0.0010524075478315353, - -0.0008498685783706605, - -0.0010901750065386295, - 0.001713509438559413, - 0.0002338706108275801, - 0.003571538720279932, - 0.0016018684254959226, - -0.0008470133761875331, - -0.0030019618570804596, - -0.0031706131994724274, - -0.0004423155914992094, - 0.10851649194955826, - 0.00018668164557311684, - 0.003999464213848114, - -0.0004654626245610416, - 0.0004261856956873089, - -0.0019850353710353374, - -0.0010672776261344552, - -0.0019483042415231466, - 0.003144229995086789, - 0.004793244879692793, - 0.0026090231258422136, - -0.006024977192282677, - -0.0036979499273002148, - 0.0006347063463181257, - -0.005111830309033394, - 0.00016484636580571532, - -0.0055772229097783566, - 0.0023907984141260386 - ], - [ - -0.036505088210105896, - -0.036366961896419525, - 0.03703654184937477, - -0.03342301398515701, - -0.013127652928233147, - -0.016941698268055916, - 0.05744798481464386, - -0.04955252259969711, - -0.011421363800764084, - 0.004782750736922026, - -0.016632994636893272, - 0.06968380510807037, - 0.04075879231095314, - -0.0009769221069291234, - -0.06319162994623184, - -0.2114756852388382, - -0.006607217714190483, - -0.022460374981164932, - 0.04955286160111427, - 0.057195089757442474, - -0.023945976048707962, - 0.010071232914924622, - 0.02930968999862671, - -0.0205888319760561, - 0.008691098541021347, - -0.02162896655499935, - 0.015817660838365555, - -0.020052187144756317, - -0.020113011822104454, - 0.08765096962451935, - -0.00997228268533945, - -0.010966267436742783, - -0.036148373037576675, - 0.013123712502419949, - -0.00395679147914052, - 0.018908362835645676, - 0.018901748582720757, - -0.027279669418931007, - -0.01689542829990387, - -0.018370913341641426, - 0.0115951057523489, - 0.00011167806223966181, - -0.015009238384664059, - -0.025429191067814827, - 0.046905338764190674, - 0.08596183359622955, - -0.008884668350219727, - -0.007061445619910955, - -0.02276133932173252, - -0.02886134572327137, - -0.04036477208137512, - -0.04294109717011452, - -0.019262341782450676, - 0.013587094843387604, - 0.025551412254571915, - 0.022075757384300232, - 0.007027060724794865, - -0.014112270437180996, - -0.040397074073553085, - 0.02990156225860119, - -0.040956370532512665, - -0.056992411613464355, - 0.007585381157696247, - 0.03028537891805172, - -0.05538065731525421, - 0.02101815678179264, - -0.06724991649389267, - 0.016385162249207497, - -0.015331491827964783, - 0.0015541237080469728, - -0.03691580891609192, - 0.16136234998703003, - 0.04331236705183983, - 0.08882835507392883, - -0.03665631636977196, - 0.008116676472127438, - -0.009053309448063374, - -0.008307244628667831, - -0.04705148562788963, - 0.002572309924289584, - -0.0029353646095842123, - -0.006023446563631296, - 0.015761880204081535, - -0.00223606382496655, - 0.028933778405189514, - -0.012582440860569477, - 0.02382679283618927, - 0.012480254285037518, - -0.010401170700788498, - -0.02937900647521019, - 0.0044751036912202835, - -0.014333509840071201, - 0.23399977385997772, - 0.06154726445674896, - 0.014666212722659111, - -0.004293851088732481, - -0.012362245470285416, - 0.034040674567222595, - 0.00018130458192899823, - -0.007701467722654343, - 0.016776051372289658, - 0.0405387319624424, - -0.019836407154798508, - -0.06605929881334305, - -0.10589360445737839, - -0.00011402185191400349, - 0.0414431169629097, - -0.03499400243163109, - 0.018173441290855408, - -0.03551133722066879, - -0.00937396939843893, - -0.010918735526502132, - 0.023248620331287384, - -0.007022481877356768, - -0.024430107325315475, - 0.01054474152624607, - -0.011587454937398434, - 0.021805770695209503, - 0.011188827455043793, - 0.020078042522072792, - 0.020938916131854057, - -0.005414190702140331, - -0.0005698357708752155, - 0.004482859745621681, - 0.07355683296918869, - 0.05104663595557213, - -0.6664525270462036, - 0.008901916444301605, - 0.0032281232997775078, - 0.04397742822766304, - 0.046516302973032, - -0.05692344158887863, - -0.02608596347272396, - -0.044691991060972214, - 0.020901352167129517, - -0.024239376187324524, - 0.06728968024253845, - 0.02080882340669632, - -0.03337946906685829, - -0.003638755064457655, - 0.009570823051035404, - 0.012846720404922962, - 0.022809570655226707, - -0.02597975917160511, - 0.015153900720179081, - 0.009355587884783745, - -0.02407221868634224, - -0.05272749438881874, - -0.03841960430145264, - -0.0046081445179879665, - 0.028458591550588608, - -0.01425246987491846, - -0.024958377704024315, - -0.027691692113876343, - -0.022227497771382332, - 0.01862560212612152, - 0.024540208280086517, - 0.037573982030153275, - 0.04129965603351593, - 0.28426194190979004, - 0.011614586226642132, - -0.004165368620306253, - -0.06697152554988861, - -0.04220246896147728, - 0.008959158323705196, - -0.10312122106552124, - 0.015142198652029037, - -0.018160363659262657, - 0.0010517077753320336, - 0.04825419560074806, - 0.015108847059309483, - -0.006655402481555939, - -0.019625095650553703, - -0.009657816961407661, - 0.1054580807685852, - 0.007676088251173496, - -0.03819400072097778, - 0.06936590373516083, - -0.0176022220402956, - 0.006931814830750227, - -0.016003107652068138, - 0.029864948242902756, - 0.007605914957821369, - -0.019057845696806908, - -0.15935087203979492, - 0.009957997128367424, - -0.029973575845360756, - 0.01890627294778824, - 0.01582777127623558, - 0.019879892468452454, - 0.0013181425165385008, - -0.003878768300637603, - 0.1834287941455841, - -0.0036808792501688004, - -0.06291866302490234, - -0.010154333896934986, - -0.026176897808909416, - 0.0013092634035274386, - 0.03278633952140808, - -0.023802854120731354, - -0.01670144684612751, - -0.007089970633387566, - 0.03347836434841156, - -0.03182906284928322, - -0.01121459435671568, - -0.01792534440755844, - -0.019700700417160988, - -0.026426764205098152, - 0.0015143606578931212, - -0.01195666752755642, - 0.004186735488474369, - -0.018637392669916153, - 0.13496868312358856, - 0.04692433774471283, - 0.004729895852506161, - 0.01688482239842415, - -0.031225934624671936, - -0.029261546209454536, - -0.01289528701454401, - -0.04571901261806488, - 0.015225628390908241, - -0.030397191643714905, - 0.0007445163791999221, - 0.038517385721206665, - -0.004323385655879974, - -0.004897178150713444, - -0.0509830079972744, - -0.023896213620901108, - -0.03539462387561798, - -0.013806920498609543, - -0.02313077636063099, - -0.020281698554754257, - 0.011528613977134228, - -0.010803278535604477, - -0.024488206952810287, - -0.024789536371827126, - 0.02430596388876438, - 0.006396164186298847, - -0.15431475639343262, - -0.0026174024678766727, - 0.015244047157466412, - 0.01599961146712303, - -0.031208956614136696, - 0.01221986673772335, - -0.03766421228647232, - -0.02927890047430992, - -0.020542332902550697, - 0.051428716629743576, - 0.026843905448913574, - -0.04084937274456024, - -0.02495415508747101, - 0.01575213298201561, - -0.04543346166610718, - 0.008325192146003246, - -0.009089762344956398, - 0.005527939181774855 - ], - [ - -0.00010827799269463867, - 0.0006553896237164736, - 0.0006330658216029406, - -0.0007285509491339326, - -0.0007775365374982357, - 0.0002927816240116954, - 9.050511289387941e-05, - -8.079176950559486e-06, - 0.0014108582399785519, - 0.002271497156471014, - -0.0019318037666380405, - 0.002783318515866995, - 0.0008154139504767954, - -0.002726245205849409, - -0.001700105844065547, - 0.0029041410889476538, - -0.0006082775653339922, - -0.0029578274115920067, - -0.0021291912999004126, - 0.003668272402137518, - -0.006067234091460705, - 0.004846291616559029, - -0.00019070245616603643, - -0.0013229274190962315, - -0.0007096334593370557, - -0.0013187259901314974, - 0.001260320539586246, - 0.0015895880060270429, - -0.00020727062656078488, - 0.0004459435003809631, - 0.00013847177615389228, - 0.002195236273109913, - 0.000524737813975662, - 0.00029630912467837334, - 0.00022543675731867552, - 0.0005961178103461862, - 0.0023191948421299458, - 0.0004737357667181641, - 0.00012262340169399977, - -0.0011079733958467841, - -0.0005170938675291836, - 0.0032444223761558533, - -0.0005316754104569554, - 0.00028747267788276076, - -0.0022013187408447266, - -0.000246245734160766, - 0.0012672885786741972, - -0.0011230683885514736, - 0.00034156316542066634, - 6.110098911449313e-05, - -0.0036320697981864214, - 0.00839304830878973, - -0.00036461767740547657, - -0.0014399053761735559, - -0.0018887113546952605, - -0.0010303580202162266, - 0.0005471290787681937, - -0.001012576511129737, - -0.006984218023717403, - -0.0015388330211862922, - -9.543448868498672e-06, - -0.00345255876891315, - -0.0008465563296340406, - 0.002141995122656226, - -0.005929074715822935, - 0.0023569222539663315, - -0.011944337747991085, - 0.0032718651928007603, - -0.0015340378740802407, - -0.003624268574640155, - -0.002508001634851098, - -0.07321562618017197, - 0.004026712849736214, - 0.006132926791906357, - -0.001299993833526969, - 0.0017326053930446506, - 0.001456710509955883, - 0.0011561802821233869, - -0.0029601636342704296, - 0.002245260402560234, - -0.0012885192409157753, - 0.0008217112044803798, - -0.9194226861000061, - 0.00048749640700407326, - -0.003850845620036125, - 0.0027994660194963217, - -0.0002001189859583974, - 0.0026361632626503706, - -0.00047343113692477345, - 0.0039422945119440556, - 0.001254156231880188, - 0.0016300464048981667, - 0.009858542121946812, - 0.0005821355152875185, - 0.0026699677109718323, - 0.0021580171305686235, - 0.0006616913597099483, - -0.0023609751369804144, - 0.0040764580480754375, - -0.0012751043541356921, - 0.0010796040296554565, - 0.003609892912209034, - 0.0004378293233457953, - 0.0010099116479977965, - 0.0023062557447701693, - -0.0005002556717954576, - -0.001958992565050721, - 0.0005599589785560966, - -0.0018944533076137304, - -0.002489890204742551, - 0.006977155804634094, - 0.002629857510328293, - -0.0015106593491509557, - -6.263751856749877e-05, - 0.0018749851733446121, - 0.0030972189269959927, - -0.0025497297756373882, - 0.0020334587898105383, - 0.0003482028841972351, - 0.001349704572930932, - -0.00048202264588326216, - -0.0025591992307454348, - -0.0017800374189391732, - 0.0024314101319760084, - -0.0026503854896873236, - -0.0007560980156995356, - 0.27636539936065674, - -5.3445834055310115e-05, - 0.0008999109850265086, - 0.0005509965703822672, - 7.038441981421784e-05, - 0.0028021838515996933, - 0.00018004755838774145, - -0.0004441644705366343, - -8.497750241076574e-05, - 0.0012134804856032133, - -0.002733569825068116, - -0.0001992243924178183, - -0.003178783692419529, - 0.0005546394386328757, - 0.0018067904748022556, - -0.00013657928502652794, - -0.0013590740272775292, - -0.0012573201674968004, - -0.000432398053817451, - -0.004721523262560368, - 0.00013082640361972153, - -0.000487040524603799, - -0.0022742946166545153, - -0.0008290664991363883, - -0.00012079884618287906, - -0.00801030546426773, - -0.0022530376445502043, - -0.00604651216417551, - -0.002985659521073103, - 0.001070367288775742, - 0.00209987536072731, - 0.0005990333156660199, - 0.0014639345463365316, - 0.20770660042762756, - -0.0017761291237547994, - 0.0012312595499679446, - -0.00019514949235599488, - 0.001366934971883893, - 0.00767155084758997, - 0.09178145974874496, - 0.002087140455842018, - -0.003683428280055523, - 0.0012110414681956172, - 0.0025998835917562246, - -0.004943897482007742, - 0.002261979738250375, - -0.00020782534556929022, - 0.001440843683667481, - 0.0002670135290827602, - -0.0007498793420381844, - 0.00022396253189072013, - 0.006304520647972822, - -0.0017923930427059531, - 0.005104507319629192, - -0.0014958488754928112, - 0.002469663741067052, - 0.0005551166250370443, - -0.0007293447852134705, - -0.0061987414956092834, - 0.00013917767500970513, - -0.002255507977679372, - -0.00038407184183597565, - 0.0016369068762287498, - 0.0023411877918988466, - 0.0012745388085022569, - -0.002255487022921443, - -0.05939352884888649, - -0.0050690025091171265, - 0.002728017047047615, - -0.0021275917533785105, - 0.0013063683873042464, - -0.0003585604717954993, - 0.0016238096868619323, - 0.0013538579223677516, - -0.0007306955521926284, - -0.0022437742445617914, - 0.003244237042963505, - -0.0027617455925792456, - 0.0017577861435711384, - 0.007001623045653105, - -0.0012715691700577736, - -0.00088144326582551, - -0.0006131340633146465, - 0.0007569086737930775, - 2.5667002773843706e-05, - -0.002417458686977625, - -0.05205210670828819, - 0.0024900382850319147, - -0.0010856176959350705, - 0.000423908670200035, - -0.0032802331261336803, - 0.00011838204227387905, - 0.004869855474680662, - -0.008563886396586895, - 0.0008944085566326976, - 0.00039805308915674686, - -0.0003481464518699795, - 0.00045813628821633756, - -0.000157904825755395, - 0.0008978346595540643, - -0.0009060451411642134, - 0.0014180212747305632, - 0.0003968545061070472, - 0.0005831068265251815, - -0.0006104140193201602, - 0.0016056641470640898, - 0.0027039675042033195, - -0.0012397092068567872, - -0.0006623810040764511, - -0.003261718200519681, - -0.004526151809841394, - 0.0018628468969836831, - 0.11547135561704636, - -0.0002039532409980893, - 0.0013867852976545691, - 0.002832125872373581, - -0.002430580323562026, - -0.0033992158714681864, - -0.0034709221217781305, - -0.000842045119497925, - 0.005215635523200035, - 0.00117189297452569, - 0.001624249154701829, - -0.0016597567591816187, - -0.0018762027611956, - -0.0002507487661205232, - -0.003366215853020549, - 0.0016249099280685186, - -0.0019396443385630846, - 0.0007859586039558053 - ] - ] - ], - "dims": [ - 1, - 50, - 256 - ], - "type": "float32" - }, - "style_dp": { - "data": [ - [ - [ - -0.859144926071167, - 0.003274796297773719, - -0.02882358804345131, - 0.012772580608725548, - -0.003964293748140335, - 0.46738263964653015, - 0.027721598744392395, - 0.00013931782450526953, - -0.09311243146657944, - 0.0335104800760746, - 0.12667107582092285, - 0.019368402659893036, - -0.12340229749679565, - -0.013687515631318092, - 0.0003249911533202976, - -0.002291800919920206 - ], - [ - -0.863703191280365, - 0.0022923669312149286, - -0.049266669899225235, - 0.016284601762890816, - -0.0083006015047431, - 0.4646320343017578, - 0.03090321086347103, - 0.0010726414620876312, - -0.08440588414669037, - 0.026454126462340355, - 0.11183255910873413, - 0.022403428331017494, - -0.11573991924524307, - -0.013289673253893852, - -0.0008916801889427006, - -0.0023192125372588634 - ], - [ - -0.8666834235191345, - 0.002528590615838766, - -0.044595688581466675, - 0.027236828580498695, - -0.0033846034202724695, - 0.47870343923568726, - 0.023387888446450233, - -4.77617941214703e-05, - -0.05865315720438957, - 0.028448021039366722, - 0.07297754287719727, - 0.0251677967607975, - -0.07833275943994522, - -0.007679786533117294, - 0.0011082584969699383, - -0.001588572165928781 - ], - [ - -0.8533374667167664, - 0.004059928469359875, - -0.06843720376491547, - 0.011696855537593365, - -0.006490134168416262, - 0.47169333696365356, - 0.03360500559210777, - 0.0012990274699404836, - -0.09420906007289886, - 0.034676771610975266, - 0.12403014302253723, - 0.03038826398551464, - -0.1293783038854599, - -0.01316341944038868, - 0.0004072778101544827, - -0.0036933559458702803 - ], - [ - -0.8580924868583679, - 0.0017622223822399974, - -0.08281110972166061, - -0.006145110819488764, - -0.011529934592545033, - 0.45855531096458435, - 0.038608744740486145, - 0.0029551545158028603, - -0.09642551094293594, - 0.031245023012161255, - 0.12536808848381042, - 0.03510895371437073, - -0.13220085203647614, - -0.012819794937968254, - -0.00020507328736130148, - -0.002841818379238248 - ], - [ - -0.8695684671401978, - 0.0016533465823158622, - -0.016786949709057808, - 0.030644364655017853, - -0.0047801584005355835, - 0.46870794892311096, - 0.019693667069077492, - -0.002297286642715335, - -0.06671838462352753, - 0.02183295600116253, - 0.09291384369134903, - 0.008689505979418755, - -0.09362033009529114, - -0.011036938987672329, - 0.0001802840270102024, - -0.0008941394044086337 - ], - [ - -0.8665012121200562, - 0.0021088127978146076, - 0.008145921863615513, - 0.06650451570749283, - 0.0018260609358549118, - 0.4857217073440552, - 0.008938592858612537, - -0.00576442014425993, - -0.035160426050424576, - 0.035350456833839417, - 0.058539267629384995, - -0.005595108028501272, - -0.05118958652019501, - -0.007261279504746199, - 0.004649373237043619, - 0.001101324101909995 - ], - [ - -0.8620185852050781, - 0.003085237927734852, - -0.04042918607592583, - 0.027684275060892105, - -0.007058771792799234, - 0.4740116596221924, - 0.027266323566436768, - 0.001285439939238131, - -0.07773463428020477, - 0.03186710923910141, - 0.10233503580093384, - 0.021836837753653526, - -0.10411493480205536, - -0.013311193324625492, - 0.00015149408136494458, - -0.002602579304948449 - ] - ] - ], - "dims": [ - 1, - 8, - 16 - ], - "type": "float32" - }, - "metadata": { - "source_file": "F2.wav", - "source_sample_rate": 44100, - "target_sample_rate": 44100, - "extracted_at": "2025-11-18T17:05:31.774418" - } -} \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/M1.json b/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/M1.json deleted file mode 100644 index f6e6b25..0000000 --- a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/M1.json +++ /dev/null @@ -1,13076 +0,0 @@ -{ - "style_ttl": { - "data": [ - [ - [ - 0.003769682953134179, - -0.033365558832883835, - 0.0723443254828453, - -0.09413114190101624, - -0.01939217373728752, - -0.028061848133802414, - 0.0478505864739418, - -0.02391064539551735, - -0.03608805686235428, - 0.006859091110527515, - -0.04287954047322273, - 0.07858133316040039, - -0.025948403403162956, - -0.00798060279339552, - -0.04342071712017059, - -0.21682225167751312, - 0.023035436868667603, - -0.07427406311035156, - 0.013026224449276924, - 0.0563332699239254, - -0.05418560653924942, - 0.008474626578390598, - -0.015669044107198715, - 0.005128027871251106, - 0.01901254430413246, - -0.042063210159540176, - -0.02622942626476288, - 0.006596935912966728, - 0.018496567383408546, - 0.024897560477256775, - 0.006083015352487564, - -0.04245319217443466, - 0.03895018994808197, - 0.011312662623822689, - -0.02849792130291462, - 0.001685634022578597, - -0.029400212690234184, - -0.06333213299512863, - -0.021969959139823914, - 0.07365906983613968, - 0.055352188646793365, - -0.06831614673137665, - 0.0500313825905323, - -0.02541237883269787, - 0.0555570125579834, - -0.05691886320710182, - -0.04980682209134102, - -0.025310784578323364, - -0.03200870007276535, - 0.024702150374650955, - -0.04880652576684952, - -0.04483407735824585, - -0.026547027751803398, - -0.0061393664218485355, - 0.06664931774139404, - -0.046713415533304214, - -0.03441156819462776, - 0.03767219930887222, - -0.02834133990108967, - 0.006894533522427082, - -0.06710810959339142, - -0.013180713169276714, - -0.011961283162236214, - 0.004220297560095787, - 0.013454366475343704, - 0.02425173856317997, - -0.03089252859354019, - 0.005048103164881468, - 0.016559582203626633, - -0.029728280380368233, - 0.020947176963090897, - 0.17558924853801727, - 0.08590546250343323, - -0.025919724255800247, - -0.02999245747923851, - -0.029497401788830757, - 0.024361785501241684, - 0.03541616350412369, - 0.019100066274404526, - -0.0465112179517746, - -0.02565806172788143, - -0.017970101907849312, - 0.0040411194786429405, - -0.03685641288757324, - -0.014324434101581573, - -0.002514125779271126, - 0.02016664668917656, - 0.03905915096402168, - 0.005653530824929476, - 0.029771985486149788, - 0.033885981887578964, - -0.046851545572280884, - 0.09423886239528656, - -0.004256761632859707, - -0.05234343186020851, - 0.01220792531967163, - -0.03376942500472069, - -0.0035663966555148363, - 0.04730553925037384, - -0.00044302517198957503, - -0.006341530941426754, - 0.02814599871635437, - 0.0027398052625358105, - -0.016455359756946564, - 0.056864820420742035, - 0.020079102367162704, - 0.0024428849574178457, - 0.025728123262524605, - 0.02835025265812874, - 0.0003778223181143403, - -0.012506168335676193, - 0.015134117566049099, - 0.004267977550625801, - 0.002035548910498619, - 0.0243021659553051, - 0.013770884834229946, - 0.036365535110235214, - -0.030497699975967407, - -0.019750209525227547, - 0.04922337457537651, - -0.008848529309034348, - 0.01748422347009182, - 0.03930310904979706, - 0.045676957815885544, - -0.06056510657072067, - 0.004602434579282999, - -0.5870807766914368, - 0.017336856573820114, - 0.0012518423609435558, - 0.03634630888700485, - -6.752915942342952e-05, - 0.029698200523853302, - -0.017287306487560272, - 0.029176969081163406, - -0.02052912302315235, - -0.004785554949194193, - 0.09070499986410141, - 0.0006905465270392597, - -0.0008438009535893798, - -0.03434355556964874, - -0.018656479194760323, - -0.025192225351929665, - 0.008268289268016815, - -0.08087397366762161, - 0.017444312572479248, - -0.05313713476061821, - -0.05257129296660423, - -0.060316476970911026, - -0.05420905351638794, - -0.03306861221790314, - 0.03428215906023979, - -0.025055957958102226, - -0.049239739775657654, - -0.06263463944196701, - -0.001029200735501945, - -0.01966349594295025, - 0.02753189392387867, - 0.06121380254626274, - 0.000950282032135874, - 0.31741946935653687, - -0.010103080421686172, - 0.006387840025126934, - -0.04469357430934906, - 0.011566582135856152, - 0.01645699329674244, - -0.19565971195697784, - 0.034146253019571304, - 0.004483254626393318, - 0.022921403869986534, - -0.013346454128623009, - -0.03260461613535881, - -0.01028768066316843, - -0.044223684817552567, - 0.03521621227264404, - 0.0222915131598711, - 0.0604998916387558, - -0.038424596190452576, - 0.015571229159832, - -0.006611395161598921, - -0.045558761805295944, - -0.023857977241277695, - 0.045739054679870605, - 0.0006324349669739604, - -0.0072161308489739895, - -0.0394754596054554, - 0.01193306315690279, - -0.007356538902968168, - 0.015489950776100159, - -0.04507507383823395, - 0.024948960170149803, - 0.034246042370796204, - -0.04604694992303848, - 0.24678270518779755, - -0.0384286604821682, - -0.03832937404513359, - 0.028795579448342323, - -0.06411918252706528, - -0.036350276321172714, - -0.009025261737406254, - -0.05713275447487831, - -0.016113458201289177, - -0.03506559133529663, - -0.005519369151443243, - -0.022528208792209625, - 0.033667758107185364, - 0.009981068782508373, - 0.023554960265755653, - -0.03237114101648331, - -0.027484217658638954, - 0.05889555439352989, - -0.014689731411635876, - -0.05375963822007179, - 0.14486593008041382, - 0.045225437730550766, - 0.015468337573111057, - -0.041618186980485916, - 0.012483246624469757, - 0.05543101951479912, - -0.018767260015010834, - -0.055619847029447556, - -0.02176154963672161, - -0.003968316130340099, - -0.0029082319233566523, - 0.03966308757662773, - 0.034102264791727066, - 0.0166261475533247, - -0.0750366672873497, - -0.012497393414378166, - 0.002748539438471198, - 0.03389084339141846, - -0.020528363063931465, - 0.01888086646795273, - -0.031552523374557495, - -0.018423257395625114, - -0.004654719494283199, - -0.016912491992115974, - -0.02827381156384945, - 0.009202420711517334, - -0.237024188041687, - -0.021144263446331024, - -0.015758275985717773, - -0.02398734726011753, - 0.03527813032269478, - 0.011210111901164055, - 0.008206363767385483, - 0.016184212639927864, - 0.03484442085027695, - -0.045467227697372437, - -0.021171003580093384, - 0.0046259877271950245, - 0.012825552374124527, - -0.021949894726276398, - -0.03146056830883026, - -0.010172293521463871, - -0.031471189111471176, - 0.010008302517235279 - ], - [ - -0.018783561885356903, - -0.019875260069966316, - 0.02834334783256054, - -0.05220643803477287, - 0.005674509797245264, - -0.029610082507133484, - 0.02131018042564392, - -0.04520688205957413, - -0.057613804936409, - 0.014626849442720413, - -0.046238116919994354, - 0.027587180957198143, - -0.019243640825152397, - -0.013353681191802025, - -0.021947219967842102, - -0.32082945108413696, - -0.00128355179913342, - -0.0509997233748436, - 0.02033918723464012, - 0.03773503005504608, - -0.010069986805319786, - -0.011801235377788544, - -0.013011770322918892, - 0.0071001239120960236, - 0.017641281709074974, - -0.006883041467517614, - -0.01270737498998642, - 0.027164362370967865, - -0.008157062344253063, - 0.019380483776330948, - 0.006140646990388632, - -0.033619534224271774, - 0.05017276108264923, - 0.020301321521401405, - -0.01696527935564518, - -0.02645733393728733, - -0.016417600214481354, - -0.04766992852091789, - -0.036596205085515976, - 0.03562125191092491, - 0.0340130478143692, - -0.02162117324769497, - 0.024128099903464317, - -0.021530544385313988, - 0.033242568373680115, - -0.055454861372709274, - -0.014765840023756027, - 0.004174809902906418, - -0.01728108525276184, - -0.0016729128547012806, - -0.016903236508369446, - -0.021720141172409058, - -0.01944860816001892, - -0.010157519951462746, - 0.008733545430004597, - -0.01450209692120552, - -0.014547528699040413, - 0.01583787053823471, - 0.004819119349122047, - -0.020155349746346474, - -0.05612538754940033, - -0.014179928228259087, - 0.003014771966263652, - -0.021755816414952278, - 0.016729295253753662, - 0.015413866378366947, - -0.052344806492328644, - 0.002327077789232135, - 0.01442535500973463, - -0.011328434571623802, - 0.031754475086927414, - 0.15135064721107483, - 0.07808814197778702, - -0.007581957615911961, - -0.03675176948308945, - -0.016497213393449783, - 0.03248288109898567, - 0.015244891867041588, - -0.0005904061254113913, - -0.022908419370651245, - -0.017256660386919975, - -0.00773146515712142, - -0.1327562928199768, - -0.0034574230667203665, - 0.0061548082157969475, - -0.020905587822198868, - 0.02478914149105549, - 0.023104242980480194, - -0.01168016530573368, - 0.01940309628844261, - 0.02229035086929798, - -0.009106293320655823, - 0.1921890527009964, - 0.01623937487602234, - -0.03958846256136894, - 0.011476462706923485, - -0.021723011508584023, - -0.011749603785574436, - 0.03960375487804413, - -0.005166150163859129, - -0.024833781644701958, - 0.05481625720858574, - 0.02013046108186245, - -0.03754401579499245, - 0.06801607459783554, - 0.006482788361608982, - 0.0259772427380085, - 0.015398763120174408, - 0.0071968799456954, - -0.005819469690322876, - -0.0016681161941960454, - 0.028427021577954292, - 0.02494768239557743, - 0.0014161334838718176, - -0.008176513947546482, - 0.029169270768761635, - 0.01232969667762518, - -0.035803940147161484, - -0.03569992259144783, - 0.037630487233400345, - -0.00991789624094963, - 0.015318171121180058, - 0.027752794325351715, - 0.012073935940861702, - -0.06489840149879456, - -0.00993498507887125, - -0.6195259094238281, - 0.0052538369782269, - -0.006253179162740707, - 0.02118026092648506, - -0.00580184580758214, - 0.02672186866402626, - -0.025304904207587242, - 0.016308706253767014, - 0.013159254565834999, - -0.007192090153694153, - 0.06744527071714401, - -0.0029529931489378214, - 0.020158305764198303, - 0.002939407015219331, - -0.006092686206102371, - -0.0036977981217205524, - 0.016399461776018143, - -0.06845119595527649, - 0.02017035149037838, - -0.0373101606965065, - -0.03039402700960636, - -0.049520447850227356, - -0.027554217725992203, - -0.018149981275200844, - 0.03314753249287605, - -0.046103447675704956, - -0.032524675130844116, - -0.03308733180165291, - -0.006250955630093813, - -0.017858752980828285, - 0.012506875209510326, - 0.057659588754177094, - -0.018684949725866318, - 0.39476922154426575, - 0.011910655535757542, - -0.024890996515750885, - 0.011388891376554966, - 0.0002711923443712294, - 0.006746288388967514, - -0.20330031216144562, - 0.029401171952486038, - 0.001980764325708151, - 0.006167784333229065, - -0.013248746283352375, - -0.05235641077160835, - -0.02404048852622509, - -0.024646474048495293, - 0.006970616988837719, - 0.01043673325330019, - 0.041090838611125946, - -0.03535257652401924, - -0.011644233018159866, - -0.0003857849515043199, - -0.030418166890740395, - -0.012194042094051838, - 0.029927823692560196, - 0.002355758799239993, - -0.019678756594657898, - 0.023835040628910065, - 0.013517720624804497, - -0.026276856660842896, - 0.05290117859840393, - -0.06053166091442108, - 0.023658450692892075, - 0.021897057071328163, - -0.011596324853599072, - 0.21168839931488037, - -0.0245603546500206, - -0.032991599291563034, - 0.023826582357287407, - -0.04320590943098068, - 0.012495992705225945, - -0.021772287786006927, - -0.05853288993239403, - -0.02288443222641945, - -0.021918734535574913, - -0.01923205889761448, - 0.019309042021632195, - 0.03699643909931183, - 0.043005410581827164, - -0.010885671712458134, - -0.012800154276192188, - -0.004485696088522673, - 0.015485809184610844, - -0.020295267924666405, - -0.04353466257452965, - 0.11804870516061783, - 0.01402196940034628, - 0.016148224472999573, - 0.005997905507683754, - 0.004379738587886095, - 0.043977368623018265, - -0.007761606015264988, - -0.04118715599179268, - -0.015760578215122223, - -0.010480260476469994, - -0.006734602153301239, - 0.033071912825107574, - 0.027151260524988174, - 0.0027261122595518827, - -0.038806453347206116, - 0.008522707968950272, - 0.010401044972240925, - 0.024747785180807114, - -0.007877331227064133, - -0.009018389508128166, - -0.020392943173646927, - -0.0199329424649477, - -0.030047006905078888, - -0.004209526348859072, - -0.01889234408736229, - -0.004343912471085787, - -0.08469684422016144, - -0.033172037452459335, - -0.001986523624509573, - -0.016790248453617096, - 0.0009914047550410032, - 0.003627951256930828, - 0.02465677633881569, - 0.002926485612988472, - 0.016533754765987396, - -0.03904621675610542, - 0.005358289461582899, - 0.0364743210375309, - -0.008254075422883034, - -0.026099028065800667, - 0.009413683786988258, - -0.01908699795603752, - -0.01243173610419035, - 0.011825734749436378 - ], - [ - -0.0069912695325911045, - -0.0073660025373101234, - 0.021485773846507072, - -0.022307949140667915, - -0.006843430921435356, - -0.028923384845256805, - 0.011824236251413822, - -0.008160727098584175, - -0.026631297543644905, - 0.011071963235735893, - -0.009624691680073738, - 0.013204297050833702, - 0.001384751289151609, - -0.006617953535169363, - -0.01910509169101715, - -0.35333937406539917, - -0.0009313260670751333, - -0.03796400502324104, - -0.008915816433727741, - 0.013954638503491879, - -0.0370522141456604, - -0.03020714409649372, - -0.03133675083518028, - 0.015971524640917778, - 0.01639716513454914, - -0.013341727666556835, - 0.0006092560361139476, - 0.005377367604523897, - -0.01730315200984478, - 0.03180195018649101, - -0.0019992853049188852, - -0.0070055462419986725, - 0.011490006931126118, - -0.004309134557843208, - 0.03586309403181076, - -0.03556767851114273, - 0.010621858760714531, - -0.047121886163949966, - -0.03221423923969269, - 0.023909693583846092, - 0.029767636209726334, - -0.024065785109996796, - 0.04023559391498566, - -0.005936158820986748, - 0.02284991927444935, - -0.04546770080924034, - -0.004016604740172625, - 0.0013300501741468906, - -0.01996905915439129, - 0.007685178425163031, - -0.02275506593286991, - -0.010974258184432983, - -0.014541438780725002, - 0.01154645811766386, - -0.034916989505290985, - -0.02259065769612789, - -0.0040074740536510944, - 0.00812556128948927, - -0.00019724124285858124, - -0.021030288189649582, - -0.04681899771094322, - 0.01683194190263748, - -0.0051097325049340725, - -0.029239580035209656, - -0.01070922426879406, - -0.007017801981419325, - -0.022063424810767174, - 0.010076725855469704, - 0.03631850704550743, - 0.01325773261487484, - 0.01230081357061863, - 0.15980426967144012, - 0.07734286785125732, - -0.001060596783645451, - -0.02879146672785282, - -0.05241520702838898, - 0.040257301181554794, - 0.028458939865231514, - 0.010624734684824944, - -0.012471254914999008, - 0.005063987337052822, - -0.015170072205364704, - 0.028588758781552315, - 0.00839124247431755, - -0.01718156412243843, - 0.003986119758337736, - 0.034158576279878616, - -0.007653664797544479, - -0.011198367923498154, - -0.010351495817303658, - 0.013468530960381031, - -0.003202661871910095, - 0.1565101593732834, - 0.005594208370894194, - -0.011736483313143253, - 0.020037151873111725, - -0.02455052360892296, - -0.0021618534810841084, - -6.328498420771211e-05, - -0.012339049018919468, - -0.005276720970869064, - 0.03690531849861145, - 0.02731703780591488, - -0.04017636924982071, - 0.08356691151857376, - 0.007228562608361244, - 0.03583059087395668, - 0.0030484285671263933, - 0.012806451879441738, - 0.004561110399663448, - 0.023174943402409554, - 0.03356641158461571, - 0.020615169778466225, - 0.00563929183408618, - -0.014935936778783798, - 0.03514509275555611, - 0.01986621879041195, - -0.03755585476756096, - -0.017425905913114548, - 0.025848563760519028, - -0.026506692171096802, - 0.003337259404361248, - 0.03514658659696579, - 0.022193612530827522, - -0.05592292547225952, - 0.002818913897499442, - -0.6683069467544556, - 0.021660814061760902, - 0.0062706987373530865, - 0.02762420102953911, - 0.0008959519327618182, - 0.00440491596236825, - -0.0004402975318953395, - -0.008014275692403316, - 0.019945094361901283, - 0.0011743761133402586, - 0.01822824776172638, - -0.0025712086353451014, - 0.00294431671500206, - -0.022199921309947968, - -0.019762495532631874, - -0.005233008414506912, - 0.016719024628400803, - -0.06303982436656952, - 0.010752059519290924, - -0.03591383621096611, - -0.014369448646903038, - -0.035388730466365814, - -0.040407944470644, - -0.016087720170617104, - 0.01626790314912796, - -0.016121841967105865, - -0.016212422400712967, - -0.04142380878329277, - -0.030339471995830536, - 7.591029134346172e-05, - 0.007410830352455378, - 0.025892531499266624, - -0.04283464699983597, - 0.3559846878051758, - 0.0448298379778862, - -0.015280737541615963, - 0.006517605856060982, - 0.021467050537467003, - 0.007047694176435471, - -0.19737088680267334, - 0.02296851947903633, - -0.011733289808034897, - 0.0034425463527441025, - -0.021774670109152794, - -0.04731139913201332, - -0.028895802795886993, - -0.02602985128760338, - -0.0009844962041825056, - -0.01770346611738205, - 0.013305834494531155, - -0.03565887361764908, - 0.0024438020773231983, - 0.002026089932769537, - -6.274969200603664e-05, - -0.02456086315214634, - 0.03311418369412422, - -0.001844761660322547, - 0.0034354953095316887, - 0.01623770408332348, - 0.022610940039157867, - 0.0016001301119104028, - 0.027744609862565994, - -0.05421812832355499, - -0.00497094914317131, - 0.02897336147725582, - 0.0027708476409316063, - 0.22778739035129547, - -0.051383327692747116, - -0.010394671931862831, - 0.03188304603099823, - -0.03599587082862854, - 0.005292241927236319, - -0.02102307602763176, - -0.04367809742689133, - -0.026858530938625336, - -0.02791961282491684, - 0.009527713060379028, - 0.007441436871886253, - 0.01432044617831707, - 0.040318142622709274, - -0.018512167036533356, - -0.004478972405195236, - -0.0032373203430324793, - 0.02646278403699398, - -0.01632862351834774, - -0.0063740587793290615, - 0.12857861816883087, - 0.00826253741979599, - -0.008191175758838654, - -0.013388808816671371, - 0.015879103913903236, - 0.015593484975397587, - -0.00026244480977766216, - -0.06862407177686691, - -0.012050344608724117, - -0.02328936569392681, - -0.0017579328268766403, - 0.01614171825349331, - 0.030978845432400703, - -0.008224239572882652, - -0.019448766484856606, - 0.006659733131527901, - 0.011662395671010017, - 0.02404424361884594, - 0.0034853415563702583, - -0.004322953522205353, - 0.014432188123464584, - -0.0007068820996209979, - -0.020945955067873, - -0.005733210127800703, - -0.002607202623039484, - -0.003700522007420659, - -0.09009740501642227, - -0.01979873888194561, - 0.016995109617710114, - -0.013903077691793442, - 0.0008203237084671855, - 0.005054749548435211, - 0.012645650655031204, - 0.00776607496663928, - -0.015801463276147842, - -0.032508861273527145, - -0.030510975047945976, - 0.01749878004193306, - -0.011488888412714005, - -0.0057164207100868225, - 0.01932087168097496, - -0.00035330827813595533, - -0.04897402599453926, - -0.0005604831967502832 - ], - [ - -0.016101514920592308, - 0.006082101725041866, - 0.008943773806095123, - 0.011576445773243904, - 0.007921440526843071, - -0.017100896686315536, - -0.007689761463552713, - -0.015537004917860031, - -0.03530062735080719, - 0.021576959639787674, - 0.04755917564034462, - 0.015825269743800163, - -0.0012834822991862893, - 0.0019877953454852104, - -0.01340763084590435, - -0.3520045578479767, - 0.020242052152752876, - 0.03138605132699013, - -0.017830511555075645, - 0.01171152200549841, - 0.00917050614953041, - -0.03271724656224251, - -0.018287671729922295, - -0.02514105848968029, - 0.016334624961018562, - 0.01314517855644226, - 0.014454791322350502, - 0.02257874421775341, - -0.036310430616140366, - 0.031504128128290176, - -0.008902817964553833, - -0.0005425005219876766, - 0.008330036886036396, - 0.03878927603363991, - 0.02876795083284378, - -0.06670571863651276, - 0.01149349007755518, - -0.08152735978364944, - -0.029711540788412094, - 0.0319274477660656, - 0.01321809459477663, - -0.031754158437252045, - 0.024264812469482422, - -0.02081182971596718, - 0.017433160915970802, - -0.03483634442090988, - 0.0248821210116148, - 0.03452368080615997, - -0.03268842771649361, - -0.003379571484401822, - -0.02989775687456131, - 0.01465516909956932, - -0.00924740545451641, - -0.02771609276533127, - 0.0005539177800528705, - -0.032445698976516724, - 0.00497828982770443, - 0.02493828535079956, - 0.00984208844602108, - -0.0636923760175705, - -0.0397205613553524, - 0.08070407807826996, - 0.03561415895819664, - -0.03531688451766968, - -0.08207087218761444, - -0.007859809324145317, - -0.03913455456495285, - -0.0038594549987465143, - 0.08161872625350952, - 0.0374501533806324, - 0.004162798635661602, - 0.12828603386878967, - 0.051018618047237396, - 0.018578406423330307, - -0.0530867874622345, - -0.028170118108391762, - 0.050582509487867355, - -0.0008007598808035254, - 0.009670808911323547, - 0.05525974929332733, - 0.004254825413227081, - -0.009537815116345882, - 0.2665298879146576, - 0.04456516355276108, - 0.012342682108283043, - -0.006793217267841101, - 0.0649176612496376, - -0.028352823108434677, - -0.03656036779284477, - -0.06470970064401627, - -0.006508359685540199, - -0.029898442327976227, - 0.1873732954263687, - -0.0207219235599041, - 0.010691300965845585, - 0.03205782175064087, - -0.006765436846762896, - 0.00647996598854661, - -0.02963920310139656, - -0.017452526837587357, - 0.026097597554326057, - 0.03200068324804306, - 0.07773752510547638, - -0.04920143261551857, - 0.07394245266914368, - -0.04116310551762581, - 0.028907116502523422, - -0.01632356271147728, - -0.011159555986523628, - -0.004679209552705288, - 0.02870144322514534, - 0.029193252325057983, - 0.0515427403151989, - 0.02847733534872532, - -0.05103087052702904, - 0.009468558244407177, - 0.011060447432100773, - -0.061842769384384155, - -0.0057967775501310825, - -0.008302359841763973, - -0.0038494679611176252, - 0.007308355066925287, - 0.02208247222006321, - 0.026321303099393845, - -0.03174928203225136, - 0.03386162221431732, - -0.6097729802131653, - 0.03451959043741226, - -0.012269129976630211, - 0.008790504187345505, - 0.004255122505128384, - -0.004898962564766407, - -0.044228654354810715, - -0.026174098253250122, - 0.04685200750827789, - 0.012504986487329006, - -0.04347706958651543, - 0.008718986064195633, - -0.022577965632081032, - -0.036472417414188385, - 0.01387595571577549, - -0.022014783695340157, - 0.053096942603588104, - -0.02389231137931347, - 0.025172961875796318, - -0.036655958741903305, - -0.0006350906332954764, - -0.03043719381093979, - -0.09501880407333374, - -0.041422657668590546, - 0.004696865566074848, - -0.055258940905332565, - -0.013647778891026974, - -0.04707576334476471, - -0.015879102051258087, - 0.010650412179529667, - 0.01792597584426403, - 0.0009182174107991159, - -0.02701847441494465, - 0.2521499693393707, - 0.077580526471138, - -0.056173086166381836, - 0.0007901181816123426, - 0.020544622093439102, - 0.035550687462091446, - -0.1424461156129837, - -0.03237417712807655, - -0.017699172720313072, - 0.005462276749312878, - -0.0007131429156288505, - -0.04498649761080742, - -0.07762804627418518, - -0.01208867784589529, - -0.0008573043742217124, - -0.01269905362278223, - -0.010197723284363747, - 0.0035092346370220184, - -0.05345163494348526, - 0.003761512693017721, - 0.007503091357648373, - -0.04113266244530678, - -0.007082484662532806, - -0.0070364573039114475, - -0.01731453649699688, - 0.05938944220542908, - 0.030710894614458084, - 0.007075370755046606, - 0.03531218320131302, - -0.08469901233911514, - -0.021452052518725395, - -0.0030895937234163284, - 0.022264331579208374, - 0.1956736445426941, - -0.03450969234108925, - 0.007800732273608446, - 0.060349754989147186, - -0.05211247503757477, - 0.005311698652803898, - -0.03300773724913597, - -0.04238833114504814, - -0.006889228709042072, - 0.03259100019931793, - 0.01784301921725273, - 0.03369320556521416, - -0.029664291068911552, - 0.020586367696523666, - 0.006077789701521397, - 0.026304183527827263, - 0.015012985095381737, - 0.01322322990745306, - -0.029443372040987015, - -0.016312863677740097, - 0.08410947024822235, - -0.0017672717804089189, - 0.021755246445536613, - -1.1265062312304508e-05, - 0.006378295831382275, - -0.02700076624751091, - 0.019730418920516968, - -0.03034150041639805, - -0.018390296027064323, - -0.03741242736577988, - -0.03551292046904564, - 0.011083843186497688, - 0.015799488872289658, - -0.03132760524749756, - -0.0324367918074131, - -0.014308715239167213, - 0.005313593428581953, - -0.012241833843290806, - 0.04691828787326813, - -0.007364219520241022, - -0.004918071441352367, - -0.018388690426945686, - -0.050690919160842896, - -0.01765333116054535, - 0.0037578486371785402, - -0.012804915197193623, - -0.05258483439683914, - -0.008859705179929733, - 0.013661324977874756, - -0.03773065656423569, - 0.005400836002081633, - -0.003567621111869812, - -0.032432325184345245, - 0.012136178091168404, - -0.028232790529727936, - -0.000285333109786734, - -0.007580667268484831, - 0.012041779235005379, - -0.050100550055503845, - -0.041404373943805695, - 0.031441591680049896, - -0.0016229068860411644, - -0.04264731705188751, - -0.025811420753598213 - ], - [ - 0.005851599853485823, - -0.030377211049199104, - 0.029541194438934326, - 0.01015881635248661, - -0.015491935424506664, - -0.014275791123509407, - -0.010827751830220222, - 0.04240876063704491, - 0.02887340821325779, - 0.025824667885899544, - 0.008893148973584175, - 0.006573662161827087, - -0.03516891226172447, - -0.02055404521524906, - -0.08013169467449188, - -0.0025112468283623457, - 0.0018609511898830533, - -0.07140083611011505, - -0.05375222489237785, - 0.02902062050998211, - -0.16139648854732513, - 0.012152574956417084, - 0.003958859480917454, - -0.00484450114890933, - 0.014562786556780338, - -0.009739710949361324, - 0.028113635256886482, - 5.7490786275593564e-05, - -0.025432998314499855, - 0.05157781392335892, - -0.001857911585830152, - -0.02229905314743519, - -0.03195355460047722, - 0.04046015068888664, - -0.024039341136813164, - -0.03680522367358208, - 0.008906121365725994, - -0.04875044897198677, - 0.00401648972183466, - 0.020704487338662148, - 0.08898229151964188, - -0.0339512825012207, - 0.04485265538096428, - -0.0039201295003294945, - 0.029132792726159096, - -0.05928172916173935, - -0.034338753670454025, - -0.013061491772532463, - -0.010422470979392529, - -0.02904709242284298, - -0.06502603739500046, - -0.003935478162020445, - -0.029054876416921616, - -0.026918798685073853, - 0.05024704337120056, - -0.005786483641713858, - -0.01455044373869896, - 0.056932978332042694, - -0.02067061886191368, - 0.013033985160291195, - -0.07738088816404343, - -0.008682938292622566, - 0.022885434329509735, - -0.017049843445420265, - -0.08380560576915741, - 0.030005253851413727, - -0.014054826460778713, - 0.01651342585682869, - 0.0059463647194206715, - 0.05336989834904671, - 0.04814145341515541, - 0.19306734204292297, - 0.03910296410322189, - 0.005570294335484505, - -0.025068921968340874, - -0.10296019166707993, - 0.020621461793780327, - 0.01807761751115322, - 0.01397588662803173, - -0.003481204155832529, - 0.03311246633529663, - 0.00914797093719244, - -0.03449336811900139, - 0.0751747339963913, - -0.0035353859420865774, - 0.04404618963599205, - 0.11298207193613052, - -0.019052783027291298, - -0.0514071099460125, - -0.028183139860630035, - 0.008887755684554577, - -0.022120792418718338, - -0.11551012843847275, - 0.016124071553349495, - -0.02834610641002655, - 0.0501234270632267, - -0.01884535886347294, - -0.001231152331456542, - -0.00900708232074976, - -0.029830919578671455, - 0.028282148763537407, - -0.0174240879714489, - 0.055513761937618256, - 0.004946316592395306, - 0.012559657916426659, - -0.03733872249722481, - 0.0013639965327456594, - 0.01932484470307827, - -0.006819166708737612, - -0.0016229309840127826, - -0.03564121574163437, - 0.03949970379471779, - 0.039226409047842026, - 0.017751328647136688, - 0.044849272817373276, - 0.0047999294474720955, - 0.037752095609903336, - -0.07439295947551727, - -0.01043019164353609, - 0.014951654709875584, - -0.06414293497800827, - 0.03880118578672409, - 0.006891194730997086, - 0.031483978033065796, - -0.0490570105612278, - 0.01155775599181652, - -0.2970868647098541, - 0.027091462165117264, - 0.017113173380494118, - 0.07654789090156555, - 0.0424087792634964, - 0.035013288259506226, - -0.04192623868584633, - -0.008180956356227398, - 0.09964265674352646, - 0.012326396070420742, - 0.004648532252758741, - 0.03608707711100578, - 0.005396679043769836, - -0.023424537852406502, - -0.0400163009762764, - -0.006740716751664877, - 0.030666083097457886, - -0.003187531139701605, - -0.03948809579014778, - -0.06446246057748795, - 0.02515818178653717, - -0.04109054431319237, - -0.06379923224449158, - -0.010885749943554401, - -0.0009935458656400442, - -0.015387068502604961, - -0.037965498864650726, - -0.0963054671883583, - -0.004705850034952164, - 0.009862598031759262, - 0.03534064441919327, - 0.07235708832740784, - -0.0007266572793014348, - 0.21630942821502686, - 0.04470864683389664, - -0.033037591725587845, - -0.029956864193081856, - 0.005552018526941538, - 0.1125774160027504, - -0.13444583117961884, - -0.028607890009880066, - -0.037316977977752686, - 0.0341198556125164, - 0.0006240610964596272, - -0.07862301915884018, - -0.02068793773651123, - -0.10467831790447235, - 0.032300740480422974, - 0.0005449745804071426, - 0.04860688000917435, - 0.005054033827036619, - 0.010110230185091496, - 0.01920868456363678, - -0.009068252518773079, - -0.05920575186610222, - 0.01147480122745037, - -0.003997405059635639, - -0.04326193779706955, - -0.035141754895448685, - 0.04666325822472572, - 0.05676545575261116, - 0.030847428366541862, - -0.06893201172351837, - -0.039237018674612045, - 0.016474680975079536, - 0.0016473006689921021, - 0.2997398376464844, - -0.01690695434808731, - -0.008483568206429482, - 0.009533342905342579, - -0.00048557878471910954, - -0.015414135530591011, - -0.027453837916254997, - -0.025170231238007545, - 0.02424364723265171, - 0.04441777244210243, - -0.0018441731808707118, - 0.03766811639070511, - -0.018936099484562874, - 0.005409993231296539, - 0.023017672821879387, - -0.019533807411789894, - 0.015427462756633759, - 0.008757775649428368, - -0.011141863651573658, - -0.001129396609030664, - 0.20091937482357025, - 0.03528763726353645, - 0.01922597736120224, - -0.01378567237406969, - 0.01628316007554531, - 0.024584870785474777, - -0.003409049706533551, - -0.08111252635717392, - 0.020882336422801018, - -0.039620038121938705, - -0.04282158985733986, - 0.01883048377931118, - 0.0222498569637537, - 0.02452778071165085, - -0.004567045718431473, - -0.04507473483681679, - -0.010891607962548733, - -0.030624588951468468, - 0.025903869420289993, - 0.07902217656373978, - -0.017592839896678925, - 0.03919483348727226, - 0.024281352758407593, - -0.052076809108257294, - -0.014059402979910374, - 0.009638091549277306, - -0.5430171489715576, - 0.03819272294640541, - -0.018462585285305977, - 0.011583788320422173, - 0.0786668211221695, - -0.015580195933580399, - 0.04414711520075798, - -0.058764535933732986, - -0.0029727837536484003, - -0.05006908252835274, - 0.004005934577435255, - -0.05043862387537956, - -0.05052508786320686, - 0.018436778336763382, - -0.04164881631731987, - 0.0077975960448384285, - -0.04351328685879707, - 0.057126156985759735 - ], - [ - -0.002020118059590459, - 0.007884548045694828, - 0.07314636558294296, - -0.028694650158286095, - -0.015120914205908775, - -0.024152779951691628, - 0.025042610242962837, - 0.05011918768286705, - 0.010651086457073689, - 0.004343658220022917, - -0.03621014580130577, - 0.04447396844625473, - -0.050524115562438965, - -0.009355217218399048, - -0.08645714819431305, - 0.004747661296278238, - -0.026307683438062668, - -0.06983651220798492, - -0.019449366256594658, - 0.06311440467834473, - -0.1544293612241745, - 0.05426788330078125, - -0.02554704062640667, - -0.027700787410140038, - 0.040117353200912476, - -0.05018792301416397, - -4.3892829125979915e-05, - 0.0019427248043939471, - 0.022642061114311218, - 0.054660968482494354, - 0.023119954392313957, - -0.058782290667295456, - -0.028459949418902397, - 0.019701361656188965, - -0.016025440767407417, - 0.01202117558568716, - 0.02592160552740097, - -0.04999231919646263, - 0.01424324419349432, - 0.046311549842357635, - 0.05525197833776474, - -0.015734784305095673, - 0.041816774755716324, - -0.021654687821865082, - 0.04540262743830681, - -0.07846187800168991, - -0.006793479435145855, - -0.02181709185242653, - -0.020974306389689445, - 0.006234235595911741, - -0.0675942525267601, - -0.0099378302693367, - -0.013884596526622772, - 0.042365461587905884, - 0.04298057034611702, - -0.00986182875931263, - -0.01239647064357996, - 0.08541746437549591, - -0.03993428125977516, - 0.0488772988319397, - -0.06295238435268402, - -0.03887678682804108, - -0.006839109119027853, - -0.008179586380720139, - -0.05296991392970085, - 0.007184646092355251, - -0.0038799140602350235, - 0.016881490126252174, - 0.010918140411376953, - -0.019246352836489677, - 0.05953057482838631, - 0.1916920244693756, - 0.06824952363967896, - -0.009276938624680042, - 0.008706362918019295, - -0.03773214668035507, - -0.004890365060418844, - 0.010138832032680511, - -0.01655726134777069, - -0.0021690058056265116, - 0.014470464549958706, - -0.008337205275893211, - -0.11482634395360947, - -0.0019920608028769493, - -0.032119665294885635, - 0.04742761328816414, - 0.0698113813996315, - -0.028192777186632156, - -0.009091374464333057, - 0.020550567656755447, - 0.010213944129645824, - -0.032714542001485825, - -0.14956313371658325, - 0.01832841895520687, - -0.04671721160411835, - 0.03715948387980461, - -0.033279646188020706, - -0.018961094319820404, - 0.028613753616809845, - -0.018765747547149658, - 0.06965812295675278, - 0.002451447769999504, - -0.0003050549130421132, - -0.006181767676025629, - 0.0021702791564166546, - -0.012227494269609451, - 0.028733672574162483, - 0.025792423635721207, - -0.017462382093071938, - 0.013823597691953182, - -0.04982640594244003, - -0.01004946418106556, - 0.01652091182768345, - 0.011773448437452316, - 0.06356643885374069, - 0.006932204123586416, - 0.01822602190077305, - -0.04396960884332657, - -0.01495361141860485, - 0.016728509217500687, - -0.052311867475509644, - 0.02489570714533329, - 0.01843417063355446, - 0.06943980604410172, - -0.04133026301860809, - 0.03272922337055206, - -0.3023543059825897, - 0.055886488407850266, - 0.029977908357977867, - 0.034890830516815186, - 0.027415120974183083, - 0.014176098629832268, - -0.038518618792295456, - -0.018434075638651848, - 0.08353706449270248, - 0.03275701031088829, - 0.02077220380306244, - -0.005308583844453096, - 0.034994352608919144, - -0.05340854823589325, - -0.04223252832889557, - -0.00408534100279212, - 0.011421538889408112, - -0.07417583465576172, - -0.022229371592402458, - -0.07893248647451401, - 0.044607099145650864, - -0.04482780396938324, - -0.0473320297896862, - -0.004648922011256218, - 0.0006414473173208535, - 0.014504226855933666, - -0.016911230981349945, - -0.08344575017690659, - -0.022628452628850937, - 0.01888166554272175, - 0.03784806653857231, - 0.06393709033727646, - -0.01771530695259571, - 0.23662957549095154, - 0.0029305103234946728, - -0.0005864521372132003, - -0.018612027168273926, - -0.002739669755101204, - 0.11138439923524857, - -0.13835467398166656, - 0.02100508101284504, - -0.01127071212977171, - 0.01439861673861742, - -0.01599806919693947, - -0.0418148972094059, - 0.0035242955200374126, - -0.08271624147891998, - 0.008727813139557838, - -0.0038862009532749653, - 0.07955661416053772, - 0.0037652335595339537, - -0.00880770105868578, - 0.02960018254816532, - -0.0017237489810213447, - -0.05416268855333328, - 0.05364520102739334, - -0.0026185112074017525, - -0.03314720094203949, - -0.03681638464331627, - 0.029082436114549637, - 0.044170480221509933, - -0.005086105316877365, - -0.0380142405629158, - -0.02739500068128109, - 0.04289069026708603, - -0.016288459300994873, - 0.2909737825393677, - -0.018007492646574974, - -0.010476355440914631, - -0.0052214115858078, - -0.034000545740127563, - -0.023437805473804474, - -0.03347622975707054, - -0.003169286297634244, - -0.0001565109851071611, - 0.01055311318486929, - 0.016749992966651917, - -0.0010481835342943668, - 0.006794065237045288, - -0.00018512093811295927, - -0.002312527969479561, - -0.02622583694756031, - -0.0008593699312768877, - 0.03291139751672745, - 0.042648326605558395, - -0.0093800975009799, - 0.19276905059814453, - 0.031959015876054764, - -0.01825484074652195, - -0.04424269124865532, - 0.04488015174865723, - 0.026593580842018127, - -0.017374644055962563, - -0.08266966044902802, - 0.010719857178628445, - -0.02317756414413452, - -0.016360312700271606, - 0.04443348944187164, - 0.030444614589214325, - 0.008784116245806217, - -0.03701520711183548, - -0.06463564187288284, - 0.0014613847015425563, - -0.01459227129817009, - 0.028241068124771118, - 0.08138968050479889, - -0.04004205763339996, - 0.009111851453781128, - 0.018560439348220825, - -0.06196575611829758, - -0.015765739604830742, - 0.0442626066505909, - -0.5456304550170898, - 0.01470970269292593, - 0.012462264858186245, - -0.004266406409442425, - 0.019729208201169968, - -0.010262797586619854, - 0.04299028590321541, - -0.05325629562139511, - 0.008899803273379803, - -0.0577966570854187, - -0.011155374348163605, - -0.050541188567876816, - -0.017316972836852074, - 0.009410528466105461, - -0.048575494438409805, - 0.013428067788481712, - -0.00407480588182807, - 0.019950758665800095 - ], - [ - -9.137752385868225e-06, - 0.0016166581772267818, - -0.0006731657194904983, - 0.0002858778170775622, - -0.001121083158068359, - 0.0001721535372780636, - -0.0005572948721237481, - 0.0011427641147747636, - 0.0019096772884950042, - 0.001793548814021051, - -0.0021579843014478683, - 0.001226380467414856, - -0.00039591474342159927, - -0.0003634595195762813, - -0.0013460053596645594, - 0.0031717924866825342, - -0.0001532384194433689, - -0.004493105690926313, - -0.0032486082054674625, - 0.0011466138530522585, - -0.009252524003386497, - 0.003799836616963148, - -0.0022717679385095835, - -0.0004813328559976071, - -0.001989195588976145, - -0.0014700258616358042, - 0.0011215010890737176, - 0.0003391691134311259, - -0.00076348363654688, - 0.0016463932115584612, - 0.000986969331279397, - 0.0012194656301289797, - 0.0003131463599856943, - -0.0014511068584397435, - 0.0007027439423836768, - 0.00014127038593869656, - 0.002256817650049925, - 0.0010762428864836693, - 0.0003159430343657732, - -0.0008729260298423469, - 0.0004356099234428257, - 0.0016704610316082835, - 0.001370951533317566, - -0.00034329132176935673, - -0.001282710232771933, - -0.0023774849250912666, - 0.0006836372776888311, - -0.001297989976592362, - 0.001985974842682481, - 0.00040033814730122685, - -0.0019969074055552483, - 0.008368615061044693, - 0.0003316650108899921, - -0.0004617784870788455, - -0.0014335887972265482, - -0.0013911102432757616, - -0.00048506908933632076, - -0.0002853811311069876, - -0.006003871560096741, - -0.0005205111228860915, - -2.0646921257139184e-06, - -0.0030533147510141134, - 0.0006272705504670739, - 0.0025150198489427567, - -0.004762611817568541, - 0.0023714823182672262, - -0.010758059099316597, - 0.002188567304983735, - -0.0010159402154386044, - -0.001564924605190754, - -0.0015786063158884645, - -0.07280343025922775, - 0.0036664449144154787, - 0.004651276860386133, - -0.00037885340861976147, - 0.0009590466506779194, - 0.0023705025669187307, - 0.0018230254063382745, - -0.0020385340321809053, - 0.002254824386909604, - -3.332496271468699e-05, - -0.00016316083201672882, - -0.9186528921127319, - 0.0008435348281636834, - -0.004493257962167263, - 0.0017145442543551326, - 0.0005151039804331958, - 0.0005502621061168611, - 0.00043348647886887193, - 0.0032082898542284966, - 0.0013487174874171615, - 0.0014145976165309548, - 0.007419799920171499, - -0.00034077517921105027, - 0.0018194515723735094, - 0.003271866589784622, - -0.0006499386508949101, - -0.0016335714608430862, - 0.0034085765946656466, - -0.0010585535783320665, - 0.0014243688201531768, - 0.0016035320004448295, - 0.0011079090181738138, - 0.0025957960169762373, - 0.004968733061105013, - 0.0010232351487502456, - -0.0022795870900154114, - 0.0018968455260619521, - -0.0014207538915798068, - -0.0012039656285196543, - 0.008847106248140335, - 0.00442640483379364, - -0.00045125847100280225, - -4.843222632189281e-05, - 0.0014192068483680487, - 0.004723622463643551, - -0.001412720768712461, - -0.0001970445882761851, - -0.0003917969879694283, - 0.0005137532716616988, - -0.0011897755321115255, - -0.0017507047159597278, - -0.000982350087724626, - 0.0022014775313436985, - -0.003956181462854147, - -0.001429070602171123, - 0.27968117594718933, - 0.0016964389942586422, - 0.0002170342195313424, - 0.0014005124103277922, - 0.00013595361087936908, - 0.0036391234025359154, - 0.0009513097465969622, - -2.2204052584129386e-05, - -0.0027920559514313936, - 0.0009465300245210528, - -0.002096520271152258, - 0.001193541451357305, - -0.0014382440131157637, - 0.000654311035759747, - 0.001073945197276771, - -0.0005526106688193977, - -0.0010699589038267732, - -0.0017236537532880902, - -0.0011626491323113441, - -0.005906444974243641, - 0.0008077145903371274, - 0.0011855639750137925, - -0.001734187244437635, - 0.0002574525715317577, - -0.0014426509151235223, - -0.007426952477544546, - -0.0018288231221958995, - -0.005313959904015064, - -0.0017317455494776368, - 0.00027680397033691406, - 0.001544488244690001, - -0.0007463506772182882, - 0.0008328536059707403, - 0.20757761597633362, - -0.0007421753252856433, - 0.0011975654633715749, - 0.0006849251221865416, - 0.0012398922117426991, - 0.010142200626432896, - 0.09018586575984955, - 0.0018074912950396538, - -0.003957532811909914, - 0.0013941777870059013, - 0.0010894599836319685, - -0.00505829555913806, - 0.0015095560811460018, - -0.002607343252748251, - 0.0021821430418640375, - -0.0025012886617332697, - -0.0007247098837979138, - -0.0004106478299945593, - 0.004930187948048115, - 0.00025910933618433774, - 0.004461567383259535, - -0.0005356655456125736, - 0.0021866653114557266, - 0.0004532579332590103, - -0.0010150672169402242, - -0.003715369151905179, - -0.0002562541048973799, - 0.0009068930521607399, - -0.0012927914503961802, - 0.00015770201571285725, - 8.093100041151047e-05, - 0.0010579489171504974, - -0.00039706038660369813, - -0.05911828577518463, - -0.004699929617345333, - 0.004628700204193592, - -0.0019756320398300886, - 0.0012906910851597786, - 0.0006027604104019701, - -0.0009958349401131272, - 0.0013553689932450652, - -0.0010785055346786976, - -0.0018453056691214442, - 0.0026720413006842136, - -0.001697699655778706, - 0.0007627623854205012, - 0.006671912968158722, - -0.0012930224183946848, - -0.002346017397940159, - -7.886246021371335e-05, - 0.00048040784895420074, - -0.0003317850350867957, - -0.001198248821310699, - -0.05238698050379753, - 0.0011332507710903883, - -0.0013362420722842216, - -0.0008507289458066225, - -0.0024174635764211416, - 0.0008928177412599325, - 0.004603895824402571, - -0.010837633162736893, - 0.0005229013622738421, - 0.0011728358222171664, - -0.0001940130750881508, - 0.0001931582228280604, - 0.00033502531005069613, - 0.00016481550119351596, - -0.0002955452655442059, - 0.0012165600201115012, - 0.0014620264992117882, - -0.001083435257896781, - 0.0005531007773242891, - 0.00395966088399291, - 0.0014785330276936293, - -0.0001837921008700505, - -0.0003188718110322952, - -0.002669846871867776, - -0.004823634400963783, - 0.001484211883507669, - 0.11574434489011765, - 0.00018623200594447553, - 0.0023268810473382473, - 0.00035070563899353147, - -0.0008287148084491491, - -0.0036596376448869705, - -0.0004994801129214466, - -0.00035753450356423855, - 0.005444333888590336, - 5.268168024485931e-05, - -0.001716841827146709, - -0.0028814529068768024, - -0.000495177402626723, - 0.0013173262123018503, - -0.0009592780261300504, - 0.0016643651761114597, - -0.001643872121348977, - -0.00013021979248151183 - ], - [ - -0.04682951420545578, - -0.005366438999772072, - 0.020858731120824814, - -0.046303048729896545, - -0.00866643525660038, - -0.03563423454761505, - 0.021272122859954834, - -0.049248792231082916, - -0.07104970514774323, - 0.023119019344449043, - 0.0052123237401247025, - 0.021770654246211052, - -0.0070868502371013165, - -0.03016551397740841, - -0.0342150442302227, - -0.34908145666122437, - 0.010954548604786396, - -0.00797531008720398, - 0.013065675273537636, - 0.059964463114738464, - 0.036854781210422516, - -0.019422484561800957, - 0.00012981347390450537, - 0.003543788567185402, - 0.012360543943941593, - 0.0029030456207692623, - -0.010344014503061771, - 0.0236810315400362, - -0.038922641426324844, - 0.044598549604415894, - -0.0131544079631567, - -0.026068495586514473, - 0.02464347518980503, - 0.019529791548848152, - -0.01900198869407177, - -0.041672054678201675, - -0.015194959007203579, - -0.06015171483159065, - -0.04075433686375618, - 0.02246628701686859, - 0.015136665664613247, - -0.02348940074443817, - 0.016931239515542984, - -0.035078030079603195, - 0.02812778204679489, - -0.023310767486691475, - 0.012795629911124706, - 0.02847643755376339, - -0.03967876732349396, - -0.0009410011698491871, - -0.031494371592998505, - -0.01504877395927906, - -0.013363823294639587, - -0.015284291468560696, - 0.009976642206311226, - -0.017108777537941933, - -0.006794949062168598, - 0.01901555247604847, - 0.0012056089472025633, - -0.05107169598340988, - -0.03880148380994797, - 0.013456394895911217, - 0.043579235672950745, - -0.04060889780521393, - -0.018264764919877052, - 0.020296625792980194, - -0.04458634927868843, - 0.007318039424717426, - 0.05928318575024605, - 0.003113223472610116, - 0.03132738545536995, - 0.1343996226787567, - 0.07308385521173477, - 0.024235045537352562, - -0.05624496936798096, - 0.005655442830175161, - 0.038242124021053314, - 0.006762227509170771, - -0.015627140179276466, - 0.017570726573467255, - -0.02200230211019516, - -0.016203291714191437, - 0.1475648730993271, - 0.03714975342154503, - 0.0313689261674881, - 0.00884303916245699, - 0.04457079991698265, - 0.017710436135530472, - -0.026336822658777237, - -0.02737925946712494, - 0.007677813526242971, - -0.015974925830960274, - 0.20531746745109558, - 0.01785229705274105, - -0.014002906158566475, - -0.00953375268727541, - -0.004029426258057356, - -0.0072571029886603355, - 0.007138853892683983, - -0.005887424107640982, - -0.01893043704330921, - 0.06470900774002075, - 0.03896036744117737, - -0.046790122985839844, - 0.06709589809179306, - -0.0014548605540767312, - 0.02417082153260708, - -0.008077086880803108, - 0.021637674421072006, - -0.020494481548666954, - 0.0025947056710720062, - 0.02838917076587677, - 0.05079859495162964, - 0.009965881705284119, - -0.018573356792330742, - 0.04462864249944687, - 0.008661792613565922, - -0.050405483692884445, - -0.02208627760410309, - 0.009332793764770031, - 0.003992872778326273, - 0.03413599729537964, - 0.03516670688986778, - 0.002624558052048087, - -0.048227403312921524, - 0.009873379953205585, - -0.6400105357170105, - 0.007965119555592537, - -0.0036618183366954327, - 0.01697145216166973, - 0.026827780529856682, - 0.016927121207118034, - -0.06357979774475098, - -0.028291232883930206, - 0.05263280123472214, - -0.01144848857074976, - 0.03227876499295235, - 0.010725070722401142, - 0.015673208981752396, - 0.012364408001303673, - 0.006841845344752073, - -0.0006999755860306323, - 0.03249358758330345, - -0.03588667884469032, - 0.026009364053606987, - -0.02908678539097309, - -0.012624555267393589, - -0.0490892231464386, - -0.06031409651041031, - -0.043195437639951706, - 0.04158816486597061, - -0.04606594517827034, - -0.048704616725444794, - -0.024640901014208794, - -0.02114528976380825, - -0.00731827924028039, - -0.0019961788784712553, - 0.044802382588386536, - -0.0004161822434980422, - 0.29747745394706726, - 0.04744254797697067, - -0.07218010723590851, - 0.015256809070706367, - -0.008514913730323315, - 0.031773168593645096, - -0.17760641872882843, - 0.007934533059597015, - -0.009297873824834824, - 0.0038933404721319675, - -0.004874355625361204, - -0.03332126885652542, - -0.024090392515063286, - -0.0223915483802557, - 0.004203492775559425, - -0.00028839436708949506, - 0.03242463991045952, - 0.0017028795555233955, - -0.02501107193529606, - 0.0014557581162080169, - -0.002517926273867488, - -0.02257024683058262, - 0.02461196668446064, - 0.012442883104085922, - -0.007751508615911007, - 0.033597495406866074, - 0.028769731521606445, - -0.026287386193871498, - 0.051049716770648956, - -0.0854564905166626, - 0.012258495204150677, - -0.019294854253530502, - 0.004995086695998907, - 0.211957648396492, - -0.0322909951210022, - -0.03327453136444092, - 0.035547446459531784, - -0.07461795210838318, - 0.008896100334823132, - -0.039428532123565674, - -0.04922806844115257, - -0.0178671907633543, - 0.005566074512898922, - 0.0012246957048773766, - 0.02303861640393734, - 0.0035859947092831135, - 0.03247745707631111, - -0.005525245331227779, - -0.0008201234159059823, - 0.007674256339669228, - -0.010355855338275433, - -0.022675592452287674, - -0.05297491326928139, - 0.10284576565027237, - 0.01062304899096489, - 0.030988719314336777, - 0.031119657680392265, - -0.00037581680226139724, - -0.0008886557770892978, - 0.02302795648574829, - -0.006173727568238974, - -0.005846214946359396, - -0.010776127688586712, - -0.04444913938641548, - 0.015589672140777111, - 0.016099046915769577, - -0.028807422146201134, - -0.06250519305467606, - -0.011850346811115742, - 0.013725792057812214, - -0.009777280502021313, - 0.02175123430788517, - -0.012135844677686691, - -0.03135029971599579, - -0.02927660197019577, - -0.049107592552900314, - -0.019682275131344795, - -0.015223062597215176, - -0.00317381345666945, - -0.0271750558167696, - -0.02204972133040428, - 0.008567176759243011, - -0.015384308993816376, - 0.004252741578966379, - 0.0023444017861038446, - -0.008885689079761505, - -0.003289568703621626, - -0.005944035481661558, - -0.015489728190004826, - 0.028785858303308487, - 0.04684652015566826, - -0.023614440113306046, - -0.03843865171074867, - 0.012172045186161995, - -0.005915597081184387, - -0.0404738187789917, - 0.01263689249753952 - ], - [ - -0.025434043258428574, - -0.01627151481807232, - 0.05075405538082123, - 0.02833057940006256, - -0.020400550216436386, - -0.03872668370604515, - 0.011732032522559166, - 0.00941498577594757, - -0.0312579981982708, - 0.028147855773568153, - 0.021591592580080032, - 0.050031181424856186, - -0.030597858130931854, - -0.03286171704530716, - -0.03537158668041229, - -0.2721301317214966, - 0.05237239599227905, - 0.027445293962955475, - -0.0010610552271828055, - 0.03166486322879791, - -0.04017641395330429, - -0.005847115069627762, - 0.029981715604662895, - -0.04359623044729233, - 0.04105629026889801, - -0.009087830781936646, - 0.020443115383386612, - 0.0772554948925972, - -0.03853766992688179, - 0.06287891417741776, - 0.017353327944874763, - -0.03720511868596077, - -0.033686358481645584, - 0.04262902960181236, - 0.010900757275521755, - -0.048067815601825714, - 0.016097813844680786, - -0.10772567242383957, - -0.02360660582780838, - 0.02505982108414173, - 0.009068440645933151, - -0.04048072174191475, - 0.01347544975578785, - -0.0414004884660244, - 0.027802836149930954, - -0.035672377794981, - -0.010626297444105148, - 0.03490845859050751, - -0.011800781823694706, - 0.018008766695857048, - -0.07117670774459839, - -0.002195385517552495, - -0.0025345594622194767, - -0.021976260468363762, - 0.0446603000164032, - -0.01624949462711811, - -0.010369214229285717, - 0.04822203144431114, - 0.003441187320277095, - -0.12110896408557892, - -0.08032560348510742, - 0.028337500989437103, - 0.03506215661764145, - -0.01031205803155899, - -0.08191054314374924, - 0.02202378213405609, - -0.024916615337133408, - -0.00854098703712225, - 0.047993823885917664, - 0.04127781093120575, - 0.001946737291291356, - 0.13976645469665527, - 0.014954944141209126, - 0.04141222685575485, - -0.04629425331950188, - -0.04766566678881645, - 0.025892306119203568, - 0.015260394662618637, - -0.008668036200106144, - 0.04563536122441292, - 0.012574726715683937, - -0.04158877581357956, - -0.036099568009376526, - 0.04630860686302185, - -0.0105360122397542, - 0.012971845455467701, - 0.08832056075334549, - -0.020153667777776718, - -0.030934784561395645, - -0.046964917331933975, - -0.02393411472439766, - -0.02187628298997879, - 0.088718943297863, - 0.016745449975132942, - -0.00864870473742485, - 0.04958052560687065, - -0.013640760444104671, - 0.005090115591883659, - -0.012650408782064915, - -0.014738396741449833, - 0.06515791267156601, - 0.03337387368083, - 0.08807524293661118, - -0.018197642639279366, - 0.04779313504695892, - -0.04025702178478241, - 0.045831989496946335, - 0.010372726246714592, - 0.027391094714403152, - -0.02451428212225437, - 0.004607394803315401, - 0.012988097965717316, - 0.08888712525367737, - 0.044939976185560226, - 0.005372372455894947, - -0.023985227569937706, - 0.02249826304614544, - -0.07504763454198837, - -0.03363898769021034, - 0.01824871450662613, - -0.0028042083140462637, - 0.013027448207139969, - 0.014422738924622536, - 0.05504511669278145, - -0.02547072432935238, - 0.040948521345853806, - -0.52757328748703, - 0.0052156001329422, - -0.02651936002075672, - -0.006696460768580437, - 0.013625898398458958, - 0.0027089512441307306, - -0.042977605015039444, - -0.03522280231118202, - 0.010236898437142372, - -0.010415051132440567, - -0.013947573490440845, - 0.029110409319400787, - -0.01616448536515236, - -0.03811589255928993, - -0.037821393460035324, - -0.03007882833480835, - 0.0922301858663559, - -0.029051994904875755, - 0.03622298687696457, - -0.0729527473449707, - 0.08614334464073181, - -0.06590954959392548, - -0.10322438925504684, - -0.11249558627605438, - 0.020447958260774612, - -0.038994334638118744, - 0.0005680224276147783, - -0.11417593061923981, - -0.032108306884765625, - -0.01351261418312788, - 0.02833055518567562, - 0.04377536475658417, - -0.0020191872026771307, - 0.31108447909355164, - 0.0864524096250534, - -0.10140293836593628, - -0.016454871743917465, - 0.009182630106806755, - 0.05629337206482887, - -0.11341319978237152, - -0.053528815507888794, - 0.0057999137789011, - 0.026087937876582146, - 0.0060608950443565845, - -0.020756853744387627, - -0.072996124625206, - -0.07126841694116592, - -0.018288923427462578, - 0.0139993317425251, - -0.012133211828768253, - -0.000836456660181284, - -0.04857546463608742, - 0.02548529952764511, - 0.03806629404425621, - -0.0767836645245552, - 0.00887488666921854, - 0.002360482467338443, - -0.010396471247076988, - 0.018561365082859993, - 0.041591718792915344, - 0.026413671672344208, - 0.007217442151159048, - -0.09940978139638901, - -0.02252860926091671, - 0.02623021975159645, - 0.02060965821146965, - 0.21384406089782715, - -0.025728264823555946, - 0.01754378341138363, - 0.04861508309841156, - -0.07108177244663239, - -0.012812348082661629, - -0.025492027401924133, - -0.0419439971446991, - -0.028537509962916374, - 0.03616573289036751, - 0.01066215056926012, - 0.037232205271720886, - -0.026930952444672585, - 0.02874411828815937, - 0.0724412053823471, - -0.013041061349213123, - 0.02467951364815235, - 0.00031380876316688955, - -0.08667745441198349, - 0.01221531629562378, - 0.12748469412326813, - -0.0037681018002331257, - 0.024772800505161285, - -0.04104691743850708, - 0.001444338820874691, - -0.0005478759412653744, - 0.042736608535051346, - -0.060692619532346725, - 0.006641536485403776, - -0.06838579475879669, - -0.06784356385469437, - 0.014351691119372845, - 0.0180367361754179, - -0.024016881361603737, - -0.027449391782283783, - -0.024492798373103142, - 0.029424142092466354, - -0.04869740456342697, - 0.053110770881175995, - 0.0016073944279924035, - -0.042754631489515305, - -0.026913847774267197, - -0.0344679057598114, - -0.012426424771547318, - -0.009369878098368645, - -0.0270923413336277, - -0.21047264337539673, - -0.009132313542068005, - 0.03345291689038277, - -0.04526876285672188, - 0.01129851583391428, - -0.02549952082335949, - 0.021059619262814522, - 0.005618905182927847, - -0.03230302408337593, - -0.012975684367120266, - -0.015181297436356544, - -0.006795590743422508, - -0.05407274141907692, - -0.047948576509952545, - -0.007882215082645416, - -0.044729504734277725, - -0.0619078055024147, - 0.023498808965086937 - ], - [ - -0.019082162529230118, - 0.01177581399679184, - 0.042749855667352676, - -0.04351715371012688, - -0.01075105182826519, - -0.03534131124615669, - 0.010170469991862774, - 0.014820613898336887, - -0.015902116894721985, - 0.007913976907730103, - -0.021305959671735764, - 0.030003368854522705, - -0.029536686837673187, - 0.007003865670412779, - -0.05920920521020889, - -0.2514384686946869, - -0.021821267902851105, - -0.03396563604474068, - -0.02738361246883869, - 0.02317650243639946, - -0.09454471617937088, - 0.006267385091632605, - -0.04255190119147301, - -0.0005252462578937411, - 0.021874237805604935, - -0.059439267963171005, - -0.015610616654157639, - -0.004411750007420778, - -0.003216167213395238, - 0.04952405020594597, - 0.034984517842531204, - -0.030567023903131485, - 0.02576533332467079, - 0.007925787009298801, - 0.00801971834152937, - -0.002527382457628846, - 0.027006730437278748, - -0.0291525237262249, - -0.011599731631577015, - 0.05729052051901817, - -0.0023873690515756607, - -0.01340477168560028, - 0.02970990724861622, - -0.026409337297081947, - 0.008730536326766014, - -0.06228816881775856, - -0.018587900325655937, - -0.0068305847235023975, - -0.025655895471572876, - 0.015748780220746994, - -0.03834817185997963, - -0.009431743994355202, - -0.01521865651011467, - 0.0033329487778246403, - 0.01740584336221218, - -0.038046665489673615, - -0.01360095664858818, - 0.0325329452753067, - -0.015799306333065033, - 0.02624330297112465, - -0.05347232520580292, - -0.017664438113570213, - -0.004349967464804649, - -0.022014327347278595, - -0.002651222748681903, - -0.0032525870483368635, - -0.02761632576584816, - 0.026725223287940025, - 0.030507374554872513, - -0.01929447054862976, - 0.03562786802649498, - 0.20001043379306793, - 0.08741173148155212, - -0.014259095303714275, - -0.013840327039361, - -0.0415799655020237, - -0.00587527034804225, - 0.022483909502625465, - -0.016556374728679657, - -0.013060511089861393, - 0.0021348996087908745, - -0.026900330558419228, - -0.08710677921772003, - -0.006880647037178278, - -0.012878875248134136, - 0.0011840977240353823, - 0.017548302188515663, - -0.021667709574103355, - -0.012942089699208736, - 0.001601589610800147, - 0.0008583561866544187, - -0.0038926019333302975, - 0.05165037140250206, - 0.0174283217638731, - -0.03465168923139572, - 0.025464117527008057, - -0.02148727886378765, - -0.01541721262037754, - 0.026681292802095413, - -0.008104817010462284, - 0.011366143822669983, - 0.010935947299003601, - -0.03364855423569679, - -0.014894980937242508, - 0.052702583372592926, - 0.00985079724341631, - 0.029614707455039024, - 0.006953434087336063, - 0.00486562866717577, - -0.017004163935780525, - -0.022667638957500458, - 0.008646585047245026, - 0.0010196896037086844, - 0.012548834085464478, - 0.022005490958690643, - 0.04896549507975578, - 0.006222656928002834, - -0.023201143369078636, - -0.03105909191071987, - -0.0058592078275978565, - -0.014361078850924969, - 0.01969330571591854, - 0.017150118947029114, - 0.029296094551682472, - -0.06695286929607391, - 0.017968948930501938, - -0.5756571292877197, - 0.03226432204246521, - 0.021711012348532677, - 0.035103198140859604, - 0.015847111120820045, - 0.010044079273939133, - -0.026673441752791405, - -0.00155425735283643, - 0.013889936730265617, - 0.006212480366230011, - 0.04517769068479538, - -0.0029655129183083773, - 0.03066660650074482, - -0.041438259184360504, - -0.015230081044137478, - 0.0002500704722478986, - -0.0015686552505940199, - -0.07579673081636429, - -0.013348628766834736, - -0.0710390955209732, - -0.021008025854825974, - -0.0573151595890522, - -0.015191735699772835, - -0.02506243623793125, - -0.0019083410734310746, - 0.006004404742270708, - -0.032138582319021225, - -0.0565115287899971, - 0.011311561800539494, - 0.01690775901079178, - -6.659067730652168e-05, - 0.04773939400911331, - -0.012369838543236256, - 0.3759242296218872, - 0.004993946757167578, - -0.001344214892014861, - 0.0029190508648753166, - 0.0012969371164217591, - 0.0935695543885231, - -0.2112301141023636, - 0.02563362754881382, - -0.015260374173521996, - 0.001527581480331719, - 0.0027295020408928394, - -0.0352146290242672, - -0.00041273486567661166, - -0.046831950545310974, - 0.024951664730906487, - -0.011576271615922451, - 0.03957321122288704, - -0.01910199224948883, - -0.015440440736711025, - 0.015863152220845222, - -0.004456426948308945, - -0.020042989403009415, - 0.03228163719177246, - -0.00896595511585474, - -0.0035564876161515713, - 0.00586035056039691, - 0.02443268895149231, - -0.0023142604622989893, - 0.005588476546108723, - -0.04777566343545914, - -0.019697196781635284, - 0.0062691764906048775, - -0.003267988096922636, - 0.2781420648097992, - -0.045123662799596786, - -0.022855395451188087, - 0.01900254562497139, - -0.04019291698932648, - -0.016102563589811325, - -0.013687466271221638, - -0.031157903373241425, - -0.020214485004544258, - -0.010579423047602177, - 0.006980222649872303, - -0.007358245085924864, - -1.6874086213647388e-05, - 0.01218263991177082, - -0.02391633950173855, - -0.02096407487988472, - -0.012186849489808083, - 0.028124747797846794, - 0.04839286208152771, - -0.035181332379579544, - 0.1637541502714157, - 0.0071304840967059135, - -0.014561928808689117, - -0.010674701072275639, - 0.02956724911928177, - 0.01536697056144476, - 0.004265223164111376, - -0.09744935482740402, - 0.003098519053310156, - -0.006001034285873175, - 0.0220880638808012, - 0.032624099403619766, - 0.02679130621254444, - -0.010040930472314358, - -0.04747448116540909, - -0.025773143395781517, - 0.01854509860277176, - 0.0037452729884535074, - -0.013957230374217033, - 0.022922132164239883, - -0.026354994624853134, - -0.005271698348224163, - -0.014670106582343578, - -0.0062244003638625145, - -0.005010370630770922, - 0.02009730227291584, - -0.28130465745925903, - 0.006215707864612341, - 0.011952669359743595, - -0.0060486868023872375, - -0.03073037415742874, - -0.005092448089271784, - 0.03238024190068245, - -0.023391857743263245, - 0.01976650208234787, - -0.04694696143269539, - -0.033166851848363876, - 0.019611341878771782, - 0.0016042623901739717, - 0.005125084426254034, - 0.006443762220442295, - 0.017957357689738274, - 0.0011772291036322713, - -0.0007954502361826599 - ], - [ - -0.0018145040376111865, - -0.0011856266064569354, - -0.02329718880355358, - 0.01305217482149601, - 0.003260246478021145, - -0.006588983349502087, - -0.028805837035179138, - -0.02640877291560173, - -0.018608268350362778, - -0.02063986286520958, - 0.014848906546831131, - -0.029867036268115044, - 0.0032031170558184385, - 0.03187182918190956, - -0.007325214333832264, - 0.23605255782604218, - 0.031161947175860405, - 0.029586434364318848, - 0.04813353344798088, - -0.02330450527369976, - 0.14130741357803345, - -0.10041359066963196, - 0.01991390623152256, - 0.024124901741743088, - 0.011825378984212875, - 0.006283048074692488, - -0.0038160448893904686, - -0.0177556611597538, - -0.006519258487969637, - 0.0243289303034544, - 0.0014434375334531069, - -0.03159384801983833, - 0.04447538033127785, - 0.019581086933612823, - 0.025731097906827927, - -0.040134090930223465, - -0.012517193332314491, - 0.006465287413448095, - -0.02140873670578003, - 0.020170951262116432, - 0.0007623238489031792, - -0.011928008869290352, - 0.015452718362212181, - -0.019367679953575134, - 0.017120320349931717, - 0.04310334473848343, - -0.018018560484051704, - 0.03392501175403595, - -0.024465322494506836, - -0.058975979685783386, - -0.0023114948999136686, - -0.07592940330505371, - -0.013446480967104435, - 0.0074330344796180725, - 0.01972704567015171, - 0.060820575803518295, - -0.023137308657169342, - -0.03530452400445938, - 0.020939679816365242, - 0.03935431316494942, - 0.014929727651178837, - 0.0625089630484581, - 0.028757965192198753, - -0.07765067368745804, - 0.09431732445955276, - -0.01620025373995304, - 0.21841691434383392, - -0.026392849162220955, - 0.03391394391655922, - 0.010966126807034016, - 0.0879141315817833, - -0.12053495645523071, - -0.040437888354063034, - 0.0034655702766031027, - -0.02495061606168747, - -0.03096398338675499, - -0.060229770839214325, - 0.011778757907450199, - 0.008878540247678757, - 0.01465835701674223, - 0.009422930888831615, - -0.01502753235399723, - 0.3393107056617737, - 0.024495864287018776, - 0.05107727646827698, - -0.06637215614318848, - -0.007837161421775818, - -0.03827950730919838, - 0.006978950928896666, - -0.02445988729596138, - -0.009161817841231823, - -0.025974376127123833, - -0.24192756414413452, - -0.007880001328885555, - -0.00030330297886393964, - -0.04227494075894356, - -0.02231130748987198, - 0.030650293454527855, - -0.06583038717508316, - -0.009656231850385666, - -0.0014875222695991397, - -0.002956701908260584, - 0.01939394511282444, - -0.06076692044734955, - 0.01917174831032753, - 0.008031991310417652, - 0.04482218995690346, - -0.04543556272983551, - 0.02654283307492733, - 0.008645567111670971, - -0.03223508968949318, - -0.026798997074365616, - -0.003466336987912655, - -0.00041766633512452245, - -0.004085371736437082, - -0.02245655655860901, - 0.0456620492041111, - -0.0024470000062137842, - 0.0003312321787234396, - 0.02680787444114685, - 0.022805815562605858, - 0.05968867614865303, - 0.06545092910528183, - -0.02241879515349865, - 0.040504321455955505, - 0.010723588056862354, - 0.3177797198295593, - -0.028689829632639885, - -0.026819216087460518, - 0.017126107588410378, - 0.02227163128554821, - -0.016393326222896576, - -0.030683323740959167, - 0.006785102654248476, - 0.05350179970264435, - -0.009356432594358921, - 0.04299375042319298, - -0.024504030123353004, - 0.028195464983582497, - -0.031158683821558952, - -0.017167450860142708, - 0.016031360253691673, - 0.014311757870018482, - -0.02108185924589634, - -0.00405959552153945, - 0.06429202854633331, - -0.051879171282052994, - -0.03286518156528473, - 0.0005923327407799661, - 0.007750988006591797, - 0.008669660426676273, - 0.15241241455078125, - 0.013917109929025173, - 0.06803637742996216, - 0.02208285965025425, - -0.008787332102656364, - -0.006667086388915777, - -0.06295323371887207, - -0.03607482463121414, - -0.3836427628993988, - 0.049001146107912064, - -0.022209053859114647, - 0.03662202134728432, - 0.029926808550953865, - -0.1041213721036911, - 0.07740549743175507, - -0.018005987629294395, - 0.07226891815662384, - -0.030503064393997192, - -0.02889065071940422, - 0.11199850589036942, - -0.024114461615681648, - 0.057868558913469315, - -0.04475610703229904, - 0.007502005901187658, - -0.02565385214984417, - 0.012508897110819817, - -0.018338702619075775, - 0.00033994510886259377, - -0.0968402549624443, - 0.025754470378160477, - -0.005019704811275005, - 0.0020382003858685493, - 0.030823558568954468, - 0.025232858955860138, - 0.04075458273291588, - 0.01908101886510849, - -0.0027009984478354454, - -0.012330722063779831, - -0.023069439455866814, - -0.018404418602585793, - 0.02328665927052498, - -0.10610891878604889, - 0.08029299229383469, - -0.014913913793861866, - 0.0483514666557312, - -0.009260906837880611, - 0.007260069251060486, - -0.021281061694025993, - -0.018385184928774834, - 0.012519998475909233, - 0.07550765573978424, - -0.03579595685005188, - 0.005763430148363113, - -0.006370700430124998, - 0.00047902666847221553, - 0.008097020909190178, - 0.01988489180803299, - -0.02166174352169037, - 0.01253515761345625, - 0.02278156764805317, - 0.019791437312960625, - -0.08954448997974396, - -0.017603101208806038, - 0.03355710580945015, - -0.008736536838114262, - 0.10056985914707184, - -0.010327859781682491, - -0.06902141124010086, - 0.23256196081638336, - 0.0007747154450044036, - -0.028369130566716194, - -0.002621916588395834, - -0.01744883321225643, - 0.019814573228359222, - -0.0378858856856823, - 0.016736075282096863, - -0.03273719176650047, - 0.040306344628334045, - 0.018719196319580078, - -0.030725857242941856, - -0.09214753657579422, - -0.01439163088798523, - 0.008245830424129963, - 0.006062749307602644, - 0.009063259698450565, - 0.08971117436885834, - 0.0012457442935556173, - 0.1804625391960144, - 0.004535260144621134, - -0.04757395386695862, - -0.027676742523908615, - 0.013563805259764194, - 0.04483753442764282, - 0.019286995753645897, - 0.014064084738492966, - -0.08078645914793015, - -0.02989734522998333, - 0.02772427536547184, - 0.06283078342676163, - 0.026519885286688805, - -0.007334292400628328, - 0.04203446954488754, - -0.0523596927523613, - -0.007213125936686993, - 0.03337423875927925 - ], - [ - -0.03128703311085701, - 0.0140544343739748, - 0.010514992289245129, - -0.03137481212615967, - 0.012029364705085754, - -0.025561492890119553, - 0.015219197608530521, - -0.023258987814188004, - -0.05445055291056633, - -0.00011121991701656953, - -0.026730641722679138, - 0.029155714437365532, - -0.02796248346567154, - -0.018105922266840935, - -0.02810676582157612, - -0.3291744887828827, - -0.0035799415782094, - -0.01866360567510128, - -0.025011548772454262, - 0.024063697084784508, - -0.020397676154971123, - -0.028143441304564476, - -0.029882313683629036, - -0.017586184665560722, - 0.021821608766913414, - -0.021177761256694794, - -0.007346033584326506, - 0.015555261634290218, - 0.00688596349209547, - 0.0028753126971423626, - 0.014783518388867378, - -0.009750432334840298, - 0.02529946155846119, - 0.028489163145422935, - 0.019481558352708817, - -0.02889350615441799, - -0.001371074584312737, - -0.05112187936902046, - -0.02798769623041153, - 0.03137671574950218, - 0.004832507576793432, - -0.030971147119998932, - 0.006612938363105059, - -0.018390750512480736, - 0.027867717668414116, - -0.07017405331134796, - 0.006840181536972523, - 0.022962478920817375, - -0.025958644226193428, - -0.009567219763994217, - -0.03035830333828926, - -0.019215673208236694, - -0.011969753541052341, - -0.012817743234336376, - -0.00917291920632124, - -0.025750773027539253, - -0.007566066924482584, - 0.04460170492529869, - 0.0023155612871050835, - -0.006229664199054241, - -0.04654625803232193, - 0.022873900830745697, - -0.005295043345540762, - -0.017513593658804893, - -0.024512024596333504, - -0.02879863791167736, - -0.05495913699269295, - -0.013190542347729206, - 0.062130481004714966, - -0.003438488347455859, - 0.028083158656954765, - 0.12818004190921783, - 0.07183964550495148, - -0.006875401828438044, - -0.01037145871669054, - -0.02509388141334057, - 0.017314612865447998, - 0.020667104050517082, - -0.009266695939004421, - 0.028926746919751167, - -0.01452560257166624, - -0.0036580597516149282, - -0.35961979627609253, - -0.007201114669442177, - -0.003889393527060747, - -0.040398407727479935, - 0.050377774983644485, - 0.003484328743070364, - -0.027496304363012314, - 0.005355715285986662, - 0.013379717245697975, - -0.016300003975629807, - 0.18322215974330902, - -0.014017247594892979, - -0.008834229782223701, - 0.029018977656960487, - -0.024191835895180702, - -0.0020245390478521585, - 0.023192914202809334, - -0.01505361683666706, - -0.007592977024614811, - 0.030431510880589485, - 0.028062714263796806, - -0.044450048357248306, - 0.06564059853553772, - 0.009937160648405552, - 0.021845437586307526, - 0.006639966741204262, - -0.02369169518351555, - -0.012043539434671402, - -0.0014543227152898908, - 0.014207165688276291, - 0.006078721489757299, - 0.024712610989809036, - -0.008481849916279316, - 0.03147784247994423, - -0.008380921557545662, - -0.029758289456367493, - -0.02459094673395157, - 0.009140522219240665, - -0.011611586436629295, - 0.012988160364329815, - 0.029073970392346382, - 0.006817889865487814, - -0.06748663634061813, - 0.005975071806460619, - -0.5239707231521606, - 0.024141820147633553, - -0.006831946317106485, - 0.02296614460647106, - 0.02043546922504902, - 0.009671878069639206, - -0.009211736731231213, - -0.00862885732203722, - 0.02209392748773098, - 0.002557183615863323, - 0.03869147598743439, - -0.014800145290791988, - 0.005012128967791796, - -0.03029375523328781, - -0.0035536494106054306, - -0.012745569460093975, - 0.04647365212440491, - -0.05892353132367134, - 0.011160657741129398, - -0.0597657710313797, - -0.028865698724985123, - -0.019843023270368576, - -0.0226737093180418, - -0.032553862780332565, - 0.0020789268892258406, - -0.05274577811360359, - -0.028389250859618187, - -0.009682288393378258, - 0.004745231010019779, - 0.0030383788980543613, - -0.008121306076645851, - 0.019757671281695366, - -0.03745457902550697, - 0.44258493185043335, - 0.015907960012555122, - -0.030959701165556908, - 0.012491033412516117, - -0.013225085102021694, - 0.021533550694584846, - -0.1659010499715805, - 0.010820969939231873, - -0.0015970456879585981, - 0.014520245604217052, - -0.008230509236454964, - -0.05145938694477081, - -0.01283391285687685, - -0.0024011554196476936, - 0.006580183282494545, - -0.012766408734023571, - 0.02715863101184368, - -0.03454073145985603, - -0.051112595945596695, - 0.00022375441039912403, - -0.009229615330696106, - -0.010896497406065464, - 0.0104068573564291, - -0.027898430824279785, - -0.012391173280775547, - 0.05951639637351036, - 0.009505806490778923, - -0.03626885265111923, - 0.05736473575234413, - -0.07081251591444016, - 0.014626863412559032, - -0.0059927403926849365, - -0.012499659322202206, - 0.20969846844673157, - -0.04798893630504608, - -0.03093179315328598, - 0.04897502064704895, - -0.053418248891830444, - -0.0009927648352459073, - -0.018471989780664444, - -0.03377856686711311, - -0.027165772393345833, - -0.007394661661237478, - -0.017556902021169662, - 0.014148151502013206, - 0.013848153874278069, - 0.01264095026999712, - -0.01969633623957634, - 0.009070069529116154, - -0.01138143427670002, - 0.016101498156785965, - -0.005170588847249746, - -0.0380413755774498, - 0.09666599333286285, - 0.012433711439371109, - -8.979361882666126e-05, - 0.009460506960749626, - -0.004565280396491289, - 0.012570331804454327, - 0.0016604304546490312, - -0.05329093709588051, - -0.008971674367785454, - -0.002962591825053096, - -0.010152158327400684, - 0.03552945703268051, - 0.010350762866437435, - -0.03431268408894539, - -0.032335177063941956, - -0.010753543116152287, - 0.010997806675732136, - 0.008795224130153656, - 0.0025238743983209133, - -0.012763334438204765, - -0.013751341961324215, - -0.01936117187142372, - -0.04820350930094719, - -0.010460276156663895, - -0.00903273280709982, - -0.005341717973351479, - -0.04130631312727928, - -0.012589359655976295, - 0.01386150810867548, - -0.016943102702498436, - -0.009006530046463013, - 0.013706648722290993, - 0.012993395328521729, - 0.018745826557278633, - 0.015723375603556633, - -0.028303224593400955, - -0.02455134689807892, - 0.014509276486933231, - -0.009893928654491901, - -0.015640193596482277, - 0.024886686354875565, - -0.00015482048911508173, - -0.013944000005722046, - -0.0026881296653300524 - ], - [ - -0.0005845394334755838, - 0.0013028651010245085, - -0.00799927581101656, - 0.003804272972047329, - 0.0001762633037287742, - -0.0012420294806361198, - -0.008423860184848309, - -0.006546028424054384, - -0.003240766003727913, - -0.00424963841214776, - 0.0016929697012528777, - -0.006816868670284748, - 0.0006810908671468496, - 0.007994167506694794, - -0.0027033474761992693, - 0.07579051703214645, - 0.008607386611402035, - 0.004214886575937271, - 0.010917033068835735, - -0.004743674769997597, - 0.03192940726876259, - -0.02374207228422165, - 0.0038226672913879156, - 0.005881337448954582, - 0.0012811849592253566, - 0.0006628162227571011, - -0.00030442795832641423, - -0.004268457181751728, - -0.0019695479422807693, - 0.0069862958043813705, - 0.0008978225523605943, - -0.007465172093361616, - 0.012235867790877819, - 0.004230768885463476, - 0.006918787956237793, - -0.010687117464840412, - -0.0020020154770463705, - 0.00356465601362288, - -0.005125687923282385, - 0.004087195731699467, - 0.0001845706719905138, - -0.0013632775517180562, - 0.004490704275667667, - -0.005137531086802483, - 0.003319825977087021, - 0.010744553990662098, - -0.003828464774414897, - 0.00832656305283308, - -0.004851986654102802, - -0.016042441129684448, - -0.0021675913594663143, - -0.01269559282809496, - -0.002787073841318488, - 0.001423461246304214, - 0.004379404243081808, - 0.015943393111228943, - -0.006786847021430731, - -0.010122626088559628, - -0.0004813087871298194, - 0.009970702230930328, - 0.005156670697033405, - 0.014323348179459572, - 0.008394148200750351, - -0.01865607686340809, - 0.02216261811554432, - -0.0020311225671321154, - 0.050261255353689194, - -0.005600310396403074, - 0.008389425463974476, - 0.000770574901252985, - 0.022570278495550156, - -0.1124313622713089, - -0.009115329943597317, - 0.00588045921176672, - -0.006810566410422325, - -0.0058133904822170734, - -0.015090476721525192, - 0.00497172586619854, - 0.00017725977522786707, - 0.006801548879593611, - 0.002015387639403343, - -0.004270090721547604, - -0.8542012572288513, - 0.007235073018819094, - 0.009963521733880043, - -0.01715201511979103, - -0.0020488519221544266, - -0.009615849703550339, - 0.002507960656657815, - -0.002650586422532797, - -0.0012388244504109025, - -0.0060082389973104, - -0.06246381625533104, - -0.002800050424411893, - 0.0020830838475376368, - -0.009062858298420906, - -0.006610401440411806, - 0.006972127594053745, - -0.014670430682599545, - -0.003458441700786352, - 0.001103211659938097, - 0.000709226296748966, - 0.006390595808625221, - -0.01419909205287695, - 0.008812067098915577, - 0.0033362109679728746, - 0.00918312557041645, - -0.010820163413882256, - 0.005464150104671717, - 0.0011105623561888933, - -0.0012589418329298496, - -0.0035659694112837315, - -0.0017327388050034642, - -0.00034868295188061893, - 0.0008320422493852675, - -0.0022479118779301643, - 0.01118866540491581, - 2.0638972273445688e-05, - 0.00021468284830916673, - 0.008380082435905933, - 0.005922128912061453, - 0.014741074293851852, - 0.016947241500020027, - -0.0043834783136844635, - 0.008345047943294048, - 0.0015552222030237317, - 0.3907405436038971, - -0.006788993254303932, - -0.007795646321028471, - 0.005187307950109243, - 0.006334125064313412, - -0.0010405657812952995, - -0.007616064976900816, - 0.0025379990693181753, - 0.011716736480593681, - -0.0016065206145867705, - 0.009848995134234428, - -0.005952700972557068, - 0.006135369185358286, - -0.007732151076197624, - -0.0032636262476444244, - 0.003889636602252722, - 0.002994982525706291, - -0.0069280462339520454, - -0.0017268219962716103, - 0.012497123330831528, - -0.01347576454281807, - -0.0071645635180175304, - -0.001102690352126956, - 0.0023748374078422785, - 0.0008564891759306192, - 0.035084158182144165, - 0.0022528786212205887, - 0.014972744509577751, - 0.004479735158383846, - -0.0022880486212670803, - -0.0007346707279793918, - -0.018910545855760574, - -0.008800557814538479, - 0.09983231872320175, - 0.011917886324226856, - -0.004917679354548454, - 0.010748561471700668, - 0.008727806620299816, - -0.019336620345711708, - 0.11899089068174362, - -0.0036036274395883083, - 0.016848091036081314, - -0.00694437837228179, - -0.0066827889531850815, - 0.027489202097058296, - -0.004961872473359108, - 0.014524975791573524, - -0.010644232854247093, - -0.00015216540487017483, - -0.0078117214143276215, - 0.0036814885679632425, - -0.0003164297668263316, - 4.799078669748269e-05, - -0.02255360223352909, - 0.006700670812278986, - 0.0008059286628849804, - 0.001276845927350223, - 0.007270306348800659, - 0.0032262406311929226, - 0.010583536699414253, - 0.005389999132603407, - -0.0022059029433876276, - -0.0024874641094356775, - -0.005977349821478128, - -0.00493637565523386, - 0.005232576746493578, - -0.09566126763820648, - 0.01851649023592472, - 0.000789318757597357, - 0.011009667068719864, - -0.0010709968628361821, - 0.0028287782333791256, - -0.006441057194024324, - -0.003237600903958082, - 0.0031034378334879875, - 0.01971241645514965, - -0.007713623810559511, - -0.0006102643674239516, - -0.0010712201474234462, - 0.006326306611299515, - 0.0012317048385739326, - 0.0038887951523065567, - -0.005762398708611727, - 0.0032794037833809853, - 0.006323319394141436, - 0.003961264155805111, - -0.08231645077466965, - -0.003549017012119293, - 0.008107161149382591, - -0.002912240568548441, - 0.025280524045228958, - -0.002688979497179389, - -0.014248130843043327, - 0.05617344006896019, - 0.0008365578833036125, - -0.006401024758815765, - -0.001190225244499743, - -0.0048837196081876755, - 0.005094979424029589, - -0.010383239947259426, - 0.004539666697382927, - -0.0077583217062056065, - 0.012266247533261776, - 0.004080932587385178, - -0.0078100841492414474, - -0.022271402180194855, - -0.0027414346113801003, - 0.0018248684937134385, - 0.0012819290859624743, - -6.270105950534344e-05, - 0.019825713708996773, - 0.0017624548636376858, - 0.17318321764469147, - 0.001416616840288043, - -0.01148596964776516, - -0.007052415981888771, - 0.0025249263271689415, - 0.008955406956374645, - 0.003862052923068404, - 0.003257309552282095, - -0.016796577721834183, - -0.007288659457117319, - 0.007342465687543154, - 0.01459333673119545, - 0.007195814047008753, - -0.0012529402738437057, - 0.010791495442390442, - -0.012773033231496811, - -0.002867627190425992, - 0.008946115151047707 - ], - [ - -6.712976755807176e-05, - 0.0023959497921168804, - 8.632025856059045e-05, - 0.0005528221372514963, - -0.00139866943936795, - 0.0002760619390755892, - -0.0005351748550310731, - 0.0016894751461222768, - 0.0025233831256628036, - 0.0018599557224661112, - -0.0022660333197563887, - 0.0017393417656421661, - -0.0003270456218160689, - -0.000795347208622843, - -0.001999561209231615, - 0.004006081726402044, - -0.0007722805021330714, - -0.004438529722392559, - -0.003773723728954792, - 0.002026620553806424, - -0.009942248463630676, - 0.004756997339427471, - -0.0025866113137453794, - -0.000610635441262275, - -0.00191659911070019, - -0.0027918601408600807, - 0.0011209436925128102, - 0.0002498539979569614, - -9.258770296582952e-05, - 0.001021336647681892, - 0.0009737685904838145, - 0.00177184387575835, - -8.694216376170516e-05, - -0.0015696048503741622, - 0.0011639132862910628, - 0.000776330940425396, - 0.002839081222191453, - 0.0016022607451304793, - 0.00046360332635231316, - -0.0011189193464815617, - -0.00012449640780687332, - 0.0022320046555250883, - 0.0011232621036469936, - -0.0004163036646787077, - -0.0016015187138691545, - -0.002473162254318595, - 0.0004802775802090764, - -0.0013349639484658837, - 0.0014857600908726454, - 0.000452307314844802, - -0.0026432585436850786, - 0.008563936688005924, - 0.000497484696097672, - -4.0262828406412154e-05, - -0.0018005965976044536, - -0.0015396332601085305, - -0.000344584695994854, - -0.00029047197313047945, - -0.006507195997983217, - 0.0003420620923861861, - 3.44159184351156e-06, - -0.003015822032466531, - 0.00031982213840819895, - 0.002242014277726412, - -0.004780961666256189, - 0.001955318497493863, - -0.010579855181276798, - 0.0025301130954176188, - -0.0005734448786824942, - -0.002252639504149556, - -0.001701280358247459, - -0.0721835047006607, - 0.0038007304538041353, - 0.0046127354726195335, - -0.00018736289348453283, - 0.001853819121606648, - 0.0017480141250416636, - 0.002254819730296731, - -0.002566978568211198, - 0.002109730616211891, - -0.00025657477090135217, - 0.00014398066559806466, - -0.9189867377281189, - 0.00029638491105288267, - -0.005017408169806004, - 0.0018387858290225267, - 0.00045791955199092627, - 0.0003051122766919434, - 0.00022440793691202998, - 0.0033961618319153786, - 0.001455920748412609, - 0.0014550762716680765, - 0.005723210051655769, - -0.00048620105371810496, - 0.0018116355640813708, - 0.0033747863490134478, - -0.0005414432380348444, - -0.001891345134936273, - 0.0036592574324458838, - -0.001216568169184029, - 0.0023168057668954134, - 0.0014570050407201052, - 8.465277460345533e-06, - 0.0029240217991173267, - 0.004628559108823538, - 0.0015267528360709548, - -0.0023676431737840176, - 0.0013699224218726158, - -0.0021075739059597254, - -0.0016735598910599947, - 0.00809023343026638, - 0.004144564736634493, - -0.0007905435631982982, - 0.00012020337453577667, - 0.0019407341023907065, - 0.004423275589942932, - -0.0016021657502278686, - 0.00011235960118938237, - 0.0002785827964544296, - 0.0007209476898424327, - -0.0013002927880734205, - -0.002065724693238735, - -0.0009970554383471608, - 0.0027089272625744343, - -0.00417533703148365, - -0.0005754384328611195, - 0.2799132764339447, - 0.001727839931845665, - 0.0002354964817641303, - 0.0010136455530300736, - 0.0007266694447025657, - 0.003197106998413801, - 0.0009657024638727307, - -0.00016584500554017723, - -0.002156863221898675, - 0.0013051972491666675, - -0.0027862798888236284, - 0.0008474040660075843, - -0.0015567037044093013, - -7.176155486376956e-05, - 0.0012455222895368934, - -0.0004335582198109478, - -0.0013155771885067225, - -0.0018272997112944722, - -0.0012937582796439528, - -0.006187084596604109, - 0.0009453397942706943, - 0.0014257481088861823, - -0.002036238554865122, - 0.00020092421618755907, - -0.001755222794599831, - -0.0067558190785348415, - -0.0017380499048158526, - -0.005835842806845903, - -0.0016929549165070057, - 0.0009261767845600843, - 0.0016362931346520782, - -0.00020248856162652373, - 0.0006871231598779559, - 0.20776398479938507, - -0.0009164713555946946, - 0.0015619572950527072, - 0.0005663709598593414, - 0.0007065323879942298, - 0.010923783294856548, - 0.09000858664512634, - 0.0019189949380233884, - -0.003978046588599682, - 0.0014985339948907495, - 0.001292372471652925, - -0.004493155516684055, - 0.001832200912758708, - -0.002829387318342924, - 0.0024247642140835524, - -0.0028368474449962378, - -0.0005650739185512066, - -0.00021624602959491313, - 0.0047965324483811855, - 0.0003679311485029757, - 0.004948780406266451, - -0.0003738648956641555, - 0.002370445290580392, - 0.00024206303351093084, - -0.00097663642372936, - -0.003609610954299569, - -0.00027505814796313643, - 0.0006798748509027064, - -0.0012854852247983217, - 0.00020536189549602568, - -0.0006164504447951913, - 0.0009714607731439173, - -0.0011392133310437202, - -0.05827001482248306, - -0.004986530169844627, - 0.004498828202486038, - -0.0017033660551533103, - 0.0013364640763029456, - 0.00037891301326453686, - -0.0004839518223889172, - 0.001423769281245768, - -0.0010916009778156877, - -0.001993004232645035, - 0.0033208848908543587, - -0.0022152618039399385, - 0.000375056843040511, - 0.0062509262934327126, - -0.0019455001456663013, - -0.002055748598650098, - -2.7307103209750494e-06, - -0.0003222714294679463, - 0.0006682235398329794, - -0.0010640716645866632, - -0.05177006870508194, - 0.0012464907485991716, - -0.0018751053139567375, - -0.0011886327993124723, - -0.0020707205403596163, - -0.0001703713060123846, - 0.004872476682066917, - -0.01126299612224102, - 0.001009068451821804, - 0.0017097564414143562, - 5.400968439062126e-05, - 0.0003898125432897359, - 0.0002457562368363142, - 1.3734739695792086e-05, - -0.0009604739025235176, - 0.0007794922566972673, - 0.0012835846282541752, - -0.0017382916994392872, - 0.000698805321007967, - 0.004193857777863741, - 0.0015013380907475948, - -0.000363836094038561, - -0.0005899955285713077, - -0.0026234490796923637, - -0.005378772504627705, - 0.002112101763486862, - 0.11286614835262299, - 0.00024111771199386567, - 0.00224116537719965, - 0.0008718696190044284, - -0.0017247677315026522, - -0.003989841789007187, - -0.0012934133410453796, - -0.0009494643891230226, - 0.006054173223674297, - 0.00020024478726554662, - -0.0014979399275034666, - -0.0031206603161990643, - -0.00015793398779351264, - 0.0011921507539227605, - -0.0014886276330798864, - 0.0019189842278137803, - -0.0016133037861436605, - -0.0006991935078985989 - ], - [ - 0.001620850758627057, - 0.016136107966303825, - 0.02937358431518078, - 0.06447553634643555, - -0.03474186733365059, - -0.021754292771220207, - -0.03622308373451233, - 0.061332061886787415, - 0.04510122537612915, - 0.008225991390645504, - 0.06974585354328156, - -0.04921574890613556, - 0.01269445475190878, - 0.04059070348739624, - -0.05396759882569313, - -0.26224106550216675, - -0.027003735303878784, - 0.033163536339998245, - -0.02225707843899727, - -0.06479950994253159, - -0.0830194428563118, - 0.0011841640807688236, - -0.01053161732852459, - 0.03403334692120552, - -0.027685079723596573, - -0.04583566635847092, - 0.02520245872437954, - -0.05258147045969963, - -0.06666870415210724, - 0.11639483273029327, - 0.0405084490776062, - -0.007250890601426363, - 0.006334544159471989, - -0.024461496621370316, - 0.07163005322217941, - 0.002024412387982011, - 0.08402810990810394, - 0.02620285004377365, - -0.004263029899448156, - -0.017292851582169533, - -0.013588436879217625, - 0.043318696320056915, - 0.05717867985367775, - -0.019276099279522896, - -0.031320616602897644, - -0.009439090266823769, - 0.002701101591810584, - -0.004452271852642298, - -0.0013478482142090797, - 0.003097070148214698, - -0.016673902049660683, - 0.028909364715218544, - -0.010982790030539036, - 0.05250132456421852, - -0.04129413142800331, - -0.01903698779642582, - -0.007259903009980917, - -0.05683537572622299, - -0.003217061748728156, - 0.07906555384397507, - -0.021882008761167526, - 0.015570299699902534, - 0.017963320016860962, - -0.04672206938266754, - -0.0602722242474556, - 0.0030463561415672302, - -0.006959767546504736, - 0.07433395087718964, - 0.01435623224824667, - 0.032938189804553986, - 0.0011584630701690912, - 0.17122793197631836, - 0.05494276061654091, - 0.039613399654626846, - -0.025064192712306976, - -0.09051449596881866, - 0.028862392529845238, - 0.0023061640094965696, - -0.005452885292470455, - -0.014318408444523811, - 0.04360174760222435, - -0.0021425930317491293, - 0.28736644983291626, - 0.028582856059074402, - 0.002455528127029538, - 0.07258301228284836, - -0.033306922763586044, - -0.05414707213640213, - 0.014432111755013466, - -0.10378268361091614, - -0.021665751934051514, - 0.03555414080619812, - 0.06882824003696442, - 0.010429575107991695, - 0.0067552486434578896, - 0.016140175983309746, - 0.021641820669174194, - -0.0005609056679531932, - -0.03845857083797455, - 0.007485776208341122, - 0.02280721440911293, - -0.006715571973472834, - -0.045572493225336075, - -0.0027895586099475622, - 0.06019189581274986, - 0.021597648039460182, - 0.03642668202519417, - -0.040969375520944595, - 0.04463835433125496, - 0.009711170569062233, - 0.051842737942934036, - 0.04992997646331787, - 0.019186200574040413, - -0.03128978982567787, - -0.04651755094528198, - 0.06411348283290863, - 0.017823170870542526, - -0.010668142698705196, - 0.0001699444546829909, - -0.0831523984670639, - -0.026622353121638298, - 0.0022696887608617544, - 0.03213118016719818, - 0.01805528812110424, - -0.029676232486963272, - 0.022658653557300568, - -0.5528596043586731, - 0.024438204243779182, - 0.06481107324361801, - 0.040510665625333786, - 0.01201519463211298, - -0.001241088379174471, - -0.002848670817911625, - -0.0860709473490715, - 0.03455731272697449, - 0.000415477785281837, - -0.08695463836193085, - 0.01214944664388895, - 0.04863973706960678, - -0.031244557350873947, - 0.0024701650254428387, - 0.015039706602692604, - -0.06232655420899391, - 0.03115607611835003, - -0.06671540439128876, - 0.011536079458892345, - 0.011617747135460377, - -0.041907865554094315, - -0.002385864034295082, - -0.001273286179639399, - -0.005467705894261599, - 0.02620013803243637, - 0.017784645780920982, - -0.0773661732673645, - 0.0008660139283165336, - 0.05932861566543579, - -0.006316989194601774, - 0.019035812467336655, - -0.007225658744573593, - 0.20802268385887146, - 0.06986375898122787, - 0.0062713343650102615, - -0.0021358965896070004, - 0.020843375474214554, - 0.061054278165102005, - -0.1896369755268097, - 0.00898066721856594, - -0.053044628351926804, - -0.050123341381549835, - -0.011303993873298168, - -0.035677019506692886, - -0.006500885356217623, - -0.04452923312783241, - -0.011995451524853706, - -0.04639057070016861, - -0.03759590536355972, - 0.039329156279563904, - 0.009473012760281563, - 0.04117313772439957, - 0.03788779675960541, - -0.020042162388563156, - -0.016240106895565987, - 0.007819692604243755, - 0.04259967431426048, - -0.0017673869151622057, - 0.02193407714366913, - 0.07435952872037888, - -0.032441191375255585, - 0.01705150306224823, - -0.04636290669441223, - 0.027071300894021988, - 0.07228989154100418, - 0.2016923427581787, - -0.052829232066869736, - 0.024405747652053833, - -0.0027673945296555758, - -0.0033665564842522144, - -0.006592486519366503, - -0.006295668426901102, - -0.006234017200767994, - 0.014200042001903057, - -0.005309432279318571, - 0.05978170409798622, - 0.03611639887094498, - -0.03307638317346573, - 0.0455477200448513, - -0.04803962633013725, - -0.013013755902647972, - 0.012711560353636742, - 0.015611758455634117, - 0.05057637393474579, - 0.036258284002542496, - 0.14087876677513123, - -0.05380629748106003, - -0.026054656133055687, - -0.006654008757323027, - 0.026176918298006058, - -0.0425017848610878, - 0.0265305507928133, - -0.10534699261188507, - -0.02039831317961216, - -0.0052678510546684265, - 0.004301643464714289, - -0.029404109343886375, - 0.024140292778611183, - -0.006652670446783304, - -0.006214625667780638, - -0.0008265345823019743, - 0.030213356018066406, - -0.01965651474893093, - 0.00040832595550455153, - 0.06192093342542648, - 0.022896744310855865, - 0.015191558748483658, - 0.0031362660229206085, - -0.005524148233234882, - 0.04561775177717209, - 0.0024517527781426907, - -0.15793377161026, - 0.021364441141486168, - 0.018790313974022865, - 0.0031897907610982656, - -0.028024569153785706, - -0.01857694797217846, - 0.041342999786138535, - -0.01812831498682499, - -0.0345434844493866, - -0.025234682485461235, - -0.05143348500132561, - -0.0016709391493350267, - -0.003032783977687359, - 0.031678810715675354, - 0.00852910615503788, - 0.015768390148878098, - -0.029462264850735664, - -0.0017490088939666748 - ], - [ - -7.276648830156773e-05, - 0.0016149331349879503, - -0.0005899664247408509, - 0.0008452020701952279, - -0.0014112156350165606, - 0.00023692770628258586, - -0.0005775956669822335, - 0.0012840236304327846, - 0.0022534856107085943, - 0.0017518438398838043, - -0.0017956189112737775, - 0.0011786550749093294, - -8.448317385045812e-05, - -0.00029943801928311586, - -0.0009769294410943985, - 0.005327702034264803, - -0.0006097384612075984, - -0.0038982636760920286, - -0.0028601805679500103, - 0.0013848161324858665, - -0.008776393719017506, - 0.00449449522420764, - -0.001458028331398964, - -0.0007087387493811548, - -0.0018772742478176951, - -0.0020604648161679506, - 0.0014937515370547771, - 0.00033241661731153727, - -0.0006382100400514901, - 0.0011026633437722921, - 0.0008482978446409106, - 0.001324338256381452, - -0.00046902213944122195, - -0.0010897443862631917, - 0.0009369246545247734, - 0.0008989343186840415, - 0.002031202893704176, - 0.0014759547775611281, - 0.0004002991772722453, - -0.0013417970621958375, - 0.00010188583837589249, - 0.002410442801192403, - 0.0008188942447304726, - 0.00012312145554460585, - -0.0014005278935655951, - -0.001774611882865429, - 0.0006473519606515765, - -0.0011522416025400162, - 0.001856492250226438, - 0.0007551852031610906, - -0.0017828956479206681, - 0.008698792196810246, - 0.0008603287860751152, - -0.00018805851868819445, - -0.0017408012645319104, - -0.0014525875449180603, - -0.00046889809891581535, - -0.0008460560347884893, - -0.0063163903541862965, - 0.00042736626346595585, - 0.00041387995588593185, - -0.0027046233881264925, - 0.00036366612766869366, - 0.0025313119404017925, - -0.0049853757955133915, - 0.002753303386271, - -0.010851030237972736, - 0.002822892041876912, - -0.0008852524333633482, - -0.0015294889453798532, - -0.0017568536568433046, - -0.07388205826282501, - 0.0029247510246932507, - 0.005432295612990856, - -0.0001313004904659465, - 0.001539346412755549, - 0.002210495760664344, - 0.0015178133035078645, - -0.0021331075113266706, - 0.0024681980721652508, - -0.00022698871907778084, - 0.00010735260002547875, - -0.9175933003425598, - 0.0006435785908252001, - -0.00416205171495676, - 0.0020591593347489834, - 1.5804171198396944e-05, - 0.0005949293845333159, - 0.0006709318258799613, - 0.002552526770159602, - 0.0010115857003256679, - 0.0013527279952540994, - 0.006487327162176371, - -0.0008284744108095765, - 0.002194004599004984, - 0.0030325090046972036, - -0.00016376750136259943, - -0.0015144671779125929, - 0.0033186553046107292, - -0.001098852138966322, - 0.0022078792098909616, - 0.0012633613077923656, - 0.00015433062799274921, - 0.002655790187418461, - 0.004253992345184088, - 0.0008540473063476384, - -0.0025425241328775883, - 0.0013631497276946902, - -0.0014315856387838721, - -0.0005678858142346144, - 0.008957786485552788, - 0.004887557588517666, - -0.0002856969949789345, - -0.0002332374860998243, - 0.001215826254338026, - 0.004316742066293955, - -0.0016850754618644714, - 0.0003313733614049852, - 4.8179652367252856e-05, - 0.0004066490801051259, - -0.001009563566185534, - -0.001976941479369998, - -0.0011932153720408678, - 0.0023028147406876087, - -0.003636006498709321, - -0.0010392623953521252, - 0.2836400270462036, - 0.0014999149134382606, - 0.0001338407746516168, - 0.0009835887467488647, - -1.580488788022194e-05, - 0.0034717596136033535, - 0.0006868502241559327, - -0.0005920937983319163, - -0.0027918971609324217, - 0.0013931702123954892, - -0.003598372684791684, - 0.0008506685262545943, - -0.001673246268182993, - 0.0004694643139373511, - 0.0018956519197672606, - -0.0007157509098760784, - -0.0013617086224257946, - -0.00038206594763323665, - -0.0009994569700211287, - -0.0052786231972277164, - 0.0008420084486715496, - 0.0015198489418253303, - -0.0015822487184777856, - 0.0006469319341704249, - -0.0014919773675501347, - -0.007051531691104174, - -0.0015466702170670033, - -0.005600772798061371, - -0.0020138747058808804, - 0.0008030542521737516, - 0.0015667204279452562, - -0.0007596895447932184, - 0.0012177283642813563, - 0.204933762550354, - -0.0010450653498992324, - 0.0013293679803609848, - 0.00015883617743384093, - 0.000811756297480315, - 0.01016238983720541, - 0.09161563217639923, - 0.0016782662132754922, - -0.004105147905647755, - 0.0010717634577304125, - 0.0012477304553613067, - -0.004534298088401556, - 0.0014815187314525247, - -0.0024498500861227512, - 0.001770813949406147, - -0.0027457952965050936, - -0.0008423179970122874, - 0.0005944538279436529, - 0.004867348819971085, - 0.0003530255926307291, - 0.004311638418585062, - -0.0008616392151452601, - 0.0017278833547607064, - 0.0005755102611146867, - -0.0008787650731392205, - -0.0033932835794985294, - -0.0006193052977323532, - 0.0012334298808127642, - -0.0015957752475515008, - 0.0006531028775498271, - -0.00023094408970791847, - 0.0009311921312473714, - -0.0008054773788899183, - -0.06101381033658981, - -0.004502746742218733, - 0.0051392437890172005, - -0.00235540303401649, - 0.001281208824366331, - 0.0011048369342461228, - -0.00071099738124758, - 0.0013740649446845055, - -0.0004668242472689599, - -0.0016475265147164464, - 0.003431417513638735, - -0.0017555580707266927, - 0.00036232947604730725, - 0.00706343911588192, - -0.0012198997428640723, - -0.0018277427880093455, - 0.0003574406146071851, - 1.3761985428573098e-05, - 0.0001301970478380099, - -0.001103126211091876, - -0.053273510187864304, - 0.0011608036002144217, - -0.0010311967926099896, - -0.0008570150821469724, - -0.002476990921422839, - -0.00016328853962477297, - 0.005211718380451202, - -0.010174877941608429, - 4.521856681094505e-05, - 0.0013279259437695146, - -0.0002672496484592557, - -0.00030198722379282117, - 6.96198403602466e-05, - 0.00036670800182037055, - -0.0002009150048252195, - 0.0012775228824466467, - 0.0008212946122512221, - -0.0020849828142672777, - 0.0009213305311277509, - 0.004371665883809328, - 0.0013646730221807957, - -0.0005409237928688526, - -0.0002443821867927909, - -0.002617455320432782, - -0.004648745991289616, - 0.0015554986894130707, - 0.11598722636699677, - 0.00048058570246212184, - 0.0025448501110076904, - 0.00047875623567961156, - -0.0010695391101762652, - -0.003688418073579669, - -0.000918499194085598, - -0.0004762825556099415, - 0.00539704505354166, - 0.0006707876455038786, - -0.0018738568760454655, - -0.0038109393790364265, - -0.0007246122695505619, - 0.0007458280306309462, - -0.0012717765057459474, - 0.0021225488744676113, - -0.0013337864074856043, - -0.0006697607459500432 - ], - [ - -0.02791854925453663, - 0.004937950521707535, - 0.006999539211392403, - -0.012985615991055965, - 0.00479311216622591, - -0.024088377133011818, - 0.013253133744001389, - -0.021314647048711777, - -0.05143801495432854, - 0.020168248564004898, - 0.00949749257415533, - 0.014314287342131138, - -0.005523510742932558, - -0.008610475808382034, - -0.01146144513040781, - -0.3807312548160553, - 0.01763889007270336, - 0.006185502745211124, - -0.010580421425402164, - 0.01614208333194256, - -0.005459611304104328, - -0.03229798004031181, - -0.02903887815773487, - -0.009375903755426407, - 0.010345835238695145, - 0.0055275363847613335, - -1.961408088391181e-05, - 0.013653336092829704, - -0.017121147364377975, - 0.037684738636016846, - 0.0026526348665356636, - -0.007694882340729237, - 0.03103562816977501, - 0.02515845187008381, - 0.023280499503016472, - -0.05623043328523636, - -0.004723343066871166, - -0.06284880638122559, - -0.030712133273482323, - 0.03148700296878815, - 0.01134941540658474, - -0.03067779168486595, - 0.02457260899245739, - -0.02433825097978115, - 0.02379765920341015, - -0.05203213170170784, - 0.01548092532902956, - 0.01912652514874935, - -0.031454719603061676, - -0.007901621051132679, - -0.018886730074882507, - 0.0036950537469238043, - -0.020002739503979683, - -0.01871398836374283, - -0.015860605984926224, - -0.03313445672392845, - -0.004335460718721151, - 0.02585502900183201, - 0.011343716643750668, - -0.028311381116509438, - -0.04898253455758095, - 0.04548409953713417, - 0.030062004923820496, - -0.03952633962035179, - -0.050544623285532, - -0.012320158071815968, - -0.044797010719776154, - 0.007412911392748356, - 0.06476819515228271, - 0.021929239854216576, - 0.03204336389899254, - 0.13814648985862732, - 0.07858691364526749, - -0.002681171987205744, - -0.04462706670165062, - -0.03536267951130867, - 0.043832555413246155, - 0.004161327611654997, - -0.0004706259351223707, - 0.03181978315114975, - -0.004675135016441345, - 0.00031021880568005145, - 0.012949391268193722, - 0.01872444711625576, - 0.016395777463912964, - -0.01221530046314001, - 0.038304585963487625, - -0.005812265910208225, - -0.025421762838959694, - -0.0402553491294384, - 0.014237701892852783, - -0.0190565288066864, - 0.21551109850406647, - -0.0133702103048563, - -0.0016784268664196134, - 0.026516813784837723, - -0.021661005914211273, - 0.008357181213796139, - 0.002354471245780587, - -0.014194370247423649, - -0.001683409558609128, - 0.044510338455438614, - 0.037083566188812256, - -0.05572164058685303, - 0.07838914543390274, - -0.006660099141299725, - 0.02739650011062622, - -0.006775988731533289, - -0.0021631482522934675, - -0.005658398848026991, - 0.02083151787519455, - 0.022192049771547318, - 0.039168596267700195, - 0.017630601301789284, - -0.03773277625441551, - 0.03632054477930069, - 0.005801402498036623, - -0.05654770880937576, - -0.020715506747364998, - 0.0032256024423986673, - -0.0155011722818017, - 0.0033433781936764717, - 0.028292184695601463, - 0.008311251178383827, - -0.04913710057735443, - 0.020797211676836014, - -0.6340506672859192, - 0.02793354168534279, - -0.004320394713431597, - 0.020963257178664207, - 0.006243565585464239, - 0.0049356878735125065, - -0.04098232835531235, - -0.01807401143014431, - 0.04419533535838127, - 0.0023336289450526237, - -0.005308463238179684, - 0.005005017854273319, - -0.012343398295342922, - -0.018600929528474808, - 0.007252655457705259, - -0.01644555851817131, - 0.037616025656461716, - -0.04570131376385689, - 0.013653178699314594, - -0.04111437499523163, - -0.021128622815012932, - -0.02692287601530552, - -0.04859403148293495, - -0.020426936447620392, - 0.02162373624742031, - -0.06023336201906204, - -0.01681390032172203, - -0.02856644056737423, - -0.008944660425186157, - 0.006695788353681564, - 0.008296802639961243, - 0.02613559179008007, - -0.03630620241165161, - 0.3562878668308258, - 0.055977098643779755, - -0.043140511959791183, - 0.00915303360670805, - 0.01777922548353672, - 0.017540648579597473, - -0.17084036767482758, - -0.0027164791245013475, - -0.015941079705953598, - -0.005435435567051172, - -0.006980552338063717, - -0.051406778395175934, - -0.034269001334905624, - -0.015152805484831333, - 0.012522286735475063, - -0.009912247769534588, - 0.011049534194171429, - -0.019231194630265236, - -0.03189663961529732, - -0.0003898825088981539, - 0.0005737249739468098, - -0.022710809484124184, - 0.0043291677720844746, - -0.0119385477155447, - -0.006876314990222454, - 0.045674216002225876, - 0.022294191643595695, - -0.01168778631836176, - 0.0509268119931221, - -0.07720529288053513, - -0.0016421361360698938, - 0.007489332463592291, - 0.019831912592053413, - 0.2145945429801941, - -0.04600965604186058, - -0.02224799245595932, - 0.04387514293193817, - -0.05620841309428215, - 0.012956214137375355, - -0.026106255128979683, - -0.04258093237876892, - -0.01968076452612877, - 0.0008955391822382808, - 0.0014754023868590593, - 0.030729936435818672, - -0.004014524165540934, - 0.02354658581316471, - -0.010417850688099861, - 0.004621819593012333, - 0.0038730110973119736, - 0.017190491780638695, - -0.014487877488136292, - -0.02349212020635605, - 0.10074012726545334, - -0.0017785578966140747, - 0.016361795365810394, - 0.002894716802984476, - 0.0011710135731846094, - -0.01655002497136593, - 0.011729768477380276, - -0.045585598796606064, - -0.015580259263515472, - -0.012700289487838745, - -0.02170621231198311, - 0.017145438119769096, - 0.019513513892889023, - -0.032074589282274246, - -0.03721589595079422, - -0.009401679039001465, - 0.015583166852593422, - 0.005699384491890669, - 0.012584405951201916, - -0.004982973448932171, - 0.0006472136592492461, - -0.02123642899096012, - -0.04105906933546066, - -0.014753147028386593, - -0.000998599105514586, - -0.014076730236411095, - -0.0283125601708889, - -0.017628762871026993, - 0.01923210918903351, - -0.02895354852080345, - 0.008667238987982273, - 0.006677216850221157, - 0.0015320508973672986, - 0.012929349206387997, - -0.00796114094555378, - -0.022344911471009254, - -0.011271893046796322, - 0.019660988822579384, - -0.018042990937829018, - -0.03127601742744446, - 0.04336901754140854, - -0.013959058560431004, - -0.02926727943122387, - -0.016611671075224876 - ], - [ - 0.0003066117933485657, - 0.0044658188708126545, - 0.04543043300509453, - -0.01035354845225811, - 0.034237198531627655, - -0.017209958285093307, - -0.01590106263756752, - -0.02420906536281109, - -0.03475199639797211, - 0.003138768719509244, - -0.039864279329776764, - 0.017143918201327324, - -0.012147574685513973, - -0.009792475961148739, - -0.044506508857011795, - -0.26660120487213135, - -0.04796459898352623, - -0.05402223393321037, - -0.02355613373219967, - 0.0010791363893076777, - -0.06357165426015854, - 0.007792497519403696, - -0.028253380209207535, - 0.017037780955433846, - 0.02006140910089016, - -0.0604388490319252, - -0.009323839098215103, - 0.022388983517885208, - 0.005763151682913303, - -0.035214342176914215, - 0.03926442191004753, - -0.014478924684226513, - 0.03226352855563164, - 0.01109253242611885, - 0.014576800167560577, - 0.0037490418180823326, - 0.019137991592288017, - -0.009878391399979591, - -0.0316767543554306, - 0.042307935655117035, - 0.020459754392504692, - 0.025025703012943268, - 0.016971610486507416, - -0.008053875528275967, - -0.004253933671861887, - -0.05519399046897888, - -0.027182793244719505, - 0.02308100275695324, - -0.033334217965602875, - 0.017557669430971146, - -0.025981439277529716, - -0.01626734621822834, - 0.002415287308394909, - 0.017626071348786354, - -0.013500668108463287, - -0.015437726862728596, - 0.007318987511098385, - -0.009291913360357285, - -0.01592070609331131, - 0.044312700629234314, - -0.04095068573951721, - -0.02442927099764347, - -0.035888463258743286, - -0.021541869267821312, - 0.006266739219427109, - -0.01609502173960209, - -0.02715379372239113, - 0.01345827430486679, - 0.01894242875277996, - -0.03951921686530113, - 0.04922786355018616, - 0.18704400956630707, - 0.06891698390245438, - -0.005445480812340975, - -0.033171750605106354, - -0.04060462489724159, - 0.004240197595208883, - 0.05220140144228935, - 0.01979968696832657, - -0.010797805152833462, - -0.00247996230609715, - -0.002791741630062461, - -0.17734801769256592, - -0.02895992435514927, - -0.03628099337220192, - -0.01908055692911148, - 0.037200503051280975, - -0.01836063340306282, - -0.014483505859971046, - 0.018306836485862732, - 0.014264645054936409, - 0.027675243094563484, - 0.08016130328178406, - 0.00212909746915102, - -0.02387322671711445, - 0.030654426664114, - -0.02355482615530491, - -0.03977213427424431, - 0.026497898623347282, - 0.0044874814338982105, - -0.010766709223389626, - 0.034125734120607376, - -0.017613980919122696, - -0.023157265037298203, - 0.05248938128352165, - 0.010175363160669804, - 0.020942136645317078, - -0.005686128977686167, - -0.01584075577557087, - -0.0017804504605010152, - -0.019079146906733513, - 0.038680993020534515, - -0.009830523282289505, - 0.00799320638179779, - -0.004286318551748991, - 0.030079137533903122, - 0.01745777577161789, - 0.016026902943849564, - -0.01726660132408142, - 0.017996037378907204, - 0.004294778686016798, - -0.020455366000533104, - 0.033753395080566406, - 0.037547241896390915, - -0.06651044636964798, - 0.0002591218799352646, - -0.5729277729988098, - 0.029420917853713036, - 0.003908272832632065, - 0.016512081027030945, - 0.02592644654214382, - 0.014614677987992764, - 0.005639232229441404, - 0.030405282974243164, - -0.013190653175115585, - 0.021194621920585632, - 0.04620412737131119, - -0.015613068826496601, - 0.010594947263598442, - -0.051702916622161865, - -0.0023316601291298866, - -0.007612483575940132, - -0.009685246273875237, - -0.057370711117982864, - -0.026921669021248817, - -0.04208771139383316, - -0.04207069054245949, - -0.05879465118050575, - -0.002457769587635994, - -0.010659902356564999, - -0.007238518446683884, - 0.013989802449941635, - -0.023265082389116287, - -0.05220698192715645, - 0.010726382955908775, - -0.008061565458774567, - 0.01747911050915718, - 0.030154427513480186, - -0.046637602150440216, - 0.41292673349380493, - 0.017224179580807686, - 0.004065132234245539, - 0.01749870553612709, - -0.01484495960175991, - 0.050804123282432556, - -0.2336173802614212, - 0.05633615329861641, - -0.017623553052544594, - -0.0070635355077683926, - -0.029034461826086044, - -0.04501015320420265, - 0.005216890946030617, - -0.007452954072505236, - 0.007981662638485432, - -0.024921292439103127, - 0.02848045900464058, - -0.025008490309119225, - -0.005641396157443523, - 0.014273741282522678, - -0.01411560270935297, - -0.009373167529702187, - 0.024843042716383934, - -0.014936897903680801, - -0.003860278520733118, - 0.04500448703765869, - 0.024399006739258766, - -0.0033681488130241632, - 0.02716960571706295, - -0.031211402267217636, - -0.02959444560110569, - 0.03082405775785446, - -0.02989286184310913, - 0.23219703137874603, - -0.03887557610869408, - 0.001750794006511569, - 0.018323443830013275, - -0.008309661410748959, - 0.0072403536178171635, - -0.015351465903222561, - -0.023458465933799744, - -0.03080279752612114, - -0.031641021370887756, - -0.010743877850472927, - -0.019291961565613747, - 0.01086642686277628, - 0.04059756174683571, - -0.0484388992190361, - 0.011819160543382168, - -0.012429659254848957, - -0.010879138484597206, - 0.033420171588659286, - -0.03171587362885475, - 0.1329253613948822, - -0.0032596292439848185, - -0.01297910138964653, - -0.010091706179082394, - 0.025371598079800606, - 0.00989698525518179, - 0.02176031284034252, - -0.08192018419504166, - -0.026155179366469383, - -0.010900520719587803, - 0.03461257740855217, - 0.026970149949193, - 0.014489321038126945, - 0.008023045025765896, - -0.01955850049853325, - 0.023979851976037025, - -0.0055494653061032295, - 0.038743287324905396, - -0.009031294845044613, - 0.01881181262433529, - 0.01838129572570324, - -0.02355000376701355, - -0.020239179953932762, - -0.011335850693285465, - -0.02892223186790943, - 0.04031827300786972, - -0.2184605598449707, - -0.018649380654096603, - -0.023782571777701378, - 0.00803710613399744, - -0.06254198402166367, - -0.005106965079903603, - 0.009517241269350052, - -0.009318473748862743, - 0.049330808222293854, - -0.03393656387925148, - -0.030146440491080284, - 0.04927358031272888, - -0.011980725452303886, - -0.02923133224248886, - 0.0030143430922180414, - -0.017307233065366745, - 0.021972211077809334, - -0.00823186244815588 - ], - [ - -0.0004365564964246005, - 0.0019341055303812027, - 0.005993155296891928, - -0.007317161187529564, - -0.0010444425279274583, - -0.0029358756728470325, - 0.005354445893317461, - -0.0004429219989106059, - -0.000974670925643295, - 0.0012414732482284307, - -0.012157873250544071, - 0.0068681249395012856, - -0.004427039064466953, - -0.0009555988945066929, - -0.0003352833155076951, - -0.02063976600766182, - -0.0026361115742474794, - -0.016204195097088814, - 0.0010420196922495961, - 0.006931459531188011, - -0.015320651233196259, - 0.0018168624956160784, - -0.005504748784005642, - -0.0028881668113172054, - 0.005940739996731281, - -0.005199253559112549, - 0.001651216414757073, - 0.004380809608846903, - 0.003781396895647049, - 0.0020542521961033344, - -0.0020109140314161777, - -0.008841878734529018, - 0.0011920612305402756, - 0.0032434023451060057, - 0.001239224337041378, - -0.0009012952796183527, - -0.0021564073394984007, - -0.00852955225855112, - -0.0032388116233050823, - 0.001189633272588253, - 0.008919056504964828, - 0.005446115508675575, - 0.007604533340781927, - 0.0009302203543484211, - 0.007437857799232006, - -0.011671574786305428, - 0.00276128645054996, - -0.0032233400270342827, - 0.0014559872215613723, - -0.002574937418103218, - -0.004671063274145126, - 0.00659517478197813, - 0.00044433557195588946, - 0.0008584249299019575, - -0.0028039291501045227, - 0.0010095048928633332, - -0.001930085476487875, - 0.0062232608906924725, - -0.006512901280075312, - -0.006023064721375704, - -0.009196973405778408, - -0.004663127474486828, - -0.005062499083578587, - 1.1185878975084051e-05, - -0.0029459167271852493, - 0.0007471469580195844, - -0.014502136968076229, - 0.0024554673582315445, - -0.0007185045396909118, - -0.004196369554847479, - 0.006148400716483593, - -0.05416174232959747, - 0.011612865142524242, - 0.006107326131314039, - 0.003424090798944235, - -0.0014010329032316804, - 0.003077858593314886, - 0.0012800365220755339, - -0.0017657241551205516, - 0.0010199104435741901, - -0.0009901255834847689, - 0.001511003472842276, - -0.9315404891967773, - 0.0006575778825208545, - -0.013293463736772537, - 0.0017412337474524975, - 0.00672408239915967, - 0.002294330159202218, - -0.0017754571745172143, - 0.009047086350619793, - 0.006482989527285099, - -0.006355260498821735, - 0.018398156389594078, - 0.0022440452594310045, - -0.004887034650892019, - 0.008349292911589146, - -0.006627128925174475, - -0.0019424837082624435, - 0.007925443351268768, - -0.006257865112274885, - 0.004654604941606522, - 0.006069203373044729, - 0.006993646267801523, - -0.0057342685759067535, - 0.006812290288507938, - -3.712082252604887e-05, - 0.0057172030210494995, - 0.008187233470380306, - -0.007560808677226305, - 0.004708543885499239, - 0.009255105629563332, - 0.01174595020711422, - 0.0025773635134100914, - 0.0011306792730465531, - 0.003249721135944128, - 0.001240335637703538, - -0.001910888939164579, - -0.00393641134724021, - -0.00766746886074543, - 0.00789249874651432, - -0.0073246280662715435, - -0.00111523421946913, - 0.0003867650229949504, - 0.006199004128575325, - -0.011489245109260082, - -0.0002108380722347647, - 0.2108243703842163, - 0.006087227258831263, - -0.0011580626014620066, - 0.0046465592458844185, - -0.0026152878999710083, - 0.004881416447460651, - -0.0001226626627612859, - 0.00014517575618810952, - 0.0005880570388399065, - 0.002826390089467168, - 0.0026232802774757147, - -0.005187461152672768, - 0.00036781764356419444, - -0.0031839131843298674, - -0.0016822913894429803, - -0.0010328589705750346, - 0.004629114177078009, - -0.014908888377249241, - 0.003359871217980981, - -0.011361831799149513, - -0.0011152377119287848, - -0.003693300997838378, - -0.004306826740503311, - 0.00045631013927049935, - -0.0007864201324991882, - -0.012014594860374928, - -0.0027825101278722286, - -0.00738452048972249, - -0.005887750070542097, - 0.0015685328980907798, - 0.005652855150401592, - 0.005145370028913021, - -0.00531486002728343, - 0.25005215406417847, - -0.005561646539717913, - 0.0024899106938391924, - 0.006476128939539194, - -0.0008577267290093005, - 0.010728963650763035, - 0.06856028735637665, - 0.005664881318807602, - -0.0006305283168330789, - 0.003183947876095772, - -0.0008312900899909437, - -0.012701352126896381, - -0.003014477901160717, - -0.0024484219029545784, - -0.00031163383391685784, - -0.002944330684840679, - 0.005941534414887428, - -0.007580996491014957, - 0.001182864187285304, - 0.0016748802736401558, - -0.005321180447936058, - -0.007425591815263033, - 0.010018160566687584, - 0.0014801498036831617, - -0.0067906794138252735, - -0.0015289222355931997, - 0.00511764595285058, - -0.0010498277842998505, - 0.004491883330047131, - -0.009905488230288029, - 0.0018211121205240488, - 0.0074270134791731834, - -0.005614809691905975, - -0.03241221234202385, - -0.004449115134775639, - 0.003767898539081216, - -0.001091671991162002, - -0.005802893545478582, - 0.0012326124124228954, - -0.005820927210152149, - -0.005265538115054369, - -0.004938973113894463, - -0.005264523904770613, - 0.001829646760597825, - 0.004992322530597448, - 0.006444895174354315, - 0.012460192665457726, - -0.0026563070714473724, - 0.00030832740594632924, - 0.0031779056880623102, - 0.00834091566503048, - -0.002207685261964798, - -0.008395240642130375, - -0.034425634890794754, - 0.0077627855353057384, - -0.0024624618235975504, - -0.0033189672976732254, - 0.0013186532305553555, - 0.012452170252799988, - -0.0018160564359277487, - -0.01572285406291485, - -0.003131481586024165, - -0.0029789695981889963, - 0.0010059222113341093, - 0.005649714730679989, - 0.006202132441103458, - 0.002113174647092819, - -0.00044823644566349685, - -0.0018010161584243178, - 0.0016329979989677668, - 0.004958818666636944, - 0.0038546202704310417, - 0.0020681775640696287, - -0.0005060772527940571, - -0.0037205254193395376, - -0.0016694952500984073, - -0.005596623290330172, - -0.005614180583506823, - 0.0019854798447340727, - 0.08441922813653946, - -0.0033482022117823362, - 0.0028217036742717028, - -0.0013084764359518886, - 0.0020339086186140776, - -0.003051399253308773, - 0.008293804712593555, - 0.0036884399596601725, - 0.0050882576033473015, - -0.005500957369804382, - -0.005570836365222931, - -0.005324074998497963, - -0.0033694503363221884, - 0.0002785000833682716, - -0.0027670988347381353, - -0.0006614856538362801, - -0.00044616920058615506, - 0.00454728351905942 - ], - [ - -0.0013643234269693494, - -0.012374232523143291, - 0.029195239767432213, - -0.03776419535279274, - -0.03903226554393768, - -0.05536071956157684, - 0.03436501696705818, - -0.0002857567451428622, - -0.011909901164472103, - 0.04206273704767227, - -0.039095114916563034, - 0.03424850478768349, - -0.0011635227128863335, - -0.026764532551169395, - -0.039045099169015884, - -0.14289125800132751, - -0.016997430473566055, - -0.10371771454811096, - 0.030091319233179092, - 0.0933062881231308, - -0.11221233010292053, - 0.009183673188090324, - -0.013214318081736565, - 0.014667896553874016, - 0.08337382227182388, - -0.07436252385377884, - 0.018108541145920753, - -0.01642722263932228, - -0.0008574136300012469, - 0.019502639770507812, - -0.017984449863433838, - 0.05063021928071976, - -0.03830202296376228, - -0.006781827658414841, - 0.04333024471998215, - -0.0049628205597400665, - -0.04201621562242508, - -0.042880408465862274, - -0.044029273092746735, - 0.03068728931248188, - 0.026791049167513847, - -0.012537874281406403, - -0.012744289822876453, - 0.010854913853108883, - 0.07886940985918045, - -0.07110083848237991, - 0.01622062548995018, - -0.007517852354794741, - -0.013415178284049034, - 0.052161626517772675, - -0.03853282704949379, - -0.020263172686100006, - 0.005487129557877779, - 0.08331579715013504, - -0.08634103834629059, - -0.003564429935067892, - -0.023868877440690994, - 0.08172117173671722, - -0.03830898925662041, - 0.033122312277555466, - -0.04864398017525673, - -0.02387676201760769, - -0.01247528474777937, - -0.0505596362054348, - -0.047724198549985886, - 0.02462654560804367, - 0.02972428686916828, - 0.011954345740377903, - 0.06326577067375183, - -0.01772860810160637, - 0.04863202944397926, - 0.11400356888771057, - 0.09247169643640518, - 0.027379697188735008, - -6.08396549068857e-05, - -0.07514318078756332, - -0.012973268516361713, - 0.06885353475809097, - 0.011259402148425579, - -0.021989013999700546, - 0.01995670609176159, - -0.07513626664876938, - -0.17952260375022888, - -0.009541609324514866, - 0.014472794719040394, - 0.041380252689123154, - 0.07240641117095947, - 0.03198164328932762, - -0.04168577119708061, - 0.019901219755411148, - 0.037079453468322754, - -0.020333031192421913, - -0.03890634700655937, - 0.032372571527957916, - -0.0024380299728363752, - -0.015153404325246811, - -0.05331368371844292, - 0.023116137832403183, - 0.004842177499085665, - -0.05808907747268677, - 0.03163452073931694, - 0.03056897036731243, - -0.06168502941727638, - -0.07800408452749252, - 0.028801878914237022, - -0.06390637904405594, - 0.06401412189006805, - 0.043140850961208344, - 0.06833330541849136, - 0.0784575417637825, - -0.01867135614156723, - 0.037788745015859604, - 0.029888710007071495, - -0.02187836728990078, - 0.0779157355427742, - 0.06775180995464325, - 0.05296363681554794, - -0.020559757947921753, - 0.019137058407068253, - 0.08905214071273804, - -0.027715696021914482, - -0.01363249123096466, - 0.04408452287316322, - 0.07166998088359833, - -0.047544658184051514, - -0.02281995303928852, - -0.3652748167514801, - 0.09191099554300308, - 0.01295116264373064, - 0.07069993019104004, - 0.0013142157113179564, - -0.017697157338261604, - -0.04979497194290161, - -0.003111075609922409, - 0.12048972398042679, - 0.04274732992053032, - 0.002298142295330763, - -0.029818018898367882, - -0.032270532101392746, - -0.02748614177107811, - -0.029112983494997025, - -0.010085510089993477, - -0.013805736787617207, - -0.08429044485092163, - 0.04110664501786232, - -0.0703834667801857, - 0.031380318105220795, - -0.040416836738586426, - 0.010245217941701412, - 0.008447009138762951, - 0.06289651244878769, - 0.037105023860931396, - -0.022319452837109566, - -0.08572398871183395, - -0.08410996198654175, - -0.02330419234931469, - 0.0043688747100532055, - 0.0736212506890297, - -0.053125251084566116, - 0.23135465383529663, - 0.013090260326862335, - -0.015157283283770084, - -0.024228032678365707, - 0.017446553334593773, - 0.05816580355167389, - -0.08075976371765137, - 0.06656062602996826, - 0.0029623645823448896, - -0.03902604803442955, - 0.016608400270342827, - -0.011054336093366146, - 0.01573110930621624, - -0.08694057911634445, - -0.024393057450652122, - -0.02655002847313881, - 0.07069725543260574, - -0.01929312013089657, - 0.05849701911211014, - 0.013583962805569172, - -0.00231523672118783, - -0.0315360501408577, - 0.07771669328212738, - 0.05549545958638191, - -0.00605034502223134, - -0.0014328128891065717, - -0.028926711529493332, - 0.030728453770279884, - 0.01688138023018837, - -0.010794546455144882, - -0.010986186563968658, - 0.05043717846274376, - -0.07949917763471603, - 0.27987948060035706, - -0.09557126462459564, - 0.004241549409925938, - -0.02374979667365551, - -0.042436644434928894, - 0.05666658282279968, - -0.0789356455206871, - -0.02958923764526844, - -0.02893061563372612, - -0.05626484379172325, - 0.05981186032295227, - -0.1203695759177208, - 0.02835978753864765, - 0.04568477347493172, - 0.004667205270379782, - -0.06922761350870132, - -0.014183836989104748, - 0.01987091451883316, - 0.028268354013562202, - 0.06445895880460739, - 0.18679414689540863, - 0.023528991267085075, - 0.002294211881235242, - 0.016704563051462173, - 0.03843548893928528, - 0.040611740201711655, - 0.002126466017216444, - -0.037610940635204315, - 0.01535593718290329, - -0.04603385180234909, - -0.03499528020620346, - 0.025672461837530136, - 0.05440947413444519, - -0.010295364074409008, - -0.01372284535318613, - -0.007323568686842918, - -0.0323120541870594, - -0.025187892839312553, - 0.016427479684352875, - 0.038851480931043625, - -0.009624666534364223, - 0.005235819611698389, - 0.018291154876351357, - -0.06081003323197365, - -0.0054382216185331345, - 0.055902812629938126, - -0.3313029110431671, - 0.015180403366684914, - 0.045492175966501236, - 0.007276199758052826, - 0.03264492750167847, - 0.0016993245808407664, - 0.01113231759518385, - -0.012448766268789768, - -0.07014963030815125, - -0.06576516479253769, - -0.06417271494865417, - -0.10905727744102478, - -0.05836360901594162, - -0.0036857856903225183, - -0.02829938568174839, - 0.11500290036201477, - -0.08353311568498611, - 0.0005175179103389382 - ], - [ - -0.002670689020305872, - -0.004637880250811577, - 0.026065461337566376, - 0.018368292599916458, - -0.022536464035511017, - -0.015152594074606895, - -0.007582681253552437, - 0.040318623185157776, - 0.023154087364673615, - 0.012050955556333065, - 0.013365872204303741, - -0.004095455165952444, - -0.014176050201058388, - 0.00023035772028379142, - -0.04527733847498894, - -0.0662606954574585, - -0.011256408877670765, - -0.03297799453139305, - -0.03314283490180969, - 0.006572685670107603, - -0.10703469067811966, - 0.00838421005755663, - -0.00971489492803812, - 0.0010697719408199191, - 0.002234240062534809, - -0.0195144210010767, - 0.017068061977624893, - -0.010868844576179981, - -0.023809930309653282, - 0.05210627615451813, - 0.008762471377849579, - -0.011372295208275318, - -0.021288324147462845, - 0.01012231782078743, - 0.013585670851171017, - -0.01480228640139103, - 0.02180618792772293, - -0.01632162183523178, - 0.0027786444406956434, - 0.015264961868524551, - 0.0331023707985878, - -0.007748579606413841, - 0.031849056482315063, - -0.008086412213742733, - 0.007912245579063892, - -0.030604708939790726, - -0.01037596631795168, - -0.006133002229034901, - -0.0041071088053286076, - -0.007042504847049713, - -0.03272422403097153, - 0.01295469794422388, - -0.0175097044557333, - 0.009871367365121841, - 0.012748794630169868, - -0.009399447590112686, - -0.011750026606023312, - 0.025070298463106155, - -0.019942695274949074, - 0.022824876010417938, - -0.04141305387020111, - -0.0044250995852053165, - 0.014632433652877808, - -0.014672619290649891, - -0.05347041040658951, - 0.009982071816921234, - -0.011466603726148605, - 0.022709205746650696, - 0.009299092926084995, - 0.03008808195590973, - 0.024291718378663063, - 0.06156894937157631, - 0.036506302654743195, - 0.013614143244922161, - -0.01822834275662899, - -0.058872200548648834, - 0.0190535057336092, - 0.014277935959398746, - -0.0005027404986321926, - 0.0015277264174073935, - 0.025826208293437958, - 5.431910494735348e-07, - -0.8229961395263672, - 0.034638334065675735, - -0.010095669887959957, - 0.03671416640281677, - 0.046557873487472534, - -0.026015721261501312, - -0.012312781997025013, - -0.030814778059720993, - -0.0020760761108249426, - -0.0036527947522699833, - -0.03634141758084297, - 0.008053144440054893, - -0.010308251716196537, - 0.030390100553631783, - -0.011631426401436329, - -0.0033667932730168104, - -0.012206955812871456, - -0.011223205365240574, - 0.02455735392868519, - -0.00582040986046195, - 0.010954472236335278, - 0.000493616855237633, - 0.027262311428785324, - -0.009209985844790936, - 0.015072004869580269, - -0.0019223877461627126, - 0.0034348920453339815, - 0.004117836244404316, - 0.006737018469721079, - 0.028597796335816383, - 0.019352011382579803, - 0.005506216082721949, - 0.015991615131497383, - 0.018312713131308556, - 0.01879165880382061, - -0.038476791232824326, - -0.004691168665885925, - -0.007294234819710255, - -0.0395316407084465, - 0.016485730186104774, - 0.009431775659322739, - 0.028918180614709854, - -0.031017741188406944, - 0.019106965512037277, - -0.019461212679743767, - 0.02266966551542282, - 0.01913713850080967, - 0.04259387031197548, - 0.025490466505289078, - 0.016359591856598854, - -0.020628370344638824, - -0.024652455002069473, - 0.05052521079778671, - 0.007545600179582834, - -0.02150706574320793, - 0.017209311947226524, - 0.016105059534311295, - -0.020262861624360085, - -0.019892383366823196, - -0.0038467932026833296, - 0.0019583534449338913, - -0.0074778273701667786, - -0.031596675515174866, - -0.04002678394317627, - 0.0194564051926136, - -0.028770720586180687, - -0.03382442891597748, - -0.004547399934381247, - -0.0023914447519928217, - -0.001515425625257194, - -0.008832626976072788, - -0.0673472136259079, - -0.009626085869967937, - 0.016450347378849983, - 0.014385263435542583, - 0.03386795520782471, - -0.0070103369653224945, - 0.3516731858253479, - 0.03153323754668236, - -0.007477401755750179, - -0.013947210274636745, - 0.012008143588900566, - 0.07465425133705139, - -0.019683795049786568, - -0.007301384583115578, - -0.030378784984350204, - 0.0028814373072236776, - -0.003295897739008069, - -0.03736700117588043, - -0.0065082646906375885, - -0.06134762242436409, - 0.011865092441439629, - -0.011769423261284828, - 0.020009014755487442, - 0.011109966784715652, - 0.012689133174717426, - 0.016589466482400894, - 0.011302322149276733, - -0.02844953164458275, - 0.008711463771760464, - -0.0024947209749370813, - -0.005305995233356953, - -0.025253210216760635, - 0.025721417739987373, - 0.043418630957603455, - -0.0019594382029026747, - -0.025932738557457924, - -0.030815165489912033, - 0.01884666085243225, - 0.014795294031500816, - 0.1347048282623291, - -0.024466879665851593, - 0.0031488079112023115, - 0.0036910681519657373, - -0.009024491533637047, - -0.008052663877606392, - -0.018475335091352463, - -0.009011170826852322, - 0.006229260005056858, - 0.014286770485341549, - 0.018375897780060768, - 0.019216366112232208, - -0.015068144537508488, - 0.01853065937757492, - -0.002089712768793106, - -0.017246756702661514, - 0.004637816920876503, - 0.011135109700262547, - 0.015511336736381054, - 0.013337656855583191, - 0.07850585132837296, - 0.005402487237006426, - 0.0030364494305104017, - -0.020246712490916252, - 0.017429659143090248, - 0.002000817796215415, - 0.00518518453463912, - -0.07550010830163956, - 0.008009255863726139, - -0.01954009383916855, - -0.0138630922883749, - 0.0034654971677809954, - 0.020453374832868576, - 0.0033915312960743904, - -0.006498311180621386, - -0.024236256256699562, - 0.005062940530478954, - -0.02044963650405407, - 0.012064148671925068, - 0.05437054857611656, - -0.009391837753355503, - 0.02001408115029335, - 0.014039558358490467, - -0.03190004825592041, - 0.0013975048204883933, - 0.009317765012383461, - -0.18278811872005463, - 0.02078847773373127, - 0.005790953524410725, - -0.00033663323847576976, - 0.022132892161607742, - -0.016170985996723175, - 0.0305301696062088, - -0.03140798956155777, - -0.004786329343914986, - -0.027939748018980026, - -0.021266669034957886, - -0.028644518926739693, - -0.018665974959731102, - 0.01402515172958374, - -0.014974219724535942, - 0.012096571736037731, - -0.025418201461434364, - 0.015265015885233879 - ], - [ - -0.0027516859117895365, - 7.621439726790413e-05, - 0.06238597258925438, - -0.013119930401444435, - -0.022682756185531616, - -0.032963093370199203, - 0.021723458543419838, - 0.018730923533439636, - -0.012895943596959114, - -0.020104719325900078, - -0.04532136023044586, - 0.02918085642158985, - -0.03137896955013275, - 0.0017537245294079185, - -0.01807532086968422, - -0.22038820385932922, - -0.011612451635301113, - -0.02807805687189102, - 0.0019190821330994368, - 0.00840725377202034, - -0.06353727728128433, - -0.013454357162117958, - -0.0294746533036232, - -0.010839658789336681, - 0.01917651854455471, - -0.033692121505737305, - 0.016681520268321037, - 0.013657420873641968, - -0.004229761194437742, - 0.03567308187484741, - 0.0154047766700387, - -0.03664536401629448, - 0.028947263956069946, - 0.022229555994272232, - 0.01313378382474184, - -0.005325857549905777, - 0.030564451590180397, - -0.035283416509628296, - -0.01964210905134678, - 0.041220031678676605, - 0.04321380332112312, - 0.024936337023973465, - 0.07277300208806992, - 0.02064092643558979, - 0.01021453645080328, - -0.054324109107255936, - 0.026578588411211967, - 0.0021429925691336393, - -0.024729186668992043, - -0.02128034085035324, - -0.02830633521080017, - 0.017682116478681564, - 0.0020636969711631536, - 0.0039290571585297585, - 0.015169014222919941, - -0.011178811080753803, - -0.015133456327021122, - -0.0075055635534226894, - -0.014480290934443474, - 0.009317150339484215, - -0.06875932961702347, - 0.013330072164535522, - -0.037859998643398285, - -0.01016614306718111, - -0.005272883456200361, - -0.02433858998119831, - -0.05430995672941208, - 0.011723380535840988, - 0.025132181122899055, - -0.0024468894116580486, - 0.007979783229529858, - 0.19646964967250824, - 0.07558641582727432, - 0.027512410655617714, - 0.005486953072249889, - -0.036578960716724396, - 0.025780443102121353, - 0.02132333070039749, - 0.018454760313034058, - 0.014196806587278843, - -0.006514186505228281, - 0.0011981470743194222, - -0.10085093975067139, - 0.04069705307483673, - -0.06187976524233818, - 0.00481713842600584, - 0.033056825399398804, - -0.020624930039048195, - 0.0026485086418688297, - 0.0129089979454875, - 0.002678701188415289, - -0.04126060754060745, - 0.07000298798084259, - -0.01776057668030262, - -0.019878746941685677, - 0.06252606958150864, - -0.005612271372228861, - -0.006761542055755854, - 0.018251432105898857, - -0.03092375583946705, - 0.037176474928855896, - 0.01861199550330639, - 0.02385205216705799, - -0.05539988353848457, - 0.04352284595370293, - -0.00909954309463501, - 0.042708106338977814, - 0.009081494063138962, - -0.027821768075227737, - 0.026678213849663734, - -2.823696195264347e-05, - 0.06047726050019264, - 0.005889060907065868, - 0.017611877992749214, - -0.0024600557517260313, - -0.0025809714570641518, - 0.008347696624696255, - -0.007491620723158121, - -0.031822703778743744, - 0.024523362517356873, - -0.04922546446323395, - 0.01858302764594555, - 0.014467817731201649, - 0.034924961626529694, - -0.05176124349236488, - 0.043456725776195526, - -0.5920051336288452, - 0.00937388651072979, - 0.0045441314578056335, - 0.009911848232150078, - 0.00868798978626728, - 0.027559852227568626, - -0.0023144364822655916, - -0.012973101809620857, - 0.00901645515114069, - -0.005194718949496746, - -0.004542772192507982, - -0.03759726881980896, - 0.04163910821080208, - -0.05071432143449783, - 0.00037507334491238, - -0.011498698964715004, - 0.03063305839896202, - -0.0537940189242363, - 0.02913021109998226, - -0.04764644429087639, - -0.012574332766234875, - -0.03127194568514824, - -0.02145184949040413, - -0.051452357321977615, - -0.029994959011673927, - 0.010102505795657635, - -0.00025510924751870334, - -0.027231356129050255, - -0.0031796132680028677, - 0.016834162175655365, - 0.006977105513215065, - 0.012970811687409878, - -0.019269753247499466, - 0.39319083094596863, - 0.00541374646127224, - 0.005175074562430382, - 0.02294599637389183, - -0.011887648142874241, - 0.04529481753706932, - -0.19006654620170593, - 0.005162134300917387, - 0.006090582814067602, - 0.009997221641242504, - -0.00962998066097498, - -0.056698277592659, - -0.05116206035017967, - 0.01595468260347843, - 0.0034355795942246914, - -0.018719477578997612, - 0.012117663398385048, - -0.00639712018892169, - -0.046425141394138336, - 0.032973386347293854, - -0.03425076976418495, - -0.02658703178167343, - 0.0019626382272690535, - -0.013262934982776642, - -0.03369499742984772, - 0.01312020793557167, - 0.032831430435180664, - 0.0003131812554784119, - 0.007257473189383745, - -0.044214870780706406, - 0.0017771655693650246, - 0.02182619459927082, - -5.166855771676637e-05, - 0.24847157299518585, - -0.03635502979159355, - 0.012178502045571804, - 0.018843775615096092, - -0.05832710862159729, - -0.009345008060336113, - -0.007546450011432171, - -0.043267764151096344, - -0.008298204280436039, - -0.0005938311805948615, - 0.009026333689689636, - 0.054741375148296356, - 0.010332086123526096, - 0.04599805548787117, - -0.02640959806740284, - 0.027211442589759827, - 0.019335420802235603, - 0.03797860071063042, - 0.02218969352543354, - -0.03971074894070625, - 0.14752987027168274, - 0.02603542059659958, - -0.01202816516160965, - -0.02042669989168644, - 0.016040269285440445, - 0.04565238952636719, - -0.017906546592712402, - -0.07617999613285065, - -0.039380427449941635, - -0.013798030093312263, - 0.009912931360304356, - 0.027294883504509926, - 0.017331603914499283, - 0.003953287377953529, - -0.020711904391646385, - -0.0018255995819345117, - 0.015643736347556114, - 0.015040851198136806, - 0.027182839810848236, - 0.014990837313234806, - -0.020153069868683815, - -0.027132267132401466, - -0.01989786885678768, - 0.02719173952937126, - 0.005102408118546009, - 0.0007481702486984432, - -0.2981317341327667, - -0.013917970471084118, - 0.006832235027104616, - -0.013176065869629383, - -0.018934285268187523, - -0.0009312970214523375, - 0.042229291051626205, - 0.014787760563194752, - 0.005562779027968645, - -0.01974301040172577, - -0.019722862169146538, - -0.0036713697481900454, - -0.020311521366238594, - -0.020464695990085602, - 0.0052917636930942535, - -0.009285295382142067, - 0.016501599922776222, - 0.002178018447011709 - ], - [ - -0.00023149378830567002, - 0.002392892260104418, - -0.00021567929070442915, - 0.001403986127115786, - -0.0017657935386523604, - 0.00024272299197036773, - -0.0011034139897674322, - 0.0021875326056033373, - 0.0026268325746059418, - 0.0012906743213534355, - -0.0013248459435999393, - 0.000778151792474091, - -0.00020272305118851364, - 0.00037817261181771755, - -0.0017007824499160051, - 0.005536049138754606, - -0.0003590448759496212, - -0.0037581361830234528, - -0.003545258194208145, - 0.0013149639125913382, - -0.009666165336966515, - 0.004288312513381243, - -0.0022565030958503485, - -0.00046119277249090374, - -0.0020452996250241995, - -0.00208760192617774, - 0.0012060132576152682, - 6.8361681769602e-05, - -0.0009493422694504261, - 0.0022512373980134726, - 0.0011000370141118765, - 0.0009020628640428185, - -4.884138979832642e-05, - -0.0016804276965558529, - 0.0008379779173992574, - 0.000751385057810694, - 0.002759449416771531, - 0.0017497019143775105, - 0.00045568408677354455, - -0.0008755074231885374, - -0.0003778170212171972, - 0.002078938065096736, - 0.001470315968617797, - -0.00022384143085218966, - -0.0018395273946225643, - -0.0016370208468288183, - 0.0006609073607251048, - -0.0012698672944679856, - 0.0016500720521435142, - 0.000294707395369187, - -0.0022291606292128563, - 0.008919262327253819, - 0.0005585934268310666, - -2.2119858840596862e-05, - -0.0015308975707739592, - -0.0009748316369950771, - -0.00031983948429115117, - -0.0005643120384775102, - -0.006262484006583691, - 0.00027860712725669146, - 0.00032926371204666793, - -0.002944108098745346, - 0.0007291228394024074, - 0.0023519231472164392, - -0.0050124297849833965, - 0.002164247678592801, - -0.009769776836037636, - 0.0027437927201390266, - -0.0011357824550941586, - -0.0013446345692500472, - -0.0014209648361429572, - -0.07349104434251785, - 0.003265399718657136, - 0.005246253684163094, - -0.0003902156313415617, - 0.0011843590764328837, - 0.0016716461395844817, - 0.0016846732469275594, - -0.002394025446847081, - 0.002657518954947591, - 0.0005121186259202659, - -8.725750376470387e-05, - -0.91765958070755, - 0.001008087070658803, - -0.004629915580153465, - 0.0025099189952015877, - 0.0003038944851141423, - -0.00036538109998218715, - 0.0005862897378392518, - 0.0023105130530893803, - 0.0008694573771208525, - 0.0018775969510897994, - 0.004398180637508631, - -0.00020387368567753583, - 0.0021575347054749727, - 0.0033197137527167797, - -0.0005041048279963434, - -0.0016302368603646755, - 0.0026896661147475243, - -0.0009399751434102654, - 0.0026264141779392958, - 0.0010244305012747645, - -9.434726962354034e-05, - 0.003137517487630248, - 0.0045877802185714245, - 0.0009563480853103101, - -0.002208556281402707, - 0.0012089634547010064, - -0.0015105217462405562, - -0.0015151428524404764, - 0.00854477658867836, - 0.004105998203158379, - -0.0004334830737207085, - 4.481908763409592e-05, - 0.0016949402634054422, - 0.004495518282055855, - -0.0015405947342514992, - 0.0002956818789243698, - 1.3600690181192476e-05, - -0.00015793749480508268, - -0.0013447668170556426, - -0.0016447383677586913, - -0.0010882896604016423, - 0.00279955449514091, - -0.003462772350758314, - -0.0004987473948858678, - 0.2842633128166199, - 0.0014374888269230723, - 0.00026166587485931814, - 0.001366809825412929, - 0.000362279184628278, - 0.0034962568897753954, - 0.0007841461920179427, - -0.0006710841553285718, - -0.002083969535306096, - 0.0012319226516410708, - -0.003121966030448675, - 0.0011687208898365498, - -0.0012280032970011234, - 0.00037604165845550597, - 0.0012130027171224356, - -0.00040701075340621173, - -0.0013562013627961278, - -0.0011360468342900276, - -0.00162993383128196, - -0.005878878757357597, - 0.0008915203507058322, - 0.0014092182973399758, - -0.0016877666348591447, - 0.0005694055580534041, - -0.0018517541466280818, - -0.005824756808578968, - -0.0015001806896179914, - -0.005555001553148031, - -0.0016868968959897757, - 0.00081684160977602, - 0.0012980065075680614, - -0.0008602767484262586, - 0.0011660392628982663, - 0.20496585965156555, - -0.0007155502680689096, - 0.001347100012935698, - 0.0005486943991854787, - 0.0013955809408798814, - 0.010975822806358337, - 0.09157165139913559, - 0.0017390678403899074, - -0.004311131779104471, - 0.0011069790925830603, - 0.0009831874631345272, - -0.004098707344383001, - 0.0018466210458427668, - -0.0028704297728836536, - 0.00207153451628983, - -0.003239837707951665, - -0.0008684457279741764, - 0.00014229134831111878, - 0.005020088516175747, - 0.0007827123044990003, - 0.004746114369481802, - -0.0006147042149677873, - 0.0017417983617633581, - 0.0003809198969975114, - -0.0007222782005555928, - -0.003855581860989332, - -0.0001061308357748203, - 0.0015758599620312452, - -0.0022211670875549316, - 0.0008820481016300619, - -0.0009994388092309237, - 0.0012669992865994573, - -6.721205863868818e-05, - -0.06001733988523483, - -0.004414455033838749, - 0.005160159431397915, - -0.0022333047818392515, - 0.00116336764767766, - 0.00043514545541256666, - -0.0008967582252807915, - 0.0019785251934081316, - -0.000648883287794888, - -0.0014797912444919348, - 0.0030873562209308147, - -0.0015704260440543294, - -0.00017891265451908112, - 0.006814645137637854, - -0.001382080721668899, - -0.002373187802731991, - -4.1487546695861965e-05, - 0.0002368561690673232, - 0.000699126860126853, - -0.00068610132439062, - -0.05292140319943428, - 0.0005958945257589221, - -0.0016791676171123981, - -0.0010162731632590294, - -0.001929348218254745, - -0.00010669193579815328, - 0.004582367837429047, - -0.010639180429279804, - 0.0007348294602707028, - 0.0010303376475349069, - 0.000300745916320011, - -0.00016499221965204924, - 0.00019057790632359684, - 0.00012199876073282212, - -0.00019672837515827268, - 0.000954324146732688, - 0.001627206103876233, - -0.002004502108320594, - 0.0005753414006903768, - 0.004582224413752556, - 0.0011989455670118332, - -2.8898040909552947e-05, - 0.0001788616500562057, - -0.0027747389394789934, - -0.004369211383163929, - 0.001764260814525187, - 0.11482446640729904, - 0.0007408731617033482, - 0.0024485925678163767, - 0.0005598862771876156, - -0.0012205039383843541, - -0.004090019967406988, - -0.0006790124461986125, - -0.0012854988453909755, - 0.004956001415848732, - 0.0004005191440228373, - -0.0011475670617073774, - -0.0032238028943538666, - -0.00047202224959619343, - 0.0012339471140876412, - -0.0013546996051445603, - 0.0015593625139445066, - -0.0015121996402740479, - -0.00030410406179726124 - ], - [ - -0.0009933318942785263, - -0.002604828914627433, - 0.0521363690495491, - 0.01132248342037201, - -0.022046422585844994, - -0.02538883313536644, - -0.0010112528689205647, - 0.053304415196180344, - 0.023227833211421967, - 0.011884321458637714, - 0.0025450263638049364, - 0.007315515540540218, - -0.03257004916667938, - -0.0005212516407482326, - -0.07672777771949768, - -0.12036902457475662, - -0.022263308987021446, - -0.03616876155138016, - -0.03343473747372627, - 0.014389869756996632, - -0.14105410873889923, - 0.03285885974764824, - -0.01717955432832241, - -0.005043163895606995, - 0.009170022793114185, - -0.041693609207868576, - 0.024391818791627884, - -0.009195601567626, - -0.022175127640366554, - 0.07184808701276779, - 0.019927864894270897, - -0.02439434826374054, - -0.007851731032133102, - 0.02130165509879589, - 0.007708529010415077, - -0.005730301607400179, - 0.036184415221214294, - -0.02323637157678604, - 0.006264292635023594, - 0.03397437557578087, - 0.04452693834900856, - -0.0013848112430423498, - 0.04996916279196739, - -0.01945161260664463, - 0.012892705388367176, - -0.05699002370238304, - -0.014605587348341942, - -0.007939052768051624, - -0.012434921227395535, - -0.0036535141989588737, - -0.051320880651474, - 0.0051175677217543125, - -0.023192569613456726, - 0.0208739060908556, - 0.030470795929431915, - -0.021938975900411606, - -0.012915192171931267, - 0.024725034832954407, - -0.03002142161130905, - 0.047837525606155396, - -0.07028606534004211, - -0.010832908563315868, - 0.014377320185303688, - -0.021026611328125, - -0.06300035864114761, - 0.008332127705216408, - -0.02134338580071926, - 0.032815005630254745, - 0.0159542728215456, - 0.023324988782405853, - 0.039282336831092834, - 0.21644234657287598, - 0.0673879086971283, - 0.004105105064809322, - -0.018272515386343002, - -0.08044105768203735, - 0.016960129141807556, - 0.007517558056861162, - -0.00022434641141444445, - -0.0053102378733456135, - 0.03250957652926445, - -0.007352087181061506, - 0.013348680920898914, - 0.03145815432071686, - -0.016369260847568512, - 0.04280756786465645, - 0.05426763370633125, - -0.03561729937791824, - -0.004313585348427296, - -0.03655502200126648, - -0.003095203312113881, - -0.008693598210811615, - -0.0455024279654026, - 0.005100386217236519, - -0.028961919248104095, - 0.04502009227871895, - -0.01945946179330349, - -0.009739117696881294, - 0.0020735168363898993, - -0.011158104054629803, - 0.038565002381801605, - -0.0035716728307306767, - 0.0005627789068967104, - -0.009556014090776443, - 0.0348367877304554, - -0.005792493931949139, - 0.023667724803090096, - 0.0026357825845479965, - 0.001271557412110269, - 0.00983307883143425, - -0.017635196447372437, - 0.0326564721763134, - 0.026543771848082542, - 0.005908765830099583, - 0.0203498974442482, - 0.023222073912620544, - 0.03270193561911583, - -0.04467201232910156, - -0.017916204407811165, - -0.019011549651622772, - -0.05337745323777199, - 0.024840133264660835, - 0.020093584433197975, - 0.042284563183784485, - -0.0446125790476799, - 0.030452178791165352, - -0.4757024049758911, - 0.03723279759287834, - 0.03829529881477356, - 0.049383390694856644, - 0.03587785363197327, - 0.022576523944735527, - -0.03486790880560875, - -0.02750263921916485, - 0.06406832486391068, - 0.012479715049266815, - -0.01238191407173872, - 0.014329394325613976, - 0.03448985517024994, - -0.044036973267793655, - -0.026029091328382492, - -0.0047789765521883965, - -0.0012409387854859233, - -0.027327924966812134, - -0.038271673023700714, - -0.054324921220541, - 0.02419392392039299, - -0.04974067583680153, - -0.035925332456827164, - -0.011637424118816853, - -0.002836751751601696, - 0.006185506470501423, - -0.009782068431377411, - -0.09495013952255249, - -0.003970985766500235, - 0.02851143851876259, - 0.023401211947202682, - 0.05924709141254425, - -0.018765414133667946, - 0.2867509424686432, - 0.03955833986401558, - -0.009104311466217041, - -0.007404007483273745, - 0.006785656325519085, - 0.10605999082326889, - -0.18592990934848785, - -0.002186221070587635, - -0.029541634023189545, - -0.0007494018645957112, - -0.0110380370169878, - -0.05190800130367279, - -0.011036981828510761, - -0.08394977450370789, - 0.010535421781241894, - -0.010812180116772652, - 0.033816736191511154, - 0.01253641676157713, - -0.0018743325490504503, - 0.028848381713032722, - 0.0009992781560868025, - -0.03564254194498062, - 0.016958218067884445, - -0.008933577686548233, - -0.00968073308467865, - -0.02727990783751011, - 0.03753376379609108, - 0.055232927203178406, - -0.005525093525648117, - -0.03524880111217499, - -0.03588110953569412, - 0.023962531238794327, - 0.0101001663133502, - 0.30202358961105347, - -0.03097139671444893, - -0.007430868223309517, - 0.007596332114189863, - -0.019910885021090508, - -0.019901778548955917, - -0.0216471366584301, - -0.01997215673327446, - 0.007322495337575674, - 0.01187592651695013, - 0.02530774101614952, - 0.03338455408811569, - -0.011002331972122192, - 0.017800604924559593, - -0.004115038085728884, - -0.017775483429431915, - 0.009127229452133179, - 0.009586509317159653, - 0.03275249898433685, - 0.004368828609585762, - 0.2004023641347885, - -0.0004380777827464044, - -0.007847565226256847, - -0.027981502935290337, - 0.033268824219703674, - 0.0062496173195540905, - 0.001739970757625997, - -0.10308292508125305, - 0.0064729005098342896, - -0.021823825314641, - -0.014794410206377506, - 0.011103197932243347, - 0.028193624690175056, - 0.006210781168192625, - -0.022274086251854897, - -0.03894997760653496, - 0.010934459045529366, - -0.023241067305207253, - 0.019439803436398506, - 0.07509543001651764, - -0.020245611667633057, - 0.020318537950515747, - 0.012536698020994663, - -0.026771660894155502, - -7.257680408656597e-05, - 0.0163893960416317, - -0.463392436504364, - 0.021945206448435783, - 0.009362139739096165, - -0.00586919067427516, - 0.010555620305240154, - -0.016316337510943413, - 0.04994046688079834, - -0.04445144906640053, - 0.0005173744866624475, - -0.047849107533693314, - -0.02346769906580448, - -0.026754427701234818, - -0.016745606437325478, - 0.015276804566383362, - -0.017694367095828056, - 0.011860894039273262, - -0.013663655146956444, - 0.018485723063349724 - ], - [ - 0.00021248124539852142, - 0.0020551574416458607, - 0.00011898038064828143, - 0.0002912614436354488, - -8.752926078159362e-05, - 0.0004281711298972368, - -0.0006626786198467016, - 0.0015534523408859968, - 0.0016602125251665711, - 0.0009783213026821613, - -0.002438920782878995, - 0.001526893931441009, - -0.0001272787485504523, - -0.0008943480788730085, - -0.0009181919740512967, - 0.00475895032286644, - -0.0012890088837593794, - -0.004210638348013163, - -0.0031794158276170492, - 0.000945736188441515, - -0.00919387862086296, - 0.004482139367610216, - -0.0023058962542563677, - -0.00043679377995431423, - -0.0017668846994638443, - -0.0021094447001814842, - 0.001340602058917284, - 0.0007129827863536775, - -0.00042257257155142725, - 0.00018464097229298204, - 0.0009326520375907421, - 0.0009632516303099692, - -0.0009053198737092316, - -0.001546704676002264, - 0.001305555459111929, - 0.0011688036611303687, - 0.003015947062522173, - 0.0006135192234069109, - 0.00040121449274010956, - -0.0013157950015738606, - 0.0005471439217217267, - 0.0025487730745226145, - 0.001681972062215209, - 0.0002478692913427949, - -0.0014724497450515628, - -0.002010467927902937, - 0.0008204905316233635, - -0.0010044383816421032, - 0.0014338066102936864, - 0.00046827923506498337, - -0.002198440721258521, - 0.008671184070408344, - 0.0010136051569133997, - 0.0002109610941261053, - -0.0019158669747412205, - -0.0009595432784408331, - 0.00023950933245941997, - -0.000934798561502248, - -0.006701809819787741, - -0.00021721138909924775, - 0.0003068715741392225, - -0.003152440534904599, - -0.00077012088149786, - 0.0026722003240138292, - -0.004983289632946253, - 0.0020886219572275877, - -0.01070472039282322, - 0.0024152048863470554, - -0.0012944138143211603, - -0.0017814325401559472, - -0.001758545869961381, - -0.07284792512655258, - 0.0030610759276896715, - 0.005055238492786884, - 0.0002175308036385104, - 0.0011456323554739356, - 0.0025025818031281233, - 0.0018956790445372462, - -0.0016060828929767013, - 0.0027207101229578257, - -0.00035465488326735795, - 0.0006212275475263596, - -0.9181211590766907, - 0.0004817357985302806, - -0.005763648077845573, - 0.0022722347639501095, - 0.0009609658154658973, - -0.00017180823488160968, - 0.0013514127349480987, - 0.0033027310855686665, - 0.0013571141753345728, - 0.0015631393762305379, - 0.005344872362911701, - -0.0012192026479169726, - 0.0021500508300960064, - 0.0037714794743806124, - -0.00023677185527049005, - -0.002591777825728059, - 0.0033242276404052973, - -0.0009449662757106125, - 0.0020302599295973778, - 0.0017524247523397207, - 0.0013103673700243235, - 0.0027187748346477747, - 0.0047730691730976105, - 0.0012793109053745866, - -0.0022469181567430496, - 0.0008440847741439939, - -0.002645980566740036, - -0.00073126086499542, - 0.008987304754555225, - 0.004956657066941261, - -0.0006469446234405041, - 0.0005360573995858431, - 0.0008939974941313267, - 0.004035977181047201, - -0.00230959034524858, - 0.0006052822573110461, - -0.0004795262939296663, - 0.00041813976713456213, - -0.0015276888152584434, - -0.002272090408951044, - -0.0013694739900529385, - 0.0026411304716020823, - -0.003665387397632003, - -0.000717551214620471, - 0.2816886901855469, - 0.0016726668691262603, - 0.0001509993599029258, - 0.00023375751334242523, - 3.8701691664755344e-05, - 0.0037203182000666857, - 0.0016540468204766512, - -0.00027103690081276, - -0.0031415196135640144, - 0.00154420780017972, - -0.0039130328223109245, - 0.0002302435750607401, - -0.0016767698107287288, - -0.0003814333467744291, - 0.0017375815659761429, - -0.0005429228767752647, - -0.0005936964880675077, - -0.0013259160332381725, - -0.0012529405066743493, - -0.005349867511540651, - 0.000866084243170917, - 0.001608249032869935, - -0.001727498136460781, - 0.0007308709318749607, - -0.002643996151164174, - -0.006343953777104616, - -0.0016001274343580008, - -0.004914044868201017, - -0.002296628663316369, - 0.0009464111062698066, - 0.0018917798297479749, - -0.0015911611262708902, - 0.0002993075759150088, - 0.20689046382904053, - -0.0008536731475032866, - 0.0016957351472228765, - 0.0011428020661696792, - 0.0006097503355704248, - 0.009596027433872223, - 0.09038417786359787, - 0.002528140088543296, - -0.004272702150046825, - 0.0017428732244297862, - -0.00015407876344397664, - -0.005035299342125654, - 0.001401846413500607, - -0.0017414599424228072, - 0.0014644581824541092, - -0.00323276175186038, - -0.0010448385728523135, - 9.69541069935076e-05, - 0.004824358504265547, - 0.0006103558116592467, - 0.004828108474612236, - -0.0013645179569721222, - 0.0024441659916192293, - 9.44484636420384e-05, - -0.0011106462916359305, - -0.0034011027310043573, - 0.0002736501337494701, - 0.0009972633561119437, - -0.0014283988857641816, - 5.026120925322175e-05, - -0.0005789868882857263, - 0.001333791995421052, - -0.0007152775069698691, - -0.06037451699376106, - -0.004090287256985903, - 0.00511730695143342, - -0.002250985475257039, - 0.0015270704170688987, - 0.0009436422842554748, - -0.0010602391557767987, - 0.0016612035688012838, - -0.001606654142960906, - -0.0020667773205786943, - 0.00294679356738925, - -0.001719475258141756, - 0.00044673995580524206, - 0.007829760201275349, - -0.002312242519110441, - -0.0006803561118431389, - 4.538799112197012e-05, - 0.00032595961238257587, - -1.190084276458947e-05, - -0.0015424172161146998, - -0.05300839990377426, - 0.0020313349086791277, - -0.0016938884509727359, - -0.0012294045882299542, - -0.0022129984572529793, - -0.00039175312849693, - 0.004978537559509277, - -0.011078198440372944, - -8.343372610397637e-05, - 0.0008266998338513076, - 0.0002425040293019265, - -2.6449235519976355e-05, - 3.406231917324476e-05, - 0.0005433228216134012, - 0.00019459068425931036, - 0.0016984774265438318, - 0.0008244133787229657, - -0.0009969339007511735, - 0.0013704411685466766, - 0.003830269444733858, - 0.0024690779391676188, - -0.0008999607525765896, - -0.00016977329505607486, - -0.003170495852828026, - -0.0053374068811535835, - 0.0019030225230380893, - 0.11472616344690323, - -0.00012523873010650277, - 0.0024764242116361856, - 0.0004230117192491889, - -0.002178479917347431, - -0.0034315658267587423, - -0.000943132967222482, - -0.0006507383659482002, - 0.005816423334181309, - 0.0006711184978485107, - -0.002274029655382037, - -0.0027698439080268145, - -0.0006296118954196572, - 0.0005285515799187124, - -0.0011294124415144324, - 0.0011211129603907466, - -0.00017556094098836184, - -0.001239812234416604 - ], - [ - -0.0002060729602817446, - 0.0020852817688137293, - -0.00039133618702180684, - 0.0007685167365707457, - -0.0015356626827269793, - 0.0002832963946275413, - -0.0006115928408689797, - 0.0013847798109054565, - 0.002138644689694047, - 0.0014979102415964007, - -0.0018091154051944613, - 0.001287316670641303, - -8.137928671203554e-05, - -9.56404983298853e-05, - -0.0013870788970962167, - 0.004592447075992823, - -0.00021608226234093308, - -0.003923372831195593, - -0.003199781756848097, - 0.0015518858563154936, - -0.008832679130136967, - 0.004200975876301527, - -0.002069446723908186, - -0.0004196144000161439, - -0.002040470950305462, - -0.0020269432570785284, - 0.001042812131345272, - 0.00015402276767417789, - -0.000604539702180773, - 0.0015273684402927756, - 0.001009989297017455, - 0.0012970215175300837, - 0.0001720902364468202, - -0.0015811234479770064, - 0.0007180982502177358, - 0.0006438589189201593, - 0.002479082904756069, - 0.0016047062817960978, - 0.00032487630960531533, - -0.0009656366310082376, - -0.0002882094122469425, - 0.00204648170620203, - 0.0011305763619020581, - -0.00033687782706692815, - -0.0014998068800196052, - -0.0017866319976747036, - 0.0006294241757132113, - -0.0013122782111167908, - 0.0017083007842302322, - 0.0003665840777102858, - -0.0022461421322077513, - 0.008618482388556004, - 0.0005037994123995304, - -0.0002643906627781689, - -0.0016968927811831236, - -0.0011434064945206046, - -0.00039931118953973055, - -0.0006615375750698149, - -0.006170474924147129, - -5.471646727528423e-05, - 0.0003699912631418556, - -0.002892464166507125, - 0.0005205643246881664, - 0.002418211428448558, - -0.004466175101697445, - 0.0022590497974306345, - -0.010175758972764015, - 0.002411086577922106, - -0.0008876672363840044, - -0.0017996348906308413, - -0.0015576713485643268, - -0.073650062084198, - 0.0033135744743049145, - 0.004950080998241901, - -0.00038749960367567837, - 0.001695319777354598, - 0.0018633682047948241, - 0.0018680747598409653, - -0.002276560291647911, - 0.0023916347417980433, - -8.429690933553502e-05, - -5.3988387662684545e-05, - -0.9178158640861511, - 0.0005322752404026687, - -0.004471892490983009, - 0.0019576908089220524, - 7.164038106566295e-05, - 0.0003374467196408659, - 0.00044703989988192916, - 0.0028473204001784325, - 0.0012476540869101882, - 0.0015941624296829104, - 0.006229992024600506, - -0.00037134799640625715, - 0.0020567162428051233, - 0.002999539254233241, - -0.0005221295286901295, - -0.0016068752156570554, - 0.0031586666591465473, - -0.0009750982280820608, - 0.001986471004784107, - 0.0014622467570006847, - 0.00020148756448179483, - 0.002768880221992731, - 0.004620774183422327, - 0.001181930536404252, - -0.002484390279278159, - 0.001339414739049971, - -0.0014802551595494151, - -0.0014646645868197083, - 0.008560733869671822, - 0.004126110579818487, - -0.0006176454480737448, - -2.8220389140187763e-05, - 0.0015920415753498673, - 0.004588996525853872, - -0.0015881153522059321, - 0.0002556737163104117, - 7.116820779629052e-05, - 0.00043005021871067584, - -0.0008454867638647556, - -0.0019024846842512488, - -0.0009034129325300455, - 0.002485745819285512, - -0.003629137296229601, - -0.0007653349894098938, - 0.2827071249485016, - 0.0013584413100033998, - -2.678415330592543e-05, - 0.001057423884049058, - 0.00030994886765256524, - 0.003420101245865226, - 0.0008050338365137577, - -0.00030467251781374216, - -0.0026653751265257597, - 0.0011199659202247858, - -0.002777968067675829, - 0.0011052119079977274, - -0.0014877414796501398, - 0.0005672294064424932, - 0.0013590112794190645, - -0.00044465105747804046, - -0.0013687130995094776, - -0.0013134158216416836, - -0.0011441565584391356, - -0.005699941888451576, - 0.0006137390155345201, - 0.0015101592289283872, - -0.0016494522569701076, - 0.00033522918238304555, - -0.001518281060270965, - -0.006605822592973709, - -0.0017085232539102435, - -0.005276073701679707, - -0.0017230071825906634, - 0.0006030770600773394, - 0.0013611615868285298, - -0.0007802647887729108, - 0.0011641784803941846, - 0.20554183423519135, - -0.0009358563693240285, - 0.0013153490144759417, - 0.0005057610687799752, - 0.0010662906570360065, - 0.010318143293261528, - 0.0912647619843483, - 0.0018587146187201142, - -0.003920408897101879, - 0.0012094582198187709, - 0.001166186179034412, - -0.004249968100339174, - 0.0017987519968301058, - -0.0023748092353343964, - 0.002221980830654502, - -0.002769801765680313, - -0.0008094653603620827, - -9.83315403573215e-05, - 0.005022068042308092, - 0.00036803664988838136, - 0.004835861269384623, - -0.0003231423906981945, - 0.001979864202439785, - 0.0003743111155927181, - -0.0008244764758273959, - -0.0036661254707723856, - -0.0004603623820003122, - 0.000873826676979661, - -0.0016192201292142272, - 0.0004894114681519568, - -0.0004395845462568104, - 0.0009309281595051289, - -0.0004904928500764072, - -0.0603010468184948, - -0.004581333603709936, - 0.0047535826452076435, - -0.001989091280847788, - 0.0010446020169183612, - 0.000547960342373699, - -0.0007123850518837571, - 0.0015778340166434646, - -0.0009813281940296292, - -0.001752933720126748, - 0.0029658027924597263, - -0.0020616415422409773, - 0.000281406391877681, - 0.006540246307849884, - -0.001582992379553616, - -0.00230989046394825, - -0.00011084983998443931, - 2.706531813601032e-05, - 0.0002962432918138802, - -0.0010686690220609307, - -0.05321891978383064, - 0.0009196018218062818, - -0.0014085575239732862, - -0.0009101927862502635, - -0.002277033869177103, - 7.230580195027869e-06, - 0.00479608029127121, - -0.010310797020792961, - 0.0005896070506423712, - 0.0013409185921773314, - 6.65349725750275e-05, - 1.0929678865068126e-05, - 0.00011577962868614122, - 8.364907262148336e-05, - -0.0006333970814011991, - 0.0011094787623733282, - 0.0014163583982735872, - -0.0015781453112140298, - 0.000552712706848979, - 0.003930465318262577, - 0.001445793197490275, - -0.000469132442958653, - -0.0003257697680965066, - -0.002583171473816037, - -0.004816379863768816, - 0.0016844727797433734, - 0.11652172356843948, - 0.0002585418405942619, - 0.002200547605752945, - 0.0005798491765744984, - -0.0012665973044931889, - -0.0038995007053017616, - -0.0011522381100803614, - -0.0008180494187399745, - 0.005433293059468269, - 0.00047274772077798843, - -0.0013569641159847379, - -0.002923593856394291, - -0.0002465893921907991, - 0.001058041350916028, - -0.001278652693144977, - 0.001504095969721675, - -0.0015479543944820762, - -0.0004468465631362051 - ], - [ - -0.001956160645931959, - -0.0033841333352029324, - 0.06485063582658768, - -0.02887788601219654, - -0.020177917554974556, - -0.03730328008532524, - 0.014045216143131256, - 0.026332437992095947, - -0.016883470118045807, - -0.018004953861236572, - -0.05860630050301552, - 0.05814607813954353, - -0.033837903290987015, - -0.016782458871603012, - -0.03429478034377098, - -0.14658668637275696, - -0.0089876102283597, - -0.03535899519920349, - 0.00277360575273633, - 0.02096877060830593, - -0.07587672024965286, - 0.0012500915909186006, - -0.04031585901975632, - -0.02082940563559532, - 0.02194163203239441, - -0.047993239015340805, - 0.013826717622578144, - 0.01299347635358572, - 0.00043028287473134696, - 0.035138536244630814, - 0.025197362527251244, - -0.0311109758913517, - 0.01459130086004734, - 0.01964130811393261, - 0.014029757119715214, - 0.009600424207746983, - 0.03889819607138634, - -0.049397293478250504, - -0.016037438064813614, - 0.047523368149995804, - 0.04508323222398758, - 0.006553982384502888, - 0.0812072902917862, - 0.024951213970780373, - 0.011296028271317482, - -0.04956521466374397, - 0.029228778555989265, - -0.0017264244379475713, - -0.03253311663866043, - -0.015294241718947887, - -0.050766848027706146, - 0.006902228109538555, - 0.002766577759757638, - -0.01645822450518608, - 0.02763517200946808, - -0.02425057627260685, - -0.013920281082391739, - -0.003081964561715722, - -0.03017089143395424, - -0.0022418980952352285, - -0.06498650461435318, - 0.007654019631445408, - -0.06188797950744629, - -0.0025963366497308016, - 0.001958683365955949, - -0.0381353534758091, - -0.06483369320631027, - 0.017927084118127823, - 0.02980203926563263, - -0.0051884725689888, - 3.1672029763285536e-06, - 0.17824381589889526, - 0.0809420794248581, - 0.026989102363586426, - 0.015279320068657398, - -0.038844089955091476, - 0.034280989319086075, - 0.034837111830711365, - 0.013690981082618237, - 0.015244897454977036, - -0.016331523656845093, - -0.004635078366845846, - -0.3985106945037842, - 0.05312228947877884, - -0.05999640002846718, - -0.004717137198895216, - 0.03158004581928253, - -0.022469570860266685, - 0.009592244401574135, - 0.023821912705898285, - -0.01667098142206669, - -0.04684631898999214, - 0.012363672256469727, - -0.029902558773756027, - -0.016745073720812798, - 0.06747999787330627, - -0.008717111311852932, - 0.00435675261542201, - 0.029704002663493156, - -0.030333533883094788, - 0.044979579746723175, - 0.02299007587134838, - 0.03480970859527588, - -0.04180100932717323, - 0.0394458994269371, - -0.008796866051852703, - 0.039315029978752136, - -0.0009951010579243302, - -0.020795146003365517, - 0.023918021470308304, - -0.005567342974245548, - 0.037999480962753296, - 0.0049645197577774525, - 0.02652892842888832, - 0.01675822213292122, - -0.0067759412340819836, - 0.0064804693683981895, - -0.0020118437241762877, - -0.029771797358989716, - 0.05413736775517464, - -0.049538224935531616, - 0.026519864797592163, - 0.004295108839869499, - 0.0439683273434639, - -0.0549728125333786, - 0.04844125732779503, - -0.4251226782798767, - -0.008755496703088284, - -0.0024989654775708914, - -0.003229607827961445, - 0.0066937231458723545, - 0.019098227843642235, - -0.003336434019729495, - 0.0030974592082202435, - 0.005049123894423246, - -0.020704524591565132, - -0.0006894515827298164, - -0.041760172694921494, - 0.03836005926132202, - -0.060635633766651154, - -0.0017621591687202454, - -0.01405742671340704, - 0.036291807889938354, - -0.06332704424858093, - 0.05821722745895386, - -0.06123225390911102, - -0.00021914782701060176, - -0.02842739224433899, - -0.03751649335026741, - -0.07430073618888855, - -0.04323413968086243, - 0.023098517209291458, - -0.010915008373558521, - -0.05191957578063011, - -0.004903967026621103, - 0.02187185175716877, - 0.015287294052541256, - 0.004017211031168699, - -0.0008646827191114426, - 0.4266655743122101, - 0.0019170483574271202, - 0.019512485712766647, - -0.0041364762000739574, - -0.01626143977046013, - 0.054296866059303284, - -0.14683416485786438, - 0.018939556553959846, - 0.00679214671254158, - 0.03048056922852993, - -0.005004825536161661, - -0.05694371089339256, - -0.04925251752138138, - 0.02235700748860836, - 0.01307970006018877, - -0.011455180123448372, - 0.033556267619132996, - 0.005945627577602863, - -0.04467226192355156, - 0.024636749178171158, - 0.002199881710112095, - -0.033288296312093735, - 0.01198718510568142, - -0.004318403545767069, - -0.02553185448050499, - -0.011462640017271042, - 0.025405313819646835, - -0.011848785914480686, - -0.0026742557529360056, - -0.050641000270843506, - -0.005658868234604597, - 0.019667966291308403, - -0.00721435621380806, - 0.22019359469413757, - -0.04305804893374443, - -0.0041016824543476105, - 0.01796560361981392, - -0.04802821949124336, - -0.010686392895877361, - 0.003058030502870679, - -0.050457485020160675, - -0.01750451698899269, - 0.009763994254171848, - 0.006705862004309893, - 0.03285225108265877, - 0.004436267074197531, - 0.02816866710782051, - -0.017883645370602608, - 0.03969382494688034, - 0.021222131326794624, - 0.03075128048658371, - 0.03231951594352722, - -0.04656321927905083, - 0.1277891844511032, - 0.06168416514992714, - -0.008002761751413345, - -0.04178331047296524, - 0.011563511565327644, - 0.02382233552634716, - -0.0046500577591359615, - -0.08565928786993027, - -0.02437243051826954, - -0.005553456488996744, - 0.00040207523852586746, - 0.02326335944235325, - 0.010257184505462646, - -0.00018353731138631701, - -0.0358550101518631, - -0.005695582367479801, - 0.014623765833675861, - -0.000868363946210593, - 0.036678265780210495, - 0.02063375897705555, - -0.028875308111310005, - -0.030418066307902336, - -0.027673278003931046, - 0.03351802006363869, - -0.0025236180517822504, - 0.0011948414612561464, - -0.3263585567474365, - -0.013045568019151688, - 0.013723096810281277, - -0.011714235879480839, - -0.024213062599301338, - 0.0037001832388341427, - 0.036621708422899246, - 0.008402321487665176, - 0.01539066806435585, - -0.0138458963483572, - -0.015875786542892456, - -0.008441117592155933, - -0.023752866312861443, - -0.031337905675172806, - 0.009368091821670532, - 0.02487260103225708, - 0.025085587054491043, - -0.014387096278369427 - ], - [ - 0.003995837178081274, - -0.027517622336745262, - 0.03920464962720871, - -0.01694895513355732, - -0.012156530283391476, - -0.016786178573966026, - -0.004241559188812971, - 0.01998971216380596, - 0.01096314750611782, - 0.026174046099185944, - 0.0007915680180303752, - 0.02248595841228962, - -0.041124243289232254, - -0.02716680057346821, - -0.07458360493183136, - 0.013683534227311611, - -0.0048838090151548386, - -0.09042108803987503, - -0.0519903302192688, - 0.051822807639837265, - -0.15857574343681335, - 0.010458393022418022, - -0.0014461586251854897, - -0.013273946940898895, - 0.02591765858232975, - -0.023527072742581367, - 0.012234360910952091, - 0.0030339090153574944, - -0.01118532009422779, - 0.03653253987431526, - -0.0023810933344066143, - -0.03924325481057167, - -0.031091971322894096, - 0.04578723385930061, - -0.02501695044338703, - -0.032968781888484955, - -0.010678961873054504, - -0.06756053864955902, - -0.007256511133164167, - 0.03301441669464111, - 0.08645303547382355, - -0.03835665062069893, - 0.03377128392457962, - -0.011736584827303886, - 0.04042896628379822, - -0.0721186101436615, - -0.0359041765332222, - -0.014181406237185001, - -0.01228225789964199, - -0.01987849734723568, - -0.06634052842855453, - -0.014113813638687134, - -0.027152853086590767, - -0.0258915014564991, - 0.05236232280731201, - -0.007091980427503586, - -0.018828511238098145, - 0.0932854562997818, - -0.020318903028964996, - 0.010944566689431667, - -0.07411961257457733, - -0.013395150192081928, - 0.01668243296444416, - -0.019573112949728966, - -0.0751328393816948, - 0.03223623335361481, - -0.004788306076079607, - 0.009777134284377098, - 0.011911497451364994, - 0.034591417759656906, - 0.06547713279724121, - 0.1827598214149475, - 0.04854588955640793, - -0.004299875348806381, - -0.016069320961833, - -0.08534492552280426, - 0.006953781470656395, - 0.023122908547520638, - 0.010919924825429916, - -0.008447425439953804, - 0.027163876220583916, - 0.0183361005038023, - -0.07111693173646927, - 0.05945435166358948, - -0.001409585471265018, - 0.033924221992492676, - 0.11307591199874878, - -0.0063306246884167194, - -0.05286918208003044, - -0.01355243194848299, - 0.013793734833598137, - -0.03975417837500572, - -0.1309555321931839, - 0.014894133433699608, - -0.04129658639431, - 0.04203201085329056, - -0.02432854287326336, - -0.00898287259042263, - -0.001042870688252151, - -0.03372376784682274, - 0.028436562046408653, - -0.014671319164335728, - 0.05645766109228134, - 0.013786397874355316, - 0.010035890154540539, - -0.03819884732365608, - 0.010333387181162834, - 0.03306723013520241, - -0.005608238745480776, - -0.006524844095110893, - -0.01841115579009056, - 0.024525368586182594, - 0.04320633411407471, - 0.021593010053038597, - 0.05396242067217827, - -0.008432943373918533, - 0.02864818461239338, - -0.07988065481185913, - -0.014101831242442131, - 0.0317295677959919, - -0.04795120283961296, - 0.04059737175703049, - 0.0017785771051421762, - 0.036939509212970734, - -0.056709930300712585, - 0.006934571545571089, - -0.29814186692237854, - 0.03428861126303673, - 0.005181950516998768, - 0.07437610626220703, - 0.03249293938279152, - 0.022666040807962418, - -0.05077502503991127, - -0.0037738585378974676, - 0.09407699108123779, - 0.019428091123700142, - 0.01818976365029812, - 0.027872173115611076, - -0.010654101148247719, - -0.03316688537597656, - -0.041126132011413574, - -0.012311939150094986, - 0.027104713022708893, - -0.02122911997139454, - -0.032904572784900665, - -0.06905937194824219, - 0.027496768161654472, - -0.04694965481758118, - -0.056750860065221786, - -0.012258408591151237, - 0.002258420456200838, - -0.02280527353286743, - -0.03868671506643295, - -0.09666605293750763, - -0.0050050560384988785, - 0.004543923772871494, - 0.04390956461429596, - 0.07878097891807556, - -0.0017457844223827124, - 0.2127903550863266, - 0.02202121540904045, - -0.022075295448303223, - -0.03985122963786125, - 0.01065327599644661, - 0.10100254416465759, - -0.13631989061832428, - -0.024797996506094933, - -0.027544928714632988, - 0.026071785017848015, - 0.0019120984943583608, - -0.05817920342087746, - -0.01204504631459713, - -0.099330835044384, - 0.03125489875674248, - 0.0031083114445209503, - 0.07365715503692627, - -0.003029211424291134, - 0.008449538610875607, - 0.00791613757610321, - -0.009920109994709492, - -0.0636313408613205, - 0.02448384463787079, - 0.0012821961427107453, - -0.03722740709781647, - -0.029754318296909332, - 0.037953853607177734, - 0.04279116168618202, - 0.03502249717712402, - -0.07830262184143066, - -0.02834387868642807, - 0.028535712510347366, - -0.008937855251133442, - 0.2933068573474884, - -0.008178072050213814, - -0.025307735428214073, - 0.015170032158493996, - -0.008474635891616344, - -0.025355394929647446, - -0.02888675592839718, - -0.030246753245592117, - 0.016182199120521545, - 0.03210204467177391, - -0.007119880057871342, - 0.009596707299351692, - -0.01134578138589859, - -0.003650034312158823, - 0.031819287687540054, - -0.028477247804403305, - 0.01097381766885519, - 0.021409228444099426, - -0.015490635298192501, - -0.007718171924352646, - 0.2011624574661255, - 0.05617516115307808, - 0.03193467855453491, - -0.015912627801299095, - 0.02620563469827175, - 0.031047111377120018, - -0.010058621875941753, - -0.0704527348279953, - 0.016960259526968002, - -0.04300505667924881, - -0.04341048374772072, - 0.02727598324418068, - 0.0345064215362072, - 0.019440408796072006, - -0.021354958415031433, - -0.05157088115811348, - -0.016968494281172752, - -0.024614108726382256, - 0.022994957864284515, - 0.07118893414735794, - -0.034731969237327576, - 0.019485801458358765, - 0.024473628029227257, - -0.0639922246336937, - -0.01997808739542961, - 0.011832958087325096, - -0.5378451347351074, - 0.03440163657069206, - -0.009754514321684837, - 0.006802970543503761, - 0.0736428052186966, - -0.0056670173071324825, - 0.05009128898382187, - -0.0510113462805748, - 0.009992397390305996, - -0.06010277569293976, - -0.016812050715088844, - -0.05663686618208885, - -0.04848446324467659, - 0.0012629586271941662, - -0.053682126104831696, - 0.019127635285258293, - -0.04341667890548706, - 0.05535499006509781 - ], - [ - -0.0017913584597408772, - -8.123673615045846e-05, - -0.0238775834441185, - 0.02213473990559578, - 0.0012929964577779174, - -0.0060806432738900185, - -0.032182905822992325, - -0.02099292166531086, - -0.01206075120717287, - -0.01991078071296215, - 0.022263577207922935, - -0.0373026467859745, - 0.007771236822009087, - 0.0374751091003418, - -0.005553089082241058, - 0.21407683193683624, - 0.02983158454298973, - 0.037024158984422684, - 0.04613969102501869, - -0.03226824477314949, - 0.13930173218250275, - -0.0993267297744751, - 0.0200789887458086, - 0.02786104567348957, - 0.006703998427838087, - 0.008499711751937866, - 0.0005395584739744663, - -0.02161036618053913, - -0.012101354077458382, - 0.030427303165197372, - 0.0022022617049515247, - -0.027430525049567223, - 0.043353673070669174, - 0.0164062287658453, - 0.031131364405155182, - -0.03868507221341133, - -0.006618700921535492, - 0.01222212240099907, - -0.02143079601228237, - 0.015790678560733795, - -0.003043626667931676, - -0.007931170053780079, - 0.01674780808389187, - -0.01869412325322628, - 0.011222602799534798, - 0.04782547429203987, - -0.01763484627008438, - 0.03278330713510513, - -0.021483080461621284, - -0.05908844247460365, - 0.0006369864568114281, - -0.07075640559196472, - -0.013644659891724586, - 0.010843543335795403, - 0.01493971236050129, - 0.05956117436289787, - -0.02158038131892681, - -0.04459187388420105, - 0.022225499153137207, - 0.04195630922913551, - 0.01606992445886135, - 0.06481831520795822, - 0.030380921438336372, - -0.07732490450143814, - 0.09035959839820862, - -0.01684866100549698, - 0.2148323506116867, - -0.021525945514440536, - 0.03241608664393425, - 0.017069824039936066, - 0.08298016339540482, - -0.11484991759061813, - -0.040893614292144775, - 0.007768916431814432, - -0.02671951614320278, - -0.03513336554169655, - -0.05499972030520439, - 0.008334592916071415, - 0.009474648162722588, - 0.01489570178091526, - 0.014033744111657143, - -0.013811362907290459, - 0.3972291946411133, - 0.02571459859609604, - 0.05002646893262863, - -0.06165618076920509, - -0.014477979391813278, - -0.04236525669693947, - 0.010068753734230995, - -0.034755345433950424, - -0.011966448277235031, - -0.019350027665495872, - -0.2246565967798233, - -0.008370848372578621, - 0.0038798372261226177, - -0.04107406735420227, - -0.018695103004574776, - 0.0306773129850626, - -0.07002846151590347, - -0.006820980925112963, - -0.0021000890992581844, - -0.004183297045528889, - 0.01682165078818798, - -0.05852164700627327, - 0.02249208278954029, - 0.010828082449734211, - 0.044932156801223755, - -0.050131842494010925, - 0.0283947866410017, - 0.009788120165467262, - -0.024679802358150482, - -0.022643623873591423, - -0.002835615072399378, - -0.003674686187878251, - -0.012390421703457832, - -0.01737467385828495, - 0.04524868726730347, - -0.002017694991081953, - 0.0022981998044997454, - 0.01714050956070423, - 0.02145039662718773, - 0.057867273688316345, - 0.06516909599304199, - -0.02289467491209507, - 0.04170701652765274, - 0.011713636107742786, - 0.28528153896331787, - -0.029265565797686577, - -0.021792249754071236, - 0.018350845202803612, - 0.02231682278215885, - -0.016768909990787506, - -0.02697943150997162, - -0.0012364224530756474, - 0.04926535114645958, - -0.010413052514195442, - 0.03382623568177223, - -0.021918978542089462, - 0.03150477260351181, - -0.02987392619252205, - -0.013699292205274105, - 0.016880648210644722, - 0.00981540884822607, - -0.012952446937561035, - -0.007950002327561378, - 0.06887191534042358, - -0.05079735070466995, - -0.030727719888091087, - 0.0011672229738906026, - 0.0114535978063941, - 0.007451639976352453, - 0.15268689393997192, - 0.016516579315066338, - 0.06618080288171768, - 0.022132378071546555, - -0.0038998492527753115, - -0.009127071127295494, - -0.06412971019744873, - -0.03670080751180649, - -0.38582849502563477, - 0.05575304105877876, - -0.02093612402677536, - 0.03717317804694176, - 0.031330738216638565, - -0.10401275753974915, - 0.06975626945495605, - -0.019355276599526405, - 0.06678999215364456, - -0.033624690026044846, - -0.031235724687576294, - 0.10750284790992737, - -0.024761119857430458, - 0.057179659605026245, - -0.04509271681308746, - 0.003928782884031534, - -0.033086977899074554, - 0.01453715842217207, - -0.015306312590837479, - 0.0016742654843255877, - -0.09371732175350189, - 0.027022752910852432, - -0.010036759078502655, - 0.00013781260349787772, - 0.034413959830999374, - 0.024828478693962097, - 0.04056873545050621, - 0.025657596066594124, - -0.006103881634771824, - -0.00813728291541338, - -0.026245007291436195, - -0.018707485869526863, - 0.030492078512907028, - -0.10692235082387924, - 0.07614834606647491, - -0.011673575267195702, - 0.047073591500520706, - -0.007116106338799, - 0.007727499585598707, - -0.019026771187782288, - -0.017006175592541695, - 0.013365753926336765, - 0.07361454516649246, - -0.03132765367627144, - 0.01059404294937849, - -0.00943861622363329, - 0.0047709024511277676, - 0.003858944633975625, - 0.020809613168239594, - -0.02018612250685692, - 0.011429231613874435, - 0.02207953855395317, - 0.023766815662384033, - -0.0887213721871376, - -0.024936988949775696, - 0.031150398775935173, - -0.009331298992037773, - 0.09825624525547028, - -0.015351495705544949, - -0.06570307165384293, - 0.22370164096355438, - -0.0021560792811214924, - -0.028160719200968742, - -0.00025253507192246616, - -0.022323837503790855, - 0.01825820840895176, - -0.03769901394844055, - 0.02010785974562168, - -0.030042605474591255, - 0.04101400077342987, - 0.017535816878080368, - -0.02943483740091324, - -0.08858244866132736, - -0.008354288525879383, - 0.01047605276107788, - 0.006202830001711845, - 0.011742579750716686, - 0.09365442395210266, - -0.0007667047902941704, - 0.19277626276016235, - 0.004944308660924435, - -0.04549174755811691, - -0.02771192602813244, - 0.010897377505898476, - 0.04314613342285156, - 0.018661262467503548, - 0.014986871741712093, - -0.08411678671836853, - -0.02679275907576084, - 0.02438749372959137, - 0.06399194151163101, - 0.02724897675216198, - -0.0037195051554590464, - 0.04579116031527519, - -0.05281997099518776, - -0.008958577178418636, - 0.031138122081756592 - ], - [ - 0.0002505561278667301, - 0.0018167630769312382, - -0.00017870271403808147, - 0.0009616212919354439, - -0.0018704177346080542, - 0.0005324422963894904, - -0.00041413461440242827, - 0.0020296378061175346, - 0.0028000466991215944, - 0.0016327905468642712, - -0.0016796992858871818, - 0.0011856590863317251, - 6.947565270820633e-05, - -7.512900629080832e-05, - -0.0016381770838052034, - 0.005267051979899406, - -0.00023997553216759115, - -0.004211948253214359, - -0.0034908228553831577, - 0.0018031815998256207, - -0.00930656399577856, - 0.004807600751519203, - -0.001766832428984344, - -0.0003500724269542843, - -0.00237946561537683, - -0.002009501215070486, - 0.001352196093648672, - -7.8839912021067e-05, - -0.0004667509056162089, - 0.001755960169248283, - 0.0005949233891442418, - 0.0017706654034554958, - -0.00016230881738010794, - -0.001571314875036478, - 0.0006211410509422421, - 0.0006795126246288419, - 0.0025874231941998005, - 0.0020512579940259457, - 0.0004111109010409564, - -0.0012060919543728232, - 0.0003918632573913783, - 0.0020446027629077435, - 0.0013789047952741385, - -0.0003228455316275358, - -0.0013594400370493531, - -0.0016865188954398036, - 0.0002899726096075028, - -0.0017368850531056523, - 0.0016927752876654267, - 0.0001877189497463405, - -0.0023422499652951956, - 0.00896008126437664, - 0.00019274854275863618, - -3.723569170688279e-05, - -0.0017132577486336231, - -0.001176601042971015, - -0.0005571854999288917, - -0.0007693902589380741, - -0.006374640390276909, - 0.0007382463663816452, - 0.0001248954067705199, - -0.003001053351908922, - 0.0008690623217262328, - 0.0027163608465343714, - -0.0048108892515301704, - 0.002372083952650428, - -0.01048586517572403, - 0.002405638573691249, - -0.0011341951321810484, - -0.0015170262195169926, - -0.0020731636323034763, - -0.07321435213088989, - 0.003544952254742384, - 0.00479040527716279, - -0.000608231290243566, - 0.0014001785311847925, - 0.0021390984766185284, - 0.0018836423987522721, - -0.002402200363576412, - 0.0018549282103776932, - 5.530239286599681e-05, - 0.00023482125834561884, - -0.9181098341941833, - 0.0006548656383529305, - -0.004526850301772356, - 0.002502604853361845, - -0.00012391006748657674, - 0.00039854683564044535, - 0.0005354659515433013, - 0.0026882528327405453, - 0.0014330153353512287, - 0.001572661567479372, - 0.006220529787242413, - -0.00048006136785261333, - 0.00214896141551435, - 0.003124216105788946, - -0.0005411455640569329, - -0.0015100408345460892, - 0.0031693908385932446, - -0.0009092846303246915, - 0.002113242167979479, - 0.0012318971566855907, - 0.00018046311743091792, - 0.0029574474319815636, - 0.004453706089407206, - 0.0013888393295928836, - -0.002938818419352174, - 0.0010077784536406398, - -0.0014021707465872169, - -0.0013822716427966952, - 0.008548283018171787, - 0.004162036348134279, - -0.0007842968916520476, - -0.0003642607480287552, - 0.0016822373727336526, - 0.0044565824791789055, - -0.0011762479552999139, - 9.007358312373981e-05, - 0.0007040505297482014, - 0.0004982468672096729, - -0.0012277074856683612, - -0.001986385090276599, - -0.0008026009891182184, - 0.0025489102117717266, - -0.003595989430323243, - -0.00037362187867984176, - 0.2825468182563782, - 0.0012829796178266406, - 0.0002477944071870297, - 0.001361057860776782, - 0.0007116528577171266, - 0.0036111525259912014, - 0.0008078632527031004, - -0.0004954975447617471, - -0.002624887740239501, - 0.001126543153077364, - -0.0034929157700389624, - 0.0013988398713991046, - -0.001399419503286481, - 0.0006824025185778737, - 0.0013306617038324475, - -0.00043248056317679584, - -0.0016900866758078337, - -0.0008772550499998033, - -0.0014079546090215445, - -0.005555425770580769, - 0.0005773788434453309, - 0.0016216789372265339, - -0.0017785851377993822, - 0.0006527342484332621, - -0.001256059156730771, - -0.007042319513857365, - -0.0014602523297071457, - -0.005651877261698246, - -0.0017757753375917673, - 0.0006630938732996583, - 0.001812068629078567, - -0.0003071708488278091, - 0.0009998392779380083, - 0.2056349366903305, - -0.0009085269412025809, - 0.0016688000177964568, - 0.00034036129363812506, - 0.0012265663826838136, - 0.010230558924376965, - 0.09125584363937378, - 0.0018183090724050999, - -0.004007144831120968, - 0.0012502814643085003, - 0.0012679914943873882, - -0.0045092105865478516, - 0.0018220655620098114, - -0.0027355493512004614, - 0.0024267786648124456, - -0.002554105594754219, - -0.0007540680235251784, - 6.301797111518681e-05, - 0.00555097172036767, - 0.0002730321139097214, - 0.004903428256511688, - -1.7783226212486625e-05, - 0.0018175074364989996, - 0.0002052352938335389, - -0.0008519283146597445, - -0.004298148211091757, - -0.0005017825169488788, - 0.0011430003214627504, - -0.0016365074552595615, - 0.0009389480692334473, - -0.0005610908847302198, - 0.001174040138721466, - -0.00078417151235044, - -0.059806883335113525, - -0.004898783750832081, - 0.00479549216106534, - -0.0020157324615865946, - 0.0013912598369643092, - 0.0004825444193556905, - -0.0004286107432562858, - 0.0015280283987522125, - -0.0005471660406328738, - -0.0018471023067831993, - 0.0030422371346503496, - -0.0018289719009771943, - 0.0004216024244669825, - 0.006273441016674042, - -0.0017746343510225415, - -0.002453708089888096, - -2.6797730242833495e-05, - -8.091596828307956e-05, - 0.00019929680274799466, - -0.0006285991403274238, - -0.052631720900535583, - 0.0007148964214138687, - -0.001450762851163745, - -0.001382718444801867, - -0.002501440467312932, - -0.00044454843737185, - 0.00467258132994175, - -0.01063545048236847, - 0.0006293581100180745, - 0.001478094607591629, - -0.0001794505660654977, - -4.7415302105946466e-05, - 0.0001730842632241547, - 0.00045526595204137266, - -0.0010881881462410092, - 0.0010101249208673835, - 0.0012188685359433293, - -0.001643780735321343, - 0.0005684398347511888, - 0.004649743903428316, - 0.0016016289591789246, - -0.00026422031805850565, - -0.0001069251011358574, - -0.0028620497323572636, - -0.005028336774557829, - 0.001803894992917776, - 0.1146872341632843, - 0.0003251065209042281, - 0.0018548377556726336, - 0.0006835436215624213, - -0.0010278129484504461, - -0.003989414311945438, - -0.0013019961770623922, - -0.0009947526268661022, - 0.005519348196685314, - 0.0005403717514127493, - -0.0011908801971003413, - -0.0032947203144431114, - 4.6486158680636436e-05, - 0.0014400173677131534, - -0.0016168636502698064, - 0.0016665901057422161, - -0.0018617835594341159, - -0.0005963542498648167 - ], - [ - 0.0021289032883942127, - -0.020121410489082336, - 0.017784034833312035, - -0.044657398015260696, - 0.043035343289375305, - -0.033051032572984695, - -0.003762334818020463, - -0.03657788410782814, - -0.07219266891479492, - -0.005163306836038828, - -0.03593875840306282, - 0.039632827043533325, - -0.03442148119211197, - -0.007999547757208347, - -0.07170888781547546, - -0.3192196786403656, - 0.004814883694052696, - -0.049236297607421875, - -0.026913143694400787, - -0.026589402928948402, - -0.016094498336315155, - -0.004870017524808645, - -0.03436088189482689, - 0.0014159277779981494, - 0.012871885672211647, - 0.00023584904556628317, - -0.017223751172423363, - 0.017784807831048965, - -0.016023317351937294, - 0.006432602182030678, - 0.04608582332730293, - -0.028286052867770195, - 0.04783383756875992, - 0.01855209283530712, - -0.009198429062962532, - -0.025470541790127754, - -0.025653453543782234, - -0.08232533931732178, - -0.024670224636793137, - 0.06475616246461868, - 0.024589024484157562, - -0.043712276965379715, - 0.0191966500133276, - -0.016331955790519714, - 0.032438986003398895, - -0.07929377257823944, - -0.01555651519447565, - 0.021011339500546455, - -0.02699396200478077, - 0.04097442328929901, - -0.041261859238147736, - -0.0485149621963501, - -0.023389650508761406, - -0.018458396196365356, - 0.020622869953513145, - -0.03440708667039871, - -0.026656731963157654, - 0.02471396140754223, - 0.004532607737928629, - -0.00325136911123991, - -0.03257886692881584, - 0.005474690347909927, - -0.0029286318458616734, - -0.006938431411981583, - 0.006931486539542675, - 0.00016874494031071663, - -0.05807092413306236, - -0.017852721735835075, - 0.020807258784770966, - 0.013773277401924133, - 0.02070932276546955, - 0.1474623829126358, - 0.08227872848510742, - -0.04134839028120041, - -0.06910432130098343, - -0.07344009727239609, - 0.03442857414484024, - 0.010985386557877064, - 0.03815120831131935, - -0.03478332236409187, - -0.01321362890303135, - -0.017950285226106644, - -0.17122472822666168, - -0.02730312943458557, - 0.004000787623226643, - -0.06091063842177391, - 0.05518180504441261, - -0.0037750620394945145, - 0.005037415772676468, - 0.02619924210011959, - 0.007897211238741875, - 0.006151783280074596, - 0.17631083726882935, - -0.0012204539962112904, - -0.03959782421588898, - 0.016339551657438278, - -0.023621901869773865, - -0.0020147329196333885, - 0.04445848613977432, - 0.00512202363461256, - -0.023839278146624565, - 0.018609974533319473, - 0.03647437319159508, - -0.008138466626405716, - 0.09693631529808044, - 0.014112366363406181, - 0.013103495351970196, - -0.0013415412977337837, - -0.007053295150399208, - 0.011273748241364956, - 0.024489877745509148, - 0.03543940559029579, - 0.02652430348098278, - -0.00247983168810606, - -0.02421807311475277, - 0.010211926884949207, - 0.03296942263841629, - -0.0376814603805542, - -0.04072093591094017, - 0.029336074367165565, - -0.015381179749965668, - -0.0013446254888549447, - 0.024328144267201424, - -0.004785016179084778, - -0.05920404940843582, - -0.008919250220060349, - -0.5669374465942383, - 0.026938071474432945, - 0.0112144211307168, - 0.006120446138083935, - 0.004504241514950991, - 0.027345728129148483, - 0.020611343905329704, - 0.04412625730037689, - -0.04819691181182861, - -0.006643008440732956, - 0.07064472138881683, - 0.01980615220963955, - 0.004343944136053324, - -0.030761640518903732, - -0.01760474406182766, - -0.013343865983188152, - 0.03565153479576111, - -0.055962853133678436, - -0.0062301442958414555, - -0.03795528784394264, - -0.035746537148952484, - -0.06943439692258835, - -0.009955151937901974, - -0.018564308062195778, - 0.014354131184518337, - -0.05831677094101906, - -0.029956838116049767, - -0.04362143203616142, - -0.016333261504769325, - -0.027889590710401535, - -0.00021001581626478583, - 0.023088878020644188, - -0.03270996734499931, - 0.3972625136375427, - 0.025158246979117393, - -0.031958870589733124, - -0.01071326807141304, - 0.02146959863603115, - 0.02489025890827179, - -0.21480605006217957, - 0.030913570895791054, - -0.013691594824194908, - 0.031193725764751434, - -0.02012757584452629, - -0.01776118576526642, - -0.044895827770233154, - -0.014597125351428986, - -0.0009988626698032022, - -0.001410634140484035, - 0.02996240369975567, - -0.05197746679186821, - -0.023972496390342712, - 0.010374109260737896, - -0.015332487411797047, - -0.03667483106255531, - 0.02735208533704281, - -0.023431973531842232, - -0.014969260431826115, - 0.03930961340665817, - 0.024780994281172752, - 0.024480575695633888, - 0.04692554473876953, - -0.05183204263448715, - 0.02378508262336254, - 0.01485026441514492, - 0.004933542106300592, - 0.19246096909046173, - -0.02001306228339672, - -0.024758458137512207, - 0.051317304372787476, - -0.004312077071517706, - 0.016233447939157486, - -0.022224251180887222, - -0.05870047211647034, - -0.02484172023832798, - -0.02441573329269886, - -0.03451688215136528, - 0.0074865808710455894, - 0.04869385063648224, - 0.02863200381398201, - 0.019142284989356995, - 0.008940697647631168, - -0.008686753921210766, - 0.002491959137842059, - -0.03359922766685486, - -0.02027120068669319, - 0.09434641152620316, - 0.010478158481419086, - 0.0032772677950561047, - -0.011394359171390533, - 0.017118504270911217, - 0.041536133736371994, - -0.0028810042422264814, - -0.04463404044508934, - -0.015272144228219986, - -0.016212549060583115, - 0.004857268650084734, - 0.03365186229348183, - 0.02909545786678791, - -0.005773105192929506, - -0.020843438804149628, - 0.02072886750102043, - -0.0006035718834027648, - 0.04152156040072441, - -0.013568442314863205, - 0.026024140417575836, - -0.041105564683675766, - -0.0299917533993721, - -0.027914993464946747, - 0.003029430750757456, - -0.02100239507853985, - 0.0030142490286380053, - -0.0763513520359993, - -0.026080505922436714, - 0.006608827505260706, - -0.04813660681247711, - -0.005731998942792416, - 0.0015126323560252786, - 0.0404459573328495, - 0.03356155753135681, - 0.03095032274723053, - -0.04982032999396324, - -0.051481664180755615, - 0.02380768395960331, - 0.0002801921218633652, - -0.044571079313755035, - 0.0319693423807621, - -0.014373236335814, - 0.014471964910626411, - -0.0048055099323391914 - ], - [ - 0.007497304119169712, - -0.0004962968523614109, - 0.02198246493935585, - 0.011761697009205818, - 0.02077293023467064, - -0.0048653907142579556, - 0.00860655028373003, - -0.015642685815691948, - -0.017897654324769974, - 0.004065041430294514, - -0.006269737146794796, - -0.014503301121294498, - -0.015119160525500774, - 0.01825820282101631, - -0.0026724119670689106, - -0.3514869809150696, - -0.0050150128081440926, - -0.02288435958325863, - -0.014976678416132927, - -0.013035343028604984, - -0.04372518137097359, - -0.03477383032441139, - -0.053608302026987076, - -0.0005730434786528349, - 0.023108556866645813, - -0.003927418030798435, - -0.00046024948824197054, - 0.008720127865672112, - 0.0020320797339081764, - 0.02176194079220295, - -0.012286580167710781, - -0.0062898872420191765, - 0.026254575699567795, - 0.021920718252658844, - 0.03688310831785202, - -0.03648451715707779, - -0.008075257763266563, - -0.03472522273659706, - -0.016945336014032364, - 0.020044563338160515, - 0.03200331702828407, - 0.020282385870814323, - 0.032466426491737366, - -0.005753515753895044, - 0.03151121735572815, - -0.056823134422302246, - 0.007425463758409023, - -0.005647927522659302, - 0.011399087496101856, - -0.024812277406454086, - 0.0034879050217568874, - -0.00492823775857687, - -0.013192934915423393, - 0.011447273194789886, - -0.0323496051132679, - 0.0020150081254541874, - 0.0012405732413753867, - 0.015635374933481216, - 0.0037543491926044226, - -0.009681581519544125, - -0.049696922302246094, - 0.01148970052599907, - 0.007815808989107609, - -0.023398760706186295, - -0.015213464386761189, - -0.024871090427041054, - -0.039780937135219574, - -0.012933922931551933, - 0.012934324331581593, - 0.027793392539024353, - 0.03875358775258064, - 0.1530568152666092, - 0.0653005912899971, - -0.012189209461212158, - -0.015584956854581833, - -0.06133966147899628, - 0.029704034328460693, - 0.0026661402080208063, - 0.00939294695854187, - 0.0027319861110299826, - 0.019529743120074272, - 0.0074653360061347485, - 0.11350633203983307, - -0.009727989323437214, - -0.008208189159631729, - -0.013786204159259796, - 0.02755182981491089, - -0.011361446231603622, - -0.005826014094054699, - -0.02083693817257881, - 0.01920376345515251, - 0.0008780912030488253, - 0.20514829456806183, - -0.0073821148835122585, - -0.011914403177797794, - 0.027954962104558945, - -0.032648880034685135, - -0.007109294645488262, - 0.0025034446734935045, - -0.014084529131650925, - -0.0065087522380054, - 0.03210146725177765, - 0.017222151160240173, - -0.032414745539426804, - 0.07001158595085144, - 0.014562281779944897, - 0.039460428059101105, - 0.008441034704446793, - -0.015955260023474693, - 0.013894041068851948, - 0.01735110767185688, - 0.05340851470828056, - 0.01125714648514986, - -0.011154547333717346, - -0.03520260006189346, - 0.027155326679348946, - 0.0017914499621838331, - -0.041349511593580246, - -0.021426834166049957, - -0.007539966609328985, - -0.04609784856438637, - -0.009569188579916954, - 0.015347180888056755, - 0.008613672107458115, - -0.05147647485136986, - -0.012656359933316708, - -0.6624652743339539, - 0.024698378518223763, - 0.012093552388250828, - 0.029182294383645058, - -0.013169461861252785, - 0.0235761646181345, - 0.004538193345069885, - 0.0016740398714318871, - 0.03886319324374199, - 0.012711288407444954, - 0.01665785349905491, - -0.005030823405832052, - 0.01647363416850567, - -0.005959017667919397, - -0.008020607754588127, - 0.0019489480182528496, - 0.02563655748963356, - -0.05624682456254959, - -0.010253912769258022, - -0.029655534774065018, - -0.013463012874126434, - -0.027400948107242584, - -0.008226157166063786, - 0.011516387574374676, - 0.011870195157825947, - -0.05784168094396591, - -0.0019470315892249346, - -0.007994943298399448, - -0.00849433708935976, - -0.00042242970084771514, - 0.007472197059541941, - 0.019130529835820198, - -0.051482755690813065, - 0.3280273675918579, - 0.019387558102607727, - -0.017200740054249763, - 0.048023246228694916, - 0.02263328805565834, - -0.0009673740132711828, - -0.19629621505737305, - 0.0192796029150486, - -0.01615775376558304, - -0.008021410554647446, - -0.030114276334643364, - -0.06808334589004517, - -0.02910296618938446, - -0.019826319068670273, - -0.02455190196633339, - -0.017481401562690735, - 0.0015293359756469727, - -0.05347849056124687, - -0.017832642421126366, - 0.0027666056994348764, - -0.03102598898112774, - -0.0137580381706357, - 0.012357636354863644, - -0.009596748277544975, - -0.010328949429094791, - 0.03757622838020325, - 0.023135939612984657, - 0.009428434073925018, - 0.04101094231009483, - -0.03968298062682152, - 0.008265146985650063, - 0.021825937554240227, - -0.0014435590710490942, - 0.21849264204502106, - -0.019464170560240746, - -0.00983370840549469, - 0.028674829751253128, - -0.007249169982969761, - 0.011368384584784508, - -0.03705906495451927, - -0.03271359205245972, - -0.014015193097293377, - -0.01925491727888584, - -0.0007315099355764687, - 0.06682167947292328, - 0.016561230644583702, - 0.03660709038376808, - -0.03839275613427162, - -0.0005169950891286135, - -0.002458746312186122, - 0.025684013962745667, - -0.015492085367441177, - -0.0005677729495801032, - 0.12633349001407623, - -0.025412481278181076, - -0.013012203387916088, - 0.00912267155945301, - 0.007179470267146826, - 0.03358642756938934, - -0.04061729460954666, - -0.07053032517433167, - -0.004966135136783123, - -0.018604140728712082, - 0.01725090853869915, - 0.013768372125923634, - 0.03489917889237404, - 0.002745822537690401, - 0.0038208914920687675, - 0.001679818145930767, - 0.014458755031228065, - 0.03199967369437218, - -0.012549211271107197, - -0.0027714150492101908, - 0.005565522704273462, - -0.004465001169592142, - -0.007754811551421881, - 0.002191312378272414, - 0.009749255143105984, - -0.0032431832514703274, - -0.0679515153169632, - -0.01712697371840477, - 0.005299427080899477, - -0.0225279089063406, - 0.01051026675850153, - 0.0022308973129838705, - 0.0439782440662384, - 0.011269275099039078, - -0.007296897005289793, - -0.041029855608940125, - -0.030181514099240303, - 0.012950734235346317, - 0.005185563582926989, - 0.01889088563621044, - 0.027456216514110565, - -0.03297733888030052, - 0.012470257468521595, - 0.020209938287734985 - ], - [ - -0.022610247135162354, - -0.020300809293985367, - 0.019076289609074593, - -0.057548634707927704, - -0.0076589700765907764, - -0.03298517316579819, - 0.01582305133342743, - -0.019193023443222046, - -0.06028413027524948, - 0.015040753409266472, - 0.00042189948726445436, - 0.03482462465763092, - -0.016162412241101265, - 0.010375984944403172, - -0.013858209364116192, - -0.35150307416915894, - 0.025235576555132866, - 0.0007681525894440711, - -0.0037584779784083366, - 0.018606310710310936, - -0.014452148228883743, - -0.03298746794462204, - -0.013057474978268147, - -0.0043871128000319, - 0.008311016485095024, - -0.016874605789780617, - 0.0016289899358525872, - 0.0011696112342178822, - -0.021707231178879738, - 0.045572295784950256, - 0.013465892523527145, - -0.024329956620931625, - 0.028193725273013115, - 0.02357213944196701, - 0.003538614371791482, - -0.032348860055208206, - 0.006814128719270229, - -0.05611536651849747, - -0.034497328102588654, - 0.039730459451675415, - 0.012025812640786171, - -0.04345636069774628, - 0.014153819531202316, - 0.0027656941674649715, - 0.020662648603320122, - -0.05146866291761398, - 0.00865408219397068, - 0.009196235798299313, - -0.028995882719755173, - -0.00016271606727968901, - -0.02348105050623417, - -0.004312241915613413, - -0.018800798803567886, - -0.019677767530083656, - 0.02296048402786255, - -0.048420947045087814, - -0.024028927087783813, - 0.015165753662586212, - -0.011572903953492641, - -0.028240391984581947, - -0.05812882259488106, - 0.03621090576052666, - 0.007060537580400705, - -0.01633298397064209, - -0.026480531319975853, - 0.011009717360138893, - -0.05987755209207535, - -0.006786331534385681, - 0.060864634811878204, - 0.008217662572860718, - -0.0011717552551999688, - 0.1403295248746872, - 0.08203567564487457, - 0.012627954594790936, - -0.046374816447496414, - -0.02022026851773262, - 0.04020636901259422, - 0.01976240612566471, - 0.009788330644369125, - 0.01615789718925953, - -0.01650336943566799, - -0.03828149288892746, - -0.22256150841712952, - -0.0021876622922718525, - 0.006325163412839174, - -0.011139906011521816, - 0.033454474061727524, - -0.0015686018159613013, - -0.013860678300261497, - -0.022795865312218666, - 0.008709090761840343, - -0.021041834726929665, - 0.19303762912750244, - -0.020368652418255806, - -0.012088431976735592, - 0.026939434930682182, - -0.02029556967318058, - 0.0030456578824669123, - 0.01905214600265026, - -0.011868041008710861, - 0.00043917071889154613, - 0.03835538029670715, - 0.03862835839390755, - -0.0511176660656929, - 0.07273119688034058, - -0.005236860830336809, - 0.015861960127949715, - 0.006394513417035341, - 0.015257264487445354, - -0.005258998833596706, - 0.01042079646140337, - 0.02717282995581627, - 0.015663404017686844, - 0.01928020641207695, - -0.02679298259317875, - 0.03577020764350891, - 0.025438886135816574, - -0.04138369485735893, - -0.0012871462386101484, - -0.0015357837546616793, - -0.016510752961039543, - 0.015156863257288933, - 0.040048643946647644, - 0.02213331311941147, - -0.05377936735749245, - 0.015218264423310757, - -0.5769251585006714, - 0.0122749712318182, - -0.005561612080782652, - 0.024194207042455673, - 0.001171656302176416, - 0.018803110346198082, - -0.030210841447114944, - -0.005046587437391281, - 0.008458109572529793, - -0.0010871404083445668, - 0.010783790610730648, - 0.0036538448184728622, - 0.006973455660045147, - -0.039785388857126236, - 0.00933793280273676, - -0.02574876695871353, - 0.0233117938041687, - -0.05012816563248634, - 0.0327962301671505, - -0.04690506309270859, - -0.04600478708744049, - -0.05207005888223648, - -0.04994317889213562, - -0.05202101916074753, - 0.006797872483730316, - -0.03676813468337059, - -0.02761910855770111, - -0.04733889922499657, - 0.005358722992241383, - -0.00375278084538877, - 0.0031339023262262344, - 0.01323325652629137, - -0.010267444886267185, - 0.4192533493041992, - 0.03470242768526077, - -0.02174023538827896, - -0.017884287983179092, - 0.004030292388051748, - 0.035813361406326294, - -0.15960615873336792, - 0.0006507036159746349, - -0.0013056696625426412, - 0.014819970354437828, - -0.007065959740430117, - -0.05684621259570122, - -0.044015318155288696, - -0.0066716899164021015, - 0.0228108000010252, - 0.004835723899304867, - 0.021026188507676125, - -0.025960668921470642, - -0.030944695696234703, - 0.007228772155940533, - -0.0067411987110972404, - -0.025207746773958206, - 0.016652988269925117, - -0.005319257266819477, - -0.009506002068519592, - 0.020230557769536972, - 0.014238116331398487, - -0.02583143673837185, - 0.02439996600151062, - -0.07087409496307373, - 0.0014041169779375196, - 0.008051254786550999, - -0.0008701843908056617, - 0.2119370996952057, - -0.06351626664400101, - -0.00393547723069787, - 0.041479334235191345, - -0.07395823299884796, - -0.024027222767472267, - -0.0020530610345304012, - -0.0496441014111042, - -0.012679952196776867, - 0.0007032014545984566, - -0.007844550535082817, - 0.0010040043853223324, - -0.006737070623785257, - 0.02372998185455799, - 0.014950862154364586, - -0.006045678164809942, - -0.013197668828070164, - 0.0412178598344326, - -0.002120311837643385, - -0.04217559099197388, - 0.09298159927129745, - 0.014509065076708794, - 0.020753134042024612, - -0.017007330432534218, - -0.0005680103786289692, - 0.008127952925860882, - 0.01320653036236763, - -0.05966527387499809, - -0.03334327042102814, - -0.01031702384352684, - -0.01422380842268467, - 0.021361541002988815, - 0.017393773421645164, - -0.011523263528943062, - -0.05488145723938942, - -0.0020180107094347477, - 0.013428042642772198, - 0.013436718843877316, - -0.0034387586638331413, - -0.007022413890808821, - -0.013932640664279461, - -0.023256748914718628, - -0.04177572950720787, - -0.01635146327316761, - -0.007326886523514986, - -0.0023396946489810944, - -0.057323671877384186, - -0.014137601479887962, - -0.007038833573460579, - -0.02626912295818329, - 0.007723809685558081, - 0.019214071333408356, - -0.02545877918601036, - 0.025625845417380333, - 0.004749399144202471, - -0.02078167162835598, - -0.005354949738830328, - 0.015454662032425404, - -0.020086029544472694, - -0.04067341610789299, - 0.020451761782169342, - 0.021509209647774696, - -0.03867669776082039, - -0.018673600628972054 - ], - [ - 0.007874883711338043, - -0.01275775209069252, - 0.03219418227672577, - -0.008334601297974586, - -0.0005226786015555263, - -0.019053827971220016, - 0.0011926351580768824, - 0.0004111698654014617, - -0.009965925477445126, - 0.008437000215053558, - -0.014377538114786148, - 0.0037993518635630608, - -0.01364528201520443, - 0.0151511300355196, - -0.023908475413918495, - -0.23242782056331635, - -0.0053952825255692005, - -0.03396734222769737, - -0.017962142825126648, - -0.016619762405753136, - -0.05959204584360123, - 0.0027872342616319656, - -0.024598751217126846, - 0.010967941023409367, - 0.0031915251165628433, - -0.009494107216596603, - 0.013001141138374805, - 0.005412427708506584, - -0.013857576064765453, - 0.02934533916413784, - 0.006281459238380194, - -0.006974777672439814, - 0.028143100440502167, - 0.0037827924825251102, - 0.01796053908765316, - -0.014190577901899815, - 0.011082145385444164, - -0.028263531625270844, - -0.019753266125917435, - 0.036585524678230286, - 0.025300579145550728, - -0.013457728549838066, - 0.04052436351776123, - -0.018237613141536713, - 0.010302994400262833, - -0.04187563806772232, - -0.01985745318233967, - -0.009796993806958199, - -0.006437347270548344, - 0.012110542505979538, - -0.009955871850252151, - 0.00038392128772102296, - -0.01937744952738285, - 0.005852418020367622, - 0.0062642525881528854, - -0.01954830065369606, - -0.009683426469564438, - -0.011470642872154713, - -0.00662957364693284, - 0.020359288901090622, - -0.03861820325255394, - -0.006274242419749498, - 0.003965592943131924, - -0.00012495681585278362, - -0.012323608621954918, - 0.0026884900871664286, - -0.036839500069618225, - 0.009096317924559116, - -0.005326851736754179, - 0.014360912144184113, - 0.00732952868565917, - 0.08092678338289261, - 0.05817615985870361, - -0.011712726205587387, - -0.029504816979169846, - -0.059153251349925995, - 0.03450152277946472, - 0.007866689004004002, - 0.01611398346722126, - -0.026103848591446877, - 0.00956950057297945, - -0.007240296341478825, - -0.7201112508773804, - -0.0065019275061786175, - -0.014033320359885693, - -0.004400623496621847, - 0.011400029994547367, - -0.00971231795847416, - 0.012369280681014061, - -0.006280722562223673, - 0.008749687112867832, - 0.0015884521417319775, - 0.1188206821680069, - 0.004552866332232952, - -0.017774557694792747, - 0.028040163218975067, - -0.01881818100810051, - -0.01448930986225605, - 0.016809767112135887, - 0.0024190295953303576, - -0.004859572276473045, - 0.013710287399590015, - 0.006147188134491444, - -0.004726092796772718, - 0.07223723083734512, - 0.013402563519775867, - 0.024518271908164024, - -0.000625317043159157, - 0.007151988800615072, - 0.009794681333005428, - 0.029747452586889267, - 0.036422375589609146, - 0.01298591960221529, - -0.0065477280877530575, - -0.02053705044090748, - 0.017813006415963173, - 0.021520545706152916, - -0.02220943197607994, - -0.01737361215054989, - 0.0037440001033246517, - -0.029898425564169884, - -0.003157065948471427, - 0.01675966940820217, - 0.013711681589484215, - -0.043240025639534, - -0.002285595051944256, - -0.2733035087585449, - 0.024234803393483162, - 0.01601763628423214, - 0.023099122568964958, - -0.0020418413914740086, - 0.02523227035999298, - 0.015446243807673454, - 0.01020415872335434, - -0.017111046239733696, - 0.00268192240037024, - 0.020588090643286705, - 0.008791198022663593, - 0.012877868488430977, - -0.019215617328882217, - -0.00797287467867136, - -0.0014947718009352684, - -0.00304412585683167, - -0.03696758300065994, - -0.014403946697711945, - -0.024664653465151787, - -0.01534576527774334, - -0.04070919752120972, - -0.024723242968320847, - 0.0053069451823830605, - 0.00878090038895607, - -0.02194097638130188, - -0.008180911652743816, - -0.04676341265439987, - -0.007221919018775225, - 0.00010554937762208283, - 0.012761677615344524, - 0.025364326313138008, - -0.02630526013672352, - 0.4485345780849457, - 0.028965815901756287, - 0.005385647062212229, - 0.005922960117459297, - 0.024652618914842606, - 0.017906608060002327, - -0.09815583378076553, - 0.017331276088953018, - -0.024261130020022392, - 0.002036875579506159, - -0.020955674350261688, - -0.04834509268403053, - -0.024743584915995598, - -0.03185085579752922, - -0.0004995173658244312, - -0.0024693585000932217, - 0.0011779128108173609, - -0.028021004050970078, - 0.012104329653084278, - 0.009713069535791874, - -0.016015056520700455, - -0.01507702749222517, - 0.010620653629302979, - -0.01309541892260313, - -0.002139520365744829, - -0.002208722522482276, - 0.024015365168452263, - 0.02859589457511902, - 0.008898596279323101, - -0.01979525201022625, - 0.0016605760902166367, - 0.025351082906126976, - -0.004160070326179266, - 0.1270073652267456, - -0.027032528072595596, - 0.0027224854566156864, - 0.01930410973727703, - -0.008757976815104485, - 0.0018764289561659098, - -0.011374044232070446, - -0.028616026043891907, - -0.014698491431772709, - -0.022667333483695984, - 0.010136554017663002, - 0.022726258262991905, - 0.019932610914111137, - 0.04291226714849472, - -0.015348969958722591, - -0.003038777271285653, - -0.0062201786786317825, - 0.022678811103105545, - -0.017184719443321228, - -0.008905906230211258, - 0.06879077106714249, - -0.009250616654753685, - -0.010365917347371578, - -0.01948860101401806, - 0.012549038045108318, - 0.024703728035092354, - -0.0035937640350311995, - -0.07873078435659409, - -0.01490937452763319, - -0.013853932730853558, - 0.011890741065144539, - 0.013898659497499466, - 0.02595817670226097, - 0.008817383088171482, - -0.009043276309967041, - 0.010341780260205269, - 0.008953806012868881, - 0.015669167041778564, - -0.009286005049943924, - 0.023563504219055176, - 0.003155947895720601, - 0.0004677122924476862, - -0.006065106950700283, - 0.013434367254376411, - -0.003081825328990817, - 0.01081786397844553, - -0.03831791505217552, - -0.01396374125033617, - 0.0022830788511782885, - -0.024470599368214607, - -0.0009197746403515339, - -0.012539197690784931, - 0.029598088935017586, - 0.01107249315828085, - 0.010919852182269096, - -0.033047426491975784, - -0.038028985261917114, - 0.0115832993760705, - 0.0071633257903158665, - 0.003199004800990224, - 0.007478661835193634, - -0.013858610764145851, - -0.008227968588471413, - 1.5886276742094196e-05 - ], - [ - -0.004128660541027784, - 0.0016893720021471381, - 0.055773746222257614, - 0.023726200684905052, - -0.03729201480746269, - -0.025472750887274742, - -0.005877746734768152, - 0.08419758826494217, - 0.04513827711343765, - 0.017499616369605064, - 0.01671699993312359, - -0.011091358959674835, - -0.024476025253534317, - 0.007592730689793825, - -0.07336164265871048, - -0.12109677493572235, - -0.01049630343914032, - -0.04813713952898979, - -0.04110262542963028, - 0.006601203233003616, - -0.1678389459848404, - 0.022064967080950737, - -0.008515741676092148, - 0.0038891618605703115, - -0.004086458124220371, - -0.036782555282115936, - 0.03349754586815834, - -0.022227879613637924, - -0.0313870869576931, - 0.09721211344003677, - 0.010068051517009735, - -0.01440611481666565, - -0.03506504371762276, - 0.011616459116339684, - 0.028841126710176468, - -0.013472311198711395, - 0.03589232638478279, - -0.00862365122884512, - 0.0020491357427090406, - 0.019624540582299232, - 0.05102669820189476, - -0.010566922836005688, - 0.04823356866836548, - -0.015309403650462627, - 0.020648859441280365, - -0.04818503186106682, - -0.02790646068751812, - -0.01709136739373207, - -0.008039087988436222, - -0.009652839042246342, - -0.047819558531045914, - 0.01986709237098694, - -0.033697113394737244, - 0.02114454098045826, - 0.021025771275162697, - -0.02131526917219162, - -0.017856445163488388, - 0.024212127551436424, - -0.02015388384461403, - 0.05905520170927048, - -0.06933175772428513, - -0.004941506776958704, - 0.028875401243567467, - -0.02411526069045067, - -0.08628533780574799, - 0.015300360508263111, - -0.010598313063383102, - 0.034791603684425354, - 0.010665161535143852, - 0.05357695743441582, - 0.02353828400373459, - 0.19519951939582825, - 0.05605718120932579, - 0.011699863709509373, - -0.024770615622401237, - -0.10256069898605347, - 0.027462977916002274, - 0.011524808593094349, - -0.004569181706756353, - -0.01871173270046711, - 0.04648030549287796, - 0.0005348066333681345, - -0.16948997974395752, - 0.05370473489165306, - -0.011685414239764214, - 0.06388258188962936, - 0.054992351680994034, - -0.04087814688682556, - -0.009419272653758526, - -0.05377587303519249, - 0.001332548214122653, - -3.43730571330525e-05, - -0.05029711872339249, - 0.018428532406687737, - -0.025133028626441956, - 0.04571758583188057, - -0.018682021647691727, - -0.008928880095481873, - -0.015205654315650463, - -0.008652860298752785, - 0.04663699120283127, - -0.0062246560119092464, - 0.01153076346963644, - -0.006743648089468479, - 0.04430347681045532, - 0.008186586201190948, - 0.023553425446152687, - -0.006921649910509586, - 0.002335553988814354, - 0.003254072507843375, - 0.003579970682039857, - 0.03188266605138779, - 0.03478055074810982, - 0.0004897958715446293, - 0.01990346424281597, - 0.023609843105077744, - 0.038478270173072815, - -0.0622321180999279, - 0.005306039471179247, - -0.008116207085549831, - -0.06651762127876282, - 0.022423388436436653, - 0.0174538716673851, - 0.044393111020326614, - -0.044593293219804764, - 0.04751194268465042, - -0.4010445177555084, - 0.02592264488339424, - 0.046808015555143356, - 0.06791512668132782, - 0.038979511708021164, - 0.013331905007362366, - -0.02860371209681034, - -0.04305654764175415, - 0.07620029151439667, - 0.0012856359826400876, - -0.040415942668914795, - 0.019600355997681618, - 0.03519159555435181, - -0.03329872712492943, - -0.033264197409152985, - 4.29258361691609e-05, - -0.008050481788814068, - -0.006637320853769779, - -0.06041296571493149, - -0.05445575714111328, - 0.014233027584850788, - -0.045428235083818436, - -0.04124758020043373, - -0.0010846871882677078, - 0.008110231719911098, - 0.0011447833385318518, - 0.0037676997017115355, - -0.09832949191331863, - -0.01368005108088255, - 0.027792077511548996, - 0.027339443564414978, - 0.07492854446172714, - -0.02108936384320259, - 0.31278154253959656, - 0.043843261897563934, - 0.002270724391564727, - -0.024486057460308075, - 0.025148482993245125, - 0.08149002492427826, - -0.15305987000465393, - -0.012331229634582996, - -0.03979293629527092, - -0.008683653548359871, - -0.004336480051279068, - -0.042293254286050797, - -0.016297871246933937, - -0.10084433853626251, - 0.025965595617890358, - -0.018403854221105576, - 0.027720259502530098, - 0.02110646665096283, - 0.013760465197265148, - 0.034501008689403534, - 0.007829730398952961, - -0.03336646780371666, - 0.009964819997549057, - -0.007877437397837639, - -0.0026868891436606646, - -0.04348325729370117, - 0.038709696382284164, - 0.0655609667301178, - -0.007082334253937006, - -0.014593132771551609, - -0.0512777641415596, - 0.04339265078306198, - 0.014390087686479092, - 0.28667494654655457, - -0.042470213025808334, - 0.003359813243150711, - 0.007164365146309137, - -0.01136511005461216, - -0.013964814133942127, - -0.012287423945963383, - -0.016240345314145088, - 0.014189377427101135, - 0.016623783856630325, - 0.03136872500181198, - 0.0420198030769825, - -0.01990126259624958, - 0.019957352429628372, - -0.003195523051545024, - -0.03506643325090408, - 0.003833027556538582, - 0.01679440774023533, - 0.028038842603564262, - 0.03627566993236542, - 0.19687283039093018, - -0.009826513938605785, - -0.0027163701597601175, - -0.03886585682630539, - 0.03266724571585655, - -0.008745954371988773, - -0.01159010548144579, - -0.11897771060466766, - 0.011431490071117878, - -0.03012598305940628, - -0.030661480501294136, - 0.006402031052857637, - 0.03437826409935951, - 0.005250618327409029, - -0.014887392520904541, - -0.030375132337212563, - 0.017265114933252335, - -0.03224226087331772, - 0.013823836110532284, - 0.0952887237071991, - -0.015547996386885643, - 0.027858538553118706, - 0.019070876762270927, - -0.040889766067266464, - 0.010628189891576767, - 0.009630816988646984, - -0.4327758848667145, - 0.03372706100344658, - 0.0029174420051276684, - -0.0021514028776437044, - 0.033302079886198044, - -0.0140666663646698, - 0.04805305227637291, - -0.04473665729165077, - -0.021080201491713524, - -0.048194821923971176, - -0.027534503489732742, - -0.04476036876440048, - -0.011398307979106903, - 0.03155692666769028, - -0.01867702044546604, - 0.01705847680568695, - -0.03465787693858147, - 0.008793911896646023 - ], - [ - 0.00014214174007065594, - 0.0018838084070011973, - -0.00043056797585450113, - 0.0012609923724085093, - -0.0010853145504370332, - 0.0004464098601602018, - -0.0006470492226071656, - 0.0018952867249026895, - 0.0031171306036412716, - 0.001132835866883397, - -0.001537203206680715, - 0.0011157920816913247, - -0.0001884548255475238, - -0.0007515252800658345, - -0.0014793493319302797, - 0.005831239745020866, - -0.0003914011176675558, - -0.003796266159042716, - -0.0028563926462084055, - 0.0009150088881142437, - -0.009833278134465218, - 0.004641211591660976, - -0.001396783976815641, - -0.0005611705128103495, - -0.002173397224396467, - -0.0014331215061247349, - 0.0015307451831176877, - 0.00015107064973562956, - -0.0009621435892768204, - 0.0017698542214930058, - 0.0012281228555366397, - 0.0013107213890179992, - -0.0009360422263853252, - -0.0015469992067664862, - 0.0009873826056718826, - 0.0005557876429520547, - 0.003574960632249713, - 0.0012448020279407501, - 0.0005659368471242487, - -0.0015876826364547014, - 0.00034230234450660646, - 0.0022838315926492214, - 0.0012379633262753487, - 0.0003804952430073172, - -0.0014221655437722802, - -0.0019641451071947813, - 0.0007478365441784263, - -0.0008394249598495662, - 0.002264330629259348, - 0.00038523023249581456, - -0.0022776308469474316, - 0.008923186920583248, - 0.0009305007406510413, - 5.394713753048563e-06, - -0.0012491925153881311, - -0.0016324599273502827, - -0.00016026952653191984, - -0.0003406072792131454, - -0.006156968418508768, - 0.00035477944766171277, - 0.0001742960448609665, - -0.0026617038529366255, - 0.00030092117958702147, - 0.002408786443993449, - -0.0056951395235955715, - 0.002760497387498617, - -0.010344835929572582, - 0.0026677793357521296, - -0.0007501631043851376, - -0.001191752147860825, - -0.002158221323043108, - -0.07292276620864868, - 0.0027050406206399202, - 0.005597093608230352, - 6.141809717519209e-05, - 0.0005894852802157402, - 0.0026265515480190516, - 0.0014012075262144208, - -0.002052431693300605, - 0.003110156860202551, - 9.054192923940718e-05, - -0.00011902303958777338, - -0.918036937713623, - 0.0014661478344351053, - -0.005261813290417194, - 0.0025234795175492764, - 0.0010028668912127614, - 4.8759735364001244e-05, - 0.0004905543755739927, - 0.002662251004949212, - 0.0012200722703710198, - 0.0015106950886547565, - 0.005042792297899723, - -0.000707326689735055, - 0.002111680805683136, - 0.0035610361956059933, - 0.00029164805891923606, - -0.0016952208243310452, - 0.002879332285374403, - -0.001041256356984377, - 0.002669350244104862, - 0.0012848423793911934, - 0.0016200864920392632, - 0.0024198044557124376, - 0.0040052058175206184, - 0.0008862146642059088, - -0.002464572200551629, - 0.0013481657952070236, - -0.0014679617015644908, - -0.0009492874378338456, - 0.008924967609345913, - 0.0051728799007833, - -0.00035260841832496226, - -4.797254587174393e-05, - 0.0011592780938372016, - 0.004617531318217516, - -0.0016826122300699353, - -0.0003026168851647526, - 9.505556226940826e-05, - -0.0002490395854692906, - -0.0012440383434295654, - -0.001483277534134686, - -0.0011219822335988283, - 0.0032761376351118088, - -0.0031127221882343292, - -0.0009285955457016826, - 0.2832455039024353, - 0.001951988902874291, - 0.00044386592344380915, - 0.0012045277981087565, - 0.0008874835330061615, - 0.00349088991060853, - 0.0008510754560120404, - -0.001102376263588667, - -0.002919283928349614, - 0.001331406063400209, - -0.0034728616010397673, - 0.0008310045232065022, - -0.0011610635556280613, - 5.7280169130535796e-05, - 0.0014235666021704674, - -0.0007643114659003913, - -0.0008645795751363039, - -0.0005067877937108278, - -0.0017501333495602012, - -0.005631718784570694, - 0.0014823549427092075, - 0.0017593962838873267, - -0.0021860571578145027, - 0.0007653628126718104, - -0.0019529156852513552, - -0.006672505754977465, - -0.0016416633734479547, - -0.0060740262269973755, - -0.002385692438110709, - 0.0009204193484038115, - 0.0016310926293954253, - -0.0009383666911162436, - 0.000889166141860187, - 0.20544421672821045, - -8.384040847886354e-05, - 0.0008783014491200447, - 7.88980396464467e-05, - 0.0006939794984646142, - 0.010411514900624752, - 0.09119065850973129, - 0.0011668787337839603, - -0.004254576750099659, - 0.0015360513934865594, - 0.000776669941842556, - -0.005739471409469843, - 0.0013564912369474769, - -0.002998648677021265, - 0.001753957592882216, - -0.003022533841431141, - -0.0013249546755105257, - 0.0003905838239006698, - 0.004590608179569244, - 0.0007492718286812305, - 0.0047955820336937904, - -0.0012413418153300881, - 0.0017164048040285707, - 0.0004284965107217431, - -0.0012272174935787916, - -0.003621406853199005, - -0.00019493898435030133, - 0.0017736806767061353, - -0.0017426037229597569, - 7.237037607410457e-06, - -0.0006006226176396012, - 0.0005339133786037564, - 0.00022090303536970168, - -0.059755340218544006, - -0.004547852091491222, - 0.005549028981477022, - -0.0022977751214057207, - 0.0013123562093824148, - 0.00048441995750181377, - -0.0005804277025163174, - 0.0019539576023817062, - -0.000545402173884213, - -0.0010290014324709773, - 0.003108266042545438, - -0.0011723028728738427, - 0.0002736617752816528, - 0.006911740638315678, - -0.0013415968278422952, - -0.0020840850193053484, - 3.608572296798229e-05, - -3.4923345083370805e-05, - -0.0003325125144328922, - -0.0005354366730898619, - -0.052725471556186676, - 0.0010063438676297665, - -0.0014621231239289045, - -0.0011970630148425698, - -0.002265561604872346, - 0.00035884417593479156, - 0.0057863639667630196, - -0.011044959537684917, - 0.000297993392450735, - 0.0010118467034772038, - -0.0010540339862927794, - -0.00019827891082968563, - 5.634368790197186e-06, - 0.00032618618570268154, - 0.0003403873706702143, - 0.0011276269797235727, - 0.0011695132125169039, - -0.0017578735714778304, - 0.0014983565779402852, - 0.004824738018214703, - 0.0018791862530633807, - 0.00019905324734281749, - 2.469168794050347e-05, - -0.0030284153763204813, - -0.004930743481963873, - 0.0012320465175434947, - 0.11383958160877228, - 0.00043759465916082263, - 0.0022273631766438484, - 0.000706896826159209, - -0.0009856565156951547, - -0.0033497908152639866, - -0.000896829180419445, - -0.0009743968839757144, - 0.00506201945245266, - 0.000575510784983635, - -0.0017235877458006144, - -0.0036080554127693176, - -0.0012291395105421543, - 0.0016994578763842583, - -0.0016280222916975617, - 0.0014317524619400501, - -0.0017620202852413058, - -0.00023981338017620146 - ], - [ - -0.00014061079127714038, - 0.002396151190623641, - -0.00045609704102389514, - 0.0010151348542422056, - -0.0010495578171685338, - 0.0007004487561061978, - -0.0006270340527407825, - 0.0009604728547856212, - 0.0020974266808480024, - 0.0018960833549499512, - -0.002193238353356719, - 0.0015308437868952751, - -0.0001849457185016945, - -0.000989279244095087, - -0.001041872426867485, - 0.003518208395689726, - -0.00043734587961807847, - -0.0036932644434273243, - -0.003524354426190257, - 0.0009047979256138206, - -0.00846612174063921, - 0.003752307966351509, - -0.00222731102257967, - -0.000635148084256798, - -0.0021775353234261274, - -0.0015706291887909174, - 0.0013947458937764168, - 0.0006517900619655848, - -0.0003960596804972738, - 0.00014763894432689995, - 0.0008346145623363554, - 0.0018462557345628738, - -0.00010109336290042847, - -0.0014203336322680116, - 0.0008250384125858545, - 0.00026672339299693704, - 0.0023180742282420397, - 0.0011569731868803501, - 0.0003220396174583584, - -0.0016263533616438508, - -0.0001693212252575904, - 0.0019487785175442696, - 0.0006947721703909338, - -0.00046541765914298594, - -0.0015384306898340583, - -0.0022315382957458496, - 0.0006480512674897909, - -0.00084136106306687, - 0.0019557655323296785, - 0.0001327433274127543, - -0.002294287784025073, - 0.008274927735328674, - 0.000761767674703151, - -0.00047927958075888455, - -0.0018532200483605266, - -0.0012053755344823003, - 0.0002016498037846759, - -0.0007720172288827598, - -0.0057676672004163265, - -0.0009941429598256946, - 0.00040508556412532926, - -0.002440826268866658, - -7.859961624490097e-05, - 0.0023360878694802523, - -0.004802323412150145, - 0.0017233556136488914, - -0.010866277851164341, - 0.00210550706833601, - -0.0006931129610165954, - -0.0018755608471110463, - -0.0018767400179058313, - -0.07382317632436752, - 0.0025321897119283676, - 0.004898215178400278, - -0.00024997128639370203, - 0.0018960193265229464, - 0.002316049300134182, - 0.0018593728309497237, - -0.0020738246385008097, - 0.0029826427344232798, - -0.00032923161052167416, - 0.00039597952854819596, - -0.9177862405776978, - 0.00040693176561035216, - -0.0048760888166725636, - 0.001074703293852508, - 0.000827763753477484, - 0.0005566655891016126, - 0.00030791250173933804, - 0.003213022369891405, - 0.0015714740147814155, - 0.001479732571169734, - 0.007982856594026089, - -0.0007804243359714746, - 0.002056175610050559, - 0.0030612486880272627, - -0.0003661968221422285, - -0.0016324585303664207, - 0.0032404346857219934, - -0.00079646788071841, - 0.0014715188881382346, - 0.0018523915205150843, - 0.0012985243229195476, - 0.0026173796504735947, - 0.004728205502033234, - 0.0015998457092791796, - -0.0024848340544849634, - 0.0014894517371430993, - -0.0021790117025375366, - -0.00120630394667387, - 0.008828800171613693, - 0.004346904810518026, - -0.0006619802443310618, - 0.00023583899019286036, - 0.0011197107378393412, - 0.0038146658334881067, - -0.0019186462741345167, - 0.00011420301598263904, - -0.00016118962957989424, - 0.0006910417578183115, - -0.00042480582487769425, - -0.0022984070237725973, - -0.0011619762517511845, - 0.0024234685115516186, - -0.00370775000192225, - -0.0009653514134697616, - 0.2813110947608948, - 0.001508544315584004, - -0.0004471545107662678, - 0.0005343970260582864, - 4.7975543566280976e-05, - 0.003217312740162015, - 0.001598699833266437, - -5.612877066596411e-05, - -0.0032919272780418396, - 0.0009270263253711164, - -0.0025994074530899525, - 0.0009373704087920487, - -0.0018331233877688646, - 0.0005129960482008755, - 0.0015851162606850266, - -0.0004911225405521691, - -0.0006137084565125406, - -0.0011349853593856096, - -0.001013423316180706, - -0.005603327881544828, - 0.0008225697674788535, - 0.002133011119440198, - -0.0020116388332098722, - 0.00022574086324311793, - -0.001639118418097496, - -0.007766821421682835, - -0.0015236157923936844, - -0.005032038781791925, - -0.0014553001383319497, - 0.0005802485975436866, - 0.0012873339001089334, - -0.001096618245355785, - 0.0007649616454727948, - 0.20647475123405457, - -0.0007958758505992591, - 0.0011626238701865077, - 0.0005288099637255073, - 0.000426739250542596, - 0.009449489414691925, - 0.0909292921423912, - 0.0014461427927017212, - -0.003637279151007533, - 0.0017008627764880657, - 0.0009380847914144397, - -0.004546069074422121, - 0.001692186575382948, - -0.0018783826380968094, - 0.0022609627339988947, - -0.002934044227004051, - -0.0011347936233505607, - -3.314260902698152e-05, - 0.0042813909240067005, - 9.120465983869508e-05, - 0.004533413797616959, - -0.0004393171111587435, - 0.0018902384908869863, - 0.00011044803250115365, - -0.0009540518512949347, - -0.0026168583426624537, - -0.0005419572116807103, - 0.0006912848330102861, - -0.0007773678516969085, - -6.074842167436145e-05, - -0.00012743125262204558, - 0.0008258215966634452, - -0.0006381485727615654, - -0.06090599671006203, - -0.004328235983848572, - 0.004528862424194813, - -0.0015571760013699532, - 0.0014583480078727007, - 0.0007342001190409064, - -0.000438101589679718, - 0.001631280523724854, - -0.0014270574320107698, - -0.0016670376062393188, - 0.0027884780429303646, - -0.0018792632035911083, - 0.00035179793485440314, - 0.00648422259837389, - -0.0017586753237992525, - -0.0017678738804534078, - -1.3231931006885134e-05, - -0.0003641005605459213, - -0.0007299912394955754, - -0.0012806361773982644, - -0.05380422994494438, - 0.0012218072079122066, - -0.0013019669568166137, - -0.0009160033660009503, - -0.0025398177094757557, - 0.00027233947184868157, - 0.0049736956134438515, - -0.010446975938975811, - 0.0005715870065614581, - 0.00154579128138721, - -0.0002349621499888599, - -6.453085370594636e-05, - 1.3765605217486154e-05, - -0.00022134491882752627, - 4.87262150272727e-05, - 0.0013434557477012277, - 0.0009942349279299378, - -0.0014696232974529266, - 0.0014191694790497422, - 0.0036057441029697657, - 0.002076495671644807, - -0.0006178548792377114, - -0.0009614679729565978, - -0.002402178943157196, - -0.005296808667480946, - 0.0013815478887408972, - 0.11797388643026352, - -0.0001509921276010573, - 0.0022619697265326977, - 0.0007349628722295165, - -0.001666450290940702, - -0.004071682225912809, - -0.0012792536290362477, - -0.00011837268539238721, - 0.006051188334822655, - 0.0006879098364152014, - -0.0017803910886868834, - -0.0027924496680498123, - -0.0003713125188369304, - 0.0006621028296649456, - -0.0006388847250491381, - 0.0013642791891470551, - -0.0014674451667815447, - -0.0007546666311100125 - ], - [ - 0.002867885632440448, - 0.04056965932250023, - 0.053841087967157364, - 0.00025568960700184107, - -0.05284620448946953, - -0.044527262449264526, - 0.0167187862098217, - 0.0405583530664444, - 0.01820521056652069, - 0.0010972332675009966, - -0.010073365643620491, - 0.04636020585894585, - -0.015162479132413864, - 0.03119325451552868, - -0.05748114734888077, - -0.05298123508691788, - 0.0037831608206033707, - -0.09572481364011765, - -0.010140682570636272, - 0.08829479664564133, - -0.13246169686317444, - 0.04556693881750107, - -0.063949353992939, - -0.0026903825346380472, - 0.06196409836411476, - -0.07376392185688019, - 0.018091754987835884, - -0.029105940833687782, - 0.007302968762814999, - 0.06510722637176514, - -0.020931027829647064, - -0.021293029189109802, - -0.055065084248781204, - -0.028490103781223297, - -0.017560899257659912, - 0.039598241448402405, - 0.007366556208580732, - -0.06672221422195435, - -0.0073288497515022755, - 0.045207951217889786, - 0.008098514750599861, - -0.04621339216828346, - 0.039528898894786835, - 0.003892221488058567, - 0.06510651856660843, - -0.05330774560570717, - 0.033425867557525635, - -0.028319625183939934, - -0.0030481142457574606, - 0.031172802671790123, - -0.05306503549218178, - 0.0005404987605288625, - 0.004648550879210234, - 0.07231003046035767, - -0.012166189029812813, - 0.03614673763513565, - 0.008786718361079693, - 0.12484928220510483, - -0.05447465181350708, - 0.013016900978982449, - -0.05361570790410042, - -0.03721453994512558, - -0.003726538736373186, - -0.005504927132278681, - -0.03593635931611061, - 0.02396317571401596, - 0.052491195499897, - -0.026044391095638275, - 0.03508647158741951, - -0.012514914385974407, - 0.07086353749036789, - 0.12446328997612, - 0.08698215335607529, - 0.030439186841249466, - -0.001673748018220067, - -0.05803638696670532, - -0.011715102009475231, - 0.04721532389521599, - -0.012649946846067905, - 0.0016302509466186166, - 0.04764354228973389, - -0.08456369489431381, - -0.12849977612495422, - -0.003348174737766385, - -0.06695114821195602, - 0.06668519973754883, - 0.06409411132335663, - -0.01371388416737318, - -0.024178752675652504, - -0.0033354235347360373, - 0.01844804361462593, - -0.021054036915302277, - -0.16261783242225647, - 0.039798103272914886, - 0.0018302893731743097, - 0.007201232947409153, - -0.030847858637571335, - 0.004302673973143101, - -0.015575257129967213, - -0.05278732627630234, - 0.09838972240686417, - -0.019075319170951843, - -0.04815251752734184, - -0.00722082145512104, - 0.030134346336126328, - -0.09522175788879395, - 0.031182460486888885, - 0.05669992044568062, - 0.07028534263372421, - 0.01398254930973053, - -0.032194558531045914, - -0.011119474656879902, - 0.027752486988902092, - 0.014191603288054466, - 0.11949367821216583, - 0.04108597710728645, - 0.06322609633207321, - -0.020848488435149193, - 0.007843172177672386, - 0.05415165051817894, - -0.03976017236709595, - 0.015555903315544128, - 0.0454929880797863, - 0.0850512757897377, - -0.03697439283132553, - -0.0020241502206772566, - -0.23335228860378265, - 0.07607581466436386, - -0.009751152247190475, - 0.059503279626369476, - 0.007022465113550425, - 0.006626968737691641, - -0.02559320442378521, - -0.010279822163283825, - 0.08758630603551865, - 0.042862921953201294, - 0.01661979965865612, - 0.016361266374588013, - -0.009069085121154785, - -0.03793501853942871, - -0.06323286890983582, - -0.010874052532017231, - 0.0011771583231166005, - -0.11609450727701187, - 0.03435176610946655, - -0.11911159753799438, - 0.05042387917637825, - -0.017073092982172966, - -0.033423759043216705, - 0.027736492455005646, - 0.011548854410648346, - 0.09926485270261765, - -0.010639593005180359, - -0.10632645338773727, - -0.06808760017156601, - -0.012380779720842838, - 0.008664052933454514, - 0.06445349007844925, - -0.02230500802397728, - 0.16950564086437225, - 0.005907892249524593, - -0.005591569002717733, - -0.0009977405425161123, - 0.010696372017264366, - 0.13967403769493103, - -0.04206113889813423, - 0.07124707847833633, - -0.01824900135397911, - 0.007619001902639866, - -0.017389068379998207, - 0.008441123180091381, - 0.008052087388932705, - -0.09548841416835785, - -0.005137328058481216, - -0.059237364679574966, - 0.06014327332377434, - -0.061198290437459946, - 0.04015421122312546, - 0.03791514039039612, - 0.04900265857577324, - -0.0241855438798666, - 0.09078718721866608, - 0.02655019238591194, - -0.030783753842115402, - -0.011496701277792454, - -0.009101483039557934, - 0.059807535260915756, - -0.0372229628264904, - -0.010845963843166828, - -0.044421885162591934, - 0.06290381401777267, - -0.04598849266767502, - 0.26585501432418823, - -0.07315589487552643, - 0.02722577378153801, - -0.015477249398827553, - -0.058743346482515335, - -0.004905232694000006, - -0.10622449219226837, - 0.004375406540930271, - -0.03019864857196808, - -0.03717255964875221, - 0.04911676049232483, - -0.12167515605688095, - -0.007396628148853779, - 0.035729847848415375, - 0.010816670954227448, - -0.06729356944561005, - -0.019378211349248886, - 0.034433815628290176, - 0.04070568084716797, - 0.0740099549293518, - 0.17747637629508972, - 0.027890445664525032, - -0.0038813729770481586, - -0.041975319385528564, - 0.03334632143378258, - 0.05853337049484253, - -0.006816630717366934, - -0.0657791718840599, - 0.02327265404164791, - -0.08319853991270065, - 0.0021480261348187923, - 0.05076613277196884, - 0.03700656443834305, - -0.002680735429748893, - -0.03499133512377739, - -0.0437658429145813, - -0.0022788899950683117, - -0.05675335228443146, - 0.03739004209637642, - 0.059631552547216415, - -0.032510969787836075, - 0.01839510351419449, - 0.034974485635757446, - -0.049930281937122345, - -0.018840014934539795, - 0.04257523640990257, - -0.4294095039367676, - 0.01609865389764309, - 0.047665923833847046, - 0.00033377070212736726, - 0.024998726323246956, - -0.03097507171332836, - -0.007858321070671082, - -0.07878885418176651, - -0.07246843725442886, - -0.045893460512161255, - -0.037918105721473694, - -0.09304487705230713, - -0.06878635287284851, - 0.031198933720588684, - -0.060245081782341, - 0.061200618743896484, - -0.055597152560949326, - 0.04573144018650055 - ], - [ - -0.011001547798514366, - -0.013828843832015991, - 0.012799844145774841, - -0.03152449056506157, - -0.0033075709361582994, - -0.023573793470859528, - 0.011226429603993893, - -0.0137172881513834, - -0.029997246339917183, - 0.024027295410633087, - -0.014549928717315197, - 0.019690334796905518, - -0.029324185103178024, - 0.008887307718396187, - -0.030755655840039253, - -0.28882572054862976, - -0.007131223566830158, - -0.020490877330303192, - -0.032754071056842804, - -0.010991898365318775, - -0.07426125556230545, - -0.016504723578691483, - -0.03234665468335152, - -0.0033840276300907135, - 0.009951823391020298, - -0.009543088264763355, - 0.008637657389044762, - 0.010607709176838398, - -0.008475313894450665, - 0.041924163699150085, - 0.024859538301825523, - -0.007217432837933302, - 0.05153617635369301, - 0.013196009211242199, - 0.020233264192938805, - -0.04325385391712189, - 0.026079565286636353, - -0.04948800429701805, - -0.029780682176351547, - 0.0644654855132103, - -0.0012402328429743648, - -0.036735378205776215, - 0.028518039733171463, - -0.049536604434251785, - 0.013991006650030613, - -0.07399056106805801, - -0.014765472151339054, - -0.013824661262333393, - -0.009056223556399345, - 0.01902034319937229, - -0.014555125497281551, - -0.0007708669290877879, - -0.029071560129523277, - -0.01407096441835165, - 0.015639370307326317, - -0.04542075842618942, - -0.012762817554175854, - 0.03564808890223503, - 0.014789681881666183, - 0.016113080084323883, - -0.05009482800960541, - -0.0015508850337937474, - 0.01788235828280449, - -0.002694413997232914, - -0.01761532947421074, - 0.0021663429215550423, - -0.0357603020966053, - -0.0018897425616160035, - 0.017067018896341324, - 0.011159547604620457, - 0.009996230714023113, - 0.18535280227661133, - 0.07781632244586945, - -0.04791339486837387, - -0.023135770112276077, - -0.06669215857982635, - 0.02281016856431961, - 0.005733534228056669, - -0.001156536745838821, - -0.018316660076379776, - 0.009981437586247921, - -0.028386225923895836, - -0.07472123950719833, - -0.00315901730209589, - 0.011232790537178516, - -0.02988607808947563, - 0.008134705014526844, - -0.011034384369850159, - -0.009017545729875565, - -0.003731589997187257, - 0.007057012990117073, - -0.009435287676751614, - 0.12508875131607056, - 0.005663196090608835, - -0.02203001081943512, - 0.027658455073833466, - -0.023486727848649025, - -0.003892815439030528, - 0.02483394742012024, - -0.0078023020178079605, - -0.010650306940078735, - 0.002311734249815345, - 0.005582638084888458, - -0.020556844770908356, - 0.08011655509471893, - -0.013563185930252075, - 0.025742199271917343, - 0.008004019036889076, - 0.025575431063771248, - -0.015874462202191353, - 0.0026641427539288998, - -0.00016565388068556786, - 0.007298959419131279, - 0.006890709046274424, - 0.0012893792008981109, - 0.030683182179927826, - 0.013452031649649143, - -0.04097695276141167, - -0.03750128671526909, - -0.00890835840255022, - -0.008882521651685238, - 0.013737821951508522, - 0.02027304098010063, - 0.004632167983800173, - -0.05808782950043678, - -0.009221620857715607, - -0.6101621389389038, - 0.037234704941511154, - 0.018769152462482452, - 0.04377111792564392, - -0.010334303602576256, - 0.02308664284646511, - -0.009464583359658718, - 0.014318270608782768, - 0.0014330042758956552, - 0.008504590950906277, - 0.042568840086460114, - 0.01671549864113331, - 0.011980644427239895, - -0.030131636187434196, - -0.017925554886460304, - -0.006520431023091078, - 0.007357545662671328, - -0.06642423570156097, - -0.008268267847597599, - -0.06212218105792999, - -0.019467821344733238, - -0.034542690962553024, - -0.022591017186641693, - -0.023685533553361893, - 0.005835922434926033, - -0.03226077929139137, - -0.02742931805551052, - -0.05158475041389465, - 0.02168292924761772, - 0.0037804460152983665, - -0.004018547013401985, - 0.035058654844760895, - -0.016627829521894455, - 0.3804580569267273, - 0.038532547652721405, - 0.0014723518397659063, - -0.0022332093212753534, - 0.03652159869670868, - 0.05047869682312012, - -0.21067917346954346, - -0.0034073200076818466, - -0.01407657377421856, - 0.009418864734470844, - 0.002007813658565283, - -0.06365830451250076, - -0.024744661524891853, - -0.04453834518790245, - 0.022003836929798126, - 0.014282623305916786, - 0.01994941756129265, - -0.03805185854434967, - -0.009964450262486935, - 0.0014921929687261581, - -0.017933955416083336, - -0.011602621525526047, - 0.002104740124195814, - -0.018233200535178185, - -0.019261300563812256, - 0.01786639168858528, - -0.0022918391041457653, - 0.012276031076908112, - 0.0213521346449852, - -0.04572398215532303, - 0.011547088623046875, - 0.009011974558234215, - -0.0027995933778584003, - 0.26363828778266907, - -0.04860366880893707, - -0.016971120610833168, - 0.027631988748908043, - -0.03410841524600983, - -0.01232137344777584, - -0.016152258962392807, - -0.03252105042338371, - -0.01790568418800831, - 0.0005761008942499757, - -0.006009379401803017, - 0.0022863757330924273, - 0.018565721809864044, - 0.009763510897755623, - -0.011480636894702911, - -0.028627146035432816, - -0.018761003389954567, - 0.05401763692498207, - -0.0008199163130484521, - -0.02359376661479473, - 0.15379545092582703, - 0.0033094401005655527, - -0.012924783863127232, - -0.002321888692677021, - 0.013966860249638557, - 0.020629752427339554, - -0.010274325497448444, - -0.0916762426495552, - -0.005505756475031376, - -0.009805116802453995, - 0.00083604094106704, - 0.037984274327754974, - 0.025669507682323456, - -0.005573914851993322, - -0.03143225982785225, - -0.009009231813251972, - 0.015457486733794212, - 0.008704337291419506, - -0.014472165144979954, - 0.012765350751578808, - -0.015885502099990845, - 0.00402958644554019, - -0.01730947382748127, - 0.023942867293953896, - 0.001187585643492639, - 0.006425453815609217, - -0.19375406205654144, - 0.0004904149100184441, - 0.018931977450847626, - -0.02903524972498417, - -0.006444261409342289, - -0.01111079752445221, - 0.03664155304431915, - 0.008283211849629879, - 0.020115306600928307, - -0.0481218621134758, - -0.044857367873191833, - 0.015016131103038788, - 0.004275615327060223, - 0.006002563517540693, - 0.019772415980696678, - 0.006621875334531069, - -0.02000746876001358, - -0.0017789625562727451 - ], - [ - -0.0014821599470451474, - 0.013936507515609264, - 0.045284103602170944, - 0.027784492820501328, - -0.03146420419216156, - -0.01682247593998909, - -0.008776132017374039, - 0.056050512939691544, - 0.027476342394948006, - 0.006403767503798008, - 0.015294532291591167, - -0.0030660047195851803, - -0.01882815733551979, - 0.009938833303749561, - -0.05666071176528931, - -0.05368325859308243, - -0.010004548355937004, - -0.04690542072057724, - -0.0434604287147522, - 0.022972090169787407, - -0.14025256037712097, - 0.027748920023441315, - -0.015446419827640057, - -0.0002473200729582459, - 0.008379671722650528, - -0.03466743603348732, - 0.023499317467212677, - -0.01096680760383606, - -0.023334529250860214, - 0.06716414541006088, - 0.004991541616618633, - -0.01983303390443325, - -0.03052210435271263, - 0.008293721824884415, - 0.007269240450114012, - -0.002945413114503026, - 0.024412626400589943, - -0.022697845473885536, - 0.002739046234637499, - 0.024103155359625816, - 0.034210238605737686, - -0.009836499579250813, - 0.04087226092815399, - -0.005064954049885273, - 0.011230085976421833, - -0.037856608629226685, - -0.011065846309065819, - -0.011905631050467491, - -0.0053138043731451035, - -0.004302614368498325, - -0.04660318046808243, - 0.02267841249704361, - -0.017690571025013924, - 0.01488587912172079, - 0.019657094031572342, - -0.0027265730313956738, - -0.009963054209947586, - 0.04034092277288437, - -0.02606736309826374, - 0.03360217809677124, - -0.048803798854351044, - -0.008154128678143024, - 0.018588101491332054, - -0.016098041087388992, - -0.06650525331497192, - 0.012009323574602604, - 0.0035795639269053936, - 0.022036543115973473, - 0.006181288044899702, - 0.034040339291095734, - 0.03542046621441841, - 0.08573433011770248, - 0.04904186725616455, - 0.020264703780412674, - -0.01775105483829975, - -0.06925717741250992, - 0.010757382027804852, - 0.01830308511853218, - -0.0006363795255310833, - 0.0026671355590224266, - 0.04305579885840416, - -0.007495247293263674, - -0.7183250188827515, - 0.04131706431508064, - -0.02404194138944149, - 0.05594053491950035, - 0.0574948824942112, - -0.03497452661395073, - -0.017075316980481148, - -0.038219742476940155, - 0.0002530374622438103, - -0.001975543098524213, - -0.09370936453342438, - 0.017421726137399673, - -0.010029898025095463, - 0.04015018790960312, - -0.018283989280462265, - -0.010072042234241962, - -0.018015531823039055, - -0.0180800911039114, - 0.05384473502635956, - -0.014506216160953045, - -0.0023731596302241087, - 0.008519644849002361, - 0.02796192653477192, - -0.021050291135907173, - 0.01795969530940056, - 0.004746974911540747, - 0.004857772961258888, - -0.0032036553602665663, - 0.0013743253657594323, - 0.022921565920114517, - 0.02644157037138939, - 0.016130859032273293, - 0.03464264050126076, - 0.01791888289153576, - 0.02161680907011032, - -0.04319864138960838, - -0.0009178659529425204, - -0.0022628067526966333, - -0.04929599538445473, - 0.019920285791158676, - 0.006219794508069754, - 0.04620792344212532, - -0.03091469779610634, - 0.027521109208464622, - -0.04445481300354004, - 0.03032042644917965, - 0.01965787261724472, - 0.05286206305027008, - 0.028358591720461845, - 0.01426429022103548, - -0.02321261540055275, - -0.03079444169998169, - 0.0762387365102768, - 0.01656309701502323, - -0.02813461422920227, - 0.017884831875562668, - 0.017196550965309143, - -0.02697460539638996, - -0.026341740041971207, - -0.002819877117872238, - 0.004672805313020945, - -0.016042208299040794, - -0.03243155777454376, - -0.05978763848543167, - 0.02591780014336109, - -0.02664678916335106, - -0.03678647056221962, - 0.0016089443815872073, - -0.0062675173394382, - 0.028428420424461365, - -0.010405789129436016, - -0.08392900973558426, - -0.014936190098524094, - 0.017425494268536568, - 0.02219424583017826, - 0.05008745566010475, - -0.005324270110577345, - 0.33293598890304565, - 0.03273680806159973, - -0.007888332940638065, - -0.013554923236370087, - 0.023090951144695282, - 0.09827147424221039, - -0.02638627216219902, - -0.0010871433187276125, - -0.03904812037944794, - 0.003256995463743806, - -0.00878934096544981, - -0.038590945303440094, - -0.004853587597608566, - -0.08468901365995407, - 0.016201844438910484, - -0.030639799311757088, - 0.0275424811989069, - 0.0025549589190632105, - 0.016557099297642708, - 0.03085184097290039, - 0.0188452135771513, - -0.035480912774801254, - 0.013577938079833984, - -0.005823164712637663, - -0.012175144627690315, - -0.028392892330884933, - 0.030863892287015915, - 0.05714637041091919, - -0.013436537235975266, - -0.022128337994217873, - -0.04686478525400162, - 0.03187602385878563, - 0.009111380204558372, - 0.178388774394989, - -0.034329500049352646, - 0.013598292134702206, - 0.00016302973381243646, - -0.014890612103044987, - -0.015382020734250546, - -0.0313267819583416, - -0.00035130023024976254, - 0.0054804072715342045, - 0.009113756008446217, - 0.026119733229279518, - 0.012138811871409416, - -0.022147146984934807, - 0.02412075735628605, - 0.005409811623394489, - -0.03045366145670414, - 0.0011328994296491146, - 0.013786979019641876, - 0.023015039041638374, - 0.025849848985671997, - 0.11132634431123734, - 0.005708171054720879, - -0.00543634220957756, - -0.024423187598586082, - 0.02516547590494156, - 0.005825402215123177, - -0.0027749810833483934, - -0.09220307320356369, - 0.016304861754179, - -0.03566475585103035, - -0.012118424288928509, - 0.011406291276216507, - 0.023941824212670326, - 0.007400544360280037, - -0.009716654196381569, - -0.029592422768473625, - 0.007957485504448414, - -0.036809008568525314, - 0.015514196828007698, - 0.07321895658969879, - -0.012724727392196655, - 0.02435748465359211, - 0.02667725272476673, - -0.04000017046928406, - -0.001991179771721363, - 0.015856023877859116, - -0.2823072671890259, - 0.030612081289291382, - 0.014292801730334759, - 0.0016649306053295732, - 0.0279771126806736, - -0.021214667707681656, - 0.03345514461398125, - -0.052918441593647, - -0.017467427998781204, - -0.03517239913344383, - -0.012001683935523033, - -0.04491114243865013, - -0.02816111035645008, - 0.018394427374005318, - -0.03171686828136444, - 0.011517489328980446, - -0.03092215210199356, - 0.024503445252776146 - ], - [ - -0.014548949897289276, - 0.00020007377315778285, - 0.02894647791981697, - -0.034244462847709656, - -0.0005219986196607351, - -0.028700564056634903, - 0.009127789177000523, - -0.01733534224331379, - -0.039501726627349854, - 0.007216820027679205, - -0.01227609533816576, - 0.028606858104467392, - -0.01721339300274849, - -0.00188047147821635, - -0.033923741430044174, - -0.3194323182106018, - 0.00012967541988473386, - -0.02995504066348076, - -0.01693868823349476, - 0.015437525697052479, - -0.043040141463279724, - -0.021296991035342216, - -0.030881036072969437, - -0.002821120200678706, - 0.0200931578874588, - -0.02664398029446602, - -0.007719901390373707, - 0.01200924813747406, - -0.0068837120197713375, - 0.028278492391109467, - 0.019555769860744476, - -0.023183492943644524, - 0.024741506204009056, - 0.014819147065281868, - 0.018743230029940605, - -0.028320487588644028, - 0.011807356029748917, - -0.0554073266685009, - -0.03150389716029167, - 0.04501385614275932, - 0.01699041575193405, - -0.024925125762820244, - 0.0323013998568058, - -0.015462839975953102, - 0.02163001336157322, - -0.0587325245141983, - -0.006541529670357704, - 0.0076160733588039875, - -0.025386542081832886, - 0.007302997633814812, - -0.031627193093299866, - -0.010697760619223118, - -0.011152740567922592, - -0.006386301480233669, - 0.0026630298234522343, - -0.03242046758532524, - -0.01212618313729763, - 0.031829413026571274, - -0.0028610003646463156, - -0.006448548752814531, - -0.05081969499588013, - 0.016757143661379814, - -0.002626553177833557, - -0.02009616792201996, - -0.015588548965752125, - -0.0074516101740300655, - -0.03471362218260765, - 0.005304861813783646, - 0.04480043053627014, - -0.0027373533230274916, - 0.018472513183951378, - 0.1759936362504959, - 0.08398459851741791, - -0.0073668863624334335, - -0.02403252199292183, - -0.040627554059028625, - 0.023705538362264633, - 0.0271187461912632, - 0.0034222917165607214, - 0.0027958741411566734, - -0.009619439020752907, - -0.015519853681325912, - 0.017162276431918144, - 0.004202117677778006, - -0.011242097243666649, - -0.01210462674498558, - 0.0359266921877861, - -0.006786300800740719, - -0.017058102414011955, - -0.004663190338760614, - 0.009930403903126717, - -0.016107017174363136, - 0.13573066890239716, - -0.0035384581424295902, - -0.01739361695945263, - 0.028228869661688805, - -0.018771497532725334, - -0.006327182054519653, - 0.015553256496787071, - -0.013794050551950932, - 0.005567231215536594, - 0.027432307600975037, - 0.017675764858722687, - -0.033675968647003174, - 0.06994001567363739, - -0.003542729653418064, - 0.027902305126190186, - 0.007444859482347965, - 0.0028896662406623363, - -0.00612593861296773, - 0.007715194020420313, - 0.022629763931035995, - 0.01151042990386486, - 0.015594152733683586, - -0.007579720113426447, - 0.02722184546291828, - 0.011110689491033554, - -0.03400513902306557, - -0.024741629138588905, - 0.012797640636563301, - -0.014615919440984726, - 0.013058214448392391, - 0.02652043104171753, - 0.023390786722302437, - -0.05977052450180054, - 0.00909379217773676, - -0.6560368537902832, - 0.023357002064585686, - 0.0024462323635816574, - 0.023514574393630028, - 0.0069024767726659775, - 0.011296005919575691, - -0.01755193993449211, - -0.002468264661729336, - 0.017140740528702736, - 0.005779770668596029, - 0.02937246486544609, - -0.006424827501177788, - 0.007797790691256523, - -0.035905275493860245, - -0.008668622933328152, - -0.01290440559387207, - 0.024715380743145943, - -0.06292986869812012, - 0.005890578031539917, - -0.05330057814717293, - -0.024647384881973267, - -0.04124659299850464, - -0.03760820999741554, - -0.03689950704574585, - 0.00460887560620904, - -0.026214787736535072, - -0.026798764243721962, - -0.04468294978141785, - -0.0002630505769047886, - 0.0006179783958941698, - 0.006084295455366373, - 0.025209084153175354, - -0.02306753769516945, - 0.36322280764579773, - 0.027312705293297768, - -0.017743095755577087, - -0.0018924829782918096, - 0.008832045830786228, - 0.03529471158981323, - -0.2075342983007431, - 0.014980929903686047, - -0.00889911875128746, - 0.01059719081968069, - -0.01026174146682024, - -0.04544032737612724, - -0.028276439756155014, - -0.021335823461413383, - 0.014360086992383003, - -0.008815325796604156, - 0.027134893462061882, - -0.028197968378663063, - -0.025503551587462425, - 0.006111801601946354, - -0.009784795343875885, - -0.024738581851124763, - 0.01787932775914669, - -0.010885830968618393, - -0.009049487300217152, - 0.028663059696555138, - 0.01765589602291584, - -0.010527774691581726, - 0.027119310572743416, - -0.06086188554763794, - -0.0016199214151129127, - 0.018002139404416084, - -0.0030280211940407753, - 0.2494896501302719, - -0.04620695859193802, - -0.013893121853470802, - 0.038648515939712524, - -0.048908233642578125, - -0.007816958241164684, - -0.017547372728586197, - -0.039710089564323425, - -0.019887758418917656, - -0.00781281478703022, - -0.0026433956809341908, - 0.007721784058958292, - 0.009186058305203915, - 0.02290182001888752, - -0.011595487594604492, - -0.0036375164054334164, - -0.008959018625319004, - 0.030574815347790718, - 0.003621653886511922, - -0.02968202717602253, - 0.13723358511924744, - 0.014871533028781414, - -0.0005969468620605767, - -0.010296226479113102, - 0.011567382141947746, - 0.02195001393556595, - -0.002374229719862342, - -0.06830601394176483, - -0.01581437885761261, - -0.013944528996944427, - -0.0006172258290462196, - 0.03188714385032654, - 0.023368118330836296, - -0.013155709020793438, - -0.03759055212140083, - -0.006638337392359972, - 0.01229959074407816, - 0.013357012532651424, - -0.00010891942656598985, - 0.0043727741576731205, - -0.014704535715281963, - -0.015959370881319046, - -0.028749486431479454, - -0.009192714467644691, - -0.0061139692552387714, - 0.003267955267801881, - -0.1559067964553833, - -0.012423520907759666, - 0.010607960633933544, - -0.015187651850283146, - -0.005773953627794981, - 0.006205306854099035, - 0.01505904272198677, - 0.0075354487635195255, - 0.010668083094060421, - -0.03170266002416611, - -0.02969403937458992, - 0.014879973605275154, - -0.013685871846973896, - -0.019026711583137512, - 0.008354756981134415, - 0.0020885691046714783, - -0.02162771485745907, - -0.0021597538143396378 - ], - [ - -0.005820380989462137, - -0.007057309150695801, - 0.02549569308757782, - 0.008841208182275295, - -0.028356239199638367, - -0.03152390569448471, - 0.00537706445902586, - 0.00948031060397625, - 0.020810993388295174, - 0.015080719254910946, - -0.002153867855668068, - 0.033736150711774826, - 0.009180122055113316, - 0.00962714571505785, - -0.037862781435251236, - -0.34379032254219055, - 0.0187666192650795, - -0.0076219672337174416, - 0.007014173083007336, - 0.014791090041399002, - -0.02597842738032341, - -0.005084429867565632, - -0.0031767389737069607, - 0.007685975171625614, - 0.0023563734721392393, - -0.012571261264383793, - 0.030787711963057518, - 0.01748298481106758, - -0.005434213671833277, - 0.03474166989326477, - 1.417359908373328e-05, - 0.002777945948764682, - 0.03385983034968376, - 0.021969705820083618, - 0.01566995121538639, - -0.025070253759622574, - 0.007214608136564493, - -0.027274832129478455, - -0.03238900750875473, - 0.01608997769653797, - 0.016729753464460373, - -0.05937932804226875, - 0.03271210938692093, - -0.02005147561430931, - 0.008158853277564049, - -0.019046921283006668, - -0.04543612524867058, - -0.009166582487523556, - -0.008476771414279938, - -0.0058463760651648045, - -0.04327580705285072, - -0.010824734345078468, - -0.022667786106467247, - 0.018776124343276024, - 0.006594427861273289, - -0.025256913155317307, - -0.0113674933090806, - -0.022690724581480026, - 0.00396717619150877, - -0.011933485977351665, - -0.06419286876916885, - 0.03488974645733833, - -0.01024644449353218, - -0.01214186567813158, - -0.010993024334311485, - -0.013114570640027523, - -0.030468784272670746, - 0.03375427797436714, - 0.03434685990214348, - 0.013201058842241764, - -0.010990949347615242, - 0.1541229784488678, - 0.05231434479355812, - 0.024050848558545113, - -0.033425796777009964, - -0.02684849686920643, - 0.043885357677936554, - 0.02979179285466671, - 0.0007081176154315472, - -0.005078104790300131, - 0.008839519694447517, - -0.004748474806547165, - 0.18752682209014893, - -0.004079827107489109, - -0.016781114041805267, - -0.007821273989975452, - 0.0016734135570004582, - -0.0036985150072723627, - -0.005093109793961048, - -0.023787515237927437, - 0.0036660870537161827, - 0.0035618001129478216, - 0.19408591091632843, - 0.0010658378014340997, - -0.0024878899566829205, - 0.03881024941802025, - -0.015025160275399685, - 0.010123082436621189, - -0.005240181926637888, - 0.00804088357836008, - 0.019135329872369766, - 0.02325221337378025, - 0.015912940725684166, - -0.021084528416395187, - 0.07743240147829056, - 0.019049787893891335, - 0.015533111058175564, - -0.003467698348686099, - 0.02107345685362816, - -0.008106897585093975, - 0.019275890663266182, - 0.02977583557367325, - 0.022539781406521797, - 0.013562650419771671, - -0.015579751692712307, - 0.0051156929694116116, - 0.024985184893012047, - -0.015063120983541012, - -0.012436952441930771, - 0.018110183998942375, - -0.001072279061190784, - 0.0005407877033576369, - 0.037086065858602524, - 0.04338541999459267, - -0.052020154893398285, - 0.015803545713424683, - -0.681229293346405, - 0.004906554706394672, - -0.013620146550238132, - 0.026237115263938904, - 0.0018390817567706108, - 0.004524582996964455, - 0.013316772878170013, - -0.026491619646549225, - -0.024223843589425087, - -0.016244249418377876, - 0.02174106240272522, - 0.004464028403162956, - 0.008668090216815472, - -0.03108140081167221, - -0.015532247722148895, - -0.009163454174995422, - 0.013201410882174969, - -0.03420184552669525, - 0.02552933059632778, - -0.0298156775534153, - -0.00884132832288742, - -0.03012244962155819, - -0.07822848856449127, - -0.019898155704140663, - 0.024867424741387367, - -0.016318833455443382, - -0.011366364546120167, - -0.08702782541513443, - -0.0025541107170283794, - 0.025561124086380005, - 0.016794903203845024, - 0.037922631949186325, - -0.01713038608431816, - 0.30352863669395447, - 0.05597628280520439, - -0.014403260312974453, - -0.026839155703783035, - -0.0030734515748918056, - -0.007376272697001696, - -0.18190330266952515, - -0.0020539038814604282, - -0.006461584009230137, - 0.012999724596738815, - -0.01511429063975811, - -0.032581690698862076, - -0.026938477531075478, - -0.043063562363386154, - 0.0028256827499717474, - -0.001320715993642807, - -0.029109416529536247, - -0.02304951101541519, - 0.000719336501788348, - -0.00464299600571394, - -0.028536297380924225, - -0.012891514226794243, - 0.0003429521166253835, - -0.01122586615383625, - 0.022818105295300484, - 0.008046324364840984, - 0.009472107514739037, - 0.01741873100399971, - 0.012270263396203518, - -0.035032112151384354, - -0.011656731367111206, - 0.03406989574432373, - 0.0074327909387648106, - 0.18987464904785156, - -0.03687503933906555, - -0.011359332129359245, - 0.04676641896367073, - -0.043195564299821854, - -0.0032206557225435972, - 0.017062164843082428, - -0.048224423080682755, - -0.010347756557166576, - -0.017855970188975334, - 0.01962588168680668, - 0.018233174458146095, - 0.0009502434986643493, - 0.04130074009299278, - 0.009298041462898254, - 0.007435144856572151, - -0.001987473340705037, - 0.012312727980315685, - -0.05122566223144531, - -0.0131133534014225, - 0.1120276153087616, - -0.012628399766981602, - -9.591933485353366e-05, - -0.04157622903585434, - -0.005339377094060183, - 0.01016001682728529, - 0.014677539467811584, - -0.06268428266048431, - -0.01994912698864937, - -0.011838291771709919, - -0.008115260861814022, - 0.009768764488399029, - 0.009850266389548779, - -0.019289160147309303, - -0.030401717871427536, - -0.0034006803762167692, - 0.018028998747467995, - -0.002996717346832156, - 0.02191316895186901, - -0.0003954579879064113, - 0.008004541508853436, - 0.007078757043927908, - -0.04291585087776184, - 0.014473645016551018, - 0.005061290226876736, - -0.01969340816140175, - -0.07864195853471756, - -0.02400132827460766, - -0.0006761712720617652, - -0.02218528464436531, - -0.004365979693830013, - -0.013233878649771214, - 0.0005495748482644558, - 0.006835281848907471, - -0.0163071621209383, - -0.004670551512390375, - -0.01849687658250332, - 0.00837221834808588, - -0.006260167807340622, - -0.012525942176580429, - 0.005346762947738171, - -0.02321671135723591, - -0.07671776413917542, - 0.003260758239775896 - ], - [ - 0.004462807904928923, - 0.002479644725099206, - 0.05064566060900688, - -0.01483500748872757, - 0.014656627550721169, - -0.01294600497931242, - 0.014752530492842197, - 0.03391292318701744, - 0.017339006066322327, - 0.007182968780398369, - -0.024775877594947815, - 0.02291210927069187, - -0.025963326916098595, - 0.012796442024409771, - -0.07546638697385788, - -0.15470854938030243, - -0.03181683272123337, - -0.03314913809299469, - -0.02859172597527504, - 0.0031451513059437275, - -0.1212809756398201, - 0.028697839006781578, - -0.0254024937748909, - 0.007650366052985191, - 0.029042832553386688, - -0.014853883534669876, - 0.013714688830077648, - 0.010726059786975384, - 0.0023275839630514383, - 0.01544839795678854, - 0.018356945365667343, - -0.006136716343462467, - -0.026250084862113, - 0.012362504377961159, - 0.005535556469112635, - -0.025598131120204926, - 0.05268208310008049, - -0.04442955553531647, - -0.006634825840592384, - 0.03822068125009537, - 0.043363556265830994, - 0.013206345960497856, - 0.057860780507326126, - -0.017702113837003708, - 0.028875300660729408, - -0.07280433923006058, - -0.00550352968275547, - -0.0032543321140110493, - -0.0092919385060668, - -0.006683502346277237, - -0.05466166138648987, - -0.009585723280906677, - 0.0065429494716227055, - 0.024066757410764694, - 0.031002849340438843, - -0.022931279614567757, - 0.010150442831218243, - 0.020838899537920952, - -0.013632512651383877, - 0.03707677125930786, - -0.06866717338562012, - -0.008284390904009342, - -0.008320116437971592, - -0.00017817202024161816, - -0.039316605776548386, - -0.0020010187290608883, - -0.022368596866726875, - 0.019118264317512512, - 0.018525730818510056, - 0.00024593391572125256, - 0.026834562420845032, - 0.20891180634498596, - 0.06370486319065094, - -0.0034046880900859833, - -0.006014073733240366, - -0.062285877764225006, - 0.016104310750961304, - -0.0071973116137087345, - 0.03349829092621803, - 0.024113893508911133, - 0.01630096696317196, - -0.01610598899424076, - -0.09675201773643494, - 0.00969823356717825, - -0.044315434992313385, - 0.013532432727515697, - 0.06382916122674942, - -0.039072323590517044, - -0.014075545594096184, - -0.0020300932228565216, - 0.021870916709303856, - -0.026660379022359848, - 0.0010923929512500763, - -0.0020124507136642933, - -0.012426529079675674, - 0.043110545724630356, - -0.017770132049918175, - -0.0021534424740821123, - 0.00976160354912281, - -0.023133065551519394, - 0.01927191950380802, - 0.0027623253408819437, - 0.022564096376299858, - -0.04554607346653938, - 0.033913373947143555, - -0.02563740871846676, - 0.03145806863903999, - 0.026107260957360268, - -0.02402794547379017, - 0.0066209277138113976, - -0.04118720442056656, - 0.0181573536247015, - -0.003462551860138774, - 0.014354899525642395, - 0.014136577025055885, - 0.0215184073895216, - 0.016169767826795578, - -0.0317697636783123, - -0.044325392693281174, - -0.010832315310835838, - -0.055456191301345825, - 0.023636765778064728, - 0.024647343903779984, - 0.04253851994872093, - -0.03812522813677788, - 0.0102876927703619, - -0.49503496289253235, - 0.060604263097047806, - 0.04132940620183945, - 0.05223603919148445, - 0.03638847544789314, - 0.03968590125441551, - -0.022405501455068588, - 0.0025159786455333233, - 0.026448894292116165, - 0.03467279672622681, - 0.021436624228954315, - 0.0027313358150422573, - 0.03077664040029049, - -0.04451517015695572, - -0.011792713776230812, - 0.010773596353828907, - 0.03787728399038315, - -0.06024126708507538, - -0.03356865048408508, - -0.060300420969724655, - 0.013793201185762882, - -0.016239706426858902, - -0.058035701513290405, - -0.009874019771814346, - -0.016389459371566772, - 0.00966770201921463, - -0.035713277757167816, - -0.07272060215473175, - -0.0023908542934805155, - 0.021976690739393234, - 0.010028775781393051, - 0.016249394044280052, - -0.03477315604686737, - 0.34694230556488037, - 0.04432219639420509, - -0.02625085599720478, - 0.01095463614910841, - -0.031235547736287117, - 0.11155804246664047, - -0.1903523951768875, - 0.004750584717839956, - -0.005226101726293564, - 0.03360709920525551, - -0.03128526732325554, - -0.10086119920015335, - -0.014959028922021389, - -0.0652337446808815, - 0.018305791541934013, - -0.010161635465919971, - 0.02360566146671772, - -0.018173962831497192, - -0.010564299300312996, - 0.035263847559690475, - -0.04949843883514404, - -0.038829341530799866, - 0.022583801299333572, - -0.02579868957400322, - -0.04437536001205444, - 0.016970237717032433, - 0.037059009075164795, - 0.04809441417455673, - 0.015949346125125885, - -0.07795122265815735, - -0.02740958146750927, - -0.010121488012373447, - 0.016859639436006546, - 0.29416951537132263, - -0.021787671372294426, - 0.021371470764279366, - 0.015768742188811302, - -0.017856566235423088, - -0.01896822825074196, - -0.028284339234232903, - 0.001673057908192277, - -0.018869437277317047, - 0.03319559991359711, - 0.02183527685701847, - 0.04911612346768379, - -0.0039615207351744175, - 0.029328295961022377, - -0.019920723512768745, - 0.0011211226228624582, - -0.006446633953601122, - 0.014567626640200615, - 0.022879619151353836, - -0.032708365470170975, - 0.16786816716194153, - 0.008771994151175022, - -0.04140710085630417, - -0.008869308046996593, - 0.02458907663822174, - 0.0432913638651371, - -0.017998145893216133, - -0.10280530899763107, - 0.001772538642399013, - -0.017311785370111465, - 0.01319547276943922, - 0.03281001001596451, - 0.011248093098402023, - 0.00870972778648138, - 0.00809388142079115, - -0.05671456828713417, - -0.022095119580626488, - 0.008153215982019901, - 0.039957497268915176, - 0.06285153329372406, - 0.0013957410119473934, - 0.02535862661898136, - -0.004148965235799551, - -0.01854637823998928, - -0.01228419877588749, - 0.03222022205591202, - -0.3906046450138092, - 0.005987994838505983, - 0.0026335339061915874, - 0.00887160375714302, - 0.0059278723783791065, - -0.015135514549911022, - 0.03192092850804329, - -0.054880015552043915, - 0.011835543438792229, - -0.037255238741636276, - -0.020569223910570145, - -0.011879311874508858, - -0.029226839542388916, - 0.021905185654759407, - -0.01308270450681448, - -0.013745118863880634, - -0.009179673157632351, - 0.015848778188228607 - ], - [ - -0.02461315505206585, - -0.006754434201866388, - 0.021531295031309128, - -0.03644376993179321, - 0.007538891863077879, - -0.02911580540239811, - 0.015960825607180595, - -0.03694111108779907, - -0.05461622774600983, - 0.017349746078252792, - -0.014049611985683441, - 0.03204638883471489, - -0.018176110461354256, - -0.017823858186602592, - -0.03199082240462303, - -0.32632189989089966, - 0.01143705379217863, - -0.019851677119731903, - 0.001937807654030621, - 0.039235107600688934, - -0.0040144468657672405, - -0.02060086652636528, - -0.019371556118130684, - -0.009323615580797195, - 0.02360484190285206, - -0.007784627377986908, - -0.005364607088267803, - 0.024795230478048325, - -0.010536445304751396, - 0.026858892291784286, - 0.0018143581692129374, - -0.02327965758740902, - 0.04027995467185974, - 0.03403225168585777, - -0.0018702400848269463, - -0.04170190542936325, - -0.014694759622216225, - -0.06762797385454178, - -0.03620273992419243, - 0.03938726708292961, - 0.023881928995251656, - -0.03380967304110527, - 0.01965923048555851, - -0.028480639681220055, - 0.03499989956617355, - -0.054129619151353836, - -0.00566581217572093, - 0.017671871930360794, - -0.028415149077773094, - -0.005638494156301022, - -0.03541886433959007, - -0.020915601402521133, - -0.018588412553071976, - -0.016803698614239693, - 0.00678295036777854, - -0.021612901240587234, - -0.008382786996662617, - 0.03181800618767738, - -0.00019730193889699876, - -0.030582424253225327, - -0.05604264885187149, - 0.020611627027392387, - 0.015713220462203026, - -0.030976882204413414, - -0.019811714068055153, - 0.0011187493801116943, - -0.039590176194906235, - 0.0021476794499903917, - 0.05157923698425293, - 0.00209683645516634, - 0.03911547362804413, - 0.15757665038108826, - 0.07648024708032608, - -0.0035636993125081062, - -0.0398399718105793, - -0.028696110472083092, - 0.02844948135316372, - 0.012772556394338608, - 5.3363324695965275e-05, - 0.010933293029665947, - -0.01190604455769062, - -0.0114254429936409, - 0.08526697754859924, - 0.010188623331487179, - 0.014256169088184834, - -0.020255224779248238, - 0.05011865124106407, - 0.005428934469819069, - -0.023253358900547028, - -0.011234997771680355, - 0.014455306343734264, - -0.019586941227316856, - 0.1767018884420395, - -0.0007248083129525185, - -0.021089419722557068, - 0.01734091527760029, - -0.024258634075522423, - -0.0017356016905978322, - 0.016861097887158394, - -0.009596383199095726, - -0.005671769846230745, - 0.046579279005527496, - 0.038837745785713196, - -0.046412527561187744, - 0.0714949518442154, - -0.004499110393226147, - 0.02314685843884945, - 0.004381304606795311, - 0.0011398021597415209, - -0.008386749774217606, - -0.003389406716451049, - 0.02380882389843464, - 0.03489798307418823, - 0.015974385663866997, - -0.013381551951169968, - 0.02751496434211731, - 0.013532165437936783, - -0.04998378828167915, - -0.03123059868812561, - 0.01924682967364788, - -0.006176736671477556, - 0.01840517297387123, - 0.03380107507109642, - 0.016537755727767944, - -0.058651428669691086, - 0.004179050680249929, - -0.6516023874282837, - 0.020610719919204712, - -0.009860420599579811, - 0.020863130688667297, - 0.00958714634180069, - 0.015729140490293503, - -0.04041872173547745, - -0.003546264721080661, - 0.035941652953624725, - 0.0011961563723161817, - 0.04116234928369522, - 0.0015311369206756353, - 0.003782395739108324, - -0.01927066408097744, - -0.005645190365612507, - -0.011582381092011929, - 0.03937819227576256, - -0.059185296297073364, - 0.01897352747619152, - -0.045003123581409454, - -0.017152177169919014, - -0.04465806484222412, - -0.04942785203456879, - -0.03281067684292793, - 0.026857668533921242, - -0.05301868915557861, - -0.034098293632268906, - -0.03624625504016876, - -0.008445989340543747, - -0.002954122144728899, - 0.009897854179143906, - 0.04035571217536926, - -0.025615151971578598, - 0.3300139605998993, - 0.03864160552620888, - -0.04826963320374489, - 0.006874718237668276, - 0.003175749909132719, - 0.023592449724674225, - -0.19723595678806305, - 0.007986030541360378, - -0.0022533254232257605, - 0.009353753179311752, - -0.011625689454376698, - -0.04247915372252464, - -0.031447526067495346, - -0.025077303871512413, - 0.0033284241799265146, - 0.0033977499697357416, - 0.031609684228897095, - -0.02450462430715561, - -0.02973259799182415, - -0.0027596629224717617, - -0.020881550386548042, - -0.025403833016753197, - 0.021181313320994377, - -0.0035226226318627596, - -0.012416189536452293, - 0.03753913193941116, - 0.021449720486998558, - -0.014782601036131382, - 0.050773296505212784, - -0.07917861640453339, - 0.007717058528214693, - 0.0059776920825243, - -0.006110172253102064, - 0.2370302826166153, - -0.03043060190975666, - -0.03451312705874443, - 0.04342326894402504, - -0.05809212848544121, - 0.007174675352871418, - -0.028840575367212296, - -0.05351321026682854, - -0.019296111539006233, - -0.0013534682802855968, - -0.009526588954031467, - 0.020190199837088585, - 0.012644227594137192, - 0.026739060878753662, - 0.0004138772201258689, - -0.00016446267545688897, - -0.0009343193960376084, - 0.011031128466129303, - -0.023407449945807457, - -0.03620501980185509, - 0.12297061830759048, - 0.01192515343427658, - 0.018498772755265236, - 0.007998166605830193, - 0.008729653432965279, - 0.014674391597509384, - 0.003953373990952969, - -0.026952238753437996, - -0.009996423497796059, - -0.016879364848136902, - -0.026188677176833153, - 0.026222988963127136, - 0.02261858806014061, - -0.02086767926812172, - -0.04369690641760826, - -0.011416831985116005, - 0.012603548355400562, - 0.006464378442615271, - 0.014901772141456604, - -0.011031380854547024, - -0.020781848579645157, - -0.018762808293104172, - -0.04024568572640419, - -0.013817135244607925, - -0.010911607183516026, - -0.004919122438877821, - -0.10902078449726105, - -0.02192220836877823, - 0.008323456160724163, - -0.02534588985145092, - 0.00840999186038971, - 0.007368459831923246, - 0.011303946375846863, - 0.004748247098177671, - 0.0017308632377535105, - -0.03131967782974243, - -0.004585169721394777, - 0.026464369148015976, - -0.018574532121419907, - -0.03223425894975662, - 0.01760638877749443, - -0.013909534551203251, - -0.02578992210328579, - 0.007769700139760971 - ], - [ - -0.009254771284759045, - 0.047067269682884216, - 0.06661339104175568, - -0.016442913562059402, - -0.025684364140033722, - -0.02102055214345455, - 0.03396366164088249, - 0.0602671355009079, - 0.0009961259784176946, - -0.00045165829942561686, - -0.007455979008227587, - 0.0248687993735075, - -0.05650271102786064, - -0.023000840097665787, - -0.08084743469953537, - -0.044413913041353226, - -0.0406801663339138, - -0.07267355918884277, - -0.035965073853731155, - 0.04504977911710739, - -0.15805406868457794, - 0.05629635602235794, - -0.03256212919950485, - -0.027340853586792946, - 0.019856421276926994, - -0.06280461698770523, - 0.026059230789542198, - -0.009166435338556767, - -0.0004917604965157807, - 0.054090969264507294, - -0.02446082793176174, - -0.0359671488404274, - -0.051677584648132324, - 0.0491395927965641, - -0.002091006375849247, - 0.028812823817133904, - 0.013637734577059746, - -0.028239013627171516, - 0.030320733785629272, - 0.03428691253066063, - 0.06913333386182785, - 0.0024864785373210907, - 0.004511550534516573, - -0.013910368084907532, - 0.030922308564186096, - -0.05769747868180275, - -0.03478226810693741, - -0.010814910754561424, - -0.0033080424182116985, - 0.002364651532843709, - -0.06230906397104263, - -0.0010210942709818482, - -0.02869294583797455, - 0.022864941507577896, - 0.060007739812135696, - -0.02920127473771572, - -0.010288415476679802, - 0.07236918061971664, - -0.05323300138115883, - 0.0323166623711586, - -0.06566064059734344, - -0.012979952618479729, - 0.02571617253124714, - -0.034165602177381516, - -0.07182680070400238, - 0.017703132703900337, - 0.00188643008004874, - 0.020227482542395592, - 0.023859847337007523, - 0.007786528207361698, - 0.047042086720466614, - 0.18726933002471924, - 0.07798168808221817, - -0.028309037908911705, - -0.004254704341292381, - -0.052131131291389465, - 0.01595880463719368, - -0.025605270639061928, - -0.025882599875330925, - -0.019021309912204742, - 0.04859383404254913, - 0.0003472072130534798, - 0.05429277569055557, - 0.01037982851266861, - -0.022139348089694977, - 0.02539008855819702, - 0.05762577801942825, - -0.009012171067297459, - 0.005581246688961983, - -0.023382017388939857, - 0.014395477250218391, - -0.04591389000415802, - -0.12160902470350266, - 0.012963464483618736, - -0.05774294584989548, - 0.022561226040124893, - -0.05581718683242798, - -0.03042079322040081, - 0.005461361724883318, - 0.001057137968018651, - 0.052389342337846756, - 0.008884216658771038, - -0.02783798985183239, - -0.00799531489610672, - 0.002181724179536104, - 0.00777770159766078, - 0.03831876814365387, - 0.0264838058501482, - -0.03656904399394989, - -0.00016138573118951172, - -0.006563236005604267, - 0.022043313831090927, - 0.02964884229004383, - 0.020718570798635483, - 0.04542606323957443, - -0.012712649069726467, - 0.027992064133286476, - -0.060293834656476974, - -0.010645064525306225, - 0.0006022855523042381, - -0.05254095047712326, - 0.03972228616476059, - -0.006589782424271107, - 0.03760077431797981, - -0.037155669182538986, - 0.05023660883307457, - -0.3939833343029022, - 0.03563416749238968, - 0.039533741772174835, - 0.07151036709547043, - 0.03453044220805168, - 0.005801979452371597, - -0.05013931170105934, - 0.004579832311719656, - 0.10217272490262985, - 0.011590470559895039, - 1.772247014741879e-05, - -0.0005406082491390407, - 0.03688344731926918, - -0.0498543307185173, - -0.03253782540559769, - -0.0027226568199694157, - 0.00024133049009833485, - -0.06284932792186737, - -0.03949684649705887, - -0.06988522410392761, - 0.036165762692689896, - -0.04763083904981613, - -0.02718484029173851, - -0.0056443046778440475, - 0.014248833991587162, - 0.024521151557564735, - -0.007872084155678749, - -0.10384054481983185, - -0.006145787891000509, - 0.019295142963528633, - 0.03696832433342934, - 0.0917896181344986, - -0.018736233934760094, - 0.20161156356334686, - -0.0009268919820897281, - 0.01089501567184925, - -0.008230660110712051, - -0.008319639600813389, - 0.08499139547348022, - -0.15459978580474854, - -0.008676906116306782, - -0.022326620295643806, - -0.005019663833081722, - -0.024664415046572685, - -0.015146692283451557, - 0.016327986493706703, - -0.09541454166173935, - 0.01678893342614174, - -0.02365589141845703, - 0.09335928410291672, - 0.0024523024912923574, - -0.02783590741455555, - 0.006691654212772846, - 0.03107723593711853, - -0.038360487669706345, - 0.05301463231444359, - -0.01983034610748291, - -0.011126026511192322, - -0.04660891741514206, - 0.05022618919610977, - 0.038738884031772614, - -0.0012521919561550021, - -0.04091843590140343, - -0.04421068727970123, - 0.012969501316547394, - -0.023878546431660652, - 0.28528881072998047, - -0.016605054959654808, - -0.033539313822984695, - 0.00945315696299076, - -0.011982418596744537, - -0.04558602720499039, - -0.020982490852475166, - -0.005017158109694719, - 0.021010158583521843, - 0.0035167934838682413, - 0.016505150124430656, - 0.00585474306717515, - -0.0023212318774312735, - -0.011074106208980083, - 0.0023378252517431974, - -0.035792622715234756, - -0.0030292649753391743, - 0.005483552813529968, - 0.06150278076529503, - -0.0028666220605373383, - 0.20990855991840363, - 0.021324796602129936, - 0.00011131251812912524, - -0.046527594327926636, - 0.05486075580120087, - 0.015813369303941727, - -0.02372748591005802, - -0.09331268817186356, - 0.03830568119883537, - -0.031794626265764236, - -0.021659230813384056, - 0.024616191163659096, - 0.0341661162674427, - 0.0035692097153514624, - -0.030329767614603043, - -0.0707007423043251, - 0.016688618808984756, - -0.034308865666389465, - 0.01095655933022499, - 0.05676770582795143, - -0.02597980946302414, - 0.019052013754844666, - 0.023281460627913475, - -0.046045929193496704, - -0.0023738574236631393, - 0.023077595978975296, - -0.49001044034957886, - 0.03981652483344078, - 0.006215645000338554, - 0.015983164310455322, - 0.035958681255578995, - -0.004439270123839378, - 0.04333346337080002, - -0.06169712916016579, - 0.00522958068177104, - -0.05327698960900307, - -0.05744248256087303, - -0.05186593532562256, - -0.010612882673740387, - 0.014499894343316555, - -0.047748863697052, - 0.05093442276120186, - 0.007159723900258541, - 0.012037492357194424 - ], - [ - 0.00012107798829674721, - 0.003741492982953787, - -0.0007859424222260714, - 0.001474951975978911, - -0.0029332751873880625, - -0.001585722784511745, - 8.146693289745599e-05, - 0.0031398385763168335, - 0.003405056893825531, - 0.00400224793702364, - -0.0035281688906252384, - 0.001600787159986794, - 0.00030460936250165105, - 0.0010425344808027148, - -0.0017493613995611668, - 0.004102758597582579, - 0.0007455647573806345, - -0.00905748549848795, - -0.0012516082497313619, - 0.0065149241127073765, - -0.013867451809346676, - 0.007485581561923027, - -0.003210206748917699, - -0.0007950105355121195, - 0.0012698635691776872, - -0.004738436080515385, - 0.0057065472938120365, - -0.0011119277914986014, - 0.000760749913752079, - 0.004224336240440607, - -4.736767368740402e-05, - 0.004337290767580271, - 0.001175867859274149, - -0.00025468648527748883, - 0.0006745501304976642, - 0.0032659966964274645, - 1.6754782336647622e-05, - -0.0010365437483415008, - -0.001723051886074245, - -0.0010335901752114296, - 0.00014120122068561614, - -0.0005264738574624062, - -0.0009972277330234647, - 0.0005343492957763374, - 0.003755583893507719, - -0.002384504768997431, - 0.002561721717938781, - -0.0002978163247462362, - 0.003838722128421068, - -3.431293225730769e-05, - -0.003432345110923052, - 0.009524662978947163, - -0.0012405693996697664, - 0.003285907208919525, - -0.00331096607260406, - 0.002844124101102352, - -0.0009912954410538077, - 0.003844659077003598, - -0.009301828220486641, - 0.00046006645425222814, - -0.003409699536859989, - -0.005257909651845694, - 0.001034705201163888, - 0.0024383654817938805, - -0.007756868377327919, - 0.002692541340366006, - -0.008540838025510311, - 0.0017759547336027026, - -0.0003249035216867924, - -0.0013683405704796314, - 0.003110096324235201, - -0.07113245874643326, - 0.007348987739533186, - 0.007798917591571808, - -0.0013089996064081788, - -0.0033439267426729202, - 0.0023424546234309673, - 0.006046717055141926, - -0.0018171397969126701, - 0.0014998727710917592, - 0.002278389409184456, - -0.003979067783802748, - -0.9208002686500549, - -7.934866516734473e-06, - -0.005744102410972118, - 0.0048247212544083595, - 0.002665285486727953, - 0.0029547472950071096, - -0.0025226175785064697, - 0.002704926999285817, - 0.003278873162344098, - 0.0007085106335580349, - 0.0036203747149556875, - 0.0022005445789545774, - 0.0042062923312187195, - 0.004127165302634239, - -0.002378693548962474, - -3.260112862335518e-05, - 0.0028100195340812206, - -0.0036101306322962046, - 0.0046255942434072495, - 0.0010043273214250803, - -0.0009389205952174962, - -0.0007335498812608421, - 0.004052630625665188, - -0.00587094621732831, - -0.0018749255686998367, - 0.005131997168064117, - 0.0020260571036487818, - 0.0005234697018750012, - 0.008496927097439766, - 0.00450900848954916, - 0.001895169960334897, - 0.001167517970316112, - 0.007885099388659, - 0.0065265679731965065, - 0.002191823674365878, - -0.0004625805013347417, - 0.0018657997716218233, - 0.003495144657790661, - -0.004542343318462372, - -0.002482155105099082, - 0.00111481046769768, - 0.0058063180185854435, - -0.006011477671563625, - -0.002947945147752762, - 0.2769709527492523, - 0.005341378506273031, - -0.000543386151548475, - 0.005786477588117123, - 0.00015385729784611613, - 0.003136125160381198, - -0.0015106870559975505, - -0.0008641694439575076, - 0.002777867252007127, - 0.0021461867727339268, - -0.0020975437946617603, - 0.002041114028543234, - -0.003873689565807581, - 0.0022137383930385113, - -0.0011479221284389496, - -0.00045651241089217365, - -0.002196059562265873, - -0.004966329783201218, - 0.0018295269692316651, - -0.010482761077582836, - 0.005949072539806366, - 0.0007485872483812273, - -0.0017859747167676687, - 0.0019152254099026322, - 0.0013981977244839072, - -0.005040415562689304, - -0.0018390630139037967, - -0.010727554559707642, - -0.004661061801016331, - -0.0011551533825695515, - 0.0017004203982651234, - 0.005002317018806934, - -0.0011734437430277467, - 0.2084331065416336, - -0.00015828855975996703, - 2.6291834274161374e-06, - 0.0013180726673454046, - 0.0009379393304698169, - 0.014523851685225964, - 0.09377507865428925, - 0.006159793585538864, - -0.004586805123835802, - 0.0010440341429784894, - 0.002157765906304121, - -0.004492149688303471, - 0.003064407268539071, - -0.007493196055293083, - 0.001805045292712748, - -0.0034224793780595064, - 0.001057285349816084, - -0.0024157848674803972, - 0.00982698891311884, - 0.0015923004830256104, - 0.007964919321238995, - 0.0017627478810027242, - 0.004923482425510883, - 0.0030886325985193253, - -0.001863599056378007, - -0.005964421667158604, - -0.0030619946774095297, - 0.0036295403260737658, - -0.0013994444161653519, - 0.0017895769560709596, - -0.0012351558543741703, - 0.0026511005125939846, - -0.0037095313891768456, - -0.04997711628675461, - -0.009691927582025528, - 0.005604760255664587, - -0.003907476086169481, - -0.0016148926224559546, - 0.003517894074320793, - -0.007924132980406284, - 0.0008543967851437628, - -0.002711318200454116, - -0.004684132058173418, - 0.005873414222151041, - -0.0074500031769275665, - 0.00048274878645315766, - 0.008854630403220654, - -0.00028759968699887395, - -0.006404554005712271, - -0.0013962399680167437, - 0.0001452640863135457, - 0.0007666340679861605, - 0.005715440027415752, - -0.044736891984939575, - 0.0004697245021816343, - -0.00012177992903161794, - 0.000592110154684633, - -0.0038878661580383778, - 0.004707680083811283, - 0.006012304220348597, - -0.011727223172783852, - 0.00206715427339077, - -0.002197681926190853, - -0.0027988003566861153, - 0.0015107558574527502, - 0.000447105267085135, - 0.00010697293328121305, - -0.000472631974844262, - 0.0005549481138586998, - 0.0016795528354123235, - -0.004465997219085693, - 0.004424573853611946, - 0.006195381283760071, - 0.0006609841366298497, - -0.0003473306423984468, - 0.0007680580602027476, - -0.005843017250299454, - -0.005787254776805639, - 0.003389184596017003, - 0.0968976840376854, - 0.0008392026647925377, - 0.002936342731118202, - 2.2623868062510155e-05, - 0.004643115680664778, - -0.005306655075401068, - -0.0006474158144555986, - -0.0028175879269838333, - 0.0005325448582880199, - -0.0009645395912230015, - -0.003951376769691706, - -0.008654843084514141, - -0.006591500714421272, - 0.002012762241065502, - -0.0034866509959101677, - 0.005443846341222525, - -0.004869735334068537, - 0.0013767009368166327 - ], - [ - -2.5671593903098255e-05, - 0.001440121210180223, - -0.0005331740831024945, - 0.0007909842533990741, - -0.0013804951449856162, - 0.00024180897162295878, - -0.00059318303829059, - 0.001170099014416337, - 0.0021951000671833754, - 0.0015836111269891262, - -0.0017967337043955922, - 0.0012595856096595526, - -0.00011512122728163376, - -0.0005205892957746983, - -0.0011672754772007465, - 0.005169435869902372, - -0.00039322185330092907, - -0.0038808437529951334, - -0.0032626930624246597, - 0.0012604460353031754, - -0.008912560530006886, - 0.0041059511713683605, - -0.0016175989294424653, - -0.0005650384118780494, - -0.002091660164296627, - -0.0019127542618662119, - 0.0012531331740319729, - 0.00030212444835342467, - -0.0007589054293930531, - 0.001187133602797985, - 0.0010898387990891933, - 0.0010045981034636497, - -0.00036265235394239426, - -0.001445651170797646, - 0.0010038730688393116, - 0.00047347976942546666, - 0.0024225376546382904, - 0.001168009010143578, - 0.0005537045071832836, - -0.0011752931168302894, - 0.0002327844558749348, - 0.0022271363995969296, - 0.0012504014885053039, - 0.00012922691530548036, - -0.0014387804549187422, - -0.0018973106052726507, - 0.000422622513724491, - -0.0010643056593835354, - 0.0017585890600457788, - 0.0006010008510202169, - -0.0020542333368211985, - 0.00851342361420393, - 0.0007392623811028898, - -0.0002977917902171612, - -0.0016233540372923017, - -0.0015476284315809608, - -0.00044805346988141537, - -0.00064887321786955, - -0.006197685841470957, - 5.019966556574218e-05, - 0.00016114093887154013, - -0.002567092189565301, - 0.00038151341141201556, - 0.002313772914931178, - -0.004879042971879244, - 0.0026945453137159348, - -0.01054469309747219, - 0.0025192194152623415, - -0.0005591271328739822, - -0.0014733814168721437, - -0.001719531137496233, - -0.07316263765096664, - 0.0029662000015378, - 0.004948310554027557, - -0.0003047127102036029, - 0.0013096167240291834, - 0.002259433502331376, - 0.0016138493083417416, - -0.0021100551821291447, - 0.0026067958679050207, - -0.00024500497966073453, - -7.602451660204679e-05, - -0.9181661605834961, - 0.0008310862467624247, - -0.0044398000463843346, - 0.0018186296802014112, - 0.00031851252424530685, - 0.0003001141012646258, - 0.0005321198841556907, - 0.002606147900223732, - 0.0009412860963493586, - 0.001150845200754702, - 0.00588959502056241, - -0.0009183116490021348, - 0.001953842816874385, - 0.0031114229932427406, - -0.00015944582992233336, - -0.0013853084528818727, - 0.003188332775607705, - -0.0011675001587718725, - 0.0020986658055335283, - 0.0011850199662148952, - 0.0007469426491297781, - 0.0025503765791654587, - 0.004487842787057161, - 0.0009012759546749294, - -0.0025633247569203377, - 0.0013851469848304987, - -0.0013751618098467588, - -0.0008649568189866841, - 0.008765258826315403, - 0.004761076066643, - -0.0003253286413382739, - -2.3910628442536108e-05, - 0.0012930914526805282, - 0.004236971959471703, - -0.0014857311034575105, - -0.0001728580828057602, - -7.915179594419897e-05, - 0.00045868742745369673, - -0.0010450429981574416, - -0.0016461950726807117, - -0.0010283892042934895, - 0.002281498396769166, - -0.0036921577993780375, - -0.0009117365698330104, - 0.2822559177875519, - 0.0013124565593898296, - 0.00010878811735892668, - 0.001051086699590087, - 0.00018171976262237877, - 0.003664290299639106, - 0.0006561362533830106, - -0.00039974399260245264, - -0.002977264579385519, - 0.0011803882662206888, - -0.0031000073067843914, - 0.0010989212896674871, - -0.0014902137918397784, - 0.00011457125219749287, - 0.0015397868119180202, - -0.0008542991708964109, - -0.0011941067641600966, - -0.0006302008405327797, - -0.0012329184683039784, - -0.005460018292069435, - 0.0008385367109440267, - 0.0015457543777301908, - -0.0018830070039257407, - 0.0002844739065039903, - -0.0018106575589627028, - -0.006928313989192247, - -0.001565907383337617, - -0.0055133574642241, - -0.001983355963602662, - 0.000755084038246423, - 0.0015485783806070685, - -0.0008784710080362856, - 0.001119052292779088, - 0.20585711300373077, - -0.0006955849239602685, - 0.001168752321973443, - 0.00015873256779741496, - 0.0008882803376764059, - 0.010336748324334621, - 0.09078134596347809, - 0.0013157674111425877, - -0.003910694736987352, - 0.0013478455366566777, - 0.001235928968526423, - -0.004485310520976782, - 0.0013860801700502634, - -0.0023850216530263424, - 0.002029207767918706, - -0.0026987018063664436, - -0.0008456991636194289, - 0.000605700071901083, - 0.0046568685211241245, - 0.0005009256419725716, - 0.00444932421669364, - -0.0009136422304436564, - 0.0017791588325053453, - 0.0005098317633382976, - -0.001015822752378881, - -0.0034714764915406704, - -0.00045393104664981365, - 0.0012485272018238902, - -0.0014583991141989827, - 3.362873394507915e-05, - -0.0003903578908648342, - 0.0007694951491430402, - -0.00046744183055125177, - -0.06007872521877289, - -0.0045165326446294785, - 0.00485833128914237, - -0.0020751231350004673, - 0.0011550597846508026, - 0.0007166084251366556, - -0.0005755899474024773, - 0.0012533741537481546, - -0.0005808254354633391, - -0.0013253038050606847, - 0.003083482151851058, - -0.001594694796949625, - 0.0002088661858579144, - 0.006685309577733278, - -0.0012105860514566302, - -0.0018718861974775791, - 0.00032803788781166077, - 0.0001820330071495846, - 3.7215271731838584e-05, - -0.001200251979753375, - -0.052891284227371216, - 0.0013237567618489265, - -0.0011011348105967045, - -0.0010851830011233687, - -0.0021705632098019123, - -1.8372351178186364e-06, - 0.005013846792280674, - -0.0102144880220294, - 0.00014181467122398317, - 0.0013941446086391807, - -0.0003861821605823934, - -0.00022824241023045033, - 0.00010844155622180551, - 0.00021809342433698475, - -0.00030815202626399696, - 0.0010446006199344993, - 0.0010119409998878837, - -0.0018302911194041371, - 0.0010290649952366948, - 0.004368668422102928, - 0.001388573320582509, - -0.0005573350354097784, - -0.0002014635392697528, - -0.0026079211384058, - -0.0048003732226789, - 0.0012913012178614736, - 0.11521279066801071, - 0.00044988770969212055, - 0.002445772523060441, - 0.0003965448122471571, - -0.0011416113702580333, - -0.003529870882630348, - -0.0009739242377690971, - -0.000415270944358781, - 0.00566233741119504, - 0.0006139515317045152, - -0.0019269807962700725, - -0.0033395104110240936, - -0.000637474877294153, - 0.0007236399687826633, - -0.0011311277048662305, - 0.0016695556696504354, - -0.0017181498697027564, - -0.0006691531743854284 - ], - [ - -0.002185356803238392, - 0.0011717743473127484, - -0.00023100576072465628, - -0.0011737101012840867, - -0.0014552742941305041, - -0.00209267670288682, - 0.0009790527401492, - 5.278625030769035e-05, - -0.0022632405161857605, - 0.003459322266280651, - -0.0005530170165002346, - 0.005845357663929462, - -0.002455760259181261, - -0.001472750212997198, - -0.002017229562625289, - -0.020429056137800217, - 0.0036378169897943735, - -0.0010104742832481861, - -0.0037357378751039505, - 0.0024384520947933197, - -0.009103669784963131, - 0.0008660235907882452, - -0.00277580413967371, - -0.0039803702384233475, - 0.00035008357372134924, - -0.0003696237981785089, - 0.0015898658894002438, - 0.0033267580438405275, - -0.001972706988453865, - 0.004586793947964907, - 0.0017176116816699505, - -0.0002478895476087928, - -5.3871292038820684e-05, - 0.0024571148678660393, - 0.0007754776743240654, - -0.004505238961428404, - 0.0017068502493202686, - -0.006448071915656328, - -0.0021318383514881134, - 0.0012574843131005764, - 0.0002588834904599935, - -0.0026599958073347807, - 0.0009930881205946207, - -0.0025952954310923815, - 0.0009724023402668536, - -0.006162628531455994, - 0.0025239039678126574, - 0.0018426490714773536, - 0.0006521760951727629, - 0.0005046877195127308, - -0.005103591829538345, - 0.008993599563837051, - -0.0002363534877076745, - -0.0018495946424081922, - 0.0014231754466891289, - -0.004657168406993151, - -0.0012138060992583632, - 0.0036070130299776793, - -0.005420748144388199, - -0.00828702375292778, - -0.005375430919229984, - 0.0010434819851070642, - 0.0023168744519352913, - 0.0020605255849659443, - -0.010474653914570808, - 0.0023618272971361876, - -0.014550404623150826, - -0.0002698228054214269, - 0.004797277506440878, - -0.00013545832189265639, - -0.0023444336839020252, - -0.06450971215963364, - 0.006092379335314035, - 0.005427374504506588, - -0.0036650693509727716, - 0.001688679214566946, - 0.00504122581332922, - 0.002067487221211195, - -0.0021213069558143616, - 0.007204142399132252, - -0.0006812666542828083, - -0.00279424199834466, - -0.9248624444007874, - 0.0009012348600663245, - -0.004753478337079287, - -0.0004960594233125448, - 0.006263517774641514, - -0.0007809569360688329, - -0.0013442307244986296, - 0.00104325485881418, - 0.0022093269508332014, - -0.0017057311488315463, - 0.020402221009135246, - -0.0019197690999135375, - 0.0016301145078614354, - 0.007599882315844297, - -0.0026296430733054876, - -0.0010759446304291487, - 0.0034415924455970526, - -0.0016758076380938292, - 0.0038943153340369463, - 0.0038144083227962255, - 0.0077224369160830975, - -0.0012704828986898065, - 0.008476171642541885, - -0.0005422738031484187, - 0.00021014257799834013, - 0.0032589079346507788, - -0.0018096568528562784, - -0.0028574508614838123, - 0.008647512644529343, - 0.004616088699549437, - 0.0026777267921715975, - 0.003687708405777812, - -0.00016934258746914566, - 0.004021096043288708, - 0.00013561923697125167, - -0.004505535122007132, - -0.0002565711038187146, - -0.0002591648371890187, - -0.0009518022416159511, - -0.002089162589982152, - 0.0010695724049583077, - 0.005834548268467188, - -0.005712663289159536, - 0.001247677719220519, - 0.24217337369918823, - 0.0023175703827291727, - -0.0019847240764647722, - 0.0015385397709906101, - 0.0005862405523657799, - 0.004045348148792982, - -0.0009538335143588483, - -0.0015112896217033267, - -0.0027993612457066774, - 0.0010180991375818849, - -0.002500788075849414, - 0.002577914157882333, - -0.004433655645698309, - -0.0030267874244600534, - 0.0006352011114358902, - -0.00365354772657156, - 0.005836864002048969, - -0.006168722175061703, - 0.002526718657463789, - -0.011058839038014412, - 0.0007446699892170727, - -0.001933470950461924, - -0.009138754568994045, - -0.006136941257864237, - -0.0014554158551618457, - -0.01283170748502016, - -0.0028918450698256493, - -0.009146195836365223, - -0.00019122626690659672, - -0.0006009645294398069, - 0.0019829783122986555, - -0.0007084934040904045, - -4.7682620788691565e-05, - 0.23170892894268036, - 0.0039261700585484505, - -0.0037756147794425488, - -0.002005928196012974, - 0.0005399423534981906, - 0.011914562433958054, - 0.0827774927020073, - -0.0016606830758973956, - -0.00408989517018199, - 0.0037688245065510273, - 0.0012282292591407895, - -0.006127606146037579, - -0.002720155753195286, - -0.003594818990677595, - 0.0033984812907874584, - -0.0006079861195757985, - -0.001275591435842216, - -0.0031125079840421677, - -0.00010747279156930745, - 0.00010994700278388336, - 0.0059430887922644615, - -0.004884537775069475, - 0.00327900517731905, - -0.0014816941693425179, - -0.002533255610615015, - -0.0006476991111412644, - 0.0010303251910954714, - -0.0007842443883419037, - 0.00044476482435129583, - -0.00704613421112299, - -0.0005064707365818322, - 0.0003738143714144826, - -1.8212362192571163e-05, - -0.045762281864881516, - -0.00905795767903328, - 0.005787763744592667, - 0.002561761997640133, - -0.004086961038410664, - -0.0017011488089337945, - -0.0011275875149294734, - -0.0003398415574338287, - -0.002723216312006116, - 0.00010272641520714387, - 0.0016735185636207461, - -0.0014525239821523428, - -0.0012494227848947048, - 0.007110296748578548, - 0.0029284616466611624, - -0.0025378309655934572, - -0.0002421852113911882, - 0.0022208464797586203, - -0.004690187051892281, - -0.0030054175294935703, - -0.04747273400425911, - 0.0013518144842237234, - -0.0002464359859004617, - -0.0032771031837910414, - -0.0027420222759246826, - 0.00033137324498966336, - 0.006654812954366207, - -0.013907310552895069, - -0.00016884342767298222, - -0.001726794638670981, - -0.003175982041284442, - 0.002748860279098153, - 0.0011486607836559415, - -0.0026089733000844717, - -0.002153487643226981, - -0.00030763266840949655, - 0.0026035699993371964, - -0.0016955778701230884, - 0.0025098032783716917, - 0.0023025861009955406, - -0.00012510662782005966, - -0.0024870068300515413, - -0.004021110478788614, - -0.003849813947454095, - -0.005201051943004131, - 0.0004873885482084006, - 0.11148757487535477, - -0.0008700116886757314, - 0.00258254655636847, - -0.0030470960773527622, - -0.0004520922957453877, - -0.003903705859556794, - -0.003993520978838205, - 0.001975954743102193, - 0.004341617692261934, - -0.00012365290604066104, - -0.0021283423993736506, - -0.002881858730688691, - -0.0027592701371759176, - -0.0023049619048833847, - 0.00042199771269224584, - 0.0009334911592304707, - -0.005234680604189634, - -0.0009166403324343264 - ], - [ - -0.0361662283539772, - -0.0045678517781198025, - 0.004837649408727884, - -0.03048793040215969, - 0.004961893428117037, - -0.03358688950538635, - 0.010129392147064209, - -0.023084169253706932, - -0.043092723935842514, - 0.011043672449886799, - -0.00618090620264411, - 0.017537016421556473, - -0.007698069326579571, - -0.009790485724806786, - -0.037066251039505005, - -0.3710820972919464, - 0.00545309716835618, - -0.0022313683293759823, - -0.004678701516240835, - 0.028096292167901993, - -0.0021348800510168076, - -0.03193274140357971, - -0.011501716449856758, - 0.0019623988773673773, - 0.01270870678126812, - -0.017938680946826935, - -0.015431424602866173, - 0.008818644098937511, - -0.02342200092971325, - 0.042239949107170105, - 0.023966792970895767, - -0.014022473245859146, - 0.027800364419817924, - 0.012812229804694653, - 0.010155809111893177, - -0.026218364015221596, - 0.0050478591583669186, - -0.04409327730536461, - -0.02619696594774723, - 0.028319833800196648, - -0.004841274581849575, - -0.033824894577264786, - 0.016479119658470154, - -0.02884458191692829, - 0.01644759625196457, - -0.046174049377441406, - -0.012657461687922478, - 0.010867489501833916, - -0.02113654650747776, - -0.0035097443033009768, - -0.02971002832055092, - -0.01793891005218029, - -0.012005500495433807, - -0.009106934070587158, - -0.012656976468861103, - -0.02730582095682621, - -0.009092099964618683, - 0.027239177376031876, - -0.00306315952911973, - -0.0194900743663311, - -0.04792150482535362, - 0.023883530870079994, - 0.006097742822021246, - -0.026888497173786163, - -0.008531367406249046, - 0.00033060237183235586, - -0.05002523586153984, - 0.0162393506616354, - 0.058145590126514435, - 0.006799281109124422, - 0.03483709692955017, - 0.1526060551404953, - 0.06274840235710144, - 0.011655311100184917, - -0.030253877863287926, - -0.025628695264458656, - 0.02516452968120575, - 0.011606195010244846, - -0.01261968445032835, - 0.020263003185391426, - -0.008834903128445148, - -0.019171448424458504, - 0.04060911014676094, - 0.003658193862065673, - 0.014120631851255894, - -0.017701365053653717, - 0.034179724752902985, - 8.564318704884499e-05, - -0.016404977068305016, - -0.018784912303090096, - 0.001119167311117053, - 0.007478103972971439, - 0.2118796557188034, - -0.006341655272990465, - -0.01185871846973896, - 0.017334824427962303, - -0.017000725492835045, - -0.002759254304692149, - 0.011394076980650425, - -0.005521259270608425, - -0.02011946029961109, - 0.047683849930763245, - 0.015234447084367275, - -0.035914622247219086, - 0.08140987902879715, - 0.012782873585820198, - 0.020015280693769455, - -0.012455071322619915, - 0.009287305176258087, - -0.01822911947965622, - 0.002559279091656208, - 0.021702811121940613, - 0.020680710673332214, - 0.018767107278108597, - -0.0197842326015234, - 0.050808146595954895, - 0.0005918758688494563, - -0.04409601539373398, - -0.03209373727440834, - -0.002970498288050294, - 0.00172020448371768, - 0.015572990290820599, - 0.029908178374171257, - 0.005903779063373804, - -0.057905200868844986, - -0.0060547091998159885, - -0.6578793525695801, - 0.007754172198474407, - 0.000781288486905396, - 0.01896488294005394, - 0.01912730000913143, - 0.01047173235565424, - -0.024340614676475525, - -0.022231563925743103, - 0.009974283166229725, - -0.00540637131780386, - 0.0407627709209919, - 0.01531106699258089, - 0.01401787530630827, - -0.01493032742291689, - -0.00437587546184659, - -0.011517827399075031, - 0.02574009820818901, - -0.04435025528073311, - 0.003494519041851163, - -0.040186189115047455, - -0.02506442740559578, - -0.03697548061609268, - -0.0369204618036747, - -0.018351754173636436, - 0.00931128952652216, - -0.03729448840022087, - -0.028263481333851814, - -0.02706768363714218, - -0.008422575891017914, - 0.006783054675906897, - -0.00816989317536354, - 0.029942918568849564, - -0.022395676001906395, - 0.3518086373806, - 0.03221876919269562, - -0.04010142758488655, - 0.009093411266803741, - -0.00826065894216299, - 0.020819777622818947, - -0.19665278494358063, - 0.016742052510380745, - -0.019394930452108383, - 0.006020811386406422, - -0.01930546574294567, - -0.04642295092344284, - -0.022785509005188942, - -0.018697312101721764, - 0.009055768139660358, - -0.00505397655069828, - 0.018666144460439682, - -0.02079376019537449, - -0.023092538118362427, - 0.00017048756126314402, - -0.002314511453732848, - -0.018392344936728477, - 0.01740480586886406, - -0.003851459128782153, - 0.0005159833235666156, - 0.04298818111419678, - 0.015624605119228363, - -0.014924297109246254, - 0.04594864696264267, - -0.07184478640556335, - -0.003166826441884041, - -0.0025310758501291275, - 0.02137489803135395, - 0.2104654759168625, - -0.03975485637784004, - -0.03138526529073715, - 0.04500403627753258, - -0.04950489476323128, - 0.015173950232565403, - -0.021770305931568146, - -0.04815024510025978, - -0.041755594313144684, - -0.009115469641983509, - -0.005241845268756151, - 0.008928359486162663, - 0.009981012903153896, - 0.03706313297152519, - -0.020569559186697006, - -0.007563733961433172, - -0.008942312560975552, - 0.005070450250059366, - -0.01607638970017433, - -0.026907257735729218, - 0.10712914913892746, - 0.005635284818708897, - 0.018033254891633987, - 0.003937701694667339, - -0.0026421586517244577, - -0.007392570376396179, - 0.023825228214263916, - -0.04803772270679474, - 0.0035312562249600887, - -0.007954497821629047, - -0.016770195215940475, - 0.016847893595695496, - 0.013987758196890354, - -0.03327628970146179, - -0.036860253661870956, - -0.0071403044275939465, - 0.011668736115098, - -0.0042139883153140545, - 0.004016158636659384, - -0.010065889917314053, - -0.0035127343144267797, - -0.0094932671636343, - -0.04612307995557785, - -0.012711934745311737, - -0.006335299462080002, - -0.012678134255111217, - -0.02440161071717739, - -0.01740851253271103, - 0.020273908972740173, - -0.022150976583361626, - -0.016991090029478073, - 0.008218620903789997, - 0.0057899802923202515, - -0.0005121621070429683, - -0.000881361193023622, - -0.024575304239988327, - -0.019614478573203087, - 0.032846707850694656, - -0.005633702967315912, - -0.011267040856182575, - 0.03716886788606644, - -0.008944778703153133, - -0.028836775571107864, - 0.0036255898885428905 - ], - [ - -0.00015462689043488353, - 0.0013711382634937763, - -0.000772399187553674, - -8.348593109985813e-05, - -0.0010284496238455176, - 0.000236746491282247, - -0.000588476425036788, - 0.00025571350124664605, - 0.001416377373971045, - 0.0013367856154218316, - -0.0024343098048120737, - 0.0018085965421050787, - 0.0005117884138599038, - -0.000710599881131202, - -0.0009695548214949667, - 0.0022058587055653334, - -0.000528397795278579, - -0.004780556540936232, - -0.002136685885488987, - 0.0022905999794602394, - -0.007909409701824188, - 0.004544465336948633, - -0.0017721637850627303, - -9.782477718545124e-05, - -0.0023434737231582403, - -0.0015036376425996423, - 0.0009883472230285406, - 0.0007247970788739622, - -0.00022660930699203163, - 0.0004589103045873344, - 7.393192208837718e-05, - 0.0009422367438673973, - 0.001166356960311532, - -0.0010892277350649238, - 0.0001347532233921811, - 0.00034331867936998606, - 0.001546278828755021, - 0.0016039126785472035, - -0.000366110703907907, - -0.0012535388814285398, - 0.0006647154805250466, - 0.001402749097906053, - 0.000891815812792629, - 0.00020603892335202545, - -0.0011250392999500036, - -0.0012547102523967624, - -0.0005606379127129912, - -0.0011433211620897055, - 0.0015074070543050766, - 0.0005434394115582108, - -0.001504014595411718, - 0.00835297629237175, - 0.00038978419615887105, - -0.00018561407341621816, - -0.0019883785862475634, - -0.0015025698812678456, - -0.0003751707263290882, - -0.0009495956473983824, - -0.005931788589805365, - -0.0001967196149053052, - 5.0611553888302296e-05, - -0.003522232174873352, - 0.0003323462151456624, - 0.002312751952558756, - -0.004084379877895117, - 0.0028761564753949642, - -0.011134292930364609, - 0.0028254035860300064, - -0.0011532356729730964, - -0.0022340798750519753, - -0.0018807474989444017, - -0.07318875193595886, - 0.0040602427907288074, - 0.004966648295521736, - -0.001192436320707202, - 0.0023490453604608774, - 0.0027171149849891663, - 0.002227989723905921, - -0.0020096248481422663, - 0.0016699032858014107, - -0.0005395998596213758, - 0.0005464345449581742, - -0.9186425805091858, - 0.0003517486620694399, - -0.0040528299286961555, - 0.0015252995071932673, - -0.0006751086912117898, - 0.001185126486234367, - 0.00018609597464092076, - 0.003382692113518715, - 0.0017207581549882889, - 0.0014433908509090543, - 0.009117655456066132, - -6.760453106835485e-05, - 0.0018827553139999509, - 0.0028480857145041227, - -0.0004687364853452891, - -0.0016285560559481382, - 0.0036110614892095327, - -0.0004474935121834278, - 0.0012667933478951454, - 0.0019879196770489216, - 0.0006826553726568818, - 0.0022334177047014236, - 0.004125584848225117, - 0.001246610190719366, - -0.0029633142985403538, - 0.0012888568453490734, - -0.0012453896924853325, - -0.0018056886037811637, - 0.008826619014143944, - 0.004590292926877737, - -0.0005169787909835577, - -0.0005080390255898237, - 0.0014402477536350489, - 0.004655173979699612, - -0.0013062400976195931, - 0.000734069908503443, - 0.0001693650847300887, - 0.0014600257854908705, - -0.00054605130571872, - -0.002031998010352254, - -0.0004664211010094732, - 0.0023830642458051443, - -0.004281498491764069, - -0.0014048279263079166, - 0.2782197594642639, - 0.0011769310804083943, - -0.0003282562829554081, - 0.001506952801719308, - 0.00023536237131338567, - 0.003605207893997431, - 0.0005179861909709871, - 0.0005133731756359339, - -0.003772689262405038, - 0.0007137360516935587, - -0.0023978357203304768, - 0.0007196638616733253, - -0.0013981224037706852, - 0.0008906792500056326, - 0.0013761593727394938, - -0.0008111625793389976, - -0.0016314968233928084, - -0.0015529453521594405, - -0.0005515057709999382, - -0.005510091781616211, - -8.752854228077922e-06, - 0.0009591704583726823, - -0.0018984837224707007, - 0.000714125286322087, - -0.000597284990362823, - -0.0076976646669209, - -0.002236280357465148, - -0.005487117916345596, - -0.0016745595494285226, - 8.665065979585052e-05, - 0.0020810666028410196, - -0.0001002084682113491, - 0.0013378920266404748, - 0.20775605738162994, - -0.0007365033379755914, - 0.0014226235216483474, - -2.3331967895501293e-05, - 0.0003648939309641719, - 0.009298963472247124, - 0.08997949957847595, - 0.002599380910396576, - -0.003644657786935568, - 0.0011895981151610613, - 0.0011554585071280599, - -0.004819969180971384, - 0.0021514156833291054, - -0.0022179745137691498, - 0.002247760770842433, - -0.0023723274935036898, - -0.0008320462075062096, - -0.00022141687804833055, - 0.005397256929427385, - -0.00032978589297272265, - 0.004474131390452385, - -0.00020503351697698236, - 0.002089764690026641, - 0.0008405994740314782, - -0.0007387035875581205, - -0.003614555113017559, - -0.0006463498575612903, - 0.00020168469927739352, - -0.0008167679770849645, - 0.0005580296274274588, - -0.00011021107638953254, - 0.0011881295358762145, - -0.0010671706404536963, - -0.06038324534893036, - -0.004999671597033739, - 0.004466680344194174, - -0.002474096603691578, - 0.0011036064242944121, - 0.0013854255666956306, - -4.045008245157078e-05, - 0.0008456181967630982, - -0.0002559948479756713, - -0.002467847429215908, - 0.0019394002156332135, - -0.0021623217035084963, - 0.000820607936475426, - 0.006971892900764942, - -0.0013183244736865163, - -0.001810830202884972, - 0.00011563162843231112, - -3.754851422854699e-05, - -0.0006183195509947836, - -0.0019391360692679882, - -0.053153060376644135, - 0.0012031999649479985, - -0.0008182355668395758, - -0.0005892410408705473, - -0.0028213143814355135, - 0.00017763719370123, - 0.005054169800132513, - -0.009816992096602917, - -0.0005158218555152416, - 0.0016052678693085909, - -0.00010984173422912136, - 0.00016051444981712848, - -4.739817086374387e-05, - 0.0005245116772130132, - -0.0013601317768916488, - 0.0019497016910463572, - 0.001089549739845097, - -0.0004564793489407748, - 0.0006626596441492438, - 0.0033825126010924578, - 0.0016485274536535144, - -0.000855914200656116, - -0.0006912179524078965, - -0.0025873214472085238, - -0.005062695126980543, - 0.0014113341458141804, - 0.11791463196277618, - -0.0004723857273347676, - 0.0012433911906555295, - 0.0007619595271535218, - -0.0012647565454244614, - -0.003294793190434575, - -0.0015300394734367728, - -0.0005786893889307976, - 0.005899027455598116, - 0.0009689903235994279, - -0.0011773204896599054, - -0.002287434646859765, - -0.0008056019432842731, - 2.573729943833314e-06, - -0.0017126740422099829, - 0.0015695620095357299, - -0.002046265872195363, - -0.0006473285029642284 - ] - ] - ], - "dims": [ - 1, - 50, - 256 - ], - "type": "float32" - }, - "style_dp": { - "data": [ - [ - [ - -0.8202834725379944, - 0.011500589549541473, - 0.08462683856487274, - 0.12635065615177155, - 0.009539642371237278, - 0.5116503834724426, - 0.040751587599515915, - -0.0016393393743783236, - -0.11962009221315384, - 0.06177718564867973, - 0.08003798872232437, - 0.0878518670797348, - -0.08676924556493759, - -0.021352414041757584, - 0.009944112971425056, - -0.0017431851010769606 - ], - [ - -0.8317509889602661, - 0.009203474037349224, - 0.040284138172864914, - 0.12227584421634674, - 0.005602988414466381, - 0.5054015517234802, - 0.04356657713651657, - -0.004588752519339323, - -0.11039077490568161, - 0.04151800274848938, - 0.059264618903398514, - 0.09473785012960434, - -0.08603329956531525, - -0.01685282215476036, - 0.008134164847433567, - -0.0009602396166883409 - ], - [ - -0.873239278793335, - 0.0006525980425067246, - -0.013699447736144066, - 0.026889730244874954, - -0.009289685636758804, - 0.47585153579711914, - 0.019332455471158028, - 0.0031504682265222073, - -0.047421894967556, - 0.02162937819957733, - 0.05705616995692253, - 0.02063917927443981, - -0.055747393518686295, - -0.010999249294400215, - -0.002088103909045458, - -0.0024940702132880688 - ], - [ - -0.8347140550613403, - 0.009318617172539234, - 0.011357673443853855, - 0.09504864364862442, - 0.00145407160744071, - 0.5127142071723938, - 0.038393136113882065, - 0.002723970217630267, - -0.09240561723709106, - 0.06311424821615219, - 0.07143515348434448, - 0.07529984414577484, - -0.0773327425122261, - -0.01677953265607357, - 0.008839508518576622, - -0.0027719999197870493 - ], - [ - -0.8171514272689819, - 0.013019323348999023, - 0.17751900851726532, - 0.16330678761005402, - 0.023428967222571373, - 0.4984290301799774, - 0.019558243453502655, - -0.011670548468828201, - -0.10047193616628647, - 0.015544342808425426, - 0.07310392707586288, - 0.04355821758508682, - -0.0797586590051651, - -0.02089034393429756, - 0.005868277046829462, - -0.0017156882677227259 - ], - [ - -0.8343601822853088, - 0.008246537297964096, - 0.030077431350946426, - 0.11469043046236038, - 0.0026604572776705027, - 0.5028517842292786, - 0.04343036934733391, - -0.0037873645778745413, - -0.11025998741388321, - 0.03993329405784607, - 0.06255457550287247, - 0.09335412085056305, - -0.0907539427280426, - -0.016413824632763863, - 0.007916009053587914, - -0.0008342523360624909 - ], - [ - -0.8693386912345886, - -0.006062895059585571, - -0.1381397545337677, - -0.009405829012393951, - -0.03090645559132099, - 0.4607027471065521, - 0.035395801067352295, - 0.00708041712641716, - -0.044579461216926575, - 0.03085772879421711, - 0.03517219424247742, - 0.0549408495426178, - -0.05750710889697075, - -0.005897685885429382, - -0.0004375931166578084, - -0.000327977875713259 - ], - [ - -0.8516529202461243, - 0.0027814707718789577, - -0.0662628784775734, - 0.054662637412548065, - -0.013433177024126053, - 0.49465349316596985, - 0.04149271920323372, - 0.004765657242387533, - -0.07367722690105438, - 0.04891565069556236, - 0.042103905230760574, - 0.08299331367015839, - -0.06369177997112274, - -0.011308789253234863, - 0.004921709652990103, - -0.0018752076430246234 - ] - ] - ], - "dims": [ - 1, - 8, - 16 - ], - "type": "float32" - }, - "metadata": { - "source_file": "M1.wav", - "source_sample_rate": 44100, - "target_sample_rate": 44100, - "extracted_at": "2025-11-18T17:05:36.268110" - } -} \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/M2.json b/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/M2.json deleted file mode 100644 index a38b1a1..0000000 --- a/Cs_HMI/SubProject/SuperTonic/assets/voice_styles/M2.json +++ /dev/null @@ -1,13076 +0,0 @@ -{ - "style_ttl": { - "data": [ - [ - [ - -0.00942548830062151, - 0.02289162576198578, - 0.035090576857328415, - -0.04745294153690338, - 0.009196635335683823, - 0.0025717751123011112, - 0.05201754346489906, - -0.05044484883546829, - -0.008183698169887066, - 0.0005912897759117186, - -0.053681790828704834, - 0.07663456350564957, - -0.0813320204615593, - -0.018914900720119476, - -0.029351994395256042, - -0.06733527034521103, - -0.023074163123965263, - -0.06508318334817886, - -0.01339118555188179, - 0.08960475027561188, - -0.09405749291181564, - 0.012055834755301476, - -0.020571617409586906, - -0.051688242703676224, - 0.06490477174520493, - -0.04627183452248573, - -0.000761035829782486, - 0.02144177444279194, - 0.034004293382167816, - -0.016396960243582726, - 0.0011202854802832007, - -0.04227418825030327, - -0.003930628765374422, - 0.0644146278500557, - -0.027379751205444336, - -0.003724411129951477, - -0.04030952602624893, - -0.1081453263759613, - 0.017239106819033623, - 0.04555392265319824, - 0.05259746313095093, - -0.013751822523772717, - -0.016492588445544243, - -0.005091085098683834, - 0.05530214309692383, - -0.12715663015842438, - -0.021419523283839226, - -0.008194043301045895, - 0.0022627415601164103, - 0.027622193098068237, - -0.03166564181447029, - -0.04761046543717384, - -0.008718213066458702, - 0.014179176650941372, - 0.05929858237504959, - -0.031799767166376114, - -0.008195174857974052, - 0.1264009177684784, - -0.004873005207628012, - -0.02384444884955883, - -0.04949318990111351, - -0.027662385255098343, - -0.004793880973011255, - -0.0009623447549529374, - -0.01660432107746601, - 0.02082570269703865, - -0.00188169302418828, - -0.02889999933540821, - -0.011548038572072983, - -0.015698140487074852, - 0.07690680027008057, - 0.19349904358386993, - 0.04148538038134575, - 0.0030899608973413706, - 0.0007422792259603739, - 0.01353514939546585, - -0.01732548326253891, - 0.01910652220249176, - -0.020745307207107544, - -0.03533460572361946, - -0.01155790127813816, - -0.002876042388379574, - 0.083879254758358, - -0.006276494357734919, - -0.008030613884329796, - -0.030585505068302155, - 0.08464770764112473, - 0.031134624034166336, - -0.02917325124144554, - 0.05221002176403999, - 0.036230552941560745, - -0.047554854303598404, - -0.02913062460720539, - 0.0285826213657856, - -0.03685726597905159, - 0.008017596788704395, - -0.06177932396531105, - 0.003284945385530591, - 0.040498923510313034, - -0.04157174378633499, - 0.016787827014923096, - 0.013611202128231525, - -0.002424713922664523, - -0.05732286721467972, - -0.004744530189782381, - -0.04435427486896515, - 0.034856636077165604, - 0.03024319000542164, - -0.02002381719648838, - -0.017612623050808907, - -0.07953471690416336, - 0.00693344185128808, - 0.020023448392748833, - 0.02317897416651249, - 0.05725816637277603, - -0.04920666664838791, - -0.0007406070362776518, - -0.025997240096330643, - -0.033804766833782196, - 0.031155098229646683, - -0.0058577777817845345, - 0.02144290879368782, - -0.024851368740200996, - 0.030189232900738716, - -0.06998120248317719, - 0.008446685038506985, - -0.43609192967414856, - 0.05260360240936279, - -0.029732288792729378, - 0.02944057248532772, - 0.008067782036960125, - -0.0035989454481750727, - -0.03974459320306778, - 0.045488886535167694, - 0.118363156914711, - 0.022044306620955467, - 0.07861167192459106, - 0.008441491052508354, - -0.002726661041378975, - -0.01887715421617031, - -0.021961884573101997, - 0.024389095604419708, - 0.03301504999399185, - -0.06535646319389343, - 0.02925555408000946, - -0.08900388330221176, - -0.007272608112543821, - -0.0623360201716423, - -0.02118614688515663, - -0.013441074639558792, - 0.027594322338700294, - -0.005786914844065905, - -0.03170294314622879, - -0.05580984055995941, - -0.00010376665886724368, - -0.0036043543368577957, - 0.04670548066496849, - 0.04584668204188347, - 0.003017920535057783, - 0.2280733734369278, - -0.03366609290242195, - -0.01066682394593954, - -0.026676302775740623, - -0.034062374383211136, - 0.10277087986469269, - -0.18313665688037872, - -0.007482525892555714, - 0.011381563730537891, - 0.055937740951776505, - 0.005073177628219128, - -0.02453409507870674, - -0.04066938906908035, - -0.0813828855752945, - 0.018913377076387405, - -0.006378237158060074, - 0.06337904930114746, - -0.0388251431286335, - -0.06431856006383896, - 0.003175636287778616, - -0.05011117830872536, - -0.07019589096307755, - 0.03491784259676933, - 0.005738298408687115, - -0.03723669424653053, - 0.07380963116884232, - 0.030346140265464783, - 0.005863979458808899, - 0.011225084774196148, - -0.057521648705005646, - 0.005087324418127537, - 0.025036398321390152, - -0.04804997518658638, - 0.2827107608318329, - 0.010982156731188297, - 2.9425389584503137e-05, - 0.013737862929701805, - -0.03201945126056671, - 0.012960211373865604, - -0.02686319500207901, - -0.027499699965119362, - -0.010935266502201557, - 0.01778240315616131, - -0.025596681982278824, - -0.017159786075353622, - 0.019410116598010063, - -0.006044373847544193, - 0.00210213428363204, - 0.002557593397796154, - -0.0004249476478435099, - 0.030900996178388596, - 0.0028766770847141743, - -0.036620646715164185, - 0.20063665509223938, - 0.06573629379272461, - 0.01878122240304947, - -0.02171611785888672, - 0.008379561826586723, - 0.04848679527640343, - -0.058506034314632416, - -0.033683352172374725, - 0.020163632929325104, - -0.026132911443710327, - -0.013593682087957859, - 0.03898729756474495, - 0.017818141728639603, - 0.01821482554078102, - -0.03256216645240784, - -0.06650719046592712, - -0.01006289478391409, - -0.00304444320499897, - 0.01331805344671011, - 0.0007069003186188638, - -0.030875371769070625, - -0.012521826662123203, - -0.021621227264404297, - -0.046861182898283005, - -0.03093571402132511, - 0.015907926484942436, - -0.42858466506004333, - 0.01007105689495802, - 0.007759286090731621, - -0.00409900164231658, - 0.031464457511901855, - -0.004109085071831942, - 0.03425927087664604, - -0.039089009165763855, - 0.02348719723522663, - -0.06801875680685043, - 0.02132430672645569, - -0.03273392841219902, - -0.04807611182332039, - -0.013391310349106789, - -0.039807677268981934, - -0.01988607831299305, - 0.020327216014266014, - 0.03905903548002243 - ], - [ - -0.01197811495512724, - 0.0355730764567852, - 0.00755379069596529, - -0.016859175637364388, - 0.015423615463078022, - 0.017518935725092888, - 0.011952394619584084, - -0.04005158320069313, - 0.009443055838346481, - 0.00897200033068657, - -0.010292273946106434, - 0.015376432798802853, - -0.060572218149900436, - 0.022772539407014847, - -0.039435796439647675, - -0.2822515070438385, - -0.014418142847716808, - -0.010767226107418537, - -0.04350019246339798, - 0.034449536353349686, - -0.026697471737861633, - -0.005260544829070568, - -0.032496098428964615, - -0.027764789760112762, - 0.022039208561182022, - -0.016709189862012863, - 0.017361802980303764, - -0.02373754046857357, - 2.347410008951556e-05, - -0.0018567867809906602, - 0.03752204403281212, - 0.0004693538066931069, - 0.00425966689363122, - 0.028759829699993134, - -0.009521033614873886, - -0.009487304836511612, - -0.015309520065784454, - -0.05766028165817261, - 0.0016563883982598782, - -0.005643565207719803, - 0.01778700202703476, - 0.010136947967112064, - 0.020482970401644707, - -0.0027666741516441107, - 0.0056328922510147095, - -0.10235034674406052, - -0.03507326543331146, - 0.021107155829668045, - 0.02522497996687889, - 0.018865469843149185, - -0.01969778724014759, - -0.023268798366189003, - 0.011467665433883667, - 0.0030881892889738083, - 0.0028616078197956085, - -0.04434940963983536, - 0.004273416008800268, - 0.015230107121169567, - -0.0001787010405678302, - -0.02972879633307457, - -0.0031201622914522886, - 0.009533796459436417, - -0.016246169805526733, - -0.013351263478398323, - 0.016073521226644516, - 0.01146657858043909, - -0.03456565737724304, - -0.021147005259990692, - 0.002215985907241702, - -0.02305852435529232, - 0.02958950772881508, - 0.10360535234212875, - 0.04430220276117325, - 0.04751927778124809, - 0.005460825748741627, - 0.023414045572280884, - 0.018824920058250427, - 0.017013223841786385, - -0.024785764515399933, - -0.001735545345582068, - -0.022763676941394806, - -0.021744398400187492, - -0.5434718728065491, - 0.02904966101050377, - 0.0003026050399057567, - -0.030594734475016594, - 0.018101859837770462, - 0.014282268472015858, - -0.010216622613370419, - 0.008406319655478, - -0.0010639523388817906, - 0.01976250298321247, - 0.1698685586452484, - 0.01410149596631527, - 0.0041625467129051685, - -0.01653318665921688, - -0.005689914803951979, - -0.008299554698169231, - 0.015795225277543068, - -0.013520151376724243, - -0.01317408587783575, - 0.017151974141597748, - -0.0037285585422068834, - -0.05069930478930473, - 0.0480712465941906, - -0.00660339929163456, - 0.026874711737036705, - 0.019094193354249, - -0.015919582918286324, - -0.03171847388148308, - -0.019923590123653412, - 0.05714907869696617, - 0.0080270329490304, - 0.003559691132977605, - -0.017286580055952072, - 0.03156155347824097, - -0.010287174955010414, - -0.009838205762207508, - -0.029958665370941162, - -0.018999608233571053, - 0.01805010251700878, - 0.02767784707248211, - -0.012877105735242367, - -0.012164916843175888, - -0.07212226837873459, - -0.03249811753630638, - -0.3878510296344757, - 0.04384424909949303, - -0.02040313184261322, - 0.01603458635509014, - 0.01364812906831503, - -0.017029589042067528, - 0.008167402818799019, - 0.009144730865955353, - 0.06845416128635406, - 0.013755964115262032, - 0.05932237580418587, - 0.014064792543649673, - 0.03694341331720352, - -0.009678789414465427, - 0.015061045996844769, - 0.023080039769411087, - 0.001214103656820953, - -0.00823287945240736, - 0.022190846502780914, - -0.03320499509572983, - -0.02712647244334221, - -0.042602334171533585, - -0.026507601141929626, - 0.00521803880110383, - 0.008650215342640877, - -0.030140751972794533, - -0.023085694760084152, - -0.0330825075507164, - 0.0049403938464820385, - 0.01861795037984848, - 0.01074845902621746, - -0.012418446131050587, - -0.006334925536066294, - 0.44640663266181946, - 0.021340372040867805, - -0.02719494141638279, - 0.002021307125687599, - -0.0159897617995739, - 0.05146682634949684, - -0.12944601476192474, - 0.00019493413856253028, - -0.0038273409008979797, - 0.042797643691301346, - -0.01846899837255478, - -0.039568882435560226, - -0.04105507954955101, - -0.03152453526854515, - 0.02682402729988098, - -0.04022723436355591, - -0.020100075751543045, - -0.039037276059389114, - -0.08778608590364456, - 0.012044655159115791, - -0.02826450578868389, - -0.04375530406832695, - 0.01458271499723196, - -0.02454262226819992, - -0.010625208728015423, - 0.1124802976846695, - 0.04329584911465645, - 0.004566939081996679, - 0.006620317697525024, - -0.04194488003849983, - 0.008149756118655205, - -0.01071568951010704, - 0.015431717038154602, - 0.18191532790660858, - -0.011820740066468716, - 0.021676303818821907, - 0.030043670907616615, - 0.010375129990279675, - 0.00963814090937376, - 0.01688471995294094, - -0.012076436541974545, - -0.015292045660316944, - 0.021170323714613914, - -0.0023904775734990835, - 0.021919749677181244, - 0.010627527721226215, - 0.0398753397166729, - -0.04898229241371155, - 0.022119900211691856, - -0.004252322483807802, - -0.007704467512667179, - -0.022985652089118958, - -0.03171670809388161, - 0.11025325208902359, - 0.0175138209015131, - 0.010795786045491695, - -0.019542448222637177, - -0.003067959798499942, - 0.029853828251361847, - -0.014171285554766655, - -0.04751467704772949, - 0.0029769157990813255, - -0.0015595630975440145, - 4.554203769657761e-05, - 0.01407389435917139, - 0.005068592727184296, - -0.005709616933017969, - -0.023866264149546623, - -0.03096986934542656, - -0.01301118265837431, - 0.005209901835769415, - 0.01315009780228138, - -0.017822012305259705, - 0.002333518583327532, - -0.00933356024324894, - -0.03817566856741905, - -0.006258899811655283, - -0.020825188606977463, - -0.007568604312837124, - -0.01279747486114502, - 0.011001717299222946, - 0.025077994912862778, - 0.00021308378200046718, - -0.021525446325540543, - 0.009301268495619297, - 0.006695827003568411, - -0.005686857737600803, - 0.015893524512648582, - -0.051890190690755844, - 0.025998786091804504, - 0.01330084539949894, - -0.052300866693258286, - 0.03412934020161629, - 0.020885849371552467, - -0.011238430626690388, - -0.004385083913803101, - 0.03595290705561638 - ], - [ - -0.014526888728141785, - 0.030960187315940857, - 0.0019446954829618335, - 0.010875633917748928, - 0.013399799354374409, - 0.01788744330406189, - 0.022073201835155487, - -0.024889908730983734, - 0.0148184048011899, - -0.012597005814313889, - -0.0007308332715183496, - 0.036758773028850555, - -0.045934081077575684, - 0.013607809320092201, - -0.021150195971131325, - -0.3115364909172058, - -0.019271254539489746, - -0.049047499895095825, - -0.02850784920156002, - 0.014837385155260563, - -0.0489986278116703, - -0.016303731128573418, - -0.03547701612114906, - -0.0472925528883934, - 0.038010984659194946, - -0.017774928361177444, - 0.045504216104745865, - -0.007827331312000751, - -0.006230272818356752, - -0.016504118219017982, - 0.005643995013087988, - -0.024238064885139465, - 0.0010593694169074297, - 0.04079187661409378, - 0.0160372331738472, - -0.04030667617917061, - -0.0020978660322725773, - -0.07480639964342117, - 0.001203875057399273, - -0.011680055409669876, - 0.028914624825119972, - 0.010260221548378468, - 0.0021224000956863165, - 0.0070082275196909904, - 0.020414428785443306, - -0.12278442084789276, - -0.0011032044421881437, - 0.02556278370320797, - 0.02263084426522255, - 0.03679616004228592, - -0.013268833979964256, - -0.0011544463923200965, - 0.008897775784134865, - -0.005848912056535482, - 0.005951710510998964, - -0.04051176458597183, - 0.009834962897002697, - 0.044673338532447815, - 0.03734147548675537, - -0.0375555120408535, - -0.010050982236862183, - 0.03292316943407059, - -0.02185647189617157, - -0.02301039546728134, - -0.009493475779891014, - 0.01780746318399906, - -0.016514187678694725, - -0.009097158908843994, - 0.0076346672140061855, - -0.00575178861618042, - 0.016107002273201942, - 0.15185455977916718, - 0.0327424593269825, - 0.06152431666851044, - 0.005962266121059656, - -0.024603940546512604, - 0.022381016984581947, - 0.02349378727376461, - -0.010819729417562485, - -0.02345399744808674, - 0.010481507517397404, - -0.009207849390804768, - -0.09230008721351624, - 0.030454792082309723, - -0.02541058324277401, - -0.0376143604516983, - 0.031224418431520462, - 0.011414662003517151, - -0.04086478799581528, - 0.006385359447449446, - 0.011997679248452187, - -0.0015907679917290807, - 0.15669560432434082, - 0.03896821290254593, - -0.009768806397914886, - 0.0091630220413208, - -0.03542365878820419, - -0.0054584383033216, - -0.007246917579323053, - -0.03538854047656059, - 0.01647178828716278, - -0.0016131633892655373, - 0.016093643382191658, - -0.06677084416151047, - 0.03586744889616966, - -0.026353761553764343, - 0.030955040827393532, - 0.015873396769165993, - -0.018773730844259262, - -0.020321033895015717, - 0.0006689197616651654, - 0.04667625203728676, - 0.01801755279302597, - 0.009238180704414845, - -0.02370869182050228, - 0.006139905657619238, - 0.007402797695249319, - -0.020529359579086304, - -0.029142992570996284, - 0.015247603878378868, - 0.001891307532787323, - -0.0015174525324255228, - -0.008936312980949879, - 0.003377815242856741, - -0.0727899894118309, - -0.015536943450570107, - -0.5989077091217041, - 0.06446851789951324, - -0.01986272633075714, - 0.029660634696483612, - 0.0136404475197196, - -0.06693106144666672, - 0.00862271711230278, - 0.005789299961179495, - 0.09209597855806351, - 0.037826668471097946, - 0.027274927124381065, - 0.013970249332487583, - 0.015506654977798462, - -0.03212098404765129, - 0.005629677791148424, - 0.029819782823324203, - 0.004914945922791958, - -0.03369569405913353, - 0.0224880613386631, - -0.0485563725233078, - -0.010475669987499714, - -0.043265748769044876, - -0.048692431300878525, - -0.01915755122900009, - 0.005331657826900482, - -0.02568177878856659, - -0.0077089834958314896, - -0.05401977151632309, - 0.011666215024888515, - 0.025207174941897392, - 0.020419836044311523, - -0.011477633379399776, - -0.004230836872011423, - 0.37371453642845154, - 0.015965882688760757, - -0.02601548656821251, - -0.02104177139699459, - -0.0014600192662328482, - 0.07535649091005325, - -0.1736351102590561, - -0.024118809029459953, - -0.010360020212829113, - 0.03629768639802933, - 0.012778758071362972, - -0.01606491580605507, - -0.08286010473966599, - -0.0365634560585022, - 0.0006167921237647533, - -0.041652970016002655, - -0.0020378585904836655, - -0.04888010397553444, - -0.09609783440828323, - 0.011572107672691345, - -0.01772521249949932, - -0.0722760409116745, - 0.0368826687335968, - -0.015434447675943375, - -0.010570324957370758, - 0.12612366676330566, - 0.037885941565036774, - -0.0017978900577872992, - -0.012724965810775757, - -0.03681499883532524, - -0.01209939830005169, - 0.0005287457024678588, - -0.00563568202778697, - 0.22621384263038635, - -0.018502390012145042, - 0.055395469069480896, - 0.033889833837747574, - -0.01784672960639, - -0.0010488901752978563, - -0.014347739517688751, - -0.02156580425798893, - -0.0035137233790010214, - 0.028244908899068832, - 0.00329980137757957, - 0.013858167454600334, - 0.018057728186249733, - 0.022004295140504837, - -0.038305893540382385, - 0.018967507407069206, - 0.007693779654800892, - 0.015910986810922623, - -0.01998295821249485, - -0.009590608067810535, - 0.14359866082668304, - 0.029974739998579025, - -0.010503231547772884, - -0.022474609315395355, - 0.016946109011769295, - 0.02182474546134472, - -0.03266916796565056, - -0.06926340609788895, - 0.011700748465955257, - -0.037750665098428726, - -0.007628325838595629, - 0.004475938621908426, - 0.021095016971230507, - 0.00905376672744751, - -0.00036483840085566044, - -0.028539976105093956, - -0.013458446599543095, - 0.02419951930642128, - 0.028569819405674934, - -0.04647061601281166, - 0.022188184782862663, - -0.00633221073076129, - -0.04967307299375534, - -0.020766548812389374, - -0.0069550867192447186, - -0.012971440330147743, - -0.1249951645731926, - 0.01692073792219162, - 0.027208421379327774, - -0.005692150443792343, - -0.02481348253786564, - 0.006219415459781885, - -0.0017974413931369781, - 0.001501452992670238, - 0.007201971486210823, - -0.04436945170164108, - 0.01770530268549919, - 0.004813863430172205, - -0.0638650506734848, - 0.029268767684698105, - -0.0003238385252188891, - -0.011962614953517914, - -0.019856581464409828, - 0.027312494814395905 - ], - [ - -0.01973338983952999, - 0.011479150503873825, - 0.026187414303421974, - 0.023946208879351616, - 0.008928017690777779, - -0.0019003323977813125, - 0.009719369001686573, - -0.012682294473052025, - 0.00928711798042059, - -0.023762736469507217, - 0.008532571606338024, - 0.03397582843899727, - -0.02979157119989395, - 0.03802879899740219, - -0.015133026987314224, - -0.31399399042129517, - -0.010059441439807415, - -0.03228506073355675, - -0.019000457599759102, - 0.0074512832798063755, - -0.04516704007983208, - -0.013230896554887295, - -0.028149578720331192, - -0.03453245386481285, - 0.03524404764175415, - -0.013327760621905327, - 0.04477819427847862, - -0.014225863851606846, - -0.01436307467520237, - 0.00931115448474884, - 0.01908085308969021, - -0.04962554946541786, - 0.010588975623250008, - 0.04026149585843086, - 0.031023697927594185, - -0.055204685777425766, - 0.00711685698479414, - -0.05384194478392601, - -0.011886075139045715, - -0.006875479593873024, - 0.012272514402866364, - 0.01780829392373562, - -0.00021941750310361385, - 0.007119438145309687, - -0.007342396769672632, - -0.11036542057991028, - 0.014108601957559586, - 0.024033213034272194, - 0.020129498094320297, - 0.019293509423732758, - -0.005515244323760271, - 0.014400310814380646, - 0.008111752569675446, - -0.0028962804935872555, - 0.004894247278571129, - -0.0347626656293869, - 0.0014403806999325752, - 0.03148066997528076, - 0.05552586540579796, - -0.024251224473118782, - -0.01194170955568552, - 0.03685883432626724, - -0.028580090031027794, - -0.029317473992705345, - -0.01903521455824375, - 0.026395581662654877, - -0.02689771167933941, - -0.00465530576184392, - -0.000789342331700027, - 0.00204288586974144, - 0.01753125712275505, - 0.15395228564739227, - 0.031981583684682846, - 0.07939229160547256, - 0.011005249805748463, - -0.00878715980798006, - 0.017041733488440514, - -0.010129411704838276, - 0.00016182266699615866, - -0.022723080590367317, - 0.015313293784856796, - -0.0136214355006814, - 0.16400986909866333, - 0.006698069628328085, - -0.01335853524506092, - -0.03439176455140114, - -0.006743141915649176, - -0.00785190612077713, - -0.047945424914360046, - -0.009818032383918762, - 0.0037725623697042465, - 0.006868340075016022, - 0.17232081294059753, - 0.05406346544623375, - -0.0235268697142601, - 0.015966475009918213, - -0.0337483286857605, - -0.003080685157328844, - -0.009458725340664387, - -0.029681062325835228, - 0.037137966603040695, - -0.02036960981786251, - 0.0031226545106619596, - -0.058250561356544495, - 0.028967605903744698, - -0.026216719299554825, - 0.035265300422906876, - 0.006843434181064367, - -0.014904329553246498, - -0.01606547273695469, - 0.002662625163793564, - 0.0451107881963253, - 0.019858548417687416, - 0.003283220576122403, - -0.040241047739982605, - 0.010652794502675533, - 0.012916096486151218, - -0.019446104764938354, - -0.030722541734576225, - -0.0020282117184251547, - 0.017363160848617554, - -0.0117015540599823, - -0.0020062956027686596, - -0.0007082734373398125, - -0.06401453167200089, - -0.008262419141829014, - -0.6353921294212341, - 0.06176893413066864, - -0.011774171143770218, - 0.024413449689745903, - 0.00428863987326622, - -0.060545310378074646, - 0.00698008993640542, - -0.015853002667427063, - 0.06082649156451225, - 0.03522947430610657, - 0.014778081327676773, - 0.014426478184759617, - 0.034516964107751846, - -0.04404972493648529, - 0.012619617395102978, - 0.02424841746687889, - -0.005481106694787741, - -0.019905129447579384, - 0.014504254795610905, - -0.03407828509807587, - -0.018589144572615623, - -0.05821261182427406, - -0.045259423553943634, - -0.03446773812174797, - -0.0028430521488189697, - -0.0304318368434906, - -0.004909519571810961, - -0.03939354047179222, - 0.017917167395353317, - 0.036376334726810455, - 0.01755325309932232, - -0.00964394211769104, - 0.014425071887671947, - 0.3017042875289917, - 0.0085034454241395, - -0.024371780455112457, - -0.03323911130428314, - -0.009061761200428009, - 0.0895610824227333, - -0.18170876801013947, - -0.042737312614917755, - -0.009195707738399506, - 0.022285472601652145, - 0.029338199645280838, - -0.025466660037636757, - -0.09882603585720062, - -0.023484155535697937, - 0.011239277198910713, - -0.021730627864599228, - -0.019354959949851036, - -0.04723118618130684, - -0.09545935690402985, - 0.019380925223231316, - -0.027283933013677597, - -0.06857147067785263, - 0.004161190707236528, - -0.0067831058986485004, - -0.009566633962094784, - 0.1176767572760582, - 0.025244995951652527, - 0.003409111173823476, - -0.021051080897450447, - -0.02353506349027157, - -0.014859807677567005, - -0.0046821171417832375, - 0.005359179340302944, - 0.21130989491939545, - -0.022753505036234856, - 0.06235707178711891, - 0.02622182108461857, - -0.02572888694703579, - -0.015107435174286366, - 0.006488402374088764, - -0.02985856495797634, - 0.015422978438436985, - 0.04270164296030998, - 0.00838328804820776, - 0.028721682727336884, - 0.006750646512955427, - 0.030156683176755905, - -0.03722119331359863, - 0.017140842974185944, - 0.014203106984496117, - 0.02672112174332142, - 0.003746494883671403, - -0.017859118059277534, - 0.12936075031757355, - 0.017863087356090546, - -0.01077220868319273, - -0.01832553558051586, - 0.023436786606907845, - 0.015557977370917797, - -0.03624740242958069, - -0.07199402153491974, - -0.003665533382445574, - -0.03456636145710945, - 0.0044251843355596066, - 0.004046387039124966, - 0.023853419348597527, - 0.010461525060236454, - 0.004023150075227022, - -0.03056028112769127, - -0.008208252489566803, - 0.03180357441306114, - 0.015203754417598248, - -0.019400376826524734, - 0.02406245842576027, - -0.0031356438994407654, - -0.062070541083812714, - -0.006999017205089331, - 0.014082786627113819, - -0.01589544676244259, - -0.11029689013957977, - 0.016148967668414116, - -0.0011809241259470582, - -0.012210574932396412, - -0.03627217933535576, - 0.005703569855540991, - -0.004752197302877903, - 0.005849157925695181, - 0.00967712327837944, - -0.03375386446714401, - 0.01381176058202982, - 0.0064284042455255985, - -0.05262143909931183, - 0.02554614655673504, - 0.005255210679024458, - -0.017363393679261208, - -0.012254326604306698, - 0.024627339094877243 - ], - [ - 0.0032776719890534878, - 0.0026690808590501547, - 0.022665973752737045, - 0.0157454926520586, - 0.007771104108542204, - 0.020243635401129723, - 0.008025160990655422, - 0.01793786510825157, - 0.032454393804073334, - 0.008375625126063824, - 0.0015026567270979285, - -0.021016644313931465, - -0.04866129904985428, - 0.012811416760087013, - -0.05552305281162262, - -0.001145757152698934, - -0.015082341618835926, - -0.06266315281391144, - -0.06995580345392227, - 0.019579948857426643, - -0.17509639263153076, - 0.017148137092590332, - -0.019635675475001335, - -0.013784541748464108, - 0.02490326203405857, - -0.021656280383467674, - 0.015687184408307076, - 0.01676209829747677, - -0.010052329860627651, - 0.0257988553494215, - -0.02773144282400608, - -0.01641414873301983, - -0.0429869182407856, - 0.04664045199751854, - -0.03465797379612923, - 0.009182941168546677, - -0.0056670415215194225, - -0.04099603742361069, - 0.018566180020570755, - 0.020812075585126877, - 0.08057838678359985, - -0.01600593887269497, - 0.023783359676599503, - 0.02680206671357155, - 0.008513755165040493, - -0.0737132728099823, - -0.038917798548936844, - -0.045308809727430344, - 0.005959867499768734, - 0.011011111550033092, - -0.03545388951897621, - 0.01326791848987341, - -0.005445885471999645, - 0.01598624885082245, - 0.038444533944129944, - -0.019986184313893318, - 0.00455219391733408, - 0.03789152204990387, - -0.01130775548517704, - 0.03594183176755905, - -0.05094386637210846, - -0.021079035475850105, - 0.028488125652074814, - 0.02492511086165905, - -0.07170921564102173, - 0.03820767626166344, - -0.027317099273204803, - -0.02848256379365921, - -0.04833802208304405, - 0.08324404060840607, - 0.04806103557348251, - 0.2060977667570114, - 0.048354461789131165, - 0.035919979214668274, - -0.002951729577034712, - -0.09866400063037872, - 0.0107041634619236, - 0.006080368999391794, - 0.017032882198691368, - -0.04410506784915924, - 0.06496810168027878, - 0.02033062092959881, - -0.2359936535358429, - 0.03859647363424301, - -0.018053609877824783, - 0.038031596690416336, - 0.08577514439821243, - -0.0306731965392828, - -0.04341267794370651, - -0.010677791200578213, - 0.005585468839854002, - -0.0188441164791584, - -0.09380454570055008, - 0.020926399156451225, - -0.01101332250982523, - 0.03826771676540375, - -0.045484382659196854, - -0.020574212074279785, - -0.008443924598395824, - -0.04762841761112213, - 0.021606503054499626, - -0.003671912709251046, - 0.013579940423369408, - -0.012172173708677292, - 0.002886069007217884, - -0.02588104084134102, - 0.003792224917560816, - 0.0009538096492178738, - -0.019415972754359245, - -0.01099929679185152, - -0.0286236722022295, - 0.0352761447429657, - 0.029126841574907303, - 0.020667560398578644, - 0.04397958517074585, - -0.019203925505280495, - 0.008057697676122189, - -0.06688607484102249, - 0.023536838591098785, - 0.012224550358951092, - -0.04042505845427513, - 0.022892657667398453, - -0.059009552001953125, - 0.010189881548285484, - -0.06076103448867798, - 0.02776634320616722, - -0.24703001976013184, - 0.031962648034095764, - 0.0122378533706069, - 0.07556185871362686, - 0.03938639163970947, - 0.022962231189012527, - -0.02038596384227276, - 0.01797887310385704, - 0.10090043395757675, - 0.012121313251554966, - 0.005410655401647091, - 0.03728305920958519, - 0.006765223108232021, - 0.0010123070096597075, - -0.018914971500635147, - 0.029740110039711, - 0.01598728820681572, - 0.02089991234242916, - -0.04092216491699219, - -0.07872183620929718, - -0.01595146954059601, - -0.031817976385354996, - -0.01869804412126541, - 0.04804958775639534, - -0.0006052505923435092, - 0.02455604448914528, - -0.026647862046957016, - -0.04130926355719566, - 0.00030908986809663475, - 0.0044759465381503105, - 0.03660460188984871, - 0.0695430189371109, - 0.010759451426565647, - 0.2894921898841858, - 0.009460176341235638, - -0.003811036702245474, - -0.006101653911173344, - 0.0066949669271707535, - 0.12954175472259521, - -0.1535865068435669, - -0.021263062953948975, - -0.0445343479514122, - 0.04392238333821297, - -0.014430430717766285, - -0.08124912530183792, - -0.04780517891049385, - -0.11196177452802658, - 0.030902566388249397, - -0.03459066152572632, - 0.02843129076063633, - -0.01018237043172121, - 0.0013536850456148386, - 0.017001140862703323, - -0.0344432070851326, - -0.06838969886302948, - -0.01855883002281189, - -0.007462073117494583, - -0.04172802343964577, - 0.023762471973896027, - 0.054796941578388214, - 0.07449240982532501, - -0.010839840397238731, - -0.03573501482605934, - -0.04069537669420242, - 0.008606728166341782, - -0.04535689949989319, - 0.24815011024475098, - -0.014517840929329395, - 0.03478207811713219, - -0.005983046721667051, - 0.0007895912858657539, - 0.0055242870002985, - -0.03438330814242363, - -0.01382734626531601, - 0.021900339052081108, - 0.027181338518857956, - 0.0016381395980715752, - 0.025003183633089066, - -0.02071114256978035, - 0.02035698853433132, - -0.0035011237487196922, - -0.005514101125299931, - 0.013002135790884495, - 0.02631123550236225, - 8.678696758579463e-05, - -0.007328128907829523, - 0.20452548563480377, - 0.02408299781382084, - -0.005095589440315962, - -0.005491491872817278, - 0.005115070380270481, - 0.004499267321079969, - -0.06575001776218414, - -0.10065564513206482, - 0.027330217882990837, - -0.035394083708524704, - -0.0127179604023695, - -0.0026061744429171085, - 0.00989475753158331, - 0.06031135842204094, - 0.029461923986673355, - -0.0372917465865612, - -0.002045627683401108, - -0.018569281324744225, - 0.021194161847233772, - 0.0787358209490776, - 0.0017895426135510206, - 0.027060672640800476, - 0.027919184416532516, - -0.030754005536437035, - -0.0210849791765213, - 0.026730937883257866, - -0.5239102840423584, - 0.04722634702920914, - 0.006615751888602972, - 0.021892333403229713, - 0.05626637861132622, - -0.014027145691215992, - 0.0345718190073967, - -0.06481527537107468, - 0.006148484535515308, - -0.047667376697063446, - 0.024623675271868706, - -0.027890445664525032, - -0.0322219654917717, - 0.02002992480993271, - -0.03733920305967331, - -0.022311383858323097, - 0.0038019204512238503, - 0.03655761480331421 - ], - [ - -0.00755042489618063, - 0.06112087517976761, - 0.05657043308019638, - -0.010158541612327099, - -0.009032094851136208, - 4.231236016494222e-05, - 0.04651696979999542, - 0.04063630476593971, - 0.028746113181114197, - -0.019327528774738312, - -0.028288470581173897, - 0.0559234656393528, - -0.068087637424469, - 0.014928116463124752, - -0.07949069142341614, - 0.04067738354206085, - -0.01678886078298092, - -0.054074037820100784, - -0.021125923842191696, - 0.0733046606183052, - -0.1451759785413742, - 0.06071202829480171, - -0.01915097050368786, - -0.049371056258678436, - 0.03733249008655548, - -0.02403915300965309, - 0.0050133392214775085, - 0.003159190062433481, - 0.029687494039535522, - 0.05949519947171211, - -0.02502080425620079, - -0.021647047251462936, - -0.06099030002951622, - 0.043266795575618744, - -0.04518776759505272, - 0.04207271710038185, - 0.013860022649168968, - -0.08207587152719498, - 0.03894856199622154, - 0.02777901478111744, - 0.06335114687681198, - -0.05822840332984924, - -0.010450686328113079, - -0.008608217351138592, - 0.046864308416843414, - -0.08297127485275269, - -0.007274205796420574, - -0.03753802925348282, - -0.029473280534148216, - 0.020327391102910042, - -0.06310334801673889, - -0.006114642601460218, - -0.023750247433781624, - 0.061109092086553574, - 0.05205386132001877, - -0.009551567025482655, - 0.011972121894359589, - 0.1316855251789093, - -0.04376663267612457, - 0.0064555020071566105, - -0.06640884280204773, - -0.047962967306375504, - 0.009224710054695606, - 0.02718382328748703, - -0.08915664255619049, - 0.01905709132552147, - 0.0009172282880172133, - -0.007056757342070341, - -0.036709655076265335, - 0.033983178436756134, - 0.05742330849170685, - 0.17099766433238983, - 0.051799263805150986, - 0.00154738815035671, - 0.004216074012219906, - -0.020373385399580002, - 0.0018600347684696317, - -0.010064996778964996, - -0.01998731680214405, - -0.022614406421780586, - 0.044906314462423325, - -0.002963521284982562, - -0.17126716673374176, - 0.0005907624727115035, - -0.04439793899655342, - 0.03859088197350502, - 0.11152432858943939, - -0.01931728608906269, - 0.006245555356144905, - 0.02146831527352333, - 0.03518010675907135, - -0.045375484973192215, - -0.1354951411485672, - 0.01609998382627964, - -0.01774413138628006, - 0.037390876561403275, - -0.07091129571199417, - 0.007241890765726566, - 0.015862219035625458, - -0.0463387705385685, - 0.08932066708803177, - -0.014412406831979752, - 0.014633122831583023, - -0.018346166238188744, - -0.00863255001604557, - -0.03196074068546295, - 0.02003253996372223, - 0.01737077906727791, - -0.018948188051581383, - -0.001887535210698843, - -0.060484059154987335, - -0.05030257999897003, - 0.029286827892065048, - 0.035511188209056854, - 0.0705263763666153, - -0.0597684346139431, - 0.0075882053934037685, - -0.033587854355573654, - 0.0034026792272925377, - 0.027350958436727524, - -0.0440925769507885, - 0.01619953289628029, - -0.06025093421339989, - 0.0564526803791523, - -0.03564225509762764, - 0.0424734391272068, - -0.20410823822021484, - 0.05963004380464554, - -0.007510792464017868, - 0.04774922505021095, - 0.027910422533750534, - 0.035122163593769073, - -0.032231755554676056, - 0.012590078637003899, - 0.13330677151679993, - 0.0055962251499295235, - 0.034842196851968765, - 0.027133526280522346, - 0.021390631794929504, - -0.005299413111060858, - -0.041685037314891815, - 0.020793434232473373, - 0.032792236655950546, - -0.05994873121380806, - 0.01880783960223198, - -0.09999629855155945, - 0.023727577179670334, - -0.03203814849257469, - -0.029279835522174835, - 0.01960303634405136, - 0.014001973904669285, - 0.03345983475446701, - -0.02408389188349247, - -0.06112713739275932, - -0.03664495050907135, - -0.0030594882555305958, - 0.07668906450271606, - 0.04136573150753975, - 0.0013549041468650103, - 0.22126667201519012, - -0.0057328492403030396, - -0.003207619534805417, - -0.01411997526884079, - -0.03165670111775398, - 0.13968312740325928, - -0.09342286735773087, - 0.03500768542289734, - -0.0015955523122102022, - 0.06030575558543205, - -0.028671085834503174, - -0.026847559958696365, - -0.025649169459939003, - -0.10916907340288162, - -0.014107811264693737, - -0.029445435851812363, - 0.06682796776294708, - -0.031573716551065445, - -0.03056664578616619, - 0.03129070997238159, - -0.02073889784514904, - -0.04433634132146835, - 0.040785666555166245, - 0.012716609053313732, - -0.04350803419947624, - 0.0025554397143423557, - 0.03569542616605759, - 0.05938643962144852, - -0.025805538520216942, - 0.005840078461915255, - -0.03791598230600357, - 0.06843750178813934, - -0.034599173814058304, - 0.24688129127025604, - -6.665834371233359e-05, - 0.031690701842308044, - -0.016971517354249954, - -0.024939648807048798, - 0.012486940249800682, - -0.040597155690193176, - 0.0040448918007314205, - -0.0100263562053442, - 0.011057781055569649, - -0.0033106261398643255, - 0.00535347405821085, - 0.0008091002819128335, - 0.010249058715999126, - 0.04625478759407997, - -0.02553495205938816, - -0.009781467728316784, - 0.01918862946331501, - 0.008343314751982689, - 0.008741562254726887, - 0.17935296893119812, - 0.03782926872372627, - -0.008084249682724476, - -0.052987076342105865, - 0.012845530174672604, - 0.027408966794610023, - -0.10045560449361801, - -0.07339677959680557, - 0.02899009920656681, - -0.0245926883071661, - -0.004883946385234594, - 0.037480201572179794, - 0.012607724405825138, - 0.025553466752171516, - -0.02036869339644909, - -0.06966140866279602, - 0.004674904979765415, - -0.03691042959690094, - 0.05510203167796135, - 0.07252775132656097, - -0.05306001380085945, - 0.03336101770401001, - 0.012242596596479416, - -0.03694399818778038, - -0.019299281761050224, - 0.06722555309534073, - -0.5241231322288513, - 0.015841150656342506, - 0.02544472925364971, - -0.026704151183366776, - 0.0582711398601532, - -0.026949312537908554, - 0.055026791989803314, - -0.05045261234045029, - -0.019832301884889603, - -0.040032342076301575, - 0.04679404944181442, - -0.06635799258947372, - -0.039065632969141006, - 0.0005381258088164032, - -0.05956845358014107, - -0.008515232242643833, - 0.041514717042446136, - 0.00804367195814848 - ], - [ - 0.0004945261171087623, - 0.002035927027463913, - -0.0013259488623589277, - 0.0014645602786913514, - -0.0005383539828471839, - 0.0004173529159743339, - -0.0009428025805391371, - 0.0010193906491622329, - 0.002066873013973236, - 0.0014485211577266455, - -0.00160708196926862, - 0.0005777358892373741, - -0.0004307589551899582, - 0.0003122398047707975, - -0.000966992462053895, - 0.006178590469062328, - -0.0007806791109032929, - -0.0037661241367459297, - -0.0032884529791772366, - 0.0014690605457872152, - -0.008449284359812737, - 0.0033560798037797213, - -0.0018924418836832047, - -0.0006469745421782136, - -0.0014232872053980827, - -0.001519666751846671, - 0.0013103852979838848, - -0.00023116519150789827, - -0.0012809602776542306, - 0.0012553082779049873, - 0.0005825716070830822, - 0.001268235151655972, - 1.291656076318759e-06, - -0.0009243723470717669, - 0.0008240455645136535, - 0.0009244624525308609, - 0.0020567509345710278, - 0.0010673305951058865, - -8.257302397396415e-05, - -0.001235371921211481, - 0.0007275825482793152, - 0.0016044947551563382, - 0.000345007108990103, - 0.0004673657240346074, - -0.0023506490979343653, - -0.0021164920181035995, - 0.0008955143857747316, - -0.0014092284254729748, - 0.0015543436165899038, - 0.000763488351367414, - -0.001698128879070282, - 0.00842855591326952, - 0.0007844215724617243, - 0.0002356003678869456, - -0.0019633029587566853, - -0.0010553647298365831, - -0.00014066742733120918, - -0.0007681020651943982, - -0.006013219710439444, - -0.00021638884209096432, - 0.0010181599063798785, - -0.002845936454832554, - 0.0006882145535200834, - 0.0028531071729958057, - -0.003947344608604908, - 0.0026113938074558973, - -0.00953082088381052, - 0.001680283690802753, - -0.0013604920823127031, - -0.0005982958828099072, - -0.0012951709795743227, - -0.07375289499759674, - 0.003170968731865287, - 0.005468958988785744, - 6.179591582622379e-05, - 0.0008534093503840268, - 0.001906064571812749, - 0.0026092135813087225, - -0.0026260963641107082, - 0.001906477496959269, - 0.0002962329890578985, - 0.00012362435518298298, - -0.917539656162262, - 0.00027965434128418565, - -0.004444371443241835, - 0.002427771221846342, - 0.0013607752043753862, - -0.0003775439690798521, - 9.54002607613802e-05, - 0.0029101611580699682, - 0.000912332849111408, - 0.0016376239946112037, - 0.005186130758374929, - 2.3983393475646153e-05, - 0.0025401918683201075, - 0.0028101634234189987, - -0.0007976852357387543, - -0.0018736839992925525, - 0.002897265600040555, - -0.0016835762653499842, - 0.0021064630709588528, - 0.0013496592873707414, - 0.0007126541459001601, - 0.0013508711708709598, - 0.00461985869333148, - 0.0007521997904404998, - -0.002403942169621587, - 0.0015977362636476755, - -0.0021357107907533646, - -0.001440210035070777, - 0.007911178283393383, - 0.004010159522294998, - -0.00033879640977829695, - -0.00028969012782908976, - 0.0010954284807667136, - 0.004392292350530624, - -0.0016227902378886938, - 0.0002912988711614162, - 0.0004384389612823725, - 5.0550461310194805e-05, - -0.0007325420738197863, - -0.0018821100238710642, - -0.00207155616953969, - 0.0018120008753612638, - -0.0037392384838312864, - -0.0016320506110787392, - 0.28441277146339417, - 0.0018088698852807283, - 0.0002560777647886425, - 0.0013542358065024018, - 0.0002686721854843199, - 0.003260945901274681, - 0.001126798801124096, - -0.0007547803106717765, - -0.0007446560775861144, - 0.0016589633887633681, - -0.0030034040100872517, - 0.0011164277093484998, - -0.0011475083883851767, - 0.00121849006973207, - 0.0012099648592993617, - 0.0002702984493225813, - -0.0015239437343552709, - -0.0006151166744530201, - -0.0018247731495648623, - -0.005314253736287355, - 0.0007404909702017903, - 0.001251021632924676, - -0.0012706469278782606, - 0.0006534542771987617, - -0.0013540438376367092, - -0.005530167371034622, - -0.0016106466064229608, - -0.004845372401177883, - -0.0021289302967488766, - 0.000797121087089181, - 0.0014595557004213333, - -0.001821434125304222, - 0.0008252086699940264, - 0.20476673543453217, - -0.0003806312452070415, - 0.0007480334606952965, - 0.0009959093295037746, - 0.0010439403122290969, - 0.010627474635839462, - 0.09124772995710373, - 0.0016455670120194554, - -0.004043344873934984, - 0.0014713590499013662, - 0.0008147318731062114, - -0.00395352253690362, - 0.0006647662376053631, - -0.0021964660845696926, - 0.0015955863054841757, - -0.0031570554710924625, - -0.0013815289130434394, - 0.00023309263633564115, - 0.004513539839535952, - 0.0011891111498698592, - 0.004402973689138889, - -0.0012492883251979947, - 0.0015574876451864839, - -0.00033493590308353305, - -0.0006017308915033937, - -0.002839977853000164, - -0.00021687441039830446, - 0.0014786318643018603, - -0.0022400834131985903, - 0.0006726590800099075, - -0.000539468543138355, - 0.0005474379286170006, - -0.0006293433252722025, - -0.060590725392103195, - -0.0041435761377215385, - 0.005931517109274864, - -0.0019356877310201526, - 0.001695898361504078, - 0.001415069098584354, - -0.0011844213586300611, - 0.0018650834681466222, - -0.0009435878600925207, - -0.0016052555292844772, - 0.0030862109269946814, - -0.0017909477464854717, - 0.0006964944186620414, - 0.006718975491821766, - -0.001281392527744174, - -0.002165159909054637, - -0.00027660021441988647, - 0.0006190096028149128, - -0.00021000512060709298, - -0.00010496094182599336, - -0.053128309547901154, - 0.0008616496343165636, - -0.0015509341610595584, - -0.00022212276235222816, - -0.0022803787142038345, - -6.473908433690667e-05, - 0.0038952180184423923, - -0.009556537494063377, - 0.0007628368330188096, - 0.00033167959190905094, - -0.0001955346524482593, - -0.00045520116691477597, - -0.00039820399251766503, - 0.0005561323487199843, - 0.000532184203621, - 0.0009205231326632202, - 0.0014737049350515008, - -0.0013196076033636928, - 0.0005522491992451251, - 0.002943993080407381, - 0.0018666255054995418, - -5.8463621826376766e-05, - -0.00041103860712610185, - -0.002802220406010747, - -0.0040518916212022305, - 0.002057692501693964, - 0.11619081348180771, - 0.000737700320314616, - 0.002322132932022214, - 0.0009099391172640026, - -0.0012749065645039082, - -0.0033937818370759487, - -0.0010780111188068986, - -0.0009305893327109516, - 0.004526787903159857, - 0.0001594096829649061, - -0.0011529386974871159, - -0.0031546838581562042, - -0.0008080027182586491, - 0.0016516261966899037, - -0.0017919203964993358, - 0.0008687603985890746, - -0.0013067889958620071, - -0.0005694496212527156 - ], - [ - -0.012371515855193138, - 0.031611863523721695, - 0.026490405201911926, - -0.001707531395368278, - 0.01139829307794571, - 0.035073962062597275, - 0.010557860136032104, - -0.06815376877784729, - -0.00700380839407444, - 0.011946194805204868, - 0.021001920104026794, - 0.03497486934065819, - -0.04546884819865227, - 0.0313485749065876, - -0.016612017527222633, - -0.3615529239177704, - -0.025502702221274376, - 0.012047535739839077, - -0.04417215287685394, - 0.05125945433974266, - -0.001148203038610518, - 0.014502028934657574, - -0.013721983879804611, - -0.03129816800355911, - 0.032900311052799225, - -0.013017523102462292, - 0.05815424770116806, - 0.016660284250974655, - 0.014553174376487732, - -0.04134013503789902, - 0.022720757871866226, - 0.025432981550693512, - 0.0071558053605258465, - 0.047145698219537735, - -0.0016258499817922711, - -0.021075939759612083, - -0.006020723842084408, - -0.07351864129304886, - -0.005177326966077089, - -0.006269488949328661, - -0.015054101124405861, - 0.02824004739522934, - 0.04179403930902481, - 0.022151537239551544, - 0.013829031027853489, - -0.07201288640499115, - -0.06203969568014145, - 0.022615019232034683, - 0.03296966105699539, - 0.02263048104941845, - -0.0448225736618042, - -0.053975529968738556, - 0.004651102237403393, - 0.003492985386401415, - -0.006315240170806646, - -0.04797272011637688, - 0.0037846711929887533, - -0.001331936102360487, - 0.008667105808854103, - -0.07271655648946762, - -0.02994634211063385, - 0.013450415804982185, - -0.0077791051007807255, - -0.04254322499036789, - 0.010456924326717854, - 0.019676651805639267, - -0.008307898417115211, - -0.01888631470501423, - 0.005888606887310743, - -0.026860447600483894, - 0.03772972896695137, - 0.1247028335928917, - 0.04053933545947075, - 0.04890734702348709, - -0.03961808979511261, - 0.03603560850024223, - 0.015640104189515114, - 0.02548667974770069, - -0.05053236708045006, - -0.03298204764723778, - -0.021009286865592003, - -0.029187984764575958, - 0.08930943161249161, - 0.055079516023397446, - 0.0402984656393528, - -0.025493675842881203, - -0.029469041153788567, - 0.035930488258600235, - -0.02054981142282486, - -0.015682099387049675, - 0.002987547777593136, - 0.015058916062116623, - 0.21136131882667542, - 0.019427379593253136, - 0.017300108447670937, - -0.021196642890572548, - 0.0025855882558971643, - 0.012718141078948975, - -0.016311680898070335, - -0.014684478752315044, - -0.005513698328286409, - 0.006063635926693678, - 0.007165834307670593, - -0.05858590453863144, - 0.022540470585227013, - -0.010298635810613632, - 0.041672635823488235, - -0.014852534048259258, - -0.007461960893124342, - -0.05766957625746727, - -0.004002518020570278, - 0.0630110427737236, - 0.02209051325917244, - 0.01589255966246128, - -0.012633777223527431, - 0.016879096627235413, - -0.0006751889595761895, - -0.0033180001191794872, - -0.01160942018032074, - -0.0044799791648983955, - 0.002564850961789489, - 0.03446398675441742, - 0.011603421531617641, - -0.016560085117816925, - -0.08448432385921478, - -0.007684709504246712, - -0.6002323627471924, - 0.038007330149412155, - -0.04721204563975334, - 0.03544662892818451, - -0.011802488937973976, - -0.03145625814795494, - -0.021597737446427345, - 0.030244391411542892, - 0.07948882132768631, - 0.007260734215378761, - 0.03438830003142357, - 0.02396988309919834, - 0.03699959069490433, - -0.016859091818332672, - 0.0191182941198349, - 0.010586672462522984, - 0.02617652527987957, - 0.005409840494394302, - 0.05404080078005791, - -0.027500133961439133, - 0.016924820840358734, - -0.05723494663834572, - -0.04757580906152725, - -0.01760571449995041, - 0.013464752584695816, - -0.028132593259215355, - -0.02833055891096592, - -0.057716626673936844, - 0.010760674253106117, - 0.0008048546151258051, - -0.003784394124522805, - 0.002825587522238493, - 0.010296541266143322, - 0.3033673167228699, - 0.08351241797208786, - -0.060394808650016785, - -0.009874127805233002, - -0.03507223725318909, - 0.05365050956606865, - -0.1727520227432251, - -0.030916845425963402, - 0.02167005091905594, - 0.06450097262859344, - -0.001441135653294623, - -0.035870157182216644, - -0.058039769530296326, - -0.0329604372382164, - 0.03498909994959831, - -0.03173932805657387, - -0.024091491475701332, - -0.012159164994955063, - -0.10489395260810852, - -0.001348959980532527, - 0.024686118587851524, - -0.040827780961990356, - -0.0004938268102705479, - -0.022554047405719757, - -0.0041786739602684975, - 0.13007852435112, - 0.04258444905281067, - 0.0054509080946445465, - 0.0019972026348114014, - -0.045767322182655334, - -0.00018298304348718375, - -0.03981595113873482, - 0.01284798327833414, - 0.20698736608028412, - -0.021386075764894485, - -0.003367485711351037, - 0.03231102228164673, - -0.005617301911115646, - 0.005826215259730816, - 0.03964182734489441, - -0.04569365084171295, - 0.03128347918391228, - 0.04568260535597801, - -0.02927076444029808, - 0.02232462540268898, - -0.007588149048388004, - 0.023292578756809235, - -0.040484558790922165, - 0.030339518561959267, - -0.0006706480053253472, - -0.004830236081033945, - -0.040799446403980255, - -0.041281845420598984, - 0.1212245523929596, - -0.010342910885810852, - 0.02412748709321022, - -0.008298973552882671, - -0.006536772940307856, - 0.023823287338018417, - 0.023782793432474136, - -0.02829308621585369, - -0.0035000264178961515, - -0.014155608601868153, - -0.015613739378750324, - 0.00817838404327631, - -0.004305519629269838, - 0.019800787791609764, - -0.03632519394159317, - -0.01744048483669758, - -0.035451699048280716, - 0.027268385514616966, - -0.012517568655312061, - -0.03800308704376221, - 0.03861216828227043, - -0.03320736065506935, - -0.047621674835681915, - -0.01782592572271824, - -0.029198497533798218, - -0.01719024032354355, - -0.005216352641582489, - 0.00656708562746644, - -0.0025891466066241264, - -0.0005505640874616802, - -0.017252491787075996, - 0.027282727882266045, - -0.012384900823235512, - -0.021918684244155884, - 0.003958852495998144, - -0.02930828556418419, - 0.03758663311600685, - 0.03701275587081909, - -0.03005606308579445, - -0.020104071125388145, - 0.009119928814470768, - -0.0421818383038044, - -0.04301739111542702, - 0.06656577438116074 - ], - [ - -0.022328589111566544, - -0.001307180617004633, - 0.024670623242855072, - 0.002286899834871292, - 0.006916852202266455, - -0.017762672156095505, - 0.06400174647569656, - -0.02701997384428978, - 0.006312699522823095, - -0.03394053503870964, - -0.02173936553299427, - 0.04231493920087814, - -0.06752221286296844, - -0.0071282717399299145, - 0.0053793201223015785, - -0.2857382893562317, - 0.0031624564435333014, - -0.027599802240729332, - -0.003087324555963278, - 0.052965085953474045, - -0.09707086533308029, - -0.015361632220447063, - 0.016635535284876823, - -0.04867296665906906, - 0.042962588369846344, - -0.003930083010345697, - 0.04291416332125664, - 0.046260833740234375, - -0.0018749467562884092, - 0.04226696863770485, - 0.02768166922032833, - -0.07317095994949341, - -0.01434420794248581, - 0.04005994647741318, - 0.0010252739302814007, - -0.04190569370985031, - -0.002230527577921748, - -0.09088115394115448, - -0.0005366512341424823, - 0.03974446281790733, - 0.053774893283843994, - 0.0056794085539877415, - -0.02110240049660206, - 0.017208857461810112, - 0.028397221118211746, - -0.11274347454309464, - -0.02716904506087303, - -0.005365733057260513, - 0.012870628386735916, - 0.047345176339149475, - -0.0009005030733533204, - -0.007320381700992584, - -0.011053620837628841, - 0.026082970201969147, - 0.041727978736162186, - -0.053877003490924835, - -0.01794111169874668, - 0.08256734162569046, - 0.0328487865626812, - -0.06674595177173615, - -0.047449741512537, - 0.010160074569284916, - 0.008633800782263279, - 0.007816849276423454, - -0.0415506549179554, - 0.02705436199903488, - -0.03483140468597412, - 0.0015104442136362195, - -0.002951240399852395, - 0.026938382536172867, - 0.028453990817070007, - 0.14456717669963837, - 0.017486194148659706, - 0.0435263030230999, - -0.0019071423448622227, - -0.02834482118487358, - 0.013009962625801563, - 0.003867097431793809, - -0.01895204745233059, - -0.019225718453526497, - 0.011052657850086689, - -0.002021987223997712, - -0.22487345337867737, - 0.009896091185510159, - -0.016994625329971313, - -0.004343610256910324, - 0.049387142062187195, - 0.02069074846804142, - -0.028726942837238312, - -0.011578536592423916, - -0.00765294348821044, - -0.017004571855068207, - 0.1468052715063095, - 0.04035782441496849, - -0.015299923717975616, - 0.03715808317065239, - -0.05079801008105278, - 0.005417295265942812, - 0.016053058207035065, - -0.026139942929148674, - 0.04985596612095833, - 0.007272488437592983, - 0.005188028793781996, - -0.05430009961128235, - 0.0418795570731163, - -0.028204988688230515, - 0.0301760733127594, - 0.023163091391324997, - -0.005364505108445883, - -0.043747399002313614, - -0.01768963597714901, - 0.017715439200401306, - 0.06087039038538933, - 0.027460679411888123, - 0.007823477499186993, - -0.03603792190551758, - -0.010026911273598671, - -0.028041938319802284, - -0.0421161949634552, - 0.0012046399060636759, - 0.010850130580365658, - 0.013011961244046688, - -0.02394682727754116, - 0.021015483886003494, - -0.06840446591377258, - 0.025886589661240578, - -0.5039406418800354, - 0.04745800420641899, - -0.029220057651400566, - 0.013525930233299732, - 0.005116731394082308, - -0.019761791452765465, - -0.019330104812979698, - -0.007246173918247223, - 0.0581090934574604, - 0.0003850637876894325, - 0.03905840218067169, - 0.032013941556215286, - 0.00781995803117752, - -0.026743052527308464, - -0.027862565591931343, - -0.014192995615303516, - 0.03771454468369484, - -0.028364459052681923, - 0.0062055932357907295, - -0.08520767837762833, - 0.0046416460536420345, - -0.056003671139478683, - -0.03928719088435173, - -0.04112296551465988, - 0.019572149962186813, - -0.042846355587244034, - -0.00974639505147934, - -0.04320458695292473, - -0.06536227464675903, - 0.007785808760672808, - 0.06816743314266205, - 0.03560491278767586, - -0.0005866036517545581, - 0.3869841992855072, - 0.017209839075803757, - -0.029618514701724052, - -0.025197267532348633, - 0.015651989728212357, - 0.06070247292518616, - -0.1299738883972168, - -0.05048743262887001, - -0.013854622840881348, - 0.029308466240763664, - 0.014299409464001656, - -0.00829189084470272, - -0.0889100506901741, - -0.08682245016098022, - -0.027760474011301994, - -0.007966393604874611, - 0.004655866883695126, - -0.029614059254527092, - -0.08167887479066849, - 0.011386916041374207, - -0.038523778319358826, - -0.09174474328756332, - 0.01926642842590809, - 0.0029345436487346888, - -0.017198914662003517, - 0.07643218338489532, - 0.035130035132169724, - 0.03226424381136894, - -0.013762526214122772, - -0.025327447801828384, - 0.006815408356487751, - 0.01910814456641674, - -0.006518727168440819, - 0.22048987448215485, - -0.018452705815434456, - 0.03849950060248375, - 0.014883829280734062, - -0.03706062585115433, - 0.00616719713434577, - -0.006427144631743431, - -0.038462910801172256, - 0.0008746000821702182, - 0.01643294095993042, - -0.026102498173713684, - 0.03837723657488823, - 0.017467983067035675, - 0.038432661443948746, - 0.010565118864178658, - -0.005550170782953501, - 0.023936575278639793, - 0.05511949211359024, - -0.042456772178411484, - -0.004099707584828138, - 0.1521761119365692, - 0.025792326778173447, - -0.004561553709208965, - -0.02583012357354164, - -0.015445470809936523, - 0.012646523304283619, - -0.03007545880973339, - -0.09621266275644302, - -0.0014806744875386357, - -0.03711220249533653, - -0.025450102984905243, - 0.02426261454820633, - 0.01503844279795885, - 0.008755109272897243, - -0.003934101667255163, - -0.022668655961751938, - 0.016277724876999855, - 0.003514899406582117, - 0.02412215992808342, - -0.025852849707007408, - 0.0014273356646299362, - -0.020581329241394997, - -0.028296325355768204, - -0.04057396575808525, - 0.009202093817293644, - -0.027221307158470154, - -0.17845168709754944, - 0.00197821157053113, - 0.046957600861787796, - -0.06385138630867004, - 0.015613566152751446, - 0.016352735459804535, - 0.05053848773241043, - -0.021169669926166534, - -0.016221147030591965, - -0.04840768873691559, - 0.02477593906223774, - 0.0026676086708903313, - -0.04312678053975105, - -0.017599593847990036, - -0.02589454874396324, - -0.08390027284622192, - -0.021903663873672485, - 0.0180654413998127 - ], - [ - -0.008205019868910313, - 0.059308819472789764, - 0.026903189718723297, - -0.018733002245426178, - -0.0025124705862253904, - -0.01127493567764759, - 0.02427343651652336, - -0.006468886509537697, - 0.01005097571760416, - 0.00021584406204055995, - -0.02064603753387928, - 0.007858437485992908, - -0.06156979128718376, - 0.03636232763528824, - -0.04734482616186142, - -0.24192170798778534, - -0.03628678619861603, - -0.03697345405817032, - -0.05121598392724991, - 0.026963157579302788, - -0.09081842005252838, - 0.010824558325111866, - -0.06177539750933647, - -0.010744480416178703, - 0.02841258980333805, - -0.04579363390803337, - 0.006487357430160046, - -0.03813952952623367, - -0.013845335692167282, - 0.03459901362657547, - 0.022221269086003304, - -0.03152066469192505, - 0.00510562676936388, - 0.01578974723815918, - 0.0062542874366045, - -0.004350678529590368, - -0.00108142732642591, - -0.053615786135196686, - 0.009274850599467754, - 0.017292624339461327, - 0.023681271821260452, - 0.007772386074066162, - -0.0019426514627411962, - -0.023062054067850113, - -0.011671287938952446, - -0.12905870378017426, - -0.009134992957115173, - -0.00662739435210824, - 0.02437426894903183, - 0.01631918177008629, - -0.02145516872406006, - -0.009123425930738449, - 0.0016536400653421879, - 0.040480710566043854, - 0.015364892780780792, - -0.022362221032381058, - 0.003768686903640628, - 0.03657481446862221, - 0.008495607413351536, - 0.0271620936691761, - -0.0024284941609948874, - 0.00449665542691946, - -0.005977510008960962, - -0.01861344650387764, - 0.0024822016712278128, - 0.015085476450622082, - -0.024768056347966194, - -0.009755942970514297, - -0.0044625625014305115, - -0.013338935561478138, - 0.03940528258681297, - 0.1575486809015274, - 0.05552731081843376, - 0.05646080896258354, - 0.011607927270233631, - -0.01071219239383936, - 0.01339314691722393, - -0.004412141628563404, - -0.014257680624723434, - -0.02637050673365593, - 0.010600775480270386, - -0.019296761602163315, - -0.36415189504623413, - -0.0022149470169097185, - -0.0040116761811077595, - -0.010868913494050503, - 0.033783916383981705, - -0.024485763162374496, - -0.023575684055685997, - 0.00399787025526166, - 0.022866442799568176, - 0.015913458541035652, - 0.09885017573833466, - 0.034494735300540924, - -0.016675544902682304, - -0.009906030260026455, - -0.04715096950531006, - -0.016674816608428955, - 0.02360754832625389, - -0.03627749904990196, - -0.0006087861838750541, - 0.003725809743627906, - -0.04384618625044823, - -0.03934384509921074, - 0.0661168172955513, - -0.005279466509819031, - 0.049468744546175, - 0.014103039167821407, - -0.006159953773021698, - -0.014161350205540657, - -0.03521009907126427, - 0.04046638682484627, - -0.006648417562246323, - -0.002085505286231637, - -0.0015846737660467625, - 0.02074074000120163, - -0.003871744265779853, - -0.013492864556610584, - -0.026270318776369095, - -0.03679957613348961, - -0.0015111762331798673, - 0.0050130123272538185, - -0.025115516036748886, - -0.004442000295966864, - -0.07337696850299835, - -0.010744959115982056, - -0.4408329725265503, - 0.0706828236579895, - -0.0064183184877038, - 0.023695960640907288, - 0.009428688324987888, - -0.020201129838824272, - 0.02225925587117672, - -0.002774802502244711, - 0.09387213736772537, - 0.01718129962682724, - 0.049323372542858124, - 0.00753784691914916, - 0.042446549981832504, - -0.017037607729434967, - 0.01130005344748497, - 0.053092531859874725, - -0.02756570279598236, - -0.01339457742869854, - -0.016200581565499306, - -0.04896184056997299, - -0.017325017601251602, - -0.04406758025288582, - -0.011178458109498024, - 0.01237906888127327, - 0.008102617226541042, - -0.006288003642112017, - -0.027163062244653702, - -0.047399915754795074, - 0.014182941988110542, - 0.025220466777682304, - 0.02054213173687458, - 0.01629020646214485, - 0.008745296858251095, - 0.42965003848075867, - -0.0195776280015707, - 0.0029077096842229366, - -0.001565341604873538, - -0.0184145737439394, - 0.11063913255929947, - -0.17847619950771332, - 0.0002985060855280608, - -0.026615122333168983, - 0.02079283818602562, - -0.008114022202789783, - -0.022891731932759285, - -0.04695078358054161, - -0.05713391304016113, - 0.008590816520154476, - -0.05429119989275932, - -0.005510149989277124, - -0.03348393738269806, - -0.07059983164072037, - 0.040824390947818756, - -0.03896821290254593, - -0.055953968316316605, - 0.0044033098965883255, - -0.015652064234018326, - -0.007941636256873608, - 0.10752155631780624, - 0.032537877559661865, - 0.0018754784250631928, - -0.005237659905105829, - 0.002981057157739997, - -0.002058320213109255, - 0.02564835362136364, - -0.017021365463733673, - 0.2505066990852356, - -0.011127091012895107, - 0.032382380217313766, - 0.02372891642153263, - -0.006716340780258179, - 0.006049868185073137, - -0.015425339341163635, - -0.015198498964309692, - -0.021157626062631607, - 0.002898896113038063, - 0.022764774039387703, - 0.011299770325422287, - 0.00959067139774561, - 0.04605493322014809, - -0.056720003485679626, - -0.008028584532439709, - -0.001365044736303389, - 0.03167719766497612, - 0.0160385575145483, - -0.03651994839310646, - 0.1633806675672531, - 0.024264730513095856, - -0.02262449450790882, - -0.015663525089621544, - 0.018214000388979912, - 0.02598169818520546, - -0.03547549620270729, - -0.08537250012159348, - 0.016201645135879517, - -0.005096082109957933, - 0.03188557177782059, - 0.010370181873440742, - 0.027469342574477196, - -0.004694363102316856, - -0.0035307954531162977, - -0.035177260637283325, - 0.005337120965123177, - 0.005529201123863459, - 0.0007924765232019126, - 0.01654687151312828, - 0.008828159421682358, - 0.008736067451536655, - -0.047691710293293, - 0.0017857430502772331, - -0.00856881495565176, - 0.008295807056128979, - -0.1916923075914383, - 0.013864672742784023, - 0.02066756598651409, - 0.0014842664822936058, - -0.050642624497413635, - -0.01889827661216259, - 0.039651982486248016, - -0.013480930589139462, - 0.01668235845863819, - -0.06688814610242844, - 0.019672304391860962, - 0.009217506274580956, - -0.034221351146698, - 0.041852764785289764, - -0.007856674492359161, - -0.006659282371401787, - 0.03257843479514122, - 0.028615260496735573 - ], - [ - -0.0018057078123092651, - -0.006830804515630007, - -0.020097237080335617, - 0.0029143861029297113, - 0.006258989684283733, - -0.006594015751034021, - -0.019696610048413277, - -0.039692383259534836, - -0.017521124333143234, - -0.02113000676035881, - 0.004010933917015791, - -0.018945511430501938, - -0.005106050055474043, - 0.02298741042613983, - -0.006315622478723526, - 0.2531869113445282, - 0.03192877769470215, - 0.01946099102497101, - 0.0526743158698082, - -0.013430980034172535, - 0.13398131728172302, - -0.09574436396360397, - 0.02442796528339386, - 0.018761469051241875, - 0.01858409494161606, - 0.004614655394107103, - -0.00549784442409873, - -0.0088821891695261, - 0.0010606903815642, - 0.010604197159409523, - -0.002835010178387165, - -0.03139835223555565, - 0.04092957079410553, - 0.025398066267371178, - 0.009296524338424206, - -0.038977041840553284, - -0.018714547157287598, - -0.0002897272352129221, - -0.011952211149036884, - 0.024203745648264885, - 0.007546445820480585, - -0.011421781964600086, - 0.010940554551780224, - -0.013886457309126854, - 0.02416262775659561, - 0.02993527613580227, - -0.008583380840718746, - 0.030059998854994774, - -0.01839420013129711, - -0.05564377084374428, - -0.007583291735500097, - -0.08127806335687637, - -0.01465797983109951, - 0.002512517850846052, - 0.029995819553732872, - 0.054946113377809525, - -0.02630978636443615, - -0.021174119785428047, - 0.0212194062769413, - 0.029200619086623192, - 0.008752514608204365, - 0.0595434345304966, - 0.022157637402415276, - -0.0790758803486824, - 0.10151877999305725, - -0.019024161621928215, - 0.21046575903892517, - -0.0331994853913784, - 0.036324307322502136, - 0.0039787511341273785, - 0.08607377856969833, - -0.10951287299394608, - -0.041038878262043, - -0.004262179601937532, - -0.019610939547419548, - -0.019060736522078514, - -0.0612700991332531, - 0.008374053984880447, - 0.01122632808983326, - 0.01055777259171009, - 0.007658008486032486, - -0.012563989497721195, - 0.3906806707382202, - 0.02174176275730133, - 0.04879162088036537, - -0.07271002978086472, - -0.00045309390407055616, - -0.025605222210288048, - -0.0004187649756204337, - -0.008972078561782837, - -0.004737801384180784, - -0.036266572773456573, - -0.24725808203220367, - -0.007115763612091541, - -0.009818817488849163, - -0.03745295852422714, - -0.0328436903655529, - 0.03605348616838455, - -0.05391378700733185, - -0.01606603153049946, - 0.002156902337446809, - -0.0056657311506569386, - 0.023842692375183105, - -0.06364917755126953, - 0.007248249836266041, - 0.0031698488164693117, - 0.03974485397338867, - -0.03165602684020996, - 0.02382512018084526, - 0.008358071558177471, - -0.04599359631538391, - -0.034195736050605774, - -0.004622531123459339, - 0.005705539602786303, - 0.0016391444951295853, - -0.02981537953019142, - 0.04226880148053169, - -0.0006424596649594605, - -0.0013234883081167936, - 0.03949667513370514, - 0.028386957943439484, - 0.0603344663977623, - 0.058716561645269394, - -0.01690543070435524, - 0.0377206914126873, - 0.010100457817316055, - 0.3064894378185272, - -0.020454328507184982, - -0.033275917172431946, - 0.016899405047297478, - 0.01571633294224739, - -0.01887371949851513, - -0.03370668739080429, - 0.01812855526804924, - 0.054700423032045364, - -0.011276558972895145, - 0.05283976346254349, - -0.02989630028605461, - 0.020805036649107933, - -0.03585730120539665, - -0.01673571951687336, - 0.01441065315157175, - 0.015701457858085632, - -0.026499588042497635, - 0.007719787303358316, - 0.05833403766155243, - -0.05129128322005272, - -0.03429565206170082, - -0.003323894925415516, - 0.0016296928515657783, - 0.007779549807310104, - 0.14501823484897614, - 0.005577527917921543, - 0.06361600756645203, - 0.024869844317436218, - -0.007264787796884775, - -0.003089524107053876, - -0.06262224912643433, - -0.027763064950704575, - -0.3943400979042053, - 0.03746242821216583, - -0.01724650152027607, - 0.024769173935055733, - 0.020314592868089676, - -0.09141041338443756, - 0.07154135406017303, - -0.02063373103737831, - 0.07788370549678802, - -0.023285742849111557, - -0.022131474688649178, - 0.10934873670339584, - -0.022417709231376648, - 0.05690046027302742, - -0.039696358144283295, - 0.012813473120331764, - -0.01125574391335249, - 0.0035618902184069157, - -0.024906573817133904, - -0.005221851635724306, - -0.09797488152980804, - 0.020902203395962715, - 0.000900200626347214, - 0.004977606236934662, - 0.02448868378996849, - 0.023288993164896965, - 0.03439829498529434, - 0.010292291641235352, - 0.0012687459820881486, - -0.019820675253868103, - -0.016304897144436836, - -0.020447557792067528, - 0.010012263432145119, - -0.09459402412176132, - 0.0829872190952301, - -0.01767810992896557, - 0.04597819223999977, - -0.01275647897273302, - -0.002851878758519888, - -0.015526624396443367, - -0.022145815193653107, - 0.016779180616140366, - 0.07552103698253632, - -0.040234193205833435, - -0.0026828935369849205, - -0.0003355006920173764, - -0.01237111259251833, - 0.014861640520393848, - 0.022151293233036995, - -0.01975727453827858, - 0.014028246514499187, - 0.02190324105322361, - 0.009345737285912037, - -0.08349866420030594, - -0.005133521743118763, - 0.031015999615192413, - -0.008958524093031883, - 0.09653312712907791, - 0.0022001860197633505, - -0.0701180174946785, - 0.22775518894195557, - 0.005357376765459776, - -0.021487774327397346, - -0.003975914791226387, - -0.012203343212604523, - 0.019698606804013252, - -0.03550335392355919, - 0.00916710402816534, - -0.03854839876294136, - 0.036163121461868286, - 0.023292815312743187, - -0.027229472994804382, - -0.0922703742980957, - -0.01842089556157589, - 0.008084152825176716, - 0.0031752209179103374, - 0.010964368470013142, - 0.07891245931386948, - 0.0006323707639239728, - 0.13365578651428223, - 0.0019713195506483316, - -0.05407898500561714, - -0.02888672985136509, - 0.022143518552184105, - 0.043215133249759674, - 0.014556247740983963, - 0.01361408643424511, - -0.06902892887592316, - -0.034588683396577835, - 0.03827497363090515, - 0.061654385179281235, - 0.023266464471817017, - -0.01316249929368496, - 0.033791009336709976, - -0.05026409402489662, - -0.0030811415053904057, - 0.03752271831035614 - ], - [ - -0.01633928157389164, - 0.02843008004128933, - 0.0027784528210759163, - -0.0049286591820418835, - 0.019303949549794197, - 0.02140985243022442, - 0.015014059841632843, - -0.027731087058782578, - 0.01391529105603695, - -0.0027440779376775026, - -0.015781736001372337, - 0.027437027543783188, - -0.05003921315073967, - 0.00952416192740202, - -0.023379772901535034, - -0.22327475249767303, - -0.014533926732838154, - -0.028521616011857986, - -0.03315485268831253, - 0.026790622621774673, - -0.027798131108283997, - 0.0053994301706552505, - -0.028700342401862144, - -0.04176018387079239, - 0.023494470864534378, - -0.011657950468361378, - 0.02836548164486885, - -0.015987223014235497, - 0.008180910721421242, - -0.023494668304920197, - 0.012146612629294395, - -0.002652886090800166, - 0.012526078149676323, - 0.03794074058532715, - -0.009540249593555927, - -0.016597604379057884, - -0.01724904403090477, - -0.05753753334283829, - 0.0034179959911853075, - -0.009912028908729553, - 0.016693906858563423, - -0.004216069355607033, - 0.0012352896155789495, - 0.0020296245347708464, - 0.01801353693008423, - -0.0959872305393219, - -0.010432680137455463, - 0.027166470885276794, - 0.017322931438684464, - 0.022869156673550606, - -0.01597234606742859, - -0.005285697523504496, - 0.009570389054715633, - -0.015972325578331947, - 0.012973085045814514, - -0.038714103400707245, - 0.006772532127797604, - 0.025027073919773102, - 0.014320400543510914, - -0.020549524575471878, - -0.002675444819033146, - 0.014559946954250336, - -0.015659544616937637, - -0.006520620547235012, - 0.001638548681512475, - 0.012661815620958805, - -0.03556245192885399, - -0.014364005997776985, - 0.0009281848906539381, - -0.020837903022766113, - 0.01866191253066063, - 0.06171945482492447, - 0.03380664065480232, - 0.04296751692891121, - 0.00658829091116786, - 0.011882946826517582, - 0.013321027159690857, - 0.01490935031324625, - -0.018395842984318733, - -0.005958407185971737, - -0.009723836556077003, - -0.011878336779773235, - -0.7152422666549683, - 0.022259294986724854, - -0.021646972745656967, - -0.043892402201890945, - 0.028035450726747513, - 0.01590246520936489, - -0.02271050214767456, - 0.012329256162047386, - 0.004322180524468422, - -0.00299006886780262, - 0.14852306246757507, - 0.021344535052776337, - -0.006302598398178816, - -0.0016675929073244333, - -0.013484956696629524, - -0.008923287503421307, - 0.01195758767426014, - -0.01759979873895645, - 0.0013054660521447659, - 0.005019729491323233, - 0.012501544319093227, - -0.045118823647499084, - 0.023054905235767365, - -0.008267015218734741, - 0.007417304906994104, - 0.01992255076766014, - -0.030619854107499123, - -0.0097380131483078, - -0.00537639856338501, - 0.03852769359946251, - 0.007794548291712999, - 0.009059034287929535, - -0.021484633907675743, - 0.008435137569904327, - 0.0038264149334281683, - -0.014881796203553677, - -0.018182698637247086, - 0.0035019756760448217, - 0.0022993606980890036, - 0.010695886798202991, - -0.010322052985429764, - -0.00939016230404377, - -0.06066315248608589, - -0.024154648184776306, - -0.24317197501659393, - 0.05125511437654495, - -0.02007138915359974, - 0.018116215243935585, - 0.023131966590881348, - -0.03290056064724922, - 0.006143645383417606, - 0.008834573440253735, - 0.06417705863714218, - 0.02471134252846241, - 0.046887319535017014, - 0.006415290292352438, - 0.015746530145406723, - -0.020613865926861763, - 0.016560086980462074, - 0.018609151244163513, - 0.0045992229133844376, - -0.015244361013174057, - 0.02318503148853779, - -0.03443962708115578, - -0.012678966857492924, - -0.033752504736185074, - -0.024701355025172234, - -0.0008508912869729102, - 0.003592065069824457, - -0.0354585163295269, - -0.010474244132637978, - -0.026885107159614563, - 0.013684896752238274, - 0.019434547051787376, - 0.007343462202697992, - -0.007667319383472204, - -0.016776781529188156, - 0.4298388361930847, - 0.015054612420499325, - -0.02092212811112404, - -0.004771700594574213, - -0.013041602447628975, - 0.048781078308820724, - -0.07629075646400452, - -0.013302396051585674, - 0.0016710740746930242, - 0.037102267146110535, - 0.005368794780224562, - -0.030116427689790726, - -0.05247461423277855, - -0.021590661257505417, - 0.013128077611327171, - -0.02821190096437931, - -0.0011314214207231998, - -0.03440100699663162, - -0.0846247747540474, - 0.007527532521635294, - -0.019513892009854317, - -0.04497712850570679, - 0.02004293166100979, - -0.025306619703769684, - -0.020285919308662415, - 0.10274264216423035, - 0.03698061406612396, - -0.004994218237698078, - 0.005145824048668146, - -0.04179147630929947, - 0.0029268183279782534, - -0.016795068979263306, - -0.004529633559286594, - 0.12726935744285583, - -0.004738972056657076, - 0.03586965426802635, - 0.02459702454507351, - -0.006727845408022404, - 0.010138733312487602, - 0.007941619493067265, - -0.008559741079807281, - -0.009125691838562489, - 0.020534006878733635, - -0.0035654071252793074, - 0.009803865104913712, - 0.01517174020409584, - 0.02107258513569832, - -0.03735271468758583, - 0.02501157857477665, - 0.0029034153558313847, - -0.009853157214820385, - -0.01980515755712986, - -0.020965006202459335, - 0.07439077645540237, - 0.019982973113656044, - -0.001624965574592352, - -0.018396034836769104, - 0.0008907059673219919, - 0.03183773159980774, - -0.01246665045619011, - -0.04491681233048439, - 0.0013845846988260746, - -0.015226534567773342, - -0.007410389371216297, - 0.014944230206310749, - 0.0045430525206029415, - 0.0035676120314747095, - -0.01457302924245596, - -0.03495553135871887, - -0.015552009455859661, - 0.015155117958784103, - 0.025843454524874687, - -0.029347959905862808, - 0.012576957233250141, - -0.01166414376348257, - -0.040322449058294296, - -0.003941310569643974, - -0.019245225936174393, - -0.007985695265233517, - 0.003291018307209015, - 0.01362940575927496, - 0.01653498038649559, - -0.0015825140289962292, - -0.011734753847122192, - 0.012939412146806717, - -0.0002862085239030421, - 0.0054158614948391914, - 0.02300366200506687, - -0.035430461168289185, - 0.02377004362642765, - 0.004914622753858566, - -0.04591233283281326, - 0.027866920456290245, - 0.01260114274919033, - -0.00845574401319027, - 0.0005037112277932465, - 0.0184512697160244 - ], - [ - 6.425302854040638e-05, - 0.00013377932191360742, - -0.006716100499033928, - 0.003339477116242051, - 0.0004783787007909268, - -0.0009900612058117986, - -0.005832137074321508, - -0.006441445089876652, - -0.0009427818586118519, - -0.002765173092484474, - 0.000453930493677035, - -0.004747894126921892, - 0.0003484272747300565, - 0.005599560681730509, - -0.001224589068442583, - 0.059542082250118256, - 0.006206733174622059, - 0.0022426447831094265, - 0.008398967795073986, - -0.0034569117706269026, - 0.02190576121211052, - -0.016900068148970604, - 0.003961110953241587, - 0.004524600692093372, - 0.0008092946955002844, - 0.0008654636330902576, - 0.0007962595555000007, - -0.0027946471236646175, - -0.001962756970897317, - 0.004153087269514799, - 6.177623436087742e-05, - -0.004268302116543055, - 0.00855480507016182, - 0.0028893419075757265, - 0.004001116845756769, - -0.0077477325685322285, - -0.001027985941618681, - 0.0032322672195732594, - -0.002892832737416029, - 0.0028359945863485336, - 0.0005903564742766321, - -0.00013861551997251809, - 0.0033145875204354525, - -0.0025608825962990522, - 0.0015198455657809973, - 0.007015585899353027, - -0.0009874118259176612, - 0.005191085860133171, - -0.0021593826822936535, - -0.011658921837806702, - -0.002295650076121092, - -0.007735711522400379, - -0.002208318095654249, - 0.0007733916281722486, - 0.0031459617894142866, - 0.010856464505195618, - -0.005681655835360289, - -0.008444325998425484, - -0.0014511968474835157, - 0.006116298958659172, - 0.0036972283851355314, - 0.010349876247346401, - 0.005876420997083187, - -0.013945396989583969, - 0.017788469791412354, - -0.001763875363394618, - 0.03489089757204056, - -0.004336988087743521, - 0.006648369133472443, - 0.000658396165817976, - 0.01550255622714758, - -0.1042596772313118, - -0.006789232138544321, - 0.0051804715767502785, - -0.00474459258839488, - -0.0029344549402594566, - -0.010270916856825352, - 0.004286247305572033, - -0.00035144711728207767, - 0.005094650201499462, - 0.0018211212009191513, - -0.0028797162231057882, - -0.8753232359886169, - 0.005078138317912817, - 0.006252686493098736, - -0.012529675848782063, - -0.001121903769671917, - -0.006262514274567366, - 0.0011089524487033486, - -0.0004294113314244896, - -0.000783540599513799, - -0.004583972971886396, - -0.044402044266462326, - -0.0021745567210018635, - 0.0017925282008945942, - -0.005381841212511063, - -0.006294458173215389, - 0.00608080392703414, - -0.009409011341631413, - -0.0038452791050076485, - 0.001841556397266686, - 3.0655970476800576e-05, - 0.005314823240041733, - -0.011305118910968304, - 0.006490799598395824, - 0.0025797970592975616, - 0.005022711586207151, - -0.00644600810483098, - 0.0035097338259220123, - 0.0007335018017329276, - -0.00016817076539155096, - -0.0026989926118403673, - -0.0015531518729403615, - 0.00016574232722632587, - -1.2413307558745146e-05, - -0.00038662529550492764, - 0.007500406354665756, - 0.0009480324806645513, - 0.0006707095890305936, - 0.007239801809191704, - 0.005416256841272116, - 0.010302367620170116, - 0.011283108964562416, - -0.0024393610656261444, - 0.005494250915944576, - 0.0003988123207818717, - 0.3691422939300537, - -0.0034190514124929905, - -0.0061461227014660835, - 0.0045077502727508545, - 0.0034767496399581432, - -0.0005251136608421803, - -0.005436823237687349, - 0.0018972177058458328, - 0.008287978358566761, - -0.0013702353462576866, - 0.006376971025019884, - -0.005071625579148531, - 0.0035896601621061563, - -0.005682149436324835, - -0.0015957355499267578, - 0.0025656362995505333, - 0.0013167142169550061, - -0.004720323719084263, - -0.0007235664525069296, - 0.008741375990211964, - -0.009776102378964424, - -0.004755658563226461, - -0.0019038296304643154, - 0.0012795641086995602, - -0.00014841828669887036, - 0.025013215839862823, - 0.00016016366134863347, - 0.00973106175661087, - 0.002923117019236088, - -0.0004071633447892964, - -0.0005169124342501163, - -0.016175415366888046, - -0.005378056317567825, - 0.12586382031440735, - 0.008893595077097416, - -0.002744946163147688, - 0.006804903037846088, - 0.005700826179236174, - -0.010841353796422482, - 0.11419221013784409, - -0.0028115373570472, - 0.012072425335645676, - -0.004540521651506424, - -0.003920329734683037, - 0.019354429095983505, - -0.0034627390559762716, - 0.011302266269922256, - -0.007197557017207146, - -0.0002584276080597192, - -0.005683608818799257, - 0.0019457716261968017, - 0.0005350193823687732, - -1.0308078344678506e-05, - -0.015420451760292053, - 0.004551598336547613, - 0.0009253654279746115, - 0.0006551051628775895, - 0.005542561877518892, - 0.0007282189326360822, - 0.006524228025227785, - 0.003986930474638939, - -0.0023334245197474957, - -0.002133790636435151, - -0.003917598631232977, - -0.004792047198861837, - 0.002722560428082943, - -0.08892340958118439, - 0.01302400603890419, - 0.0022903357166796923, - 0.0073985145427286625, - -0.0003859254939015955, - 0.0010470945853739977, - -0.00366759835742414, - -0.002462058560922742, - 0.002652387134730816, - 0.014366930350661278, - -0.004654058255255222, - -0.0015746341086924076, - 9.577824675943702e-05, - 0.004833456128835678, - 0.0012714581098407507, - 0.00270925834774971, - -0.004318407736718655, - 0.0028591102454811335, - 0.0044987984001636505, - 0.002507458906620741, - -0.07727508246898651, - -0.001684109098277986, - 0.004898590501397848, - -0.002224504016339779, - 0.017667798325419426, - -0.0011676066787913442, - -0.009071724489331245, - 0.03913537785410881, - 0.0011971257627010345, - -0.0035607763566076756, - -0.000841853441670537, - -0.00398574722930789, - 0.003203039523214102, - -0.0075330715626478195, - 0.003025373909622431, - -0.0058364104479551315, - 0.009189632721245289, - 0.0037702855188399553, - -0.005627740174531937, - -0.016768362373113632, - -0.000779608148150146, - 0.0017502238042652607, - 0.00045921155833639205, - 0.0002815354964695871, - 0.013360584154725075, - 0.001669241231866181, - 0.160650834441185, - 0.0008325560484081507, - -0.009282750077545643, - -0.005530282389372587, - 0.0024766395799815655, - 0.005782810505479574, - 0.0011751680867746472, - 0.0026242646854370832, - -0.01046077162027359, - -0.005541109945625067, - 0.006390002556145191, - 0.01068170927464962, - 0.005261141806840897, - -0.0009352000779472291, - 0.006931452080607414, - -0.00979714747518301, - -0.0026884006801992655, - 0.006407863460481167 - ], - [ - 0.00029105108114890754, - 0.002636705758050084, - 8.4559855167754e-05, - 0.00032712399843148887, - -0.0013969489373266697, - -0.00020781000785063952, - 0.0007574162445962429, - 0.0008012119214981794, - 0.003848310559988022, - 0.0025050933472812176, - -0.002934143878519535, - 0.002053237985819578, - -0.0004801136383321136, - -0.0008580229477956891, - -0.0003046424826607108, - 0.0026952791959047318, - -0.0008973110234364867, - -0.003909716382622719, - -0.002584158442914486, - 0.0027713042218238115, - -0.008106661029160023, - 0.004086907021701336, - -0.0017011810559779406, - -0.00016831347602419555, - -0.0016677669482305646, - -0.0022821626625955105, - 1.3241112355899531e-05, - -0.0010271391365677118, - -0.0010896078310906887, - 0.0018882288131862879, - 0.00029305575299076736, - 0.0028213397599756718, - 0.0005726589588448405, - -0.0015285994159057736, - 0.0013882373459637165, - 0.0011899307137355208, - 0.0017194008687511086, - 0.0010692314244806767, - -0.0002728065592236817, - -0.0010689012706279755, - 4.749983418150805e-05, - 0.001417970866896212, - 5.041962504037656e-05, - -0.0014056633226573467, - -0.0021674190647900105, - -0.003199082799255848, - 6.589834811165929e-05, - -0.0024558180011808872, - 0.0010003491770476103, - 0.00021196389570832253, - -0.001916881068609655, - 0.00796175841242075, - 0.0005500101833604276, - -0.00012069148215232417, - -0.001071152277290821, - -0.001383553841151297, - -0.0006897029816173017, - 0.0007959368522278965, - -0.006260660011321306, - -0.000863698311150074, - 0.0011530868941918015, - -0.002267733681946993, - 0.00035662553273141384, - 0.003601538483053446, - -0.002765452256426215, - 0.0012327067088335752, - -0.010005233809351921, - 0.003152616787701845, - -0.0005262091872282326, - -0.0028783048037439585, - -0.002346374560147524, - -0.07338466495275497, - 0.0027785461861640215, - 0.005012885667383671, - 0.00025645806454122066, - 0.002325858687981963, - 0.0028919021133333445, - 0.0016617104411125183, - -0.0036447385791689157, - 0.0007517746998928487, - -0.0010666181333363056, - 0.0002583099121693522, - -0.9182912111282349, - -0.0019106895197182894, - -0.0046338653191924095, - 0.0021256678737699986, - 0.00034045326174236834, - 0.0009133661515079439, - 7.61513874749653e-05, - 0.00439821183681488, - 0.002068693982437253, - 0.0006124840001575649, - 0.009755258448421955, - -0.0005293049616739154, - 0.0026595720555633307, - 0.0027518325950950384, - -0.0009603234939277172, - -0.0010475891176611185, - 0.00419862475246191, - -0.0017965955194085836, - 0.00078492087777704, - 0.001851976034231484, - -0.0009760771645233035, - 0.0009331825422123075, - 0.006447186227887869, - 0.001723919645883143, - -0.0017936400836333632, - 0.0020555295050144196, - -0.0021345396526157856, - -0.0019567986018955708, - 0.007398074492812157, - 0.004071309696882963, - -0.0006188537226989865, - -8.196381531888619e-05, - 0.0010564711410552263, - 0.005302757024765015, - -0.0019952505826950073, - 0.0015174545114859939, - -0.000973166839685291, - 0.00037312196218408644, - -0.0008785476675257087, - -0.0027883013244718313, - -0.002186537254601717, - 0.0019363671308383346, - -0.004503305535763502, - -0.0020533206406980753, - 0.27892112731933594, - 0.0018218921031802893, - -0.00036243864451535046, - 0.00029227015329524875, - -0.00012136177974753082, - 0.002980574266985059, - 0.0018874482484534383, - -0.0011093959910795093, - -0.000911629875190556, - 0.0007070022402331233, - -0.0016182003309950233, - 0.00030125389457680285, - -0.0013105275575071573, - 0.001570102758705616, - 0.0015460164286196232, - 0.0005169871146790683, - -0.001973669743165374, - -0.0009944287594407797, - -0.0006852432270534337, - -0.00548731442540884, - 0.0016700539272278547, - 0.003034897381439805, - -0.001425239141099155, - 0.0005600814474746585, - -0.0009167168173007667, - -0.007034249138087034, - -0.002201952738687396, - -0.006069934461265802, - -0.0026168469339609146, - 0.0017299825558438897, - 0.0008393639582209289, - -0.0007669304613955319, - 0.0006848308257758617, - 0.20770983397960663, - -0.0022026197984814644, - 0.0017917962977662683, - 0.00028313693474046886, - 0.00039885443402454257, - 0.009539151564240456, - 0.09020338207483292, - 0.0016433228738605976, - -0.004334131721407175, - 0.0011391154257580638, - 0.00157238042447716, - -0.003209332935512066, - 0.0002720520133152604, - -0.00206835032440722, - 0.001595785841345787, - -0.002834046259522438, - -0.0011610304936766624, - -0.00026727368822321296, - 0.004614186007529497, - 0.0009499661391600966, - 0.003911420237272978, - -0.0009811935015022755, - 0.0023203142918646336, - -0.0007543744286522269, - -0.00043700338574126363, - -0.0028804405592381954, - -0.0018692059675231576, - -0.0009567224769853055, - -0.0008740891935303807, - 0.0017177595291286707, - 0.0005530356429517269, - 0.0014431936433538795, - -0.0011644390178844333, - -0.05964570492506027, - -0.0033978696446865797, - 0.00423766765743494, - -0.0008687777444720268, - 0.0006545120268128812, - 0.002611181465908885, - -0.000765169330406934, - 0.0003984381619375199, - -0.002420842880383134, - -0.0032648928463459015, - 0.002913538133725524, - -0.0018677490297704935, - 0.0013906897511333227, - 0.006402564700692892, - -0.0017860588850453496, - -0.0028991317376494408, - -0.0002769419807009399, - 0.0022258744575083256, - -0.001242307247593999, - -0.0008186814957298338, - -0.052936799824237823, - 0.0023355528246611357, - -0.0018756393110379577, - -0.00011136526882182807, - -0.0036167199723422527, - 0.0006994903087615967, - 0.00542320916429162, - -0.010759802535176277, - 0.0012694539036601782, - 0.0013393849367275834, - -0.0007647997699677944, - 0.00043446157360449433, - -0.0005761101492680609, - -0.00019112344307359308, - -0.000300675630569458, - 0.0013790804659947753, - 0.0019947222899645567, - -0.0010329049546271563, - -6.102496990934014e-05, - 0.0009091941174119711, - 0.0027072876691818237, - 0.0005296528106555343, - -0.001945046242326498, - -0.002376648597419262, - -0.004972048103809357, - 0.0010682118590921164, - 0.11885087937116623, - -0.0005129354540258646, - 0.002893393859267235, - 0.0006633176235482097, - -0.0022574246395379305, - -0.00416116276755929, - -0.0006332954508252442, - -0.0013863571221008897, - 0.004679221659898758, - -9.511670214124024e-05, - -0.0003273208858445287, - -0.0036712326109409332, - 0.0003971738915424794, - 0.0030167647637426853, - -0.0022669865284115076, - 0.00023782014613971114, - -0.0007387067889794707, - -0.0003545337822288275 - ], - [ - -0.006903947796672583, - 0.028216352686285973, - -0.004547152202576399, - 0.06723903119564056, - -0.027402052655816078, - -0.01753063313663006, - -0.0056451759301126, - 0.03137684240937233, - 0.05391808971762657, - -0.006870720535516739, - 0.07961533218622208, - -0.06420367956161499, - 0.007922516204416752, - 0.042802926152944565, - -0.009906860999763012, - -0.2787402868270874, - -0.05119461938738823, - 0.05583614856004715, - -0.03624599426984787, - -0.06135597825050354, - -0.08319728821516037, - -0.0055289799347519875, - -0.018776366487145424, - 0.024282854050397873, - -0.010854372754693031, - -0.0012151208939030766, - 0.07195191085338593, - -0.04527442902326584, - -0.056058142334222794, - 0.08619842678308487, - 0.025349466130137444, - 0.004810359328985214, - -0.04848714917898178, - -0.01286247931420803, - 0.0724823996424675, - -0.02206832729279995, - 0.06423448026180267, - 0.009441303089261055, - -0.012943793088197708, - -0.02466878853738308, - -0.02359900437295437, - 0.05508887395262718, - 0.04009277746081352, - -0.004607680253684521, - -0.05265098065137863, - -0.03286560997366905, - -0.023418426513671875, - -0.011390797793865204, - 0.021562611684203148, - 0.008060434833168983, - 0.018176473677158356, - 0.054346371442079544, - -0.0042038713581860065, - 0.09259903430938721, - -0.011267699301242828, - -0.010871052742004395, - 0.008143069222569466, - -0.04081068933010101, - 0.015465084463357925, - 0.06891915947198868, - -0.014641785062849522, - 0.017548026517033577, - 0.044409338384866714, - -0.01917499303817749, - -0.05223030969500542, - 0.014354467391967773, - 0.010858913883566856, - 0.03879459574818611, - 0.005021651275455952, - 0.07625413686037064, - -0.0019355890108272433, - 0.14135728776454926, - 0.02952651120722294, - 0.07413523644208908, - -0.02468555048108101, - -0.08467289060354233, - 0.0507710836827755, - -0.0025808648206293583, - 0.005234535317867994, - -0.005946733057498932, - 0.034078214317560196, - 0.012599465437233448, - 0.34241536259651184, - 0.034379128366708755, - 0.004682780709117651, - 0.047932032495737076, - -0.016546931117773056, - -0.051078613847494125, - 0.014172854833304882, - -0.1057242900133133, - -0.005368366837501526, - 0.04389369115233421, - 0.12222211062908173, - 0.000319300452247262, - 0.05091983079910278, - 0.010086455382406712, - 0.0025213321205228567, - -0.003803290193900466, - -0.04420804977416992, - -0.008842810988426208, - 0.014044050127267838, - -0.012876294553279877, - -0.06392282247543335, - -0.029373787343502045, - 0.0627325028181076, - 0.014016788452863693, - 0.02916218340396881, - -0.05262799561023712, - 0.04188891127705574, - 0.0004185371217317879, - 0.052990082651376724, - 0.07684206962585449, - 0.02153518609702587, - -0.026502635329961777, - -0.05568137764930725, - 0.04572649300098419, - 0.006018299143761396, - -0.004128079861402512, - 0.0033376493956893682, - -0.1200479194521904, - -0.03558862581849098, - -0.01169390045106411, - -0.008010060526430607, - 0.002773940796032548, - -0.03151563182473183, - 0.034321513026952744, - -0.5359645485877991, - 0.04036126658320427, - 0.035982225090265274, - 0.042823124676942825, - 0.02059379778802395, - -0.009878282435238361, - 0.004299973603338003, - -0.06867336481809616, - 0.05362709239125252, - 0.012485338374972343, - -0.09608735144138336, - 0.03863721713423729, - 0.03312169760465622, - 0.0017320280894637108, - 0.02685447409749031, - 0.02009507827460766, - -0.028850937262177467, - 0.06126675009727478, - -0.056808024644851685, - 0.00499211810529232, - 0.01840079016983509, - -0.007572325412184, - 0.0019007601076737046, - 0.03843953087925911, - 0.0088457390666008, - 0.035440005362033844, - 0.019905032590031624, - -0.06666352599859238, - -0.010259702801704407, - 0.04125688970088959, - -0.010092192329466343, - 0.005812501069158316, - -0.0012600894551724195, - 0.1908838152885437, - 0.06557700783014297, - -0.006321428343653679, - 0.008537480607628822, - 0.00637268740683794, - 0.04143437743186951, - -0.14863383769989014, - -0.02782604843378067, - -0.06894484907388687, - -0.03301975503563881, - -0.02009715884923935, - -0.042552780359983444, - -0.019473811611533165, - -0.0639268159866333, - -0.027334606274962425, - -0.04903944954276085, - -0.06427531689405441, - 0.010874292813241482, - 0.0019452229607850313, - 0.021718382835388184, - -0.00361735001206398, - -0.03343433886766434, - -0.04679883271455765, - -0.012358591891825199, - 0.051621370017528534, - 0.052522458136081696, - 0.03702390193939209, - 0.08628931641578674, - -0.03884647786617279, - 0.02900831773877144, - -0.029080964624881744, - 0.014034675434231758, - 0.039478521794080734, - 0.1741878241300583, - -0.03635329753160477, - 0.051531851291656494, - -0.0020873723551630974, - 0.0016963959205895662, - 0.014428806491196156, - -0.009409830905497074, - 0.00017369459965266287, - 0.006490506697446108, - 0.013098319061100483, - 0.04194537550210953, - 0.06681232154369354, - -0.03682950139045715, - 0.07829242944717407, - -0.047245368361473083, - -0.00998834427446127, - 0.009258486330509186, - 0.023711171001195908, - 0.02375921420753002, - 0.046629104763269424, - 0.14419355988502502, - -0.04978692904114723, - -0.0205459576100111, - -0.03372699022293091, - 0.005999683402478695, - -0.061594799160957336, - 0.01633700169622898, - -0.1067872941493988, - -0.011241250671446323, - -0.004991055466234684, - 0.028260117396712303, - -0.045391958206892014, - 0.012991816736757755, - -0.005700483452528715, - 0.021029861643910408, - -0.0003869552747346461, - -0.004006789531558752, - -0.017497695982456207, - 0.003852721769362688, - 0.051504723727703094, - 0.022615604102611542, - 0.009559068828821182, - 0.0006026040064170957, - -0.010956902988255024, - 0.041255224496126175, - 0.0025159986689686775, - -0.10146854817867279, - 0.026651063933968544, - 0.038831017911434174, - -0.020227083936333656, - -0.03772585093975067, - -0.017075257375836372, - 0.034241579473018646, - -0.014452289789915085, - -0.029187224805355072, - -0.019612234085798264, - -0.030500231310725212, - 0.011293069459497929, - -0.01754358783364296, - 0.033094096928834915, - 0.006070005241781473, - -0.023154670372605324, - -0.011526771821081638, - -0.004922932013869286 - ], - [ - 0.0003996464947704226, - 0.001500272424891591, - -0.0017108127940446138, - 0.0013165280688554049, - -0.0011487951269373298, - 0.0005488282768055797, - -0.0005067489692009985, - 0.0007363478653132915, - 0.0024113457184284925, - 0.002036120742559433, - -0.0018330200109630823, - 0.0012117162114009261, - -0.00012026965123368427, - -0.000414591864682734, - -0.00016924987721722573, - 0.006396183744072914, - -0.0013780557783320546, - -0.0030833487398922443, - -0.0027880670968443155, - 0.0018347069853916764, - -0.008616787381470203, - 0.004298307001590729, - -0.0014470533933490515, - -0.0007704962627030909, - -0.001499901874922216, - -0.0016189876478165388, - 0.0016437942394986749, - -0.00036569355870597064, - -0.0010806287173181772, - 0.0006650645518675447, - 0.000767052115406841, - 0.002085448009893298, - -0.00011059678217861801, - -0.0007108629797585309, - 0.001526919542811811, - 0.001208811067044735, - 0.001473672455176711, - 0.001181603642180562, - -5.8041045122081414e-05, - -0.0010363931069150567, - -7.562190148746595e-05, - 0.0021653876174241304, - 0.0001431538548786193, - 0.00037161516956984997, - -0.0022096410393714905, - -0.0018599628238007426, - 0.0012449979549273849, - -0.00136165926232934, - 0.0017428435385227203, - 0.001281328615732491, - -0.001389092649333179, - 0.008541022427380085, - 0.0006275117048062384, - 0.0006459532305598259, - -0.0017010571900755167, - -0.0015422502765432, - -0.00016185961430892348, - -0.000540552253369242, - -0.0063195438124239445, - 0.0001179589016828686, - 0.000916578690521419, - -0.003333602100610733, - 0.0007988035213202238, - 0.0033755183685570955, - -0.004352072719484568, - 0.002623370848596096, - -0.01029463205486536, - 0.0020276461727917194, - -0.0014444340486079454, - -0.0004142643010709435, - -0.0013755697291344404, - -0.07384605705738068, - 0.002735567046329379, - 0.005421821493655443, - -0.00027936388505622745, - 0.0016509705455973744, - 0.0021392276976257563, - 0.0028002362232655287, - -0.0026181545108556747, - 0.0019652799237519503, - -0.0005233418778516352, - 0.0002564029418863356, - -0.917465329170227, - -5.407522985478863e-05, - -0.004288712050765753, - 0.002567528747022152, - 0.0011072828201577067, - 0.0002742894575931132, - 0.000515806837938726, - 0.0026994922664016485, - 0.0009432706865482032, - 0.001247054897248745, - 0.006587239447981119, - -0.0004798016743734479, - 0.0030124851036816835, - 0.002609530696645379, - -0.0001668918994255364, - -0.0014746597735211253, - 0.0034394487738609314, - -0.001190899289213121, - 0.0018655138555914164, - 0.0012282532406970859, - 5.2406474424060434e-05, - 0.0013521137880161405, - 0.0038561969995498657, - 0.0005820877850055695, - -0.0028154407627880573, - 0.0012571878032758832, - -0.0017450600862503052, - -0.0009499311563558877, - 0.008219458162784576, - 0.004474152345210314, - -0.0002059527614619583, - -0.0005913340137340128, - 0.0011777185136452317, - 0.004555657505989075, - -0.0016978546045720577, - 0.0006215007742866874, - 0.0004281355068087578, - -0.0004998872755095363, - -0.0009699061629362404, - -0.002449951833114028, - -0.001713367528282106, - 0.002033283468335867, - -0.0036748992279171944, - -0.0014527802122756839, - 0.28434354066848755, - 0.0017513930797576904, - 0.0004022332723252475, - 0.001101031550206244, - 0.00030089449137449265, - 0.0036019934341311455, - 0.000572544289752841, - -0.0009105668286792934, - -0.0012743318220600486, - 0.0019190189195796847, - -0.004108396824449301, - 0.0010942212538793683, - -0.00195328239351511, - 0.001586543396115303, - 0.001703652204014361, - -0.00028742989525198936, - -0.0016678225947543979, - -0.00013063641381449997, - -0.0015558935701847076, - -0.005309964530169964, - 0.0014878871152177453, - 0.0014844988472759724, - -0.0008805938414297998, - 0.0007837183075025678, - -0.0007890688139013946, - -0.006428427528589964, - -0.0014752477873116732, - -0.005561555735766888, - -0.002687755273655057, - 0.001074712723493576, - 0.0010247265454381704, - -0.0012981138424947858, - 0.0008459459058940411, - 0.20477908849716187, - -0.000580081541556865, - 0.0009422662551514804, - 0.0006743007688783109, - 0.0007234688382595778, - 0.010441186837852001, - 0.09155382215976715, - 0.0014589191414415836, - -0.0041061933152377605, - 0.0011642395984381437, - 0.0012637877371162176, - -0.004571422468870878, - 0.001664972398430109, - -0.002490734914317727, - 0.0017434750916436315, - -0.0024896340910345316, - -0.0012516472488641739, - 0.0007509136339649558, - 0.005296977236866951, - 0.0006158261676318944, - 0.004911522846668959, - -0.0008467418956570327, - 0.0014857914065942168, - -0.00022971427824813873, - -1.5270405128831044e-05, - -0.0032346881926059723, - -0.0005030942847952247, - 0.0017478320514783263, - -0.0022519035264849663, - 0.0002880183747038245, - 7.929966523079202e-05, - 7.224149157991633e-05, - -0.000664179737213999, - -0.060912005603313446, - -0.004560049157589674, - 0.0055298819206655025, - -0.0024641472846269608, - 0.0016734988894313574, - 0.0021398006938397884, - -0.0010914179729297757, - 0.0019539538770914078, - -0.001003290875814855, - -0.0020465042907744646, - 0.003533686511218548, - -0.00187469064258039, - 0.0006353924982249737, - 0.006554518360644579, - -0.0009898499120026827, - -0.0019868118688464165, - -0.0002131514047505334, - 0.00013915743329562247, - 9.221076470566913e-05, - 0.00023137929383665323, - -0.05294094607234001, - 0.0008377068443223834, - -0.0009149746038019657, - -0.00042860661051236093, - -0.003098204731941223, - -0.000709210813511163, - 0.005175369791686535, - -0.010026345029473305, - 0.00032754705171100795, - 0.0006233209860511124, - -0.0003821013087872416, - -0.0008816522895358503, - -0.0006578011671081185, - 0.0007683500880375504, - 1.8331678802496754e-05, - 0.0010753048118203878, - 0.0007462733774445951, - -0.0018023046432062984, - 0.00048374931793659925, - 0.0034538940526545048, - 0.0014463488478213549, - -0.0004990993766114116, - -2.4439592380076647e-05, - -0.002984046470373869, - -0.0042969356290996075, - 0.002086459659039974, - 0.11581700295209885, - 0.0005897165392525494, - 0.002512626815587282, - 0.0007640005787834525, - -0.0007609048043377697, - -0.003888328792527318, - -0.0012523462064564228, - -0.0009506392525509, - 0.004896317608654499, - 0.00048334302846342325, - -0.0019294082885608077, - -0.004321042448282242, - -0.0008766475948505104, - 0.0012970173265784979, - -0.0020178942941129208, - 0.001597892609424889, - -0.0014366055838763714, - -0.0011268631787970662 - ], - [ - -0.016571730375289917, - 0.04384881630539894, - 0.020055074244737625, - 0.011946374550461769, - 0.02537447214126587, - 0.0018758110236376524, - 0.011232800781726837, - -0.018480418249964714, - 0.018327584490180016, - 0.002716201124712825, - 0.010108760558068752, - 0.01524890772998333, - -0.03241528198122978, - -0.0064923749305307865, - 0.0172275397926569, - -0.3501361906528473, - -0.02521594800055027, - -0.03540947660803795, - -0.0071400306187570095, - 0.02202424965798855, - -0.04025838151574135, - -0.02706604078412056, - -0.03381762653589249, - -0.01451670378446579, - 0.030449487268924713, - -0.004545037634670734, - 0.017562204971909523, - -0.004706150386482477, - -0.0019973928574472666, - 0.01204643677920103, - 0.012102048844099045, - -0.03396394103765488, - 0.026879101991653442, - 0.033012669533491135, - 0.026988137513399124, - -0.06730521470308304, - -0.017024941742420197, - -0.07247552275657654, - -0.00929801445454359, - -0.022749096155166626, - 0.017330603674054146, - 0.01704464480280876, - 0.017567329108715057, - 0.0013214008649811149, - 0.00859008263796568, - -0.1171557679772377, - -0.005801564548164606, - 0.010582956485450268, - 0.02010439708828926, - -0.012060669250786304, - 0.029752906411886215, - 0.01211013924330473, - 0.014212415553629398, - -0.007364743389189243, - -0.017646457999944687, - -0.016351157799363136, - -0.0073266406543552876, - 0.03698338568210602, - 0.058180514723062515, - -0.018680717796087265, - -0.008239257149398327, - 0.034624598920345306, - 0.01099694985896349, - -0.0706743448972702, - -0.031784381717443466, - 0.029115868732333183, - -0.019841071218252182, - 0.029795054346323013, - 0.008261329494416714, - -0.011510858312249184, - 0.022300956770777702, - 0.12456674128770828, - 0.04532496631145477, - 0.08610086143016815, - -0.008504722267389297, - -0.010291564278304577, - 0.025785647332668304, - -0.0023927793372422457, - -0.007064863573759794, - -0.00739352498203516, - 0.004640775267034769, - 0.0035219870042055845, - -0.1680128127336502, - 0.037201233208179474, - -0.011360133066773415, - -0.03212524577975273, - 0.0008119804551824927, - 0.0008611391531303525, - -0.057750921696424484, - -0.013890067115426064, - 0.031170083209872246, - 0.0018233770970255136, - 0.18114332854747772, - 0.058822523802518845, - -0.013097022660076618, - -3.1213723559631035e-05, - -0.02529672347009182, - -0.011432268656790257, - -0.002881150459870696, - -0.022157255560159683, - 0.005391378421336412, - 0.026770347729325294, - -0.020743025466799736, - -0.07375721633434296, - 0.03237566351890564, - -0.017521394416689873, - 0.021547531709074974, - -0.0028865737840533257, - -0.008823482319712639, - -0.023142142221331596, - -0.006051612086594105, - 0.03710899502038956, - 0.031445909291505814, - -0.0002060223341686651, - -0.04599792882800102, - 0.03339166194200516, - -0.0027167925145477057, - -0.03143846243619919, - -0.035504408180713654, - -0.003096097381785512, - 0.02989739552140236, - 0.001774218282662332, - -0.012863000854849815, - -0.013589082285761833, - -0.06739950180053711, - -0.03451604023575783, - -0.5502088069915771, - 0.0999179258942604, - -0.01351397205144167, - 0.024261973798274994, - -0.009765902534127235, - -0.05958571285009384, - 0.0014820108190178871, - -0.012404951266944408, - 0.08354262262582779, - 0.02675316296517849, - 0.021234987303614616, - -0.00423864321783185, - 0.031346552073955536, - -0.028551051393151283, - 0.026049718260765076, - 0.03608733415603638, - -0.008674774318933487, - -0.03308510035276413, - 0.003210483817383647, - -0.031105104833841324, - -0.02452699840068817, - -0.05775303393602371, - -0.05201695114374161, - -0.021269822493195534, - 0.01557418517768383, - -0.03133131563663483, - -0.01757504791021347, - -0.027573194354772568, - 0.010587211698293686, - 0.03390302509069443, - 0.03149442374706268, - 0.001007475657388568, - 0.0018303273245692253, - 0.38681304454803467, - 0.012854326516389847, - -0.01887451484799385, - -0.0022382205352187157, - -0.03571170195937157, - 0.0617331899702549, - -0.15591736137866974, - -0.03265748545527458, - -0.03176280856132507, - 0.01108978595584631, - 0.023710107430815697, - -0.04928513616323471, - -0.08866697549819946, - -0.03787294775247574, - 0.008706958033144474, - -0.0382814034819603, - -0.001997182611376047, - -0.03081738017499447, - -0.09818267822265625, - 0.004614229314029217, - -0.04531072452664375, - -0.08283709734678268, - 0.009036683477461338, - 0.005179352127015591, - -0.010389862582087517, - 0.14193101227283478, - 0.03877602517604828, - 0.0011134878732264042, - 0.013267967849969864, - -0.022298168390989304, - -0.0056713358499109745, - 0.006422560662031174, - -0.0019181044772267342, - 0.20411083102226257, - -0.022343207150697708, - 0.052930716425180435, - 0.021435191854834557, - -0.010290664620697498, - 0.053882621228694916, - -0.02547341026365757, - -0.02885894663631916, - -0.005866891238838434, - 0.04080451652407646, - 0.0055619836784899235, - 0.024297509342432022, - 0.0017819429049268365, - 0.057271212339401245, - -0.038899075239896774, - 0.01997189037501812, - 0.030810009688138962, - 0.04765765741467476, - 0.007504037115722895, - -0.03474973887205124, - 0.1322096437215805, - 0.047312989830970764, - -0.005923133343458176, - -6.109567766543478e-05, - 0.01762041449546814, - 0.001104384777136147, - -0.0254124253988266, - -0.06444458663463593, - 0.0006823412259109318, - -0.016858812421560287, - -0.007079439703375101, - 0.014028866775333881, - 0.02397710643708706, - -0.010600926354527473, - -0.02135920338332653, - -0.01381064672023058, - 0.0014414788456633687, - 0.03826158866286278, - 0.02529214136302471, - -0.015241515822708607, - 0.013172091916203499, - -0.0065392907708883286, - -0.08186905831098557, - -0.025538817048072815, - 0.0027340527158230543, - -0.01991548202931881, - -0.05083136260509491, - 0.004952393937855959, - -0.012052532285451889, - -0.010667160153388977, - -0.04129994660615921, - 0.006820271722972393, - 0.013625413179397583, - -0.002210022183135152, - 0.014414072968065739, - -0.05165422707796097, - 0.017419608309864998, - 0.01699163392186165, - -0.05749034881591797, - 0.02546050027012825, - 0.042229339480400085, - -0.011288448236882687, - -0.0028258024249225855, - 0.0035081973765045404 - ], - [ - -0.03703051432967186, - 0.04022951424121857, - -0.018533386290073395, - 0.05250057205557823, - 0.03954601660370827, - 0.0447198823094368, - 0.018517814576625824, - -0.0523393414914608, - 0.03908311575651169, - -0.037076838314533234, - -0.0033275578171014786, - 0.04447998106479645, - -0.03508486598730087, - 0.0018376741791144013, - -0.018307222053408623, - -0.2151792347431183, - -0.011328421533107758, - -0.05025578662753105, - -0.07704684883356094, - -0.00486616650596261, - -0.01708095520734787, - 0.028772300109267235, - -0.009309965185821056, - -0.05419127643108368, - 0.022195667028427124, - -0.004099929239600897, - 0.08152998983860016, - -0.008104080334305763, - 0.01907936856150627, - -0.07593462616205215, - -0.0122646139934659, - 0.006170070730149746, - -0.022782793268561363, - 0.038019854575395584, - -0.014612437225878239, - -0.0007158421212807298, - -0.0008214754052460194, - -0.08928035944700241, - -0.006189206149429083, - -0.03860597684979439, - 0.010518074035644531, - -0.01607443206012249, - -0.00592057453468442, - 0.025533488020300865, - 0.019732506945729256, - -0.07830627262592316, - -0.017269287258386612, - 0.04574374109506607, - -0.008526087738573551, - 0.08970087021589279, - -0.040424685925245285, - -0.012695934623479843, - 0.01506201084703207, - -0.03208029642701149, - 0.05418812856078148, - -0.0639379620552063, - 0.0422264002263546, - 0.006229473743587732, - 0.01199155580252409, - -0.037384163588285446, - -0.005259506404399872, - 0.022236930206418037, - -0.025775935500860214, - 0.044894326478242874, - -0.010707424953579903, - 0.006379944272339344, - -0.024269191548228264, - -0.02789987251162529, - -0.0037928519304841757, - 0.014319302514195442, - -0.0012002220610156655, - 0.11063537001609802, - 0.00480745080858469, - 0.038805291056632996, - -0.017608927562832832, - -0.014901651069521904, - 0.04897186532616615, - 0.030778585001826286, - 0.007726311683654785, - -0.026526087895035744, - -0.005047351587563753, - -0.011167489923536777, - -0.4746130108833313, - 0.043328989297151566, - -0.06752140074968338, - -0.057134125381708145, - 0.05804029479622841, - 0.011165454983711243, - -0.025205180048942566, - -0.013213565573096275, - -0.014923617243766785, - -0.020163027569651604, - 0.16590401530265808, - 0.02056138962507248, - 0.01841823384165764, - 0.010840884409844875, - 0.010795955546200275, - 0.009664427489042282, - -0.0021022886503487825, - -0.026339886710047722, - 0.03551867604255676, - -0.05311010405421257, - 0.09504256397485733, - -0.04882967099547386, - 0.019119225442409515, - -0.00175091705750674, - -0.02899136021733284, - 0.016225328668951988, - -0.04784787446260452, - 0.012688491493463516, - 0.025198590010404587, - 0.07974568009376526, - 0.05063626170158386, - 0.013218123465776443, - -0.02476714551448822, - -0.027231333777308464, - 0.012062767520546913, - -0.025250757113099098, - -0.01580631360411644, - 0.019988631829619408, - -0.023428743705153465, - 0.008476287126541138, - -0.008115115575492382, - -0.03614407777786255, - -0.07466170191764832, - 0.014340180903673172, - -0.3495752811431885, - 0.05290696769952774, - -0.016431663185358047, - 0.031738605350255966, - 0.06335657835006714, - -0.030954983085393906, - 0.017362158745527267, - 0.01823372207581997, - 0.08162585645914078, - 0.03860607370734215, - 0.015909863635897636, - 0.04218348115682602, - 0.01103608962148428, - -0.03562943637371063, - 0.021545689553022385, - 0.01091832760721445, - 0.03172645717859268, - 0.03614761307835579, - 0.010547527112066746, - -0.05285917595028877, - 0.008478346280753613, - 0.013288038782775402, - -0.029705090448260307, - -0.005626681260764599, - -0.0033385197166353464, - -0.032606955617666245, - 0.0038780716713517904, - -0.04852793738245964, - -0.001979682594537735, - 0.049022868275642395, - -0.005511195864528418, - 0.021897776052355766, - -0.0444478802382946, - 0.4108227789402008, - 0.08289848268032074, - -0.049405790865421295, - -0.013547714799642563, - -0.0058606588281691074, - 0.0749024897813797, - -0.12446364760398865, - -0.04002315551042557, - -0.011153273284435272, - 0.0698757991194725, - -0.005106056109070778, - -0.07145306468009949, - -0.08324684947729111, - -0.006113607902079821, - -0.001144489157013595, - -0.055701591074466705, - -0.0041542574763298035, - -0.02975824475288391, - -0.08366052061319351, - 0.02682168409228325, - -0.017809798941016197, - -0.05663400515913963, - 0.004914505872875452, - -0.05225232616066933, - -0.04248277097940445, - 0.1284025013446808, - 0.06491740047931671, - 0.03981016203761101, - 0.010343261063098907, - -0.0668913871049881, - -0.02030857652425766, - -0.04590657725930214, - -0.014672736637294292, - 0.14918044209480286, - 0.039003483951091766, - 0.05282619968056679, - 0.02798476256430149, - -0.049405910074710846, - -0.020322907716035843, - 0.009756519459187984, - -0.026115505024790764, - 0.024579498916864395, - 0.033216990530490875, - 0.011751354672014713, - 0.03191809356212616, - -0.009486982598900795, - 0.010876990854740143, - -0.030473466962575912, - 0.07376790791749954, - 0.013873409479856491, - -0.045032646507024765, - -0.0468134731054306, - 0.013934646733105183, - 0.0956442803144455, - 0.016045628115534782, - 0.0005043895798735321, - -0.053961340337991714, - -0.012756000272929668, - 0.048136644065380096, - -0.018720239400863647, - -0.04506107419729233, - -0.025535615161061287, - -0.051069360226392746, - -0.019760550931096077, - -0.00529691856354475, - -0.019773000851273537, - 0.03491789102554321, - 0.01284108404070139, - -0.04676208272576332, - -0.04562061280012131, - 0.009764996357262135, - 0.0639597624540329, - -0.0446363165974617, - 0.006938067264854908, - -0.016779595986008644, - -0.021152198314666748, - -0.049084775149822235, - -0.037778958678245544, - 0.00027622864581644535, - -0.08892291784286499, - 0.04008524864912033, - 0.061274610459804535, - -0.029127921909093857, - 0.014357498846948147, - 0.02647143416106701, - 0.004567923955619335, - 0.007782565895467997, - 0.037672605365514755, - -0.0009892811067402363, - 0.006024087313562632, - 0.0128316730260849, - -0.04805281385779381, - 0.015832379460334778, - -0.003266587620601058, - -0.051944550126791, - -0.03805899992585182, - 0.010753117501735687 - ], - [ - 0.0010193221969529986, - 0.00246868166141212, - -0.0022564949467778206, - 0.002472523832693696, - 0.00046341001871041954, - 0.0017038403311744332, - 0.0009059003787115216, - -0.00032102956902235746, - 0.002676593605428934, - -0.0010643730638548732, - -0.004085481632500887, - 0.005048173014074564, - -0.005815285723656416, - -0.0005174147081561387, - -0.003034666646271944, - -0.0034693290945142508, - -0.003411490935832262, - -0.008117347955703735, - -0.0047982665710151196, - 0.001174130360595882, - -0.014019961468875408, - 0.0041146897710859776, - -0.0016827001236379147, - -0.004867158364504576, - 0.0002204413467552513, - -0.0039987419731915, - 0.0035993752535432577, - -0.0003010369837284088, - -0.0017927149310708046, - 0.00028141814982518554, - 0.0007103639654815197, - -0.005289820488542318, - 0.0011665683705359697, - 0.003110267920419574, - 0.0015137681039050221, - -0.0012952298857271671, - 0.001649373210966587, - -0.00386625318787992, - 0.0005569194327108562, - 0.0005043146666139364, - 0.0068565537221729755, - 0.004189368803054094, - -0.0018537674332037568, - -0.00022774211538489908, - -0.0006947685615159571, - -0.010821325704455376, - 0.005923958029597998, - 0.0020821942016482353, - 0.002202309900894761, - 0.0036825768183916807, - -0.0015307619469240308, - 0.009283174760639668, - -1.3717536603508051e-05, - 0.002718550618737936, - 0.0020512621849775314, - -0.003992963582277298, - 0.001196348574012518, - 0.006342817097902298, - -0.004947348032146692, - 0.0008299570763483644, - 0.0008588359924033284, - -0.0017725363140925765, - -0.0008441669051535428, - 0.002182481111958623, - -0.005056338384747505, - 0.003960927948355675, - -0.011350619606673717, - -0.0005017842049710453, - -0.0011548318434506655, - 0.00010849284444702789, - 0.0033140385057777166, - -0.061346493661403656, - 0.0007356898859143257, - 0.007234777789562941, - 0.0011950730113312602, - -0.0002966282481793314, - 0.0037508332170546055, - 0.0045158155262470245, - -0.0011658086441457272, - 0.00201356946490705, - 0.0018832302885130048, - -0.00032863218802958727, - -0.9267333745956421, - -0.00033152051037177444, - -0.008026501163840294, - -0.0014606749173253775, - 0.004353260155767202, - 9.778466483112425e-05, - -0.0013867273228242993, - 0.005650962237268686, - 0.0014560575364157557, - 0.0014810067368671298, - 0.008295132778584957, - -0.00018725184781942517, - -0.0011691675754263997, - 0.0027588065713644028, - -0.005843437742441893, - -0.003601519390940666, - 0.0034010400995612144, - -0.004297265782952309, - 0.002622923580929637, - 0.0025323324371129274, - 0.004814197309315205, - -0.0033279976341873407, - 0.006160798016935587, - -0.0008853066246956587, - -0.0013313769595697522, - 0.003054306609556079, - -0.0030952803790569305, - -0.0013260429259389639, - 0.007018429227173328, - 0.006661435589194298, - -0.0008364583482034504, - -0.001996060833334923, - 0.001615166780538857, - 0.00011134754458907992, - -0.0015638204058632255, - -0.0015491442754864693, - -0.0016946808900684118, - 0.0004095487529411912, - -0.0004885562811978161, - -0.0007643797434866428, - -0.0008124923915602267, - 0.006402940023690462, - -0.007612249813973904, - -0.0013606128050014377, - 0.24979093670845032, - 0.0024288303684443235, - 0.0015323386760428548, - 0.004416177049279213, - 0.001970642013475299, - 0.0014922970440238714, - 0.001426603994332254, - -0.0015209109988063574, - 0.008075984194874763, - 0.004757838323712349, - -0.0008005184936337173, - 0.0011804425157606602, - 0.00013480547931976616, - 0.001401923131197691, - 0.00020842011144850403, - 0.0003753077471628785, - -0.0005846191779710352, - -0.003934925422072411, - -0.003154564183205366, - -0.009781688451766968, - -0.0007730398210696876, - -0.0015861042775213718, - -0.0029043476097285748, - -0.0019707493484020233, - 0.00011463282135082409, - -0.007024082820862532, - -0.002862167079001665, - -0.006523847579956055, - 0.0008607905474491417, - 0.0007796031422913074, - 0.004721447359770536, - -0.0006503784679807723, - 0.0010158076183870435, - 0.22822242975234985, - -0.004570384509861469, - 0.0008831550367176533, - -0.0012020531576126814, - 0.0034881290048360825, - 0.015726543962955475, - 0.07887864857912064, - 0.000893175310920924, - -0.006437075324356556, - 0.0029724978376179934, - 0.0005584603059105575, - -0.002160989912226796, - -0.0017909606685861945, - -0.0036645352374762297, - 0.0009008309571072459, - -0.005763562396168709, - -0.0012351333862170577, - -0.002979186363518238, - -0.001368537312373519, - 0.001855162438005209, - 0.0011340472847223282, - -0.007040015887469053, - 0.0032922234386205673, - -0.00015179951151367277, - -0.0024364544078707695, - 0.0022886288352310658, - 0.000232349950238131, - 0.0023932678159326315, - -0.0026739046443253756, - -0.003385992720723152, - 0.00038555567152798176, - -0.0004277593980077654, - -0.003187403781339526, - -0.04426981136202812, - -0.005398210138082504, - 0.009395945817232132, - -5.1208662625867873e-05, - 0.0033097192645072937, - -0.0031608922872692347, - -0.0048022763803601265, - 0.0019415660062804818, - -0.0010803696932271123, - 0.0009515472338534892, - 0.002785120625048876, - 0.00010507950355531648, - 0.00375798880122602, - 0.006408092565834522, - -0.0031759103294461966, - -0.0022234965581446886, - -0.0006572126876562834, - 0.0028083552606403828, - 0.001968744210898876, - -0.001942622591741383, - -0.04346344992518425, - 0.0025045382790267467, - -0.0021331794559955597, - 0.000656409130897373, - 0.00017519763787277043, - 0.0043543376959860325, - -0.0022833338007330894, - -0.013804341666400433, - 0.0018566363723948598, - -0.0018466165056452155, - -0.0004128034343011677, - -0.00023797369794920087, - 0.001812112401239574, - 0.0033637946471571922, - 0.003088593017309904, - -0.0024669694248586893, - 0.0017695090500637889, - -0.00031983459484763443, - 0.0029762659687548876, - 0.0013787522912025452, - 0.0016974335303530097, - -0.001482429914176464, - -2.856221908587031e-05, - -0.003570724278688431, - -0.0033647415693849325, - 0.00273457495495677, - 0.09641747921705246, - 0.003939610905945301, - 0.003931110259145498, - 0.001289559411816299, - -0.0010830342071130872, - -0.004029588773846626, - 0.00047832561540417373, - -0.0006643407978117466, - 0.006379256956279278, - -0.003935057669878006, - 0.002364658983424306, - -0.0036100344732403755, - -0.005262876395136118, - 0.0025918385945260525, - -0.003953415434807539, - -0.00043294052011333406, - -0.0035481092054396868, - 0.002437062095850706 - ], - [ - 0.006946498062461615, - 0.0022464424837380648, - -0.04685167223215103, - -0.013152150437235832, - -0.052895255386829376, - 0.01136697269976139, - 0.0369969978928566, - -0.04447944834828377, - 0.03299279510974884, - 0.017765210941433907, - -0.019447116181254387, - 0.011519800871610641, - -0.015090706758201122, - -0.009549127891659737, - -5.055703513789922e-05, - -0.10203997045755386, - -0.03587312251329422, - -0.055908672511577606, - 0.002428502542898059, - 0.01769544929265976, - -0.12655410170555115, - -0.03286660835146904, - -0.055922962725162506, - 0.0020827562548220158, - 0.06006993353366852, - -0.04562884196639061, - 0.01855703629553318, - -0.005143668502569199, - -0.04938125237822533, - -0.006604903377592564, - -0.00813775509595871, - 0.02874559909105301, - -0.04479260742664337, - -0.015373154543340206, - 0.09200592339038849, - -0.01803557761013508, - -0.004505595657974482, - -0.040900830179452896, - 0.010976077057421207, - 0.01858321763575077, - 0.032502200454473495, - 0.05166459456086159, - 0.04773788899183273, - 0.029627971351146698, - 0.050061147660017014, - -0.09557800740003586, - 0.01621144823729992, - -0.009187350049614906, - 0.022015413269400597, - 0.05934707075357437, - -0.006120664533227682, - -0.011229227297008038, - 0.0014518731040880084, - 0.06637188792228699, - -0.01163937896490097, - -0.012592349201440811, - -0.0016497686738148332, - 0.07843312621116638, - -0.004959500394761562, - 0.014368200674653053, - -0.01580047979950905, - -0.029109029099345207, - 0.02281336486339569, - -0.01592731662094593, - -0.00730739114806056, - 0.016023583710193634, - 0.06333503127098083, - -0.0166341420263052, - -0.002993448870256543, - 0.052332986146211624, - 0.03415822610259056, - 0.14384278655052185, - 0.036558691412210464, - 0.03833780065178871, - -0.014351184479892254, - -0.05520699545741081, - 0.002940047299489379, - 0.11594831943511963, - -0.016017932444810867, - -0.05277404934167862, - -0.011733375489711761, - -0.0008747424581088126, - -0.437336266040802, - 0.08733373135328293, - -0.003050742205232382, - 0.04645327851176262, - 0.10910330712795258, - 0.001039184513501823, - -0.02297472208738327, - -0.008239018730819225, - 0.028538817539811134, - -0.034907665103673935, - -0.08136464655399323, - 0.03743584454059601, - 0.03652023524045944, - -0.010937599465250969, - -0.038336582481861115, - 0.010358387604355812, - 0.006291379686444998, - -0.04755646362900734, - 0.012473252601921558, - 0.007323845289647579, - -0.042628075927495956, - -0.07393535226583481, - 0.03364621475338936, - -0.03420516476035118, - 0.044079653918743134, - -0.0061232964508235455, - 0.04933544248342514, - -0.011915267445147038, - -0.03856002166867256, - 0.0312836617231369, - 0.0011598598212003708, - -0.016807371750473976, - 0.06569135189056396, - 0.058936648070812225, - 0.001561625860631466, - -0.011792662553489208, - 0.0032614939846098423, - 0.02360229752957821, - -0.04256822541356087, - -0.02576669678092003, - 0.010412173345685005, - 0.03554188460111618, - -0.057520702481269836, - 0.013051772490143776, - -0.2723086178302765, - 0.04788491129875183, - -0.011701604351401329, - 0.014130641706287861, - 0.02094070240855217, - -0.027621226385235786, - -0.032534319907426834, - 0.0007342885946854949, - 0.136994868516922, - 0.03667134419083595, - -0.07104238867759705, - 0.00018695772450882941, - -0.029119979590177536, - 0.015765853226184845, - -0.03331439942121506, - 0.045477915555238724, - 0.0038898016791790724, - -0.032638296484947205, - -0.022342190146446228, - -0.08480916172266006, - -0.005038311239331961, - -0.022085040807724, - -0.0011911827605217695, - 0.010736885480582714, - 0.052429117262363434, - 0.061776626855134964, - -0.004136465489864349, - -0.07158179581165314, - -0.06456398963928223, - 0.01595224067568779, - 0.02821754291653633, - 0.009208622388541698, - 0.013199454173445702, - 0.31530308723449707, - 0.00753068970516324, - -0.015561418607831001, - -0.00030405467259697616, - 0.02739228866994381, - 0.11050651967525482, - -0.10218814015388489, - 0.007398080546408892, - -0.021706316620111465, - -0.0015425607562065125, - 0.00014342409849632531, - 0.015919575467705727, - 0.0024881972931325436, - -0.12073644995689392, - -0.017906058579683304, - -0.05069828778505325, - 0.04885568842291832, - -0.006550726480782032, - 0.04067707061767578, - 0.0061395978555083275, - 0.006662269588559866, - -0.03592059761285782, - 0.08367437869310379, - 0.004678573925048113, - 0.052647028118371964, - 0.05733485892415047, - 0.044918518513441086, - 0.024886449798941612, - -0.05131867527961731, - -0.017531616613268852, - -0.02570417895913124, - 0.03421972319483757, - -0.01868612691760063, - 0.2586728036403656, - -0.08576161414384842, - 0.04199192672967911, - -0.015219946391880512, - 0.0014684728812426329, - 0.05675169825553894, - -0.07493452727794647, - 0.003349357284605503, - -0.027791153639554977, - -0.027302902191877365, - 0.03276621177792549, - -0.015598131343722343, - 0.0237166378647089, - 0.015128182247281075, - -0.0026868206914514303, - -0.015438181348145008, - -0.016388926655054092, - 0.007810037583112717, - 0.03182871267199516, - 0.07564929127693176, - 0.17452281713485718, - 0.012935809791088104, - -0.008559789508581161, - -0.03415470942854881, - 0.010634531266987324, - -0.04365183040499687, - -0.029712922871112823, - -0.07628600299358368, - 0.04547050595283508, - -0.0376916341483593, - 0.0008373645832762122, - -0.04252561554312706, - 0.028724225237965584, - 0.0229067150503397, - -0.008573629893362522, - 0.017140647396445274, - -0.003890468506142497, - -0.031683504581451416, - -0.014539474621415138, - -0.009765148162841797, - -0.022446077316999435, - -0.0037906658835709095, - 0.030449245125055313, - -0.052221428602933884, - -0.0068200998939573765, - 0.03979300707578659, - -0.3204658031463623, - -0.006036651320755482, - 0.04175987094640732, - 0.021028360351920128, - 0.03189260512590408, - -0.02254917100071907, - -0.007871940732002258, - -0.04322873800992966, - -0.05103965476155281, - -0.06522488594055176, - -0.027173979207873344, - -0.05575520545244217, - -0.04681668058037758, - 0.03575563803315163, - -0.058799318969249725, - 0.028460167348384857, - -0.0304410383105278, - -0.006713722366839647 - ], - [ - 0.0003586677194107324, - 0.008314048871397972, - 0.004230503458529711, - 0.010406138375401497, - -0.004439405631273985, - 0.0004380719910841435, - 0.0040567899122834206, - 0.012758848257362843, - 0.015905341133475304, - 0.0014872699975967407, - 0.0031780109275132418, - -0.004724305123090744, - -0.01450169924646616, - 0.006860335823148489, - -0.017929136753082275, - -0.030446026474237442, - -0.010864830575883389, - -0.01886597089469433, - -0.021926110610365868, - 0.0012329488527029753, - -0.06251708418130875, - 0.005075892899185419, - -0.015099584124982357, - -0.003537386655807495, - 0.007766352035105228, - -0.008922010660171509, - 0.014076496474444866, - -0.0018113908590748906, - -0.007434728089720011, - 0.015662727877497673, - -0.004440636374056339, - -0.008227746933698654, - -0.016956977546215057, - 0.0077345953322947025, - 0.0038280284497886896, - -0.004266814328730106, - 0.007882009260356426, - -0.013451515696942806, - 0.004995978437364101, - 0.0033126636408269405, - 0.02109079621732235, - 0.0052181389182806015, - 0.009954721666872501, - 0.004046930931508541, - -0.0037527878303080797, - -0.03263184800744057, - -0.006169294938445091, - -0.009913335554301739, - 0.005293403752148151, - 0.0071109929122030735, - -0.010166178457438946, - 0.013774164952337742, - -0.002410114509984851, - 0.01778639294207096, - 0.003309320192784071, - -0.007927730679512024, - 0.0013116433983668685, - 0.010071962140500546, - -0.00426520686596632, - 0.014281130395829678, - -0.011475919745862484, - -0.006901443470269442, - 0.01145447138696909, - 0.0015714240726083517, - -0.02465778961777687, - 0.011355334892868996, - -0.00891910307109356, - -0.001517254626378417, - -0.009531418792903423, - 0.021763836964964867, - 0.016613714396953583, - -0.000864905072376132, - 0.017840778455138206, - 0.019967414438724518, - -0.002176806563511491, - -0.028110656887292862, - 0.009625088423490524, - 0.004328847397118807, - -0.0010106228291988373, - -0.011276676319539547, - 0.018631763756275177, - 0.004131126683205366, - -0.9185059070587158, - 0.011994299478828907, - -0.009090409614145756, - 0.014482571743428707, - 0.024259615689516068, - -0.013394525274634361, - -0.009172545745968819, - -0.006621724925935268, - 0.0038937139324843884, - 0.003679894609376788, - -0.00969819724559784, - 0.009728486649692059, - 0.0012804255820810795, - 0.010841458104550838, - -0.019043056294322014, - -0.004460709635168314, - -0.00044609943870455027, - -0.016523471102118492, - 0.010204218327999115, - -0.0012320487294346094, - -0.0050200652331113815, - -0.009863123297691345, - 0.016119273379445076, - -0.0050542326644063, - 0.007839834317564964, - -0.0007728865020908415, - -0.0028486105147749186, - -0.002193236956372857, - 0.0007010231493040919, - 0.01965382881462574, - 0.009488745592534542, - 0.001730954390950501, - 0.009349347092211246, - 0.0029573426581919193, - 0.0014979150146245956, - -0.014935687184333801, - 0.003276618430390954, - -0.0069987657479941845, - -0.013377098366618156, - 0.0014555641682818532, - -0.012660147622227669, - 0.008277926594018936, - -0.025278490036725998, - 0.009723830036818981, - 0.13852688670158386, - 0.01973119005560875, - 0.005421253386884928, - 0.022615663707256317, - 0.010554347187280655, - 0.0036038646940141916, - -0.004832868464291096, - -0.005493426229804754, - 0.04004627838730812, - 0.007911833934485912, - -0.009727266617119312, - 0.012514147907495499, - 0.006842666771262884, - 0.0005655155400745571, - -0.0046885376796126366, - 0.013135809451341629, - -0.001173035940155387, - 0.0014173001982271671, - -0.015999935567378998, - -0.028168845921754837, - -0.00471648620441556, - -0.011025001294910908, - -0.010977678932249546, - 0.011740528978407383, - 0.004209448583424091, - 0.004332654643803835, - -0.006084043998271227, - -0.025421416386961937, - -0.0015587405068799853, - 0.007987946271896362, - 0.013749445788562298, - 0.014027050696313381, - 0.0016482177888974547, - 0.30212831497192383, - 0.0052957683801651, - -0.002161430660635233, - -0.0011790735879912972, - 0.0042158267460763454, - 0.054071296006441116, - 0.02820993959903717, - -0.004902024753391743, - -0.020160989835858345, - 0.009183553978800774, - -0.003774837590754032, - -0.020763808861374855, - -0.012694424949586391, - -0.038256850093603134, - 0.00636801403015852, - -0.01799958385527134, - -0.0010266341269016266, - -0.005065407603979111, - 0.0009019830031320453, - 0.0098189115524292, - -0.006211201194673777, - -0.023704953491687775, - -0.002721942262724042, - -0.0030811261385679245, - -0.0027861346025019884, - 0.012719656340777874, - 0.015077593736350536, - 0.0245643462985754, - -0.011004569940268993, - -0.0034772043582051992, - -0.014071032404899597, - 0.006282500922679901, - -0.006354159209877253, - 0.034510839730501175, - -0.013333635404706001, - 0.020145563408732414, - -0.0013733066152781248, - 0.0005637907306663692, - 0.00154248031321913, - -0.013714753091335297, - -0.0019053759751841426, - 0.0027029411867260933, - 0.008019483648240566, - 0.009616483002901077, - 0.0091745899990201, - -0.0059247855097055435, - 0.017210930585861206, - -0.005772339180111885, - -0.004446730483323336, - 0.0031861525494605303, - 0.012225521728396416, - 0.0060984892770648, - 0.0029721532482653856, - 0.019088715314865112, - 0.0043570841662585735, - -0.005964217241853476, - -0.008986224420368671, - 0.0052537210285663605, - -0.003430066630244255, - -0.01466665044426918, - -0.04582318663597107, - 0.008852642960846424, - -0.010624104179441929, - 0.0025698246899992228, - -0.004853388760238886, - 0.007548655848950148, - 0.011296493001282215, - 0.009772969409823418, - -0.013123887591063976, - 0.0034815436229109764, - -0.005452761892229319, - 0.007482852321118116, - 0.02453918755054474, - 0.004231375176459551, - 0.007233059033751488, - 0.0030284393578767776, - -0.013571429066359997, - -0.004451296292245388, - 0.008739560842514038, - -0.036774151027202606, - 0.01404669601470232, - 0.009256334975361824, - 0.0027270663995295763, - 0.003033331362530589, - -0.009907650761306286, - 0.012918929569423199, - -0.015254396945238113, - 0.0016492800787091255, - -0.018846295773983, - 0.002086404012516141, - -0.009716099128127098, - -0.012646231800317764, - 0.011627729050815105, - -0.008960442617535591, - -0.005848292261362076, - -0.0006873765960335732, - 0.009087080135941505 - ], - [ - -0.017774300649762154, - -0.018665270879864693, - 0.01143611315637827, - 0.02660796046257019, - 0.004224759992212057, - -0.014467086642980576, - 0.004723236430436373, - 0.023936845362186432, - -0.015047000721096992, - -0.03313722833991051, - -0.05017365142703056, - 0.04240082949399948, - -0.06087164208292961, - 0.03474296256899834, - -0.038667380809783936, - -0.15788143873214722, - 0.0177653506398201, - -0.06861603260040283, - -0.027121661230921745, - -0.003570630680769682, - -0.09818768501281738, - 0.012001908384263515, - -0.0029631920624524355, - -0.05544549971818924, - 0.023975210264325142, - -0.0234881229698658, - 0.0509495846927166, - -0.0048005650751292706, - -0.0449276901781559, - 0.008392016403377056, - -0.000813264399766922, - -0.12198465317487717, - 0.038596492260694504, - 0.03841444477438927, - 0.045403238385915756, - -0.05926036834716797, - 0.011188610456883907, - -0.026656050235033035, - -0.011739364825189114, - 0.020900599658489227, - 0.07589235156774521, - 0.009248134680092335, - -0.01294940710067749, - 0.0037765558809041977, - -0.017474858090281487, - -0.1156848594546318, - 0.06825454533100128, - 0.05277879163622856, - 0.0037736196536570787, - 0.020661063492298126, - 0.008029930293560028, - 0.03449982777237892, - 0.001373271574266255, - -0.02750510349869728, - 0.04315769299864769, - -0.05208200216293335, - -0.0036230036057531834, - 0.03375401347875595, - 0.03818454593420029, - 0.0007205902365967631, - -0.01025957241654396, - 0.02156665548682213, - -0.049461737275123596, - -0.003224846674129367, - -0.010641432367265224, - 0.008145037107169628, - -0.05724116414785385, - -0.03001844324171543, - -0.005865363869816065, - 0.00999416783452034, - 0.04638339579105377, - 0.15636073052883148, - -0.009234952740371227, - 0.06890373677015305, - 0.03680386394262314, - 0.01711496151983738, - 0.0258098803460598, - 0.012377112172544003, - 0.016793467104434967, - -0.010296398773789406, - 0.013741198927164078, - -0.043598875403404236, - -0.36331695318222046, - -0.005992824211716652, - -0.009179129265248775, - -0.048178959637880325, - -0.010073298588395119, - -0.017352433875203133, - -0.021480094641447067, - 0.03278771787881851, - -0.01685703545808792, - 0.013669200241565704, - 0.08114846050739288, - 0.03628108277916908, - -0.045677751302719116, - 0.03890148922801018, - -0.06391321122646332, - -0.0031449066009372473, - 0.012052267789840698, - -0.0355960987508297, - 0.025027215480804443, - -0.036851152777671814, - 0.02667432837188244, - -0.0522795170545578, - 0.024226753041148186, - -0.029971977695822716, - 0.006948492489755154, - 0.011257761158049107, - -0.030907785519957542, - 0.002029079245403409, - -0.027149638161063194, - 0.06176261603832245, - -0.000754091190174222, - -0.005981297232210636, - -0.007535505574196577, - -0.021234283223748207, - 0.016832560300827026, - -0.01582132652401924, - -0.056088849902153015, - 0.042471449822187424, - -0.006706738378852606, - 0.005601944401860237, - 0.03159729018807411, - 0.010404922068119049, - -0.0697489082813263, - 0.00036907289177179337, - -0.4223313629627228, - -0.008854945190250874, - 0.008550851605832577, - 0.02255135402083397, - 0.021980799734592438, - -0.05389869585633278, - 0.0018222888465970755, - -0.013942995108664036, - 0.08480308204889297, - 0.027184613049030304, - -0.009959268383681774, - 0.01262959185987711, - 0.059864018112421036, - -0.02966126799583435, - -0.0023363137152045965, - 0.003230279078707099, - -0.0029196899849921465, - -0.021427100524306297, - 0.0050422451458871365, - -0.062351860105991364, - -0.03936523199081421, - -0.04979676380753517, - -0.027981523424386978, - -0.06623958051204681, - -0.025640835985541344, - -0.031217146664857864, - -0.006074889563024044, - 0.002782114315778017, - 0.051701150834560394, - 0.04195335879921913, - 0.033351749181747437, - -0.009887758642435074, - 0.021722132340073586, - 0.4043872654438019, - -0.0338241383433342, - -0.003432351630181074, - -0.04153354465961456, - 0.0109728267416358, - 0.11433354020118713, - -0.14801102876663208, - -0.03498280420899391, - -0.011308140121400356, - 0.036963578313589096, - 0.03153882175683975, - 0.0011277592275291681, - -0.08581195771694183, - -0.01191560085862875, - 0.015985239297151566, - -0.009389574639499187, - -0.0409773513674736, - -0.025180429220199585, - -0.10730166733264923, - 0.0482337512075901, - -0.050588808953762054, - -0.07060395926237106, - 0.000965240178629756, - 0.001955480081960559, - -0.017660541459918022, - 0.06808953732252121, - -0.008741618134081364, - -0.03309709578752518, - -0.051116663962602615, - -0.0687296912074089, - -0.005158043932169676, - -0.031840309500694275, - -0.023082250729203224, - 0.21779966354370117, - -0.019390320405364037, - 0.06727129220962524, - 0.012731210328638554, - -0.002027848968282342, - -0.054052118211984634, - 0.0037871242966502905, - -0.015403807163238525, - 0.023085936903953552, - 0.06746353209018707, - 0.012262987904250622, - 0.06385376304388046, - 0.025442106649279594, - 0.0017524331342428923, - -0.0493425615131855, - 0.031033772975206375, - 0.006950752343982458, - 0.021446984261274338, - 0.05366254597902298, - -0.05044030398130417, - 0.11528389900922775, - 0.02740904502570629, - -0.012333251535892487, - -0.0017719732131808996, - 0.022553682327270508, - 0.02199893444776535, - -0.06695738434791565, - -0.09445922076702118, - 0.013833289965987206, - -0.020323943346738815, - -0.017013827338814735, - -0.0069501157850027084, - 0.011990681290626526, - 0.021534094586968422, - 0.02532174624502659, - -0.043243877589702606, - 0.01896563731133938, - 0.016887737438082695, - 0.03153045475482941, - -0.02563328854739666, - 0.03416452556848526, - -0.018905920907855034, - -0.04831065237522125, - 0.030512670055031776, - 0.004628520924597979, - -0.007992840372025967, - -0.2404487580060959, - 0.03794582933187485, - -0.0001930776343215257, - -0.008864577859640121, - 0.002316591329872608, - -0.000653446710202843, - 0.009751525707542896, - 0.007095221430063248, - 0.03454960510134697, - -0.03149766847491264, - 0.06060587242245674, - 0.0021439725533127785, - -0.04943796992301941, - -0.0051414864137768745, - 0.017761098220944405, - -9.679700451670215e-05, - -0.027111953124403954, - 0.0064836847595870495 - ], - [ - 0.000376744254026562, - 0.0022685190197080374, - -0.001014789566397667, - 0.001566327060572803, - -0.0008948355098254979, - 0.0004897606559097767, - -0.0008619948639534414, - 0.001989892218261957, - 0.0024789287708699703, - 0.0014695168938487768, - -0.0013768967473879457, - 0.0005786719266325235, - -0.0002755985187832266, - 0.00047123676631599665, - -0.0012226091930642724, - 0.004852441139519215, - -0.0008739263284951448, - -0.0036096228286623955, - -0.003478585509583354, - 0.0015147012891247869, - -0.009567379020154476, - 0.004141944460570812, - -0.002024497603997588, - -0.0006537609151564538, - -0.001653973013162613, - -0.0014661307213827968, - 0.0015916706761345267, - -0.0003112486156169325, - -0.0013602832332253456, - 0.0018207227112725377, - 0.00046051378012634814, - 0.0015301164239645004, - -0.0005133635131642222, - -0.0011666080681607127, - 0.0008577080443501472, - 0.0012752035399898887, - 0.0025039997417479753, - 0.0010914255399256945, - 3.992566780652851e-05, - -0.001375761115923524, - 0.0005418577929958701, - 0.0014370576245710254, - 0.00045802249223925173, - 0.000501030299346894, - -0.0024763713590800762, - -0.002081403275951743, - 0.00082280149217695, - -0.001620498951524496, - 0.0014825620455667377, - 0.000920816499274224, - -0.001972460187971592, - 0.008944673463702202, - 0.0007001039339229465, - 0.000557733466848731, - -0.0021178314927965403, - -0.001303056487813592, - 2.8688826205325313e-05, - -0.00065898202592507, - -0.0062734205275774, - -0.00023040261294227093, - 0.0006042124587111175, - -0.003072307677939534, - 0.0007059388444758952, - 0.003302963450551033, - -0.004959947429597378, - 0.0025923072826117277, - -0.010477990843355656, - 0.002220988506451249, - -0.0016026643570512533, - -0.00019383449398446828, - -0.0017732526175677776, - -0.07302148640155792, - 0.003389074234291911, - 0.005758960731327534, - 1.7403423044015653e-05, - 0.0005671666585840285, - 0.002303605666384101, - 0.002365815918892622, - -0.0027189324609935284, - 0.0020573022775352, - 0.0005753525765612721, - 0.0002853162295650691, - -0.9179209470748901, - 0.000410380307585001, - -0.0048276511952281, - 0.0033482410944998264, - 0.0014561591669917107, - -0.0004845656221732497, - 0.0002533530641812831, - 0.0025370505172759295, - 0.0009319152450188994, - 0.0018569473177194595, - 0.006134957540780306, - -4.1189920011674985e-05, - 0.0027749312575906515, - 0.0033508320339024067, - -0.0006318307714536786, - -0.0018703776877373457, - 0.0029912260361015797, - -0.001595292123965919, - 0.002494373358786106, - 0.001158578903414309, - 0.0004909558920189738, - 0.0018517818534746766, - 0.00460267998278141, - 0.0007367165526375175, - -0.002611110918223858, - 0.0015045648906379938, - -0.002152791479602456, - -0.0016259696567431092, - 0.008344287052750587, - 0.003969025332480669, - -0.00016159965889528394, - -7.571222522528842e-05, - 0.0010953379096463323, - 0.004484823439270258, - -0.0017195552354678512, - 0.0002950353955384344, - 0.0005767002003267407, - -0.0003561958437785506, - -0.0011596173280850053, - -0.0022260593250393867, - -0.0024851453490555286, - 0.0021811306942254305, - -0.0037393728271126747, - -0.0012466197367757559, - 0.28246772289276123, - 0.002022507367655635, - 0.0004844835202675313, - 0.0013910348061472178, - 0.0003283309633843601, - 0.0034228255972266197, - 0.0012021951843053102, - -0.0011375207686796784, - -0.001014129025861621, - 0.0014995932579040527, - -0.003790277987718582, - 0.001475019147619605, - -0.0013224524445831776, - 0.0012943577021360397, - 0.0012261233059689403, - 0.0001544000842841342, - -0.0015483105089515448, - -0.00046156393364071846, - -0.0019341011065989733, - -0.005696821957826614, - 0.0011749868281185627, - 0.0014746165834367275, - -0.0014791634166613221, - 0.000846728275064379, - -0.001463346998207271, - -0.006082918029278517, - -0.0015232110163196921, - -0.005371211562305689, - -0.0025692591443657875, - 0.0010185486171394587, - 0.0015828183386474848, - -0.001502758008427918, - 0.0008886781870387495, - 0.20654518902301788, - -0.00038343010237440467, - 0.0008925821166485548, - 0.0008437314536422491, - 0.0009904311737045646, - 0.011315995827317238, - 0.09116407483816147, - 0.0017577287508174777, - -0.004475097171962261, - 0.0016480551566928625, - 0.000727993668988347, - -0.004335328470915556, - 0.0008545977179892361, - -0.002835705177858472, - 0.0017177206464111805, - -0.003393840976059437, - -0.0015706637641415, - 0.0003597126342356205, - 0.004907962400466204, - 0.001317554502747953, - 0.005159664899110794, - -0.0012485922779887915, - 0.0015003348235040903, - -0.0003061376919504255, - -0.0005665818462148309, - -0.0033572264946997166, - -0.0002772774314507842, - 0.0018401837442070246, - -0.0024521448649466038, - 0.0010867061791941524, - -0.0007601991528645158, - 0.0007833968847990036, - -0.00040931891999207437, - -0.059935033321380615, - -0.004641124978661537, - 0.006141634192317724, - -0.00222548795863986, - 0.0015908273635432124, - 0.00148074293974787, - -0.0010661560809239745, - 0.002043380169197917, - -0.0010592428734526038, - -0.001979597145691514, - 0.0035117436200380325, - -0.0015369325410574675, - 0.0004466011596377939, - 0.006975492462515831, - -0.0011891458416357636, - -0.002415892668068409, - -0.00023685736232437193, - 0.0005581300356425345, - -0.0003990250697825104, - 0.00018492634990252554, - -0.05260242521762848, - 0.0006811248604208231, - -0.001703936024568975, - -0.0005064274300821126, - -0.002789420308545232, - -0.0005087152239866555, - 0.004369076807051897, - -0.011121467687189579, - 0.0008210427477024496, - 0.0002980643475893885, - -8.982593135442585e-05, - -0.0005310442065820098, - -0.0005019380478188396, - 0.0006465420010499656, - 0.00044598261592909694, - 0.0010494471061974764, - 0.0013828715309500694, - -0.001689949189312756, - 0.0010422905907034874, - 0.0037575671449303627, - 0.0019519615452736616, - 3.6982939491281286e-05, - -0.00021163128258194774, - -0.002881444524973631, - -0.004311982076615095, - 0.002032058546319604, - 0.1146935299038887, - 0.0006622979999519885, - 0.002655976451933384, - 0.000760946364607662, - -0.001311402185820043, - -0.0037906228099018335, - -0.000988795654848218, - -0.0011823060922324657, - 0.004451186861842871, - 0.0004387974040582776, - -0.0013714565429836512, - -0.0036113164387643337, - -0.0010135259944945574, - 0.0016400065505877137, - -0.0019884726498275995, - 0.0010649029863998294, - -0.0012235332978889346, - -0.0009286609129048884 - ], - [ - -0.004966751206666231, - 0.030498472973704338, - 0.028004463762044907, - 0.02017081156373024, - -0.005716421641409397, - -0.005549801979213953, - 0.020955104380846024, - 0.0313514843583107, - 0.03059287741780281, - -0.011335736140608788, - -0.0008899806998670101, - 0.011104456149041653, - -0.05860412120819092, - 0.02995535358786583, - -0.06346810609102249, - -0.0987139642238617, - -0.03093765489757061, - -0.030415525659918785, - -0.04513106122612953, - 0.019177984446287155, - -0.14888828992843628, - 0.03412605822086334, - -0.03873254358768463, - -0.0290371123701334, - 0.036508891731500626, - -0.028927667066454887, - 0.0388529933989048, - -0.011514167301356792, - -0.013232535682618618, - 0.049982693046331406, - 0.002345144050195813, - -0.03400394693017006, - -0.03422515094280243, - 0.03529023751616478, - -0.0009643328958190978, - -0.0016347176861017942, - 0.027919132262468338, - -0.05213868245482445, - 0.02122846245765686, - 0.023656046018004417, - 0.047782111912965775, - -0.0003167716204188764, - 0.0034004035405814648, - -0.0035982115659862757, - -0.001589699648320675, - -0.10643210262060165, - -0.013499475084245205, - -0.011047777719795704, - 0.00737451296299696, - 0.025921544060111046, - -0.03047717735171318, - 0.011564021930098534, - -0.006942270323634148, - 0.062194935977458954, - 0.03935801237821579, - -0.03282231464982033, - 0.004124730359762907, - 0.0468723401427269, - -0.005672674160450697, - 0.03814101964235306, - -0.04723595455288887, - -0.015110500156879425, - 0.013848974369466305, - 0.009933947585523129, - -0.059373315423727036, - 0.021183080971240997, - -0.01744077540934086, - -0.0087651452049613, - -0.022041374817490578, - 0.04010401666164398, - 0.046813443303108215, - 0.19742654263973236, - 0.04425705224275589, - 0.042344581335783005, - 0.0012787797022610903, - -0.04813966155052185, - 0.02166729047894478, - -0.00028757425025105476, - -0.0024507094640284777, - -0.027697719633579254, - 0.039928603917360306, - 0.000409681408200413, - -0.2946716845035553, - 0.010311825200915337, - -0.011953151784837246, - 0.02163522131741047, - 0.06075171381235123, - -0.03566499799489975, - -0.011364951729774475, - -0.014103245921432972, - 0.012252366170287132, - 0.008082603104412556, - -0.023681851103901863, - 0.018101658672094345, - -0.00785767287015915, - 0.0323447622358799, - -0.05389987677335739, - -0.0036089960485696793, - 0.009101799689233303, - -0.042651545256376266, - 0.03992311656475067, - -0.01677737571299076, - -0.015389400534331799, - -0.03657118231058121, - 0.026818666607141495, - -0.023739289492368698, - 0.02741568721830845, - -0.0004519902286119759, - -0.009418901987373829, - -0.007298574782907963, - -0.047181349247694016, - 0.04275445267558098, - 0.023386938497424126, - 0.005826331675052643, - 0.0246442761272192, - -0.01212066039443016, - 0.009324832819402218, - -0.019317131489515305, - -0.006383252330124378, - -0.0299471877515316, - -0.034507278352975845, - 0.0032639021519571543, - -0.030892975628376007, - 0.023248901590704918, - -0.060252197086811066, - 0.034908875823020935, - -0.35101208090782166, - 0.05451596900820732, - 0.00819829199463129, - 0.042896561324596405, - 0.026964060962200165, - 0.0007862371276132762, - -0.01637977547943592, - -0.003107842057943344, - 0.11199282854795456, - 0.017961610108613968, - -0.002182510681450367, - 0.03583183512091637, - 0.028000568971037865, - -0.007657674141228199, - -0.009472659789025784, - 0.02684200555086136, - 0.007539878133684397, - -0.011623573489487171, - -0.020483655855059624, - -0.07572555541992188, - -0.0028375606052577496, - -0.04219944402575493, - -0.023257087916135788, - 0.016875222325325012, - 0.007489741314202547, - 0.01709768734872341, - -0.005428392440080643, - -0.06054312363266945, - -0.0032071515452116728, - 0.020708998665213585, - 0.0409046970307827, - 0.03843525052070618, - 0.001442757435142994, - 0.3631046414375305, - 0.004653886426240206, - -0.008090287446975708, - -0.010919071733951569, - -0.01397416926920414, - 0.13574543595314026, - -0.15764619410037994, - -0.007411290891468525, - -0.03372062370181084, - 0.0345875583589077, - -0.008051831275224686, - -0.048159293830394745, - -0.0518498532474041, - -0.10373431444168091, - 0.0010077456245198846, - -0.03272024169564247, - -0.004119772929698229, - -0.016355063766241074, - -0.04259517788887024, - 0.03542877361178398, - -0.029422851279377937, - -0.062219392508268356, - -0.001955161802470684, - -0.011866293847560883, - -0.016675882041454315, - 0.05614125728607178, - 0.04181916266679764, - 0.058158040046691895, - -0.028983553871512413, - -0.0015628085238859057, - -0.024552693590521812, - 0.01681002788245678, - -0.01737282983958721, - 0.27222687005996704, - -0.009164169430732727, - 0.04649167135357857, - 0.0010955346515402198, - -0.0028995503671467304, - -0.0020129471085965633, - -0.023461541160941124, - -0.012079406529664993, - 0.009617975912988186, - 0.027216019108891487, - 0.017033373937010765, - 0.038746755570173264, - -0.010208814404904842, - 0.031251683831214905, - -0.01906435377895832, - -0.008987446315586567, - 0.004871928133070469, - 0.020059797912836075, - 0.02329757809638977, - 0.006111264228820801, - 0.19851189851760864, - 0.0053674387745559216, - -0.019314151257276535, - -0.03964413329958916, - 0.01592925563454628, - 0.0048557003028690815, - -0.0519140399992466, - -0.10511079430580139, - 0.02484983764588833, - -0.026799023151397705, - 0.015949241816997528, - 0.004007692448794842, - 0.01817883737385273, - 0.025296013802289963, - 0.013611250557005405, - -0.05047477036714554, - -0.001390598132275045, - -0.01550670899450779, - 0.022207992151379585, - 0.0627875030040741, - -0.00017639251018408686, - 0.016480010002851486, - -0.005850350484251976, - -0.01774626225233078, - -0.005886162165552378, - 0.028236377984285355, - -0.43550965189933777, - 0.03186361491680145, - 0.02107287012040615, - -0.015206420794129372, - 0.0019623965490609407, - -0.0185706727206707, - 0.04513450711965561, - -0.04079516977071762, - -0.0020275628194212914, - -0.05313928425312042, - 0.022057699039578438, - -0.020729005336761475, - -0.0391080267727375, - 0.021578295156359673, - -0.021780112758278847, - -0.021414486691355705, - 0.029874475672841072, - 0.016754688695073128 - ], - [ - 0.0004032112192362547, - 0.0020723671186715364, - -0.001485201413743198, - 0.0013219919055700302, - -0.0004516836197581142, - 0.0007003355422057211, - -0.0009765191935002804, - 0.0012919174041599035, - 0.0022781980223953724, - 0.00117209879681468, - -0.0018247589468955994, - 0.0017459724331274629, - -0.00025382862077094615, - 0.00012172907736385241, - -0.0006684985710307956, - 0.0049058529548347, - -0.0010479417396709323, - -0.0037319844122976065, - -0.0031601584050804377, - 0.0013729435158893466, - -0.008464593440294266, - 0.004384266212582588, - -0.0018935477128252387, - -0.0012487602652981877, - -0.001591460662893951, - -0.0017107154708355665, - 0.0016806581988930702, - -0.00044531156891025603, - -0.001008081017062068, - 0.000636793440207839, - 0.0010013170540332794, - 0.001234412076883018, - 0.00012742522812914103, - -0.0008053644560277462, - 0.0009852510411292315, - 0.0012426836183294654, - 0.0024096709676086903, - 0.0005372815066948533, - -0.0003275667841080576, - -0.0014467821456491947, - 1.1739400179067161e-05, - 0.001473439042456448, - -0.0004412274865899235, - 0.0006142412894405425, - -0.002260660519823432, - -0.0023262728936970234, - 0.0015302154934033751, - -0.0006928067305125296, - 0.0014715989818796515, - 0.0016104842070490122, - -0.0016710017807781696, - 0.008529243990778923, - 0.0007805824861861765, - -0.00046825347817502916, - -0.0017588479677215219, - -0.0017178227426484227, - 0.0004583500267472118, - -0.0006961197941564023, - -0.005959398578852415, - -0.0007786120986565948, - 0.0009662858210504055, - -0.0027889844495803118, - -0.0003241464146412909, - 0.003811847884207964, - -0.004151621367782354, - 0.002228572266176343, - -0.010787037201225758, - 0.002234250772744417, - -0.001314298016950488, - -0.0010735379764810205, - -0.0018927209312096238, - -0.0732327252626419, - 0.0029421262443065643, - 0.0055999187752604485, - 0.0003840845893137157, - 0.0012181911151856184, - 0.002302673179656267, - 0.002957680495455861, - -0.0023964981082826853, - 0.001985423034057021, - -0.00017297695740126073, - 7.207720045698807e-05, - -0.9179778695106506, - -0.00026285467902198434, - -0.005372727755457163, - 0.0022098650224506855, - 0.0007400467293336987, - 0.00014586118049919605, - 0.00014877633657306433, - 0.003375985426828265, - 0.0007212726632133126, - 0.0017528855241835117, - 0.0073790280148386955, - -3.71122732758522e-05, - 0.002527307253330946, - 0.0032794445287436247, - -0.0002567984629422426, - -0.001717397361062467, - 0.003454128745943308, - -0.0013189802411943674, - 0.002204276155680418, - 0.0008394070318900049, - 0.001113679725676775, - 0.001504668383859098, - 0.004408998414874077, - 0.00042973796371370554, - -0.0027171873953193426, - 0.0018847428727895021, - -0.002280412008985877, - -0.0016125221736729145, - 0.008414308540523052, - 0.004133133217692375, - -0.0004929426359012723, - -0.00020746939117088914, - 0.0009169323602691293, - 0.003895343979820609, - -0.0015306201530620456, - 0.0007971689337864518, - 0.00022711619385518134, - -0.0002160041476599872, - -0.0007024373044259846, - -0.0027346399147063494, - -0.0020001770462840796, - 0.0022247934248298407, - -0.003959582187235355, - -0.0017086997395381331, - 0.28156280517578125, - 0.0017249035881832242, - 0.0004711424990091473, - 0.001007082755677402, - 0.00019039706967305392, - 0.002619941486045718, - 0.0016009792452678084, - -0.0005745032685808837, - -0.001671934500336647, - 0.0019030896946787834, - -0.003288144012913108, - 0.0013840332394465804, - -0.0016282058786600828, - 0.0008730695699341595, - 0.0012709656730294228, - -9.591299203748349e-06, - -0.001712759374640882, - -0.0009224716341122985, - -0.0016254009678959846, - -0.005613054148852825, - 0.0010394081473350525, - 0.0015025592874735594, - -0.0012560669565573335, - -0.0002148564235540107, - -0.0015625921078026295, - -0.006954563315957785, - -0.0012416653335094452, - -0.005629189312458038, - -0.0019983788952231407, - 0.0011676616268232465, - 0.0010928675765171647, - -0.0016351722879335284, - 0.0006171136628836393, - 0.20665402710437775, - -0.0008505753357894719, - 0.0011091087944805622, - 0.0002643653133418411, - 0.0010066005634143949, - 0.0106955049559474, - 0.09080705046653748, - 0.0016052310820668936, - -0.00421993900090456, - 0.0017904227133840322, - 0.0012578944442793727, - -0.004415928386151791, - 0.0005724624497815967, - -0.0016861151671037078, - 0.001690101227723062, - -0.0029926211573183537, - -0.0016875036526471376, - 2.320842213521246e-06, - 0.004371517803519964, - 0.001120457542128861, - 0.00557525921612978, - -0.0012894251849502325, - 0.0017244511982426047, - -0.00034609230351634324, - -0.0005333249573595822, - -0.0029101790860295296, - -0.0005939798429608345, - 0.0009101239265874028, - -0.0022960088681429625, - 0.0005650263628922403, - -0.0002522207796573639, - 0.00014943759015295655, - -0.000553327554371208, - -0.060564957559108734, - -0.004312268923968077, - 0.005954889580607414, - -0.001735649653710425, - 0.0013557649217545986, - 0.0011166767217218876, - -0.0008058903622440994, - 0.001833525369875133, - -0.0009445514879189432, - -0.0020430143922567368, - 0.0033404016867280006, - -0.002058980753645301, - 0.000978158670477569, - 0.0063105360604822636, - -0.0016050852136686444, - -0.0017374643357470632, - -0.00046857603592798114, - 0.0003887104685418308, - -0.00030971787055023015, - 0.00030778293148614466, - -0.05303444713354111, - 0.000973500485997647, - -0.001565016689710319, - -0.00042661375482566655, - -0.002949467394500971, - 0.00034634777694009244, - 0.004970609210431576, - -0.010636316612362862, - 0.0003016940027009696, - 0.00015461012662854046, - 3.500168077152921e-06, - -0.0005223291809670627, - -0.0007635608199052513, - 0.0007374194101430476, - 0.0007111619925126433, - 0.001046172110363841, - 0.0010615821229293942, - -0.0012191302375867963, - 0.0010659421095624566, - 0.002578960033133626, - 0.0018400107510387897, - -0.00041680954745970666, - -0.0007788879447616637, - -0.0030090860091149807, - -0.0042580170556902885, - 0.0016794772818684578, - 0.1162165030837059, - 0.0007156821084208786, - 0.002687267493456602, - 0.0006953064003027976, - -0.0017053134506568313, - -0.0035111443139612675, - -0.0014843217795714736, - -0.0005142198642715812, - 0.005042240489274263, - 0.0007228188333101571, - -0.0016630042809993029, - -0.0032709676306694746, - -0.0014301466289907694, - 0.0014982622815296054, - -0.002093586837872863, - 0.001189651433378458, - -0.0014398525236174464, - -0.0007397275185212493 - ], - [ - 0.00038254386163316667, - 0.002274635713547468, - -0.0009503034525550902, - 0.0009010280482470989, - -0.0006738192168995738, - 0.00044330701348371804, - -0.0006482437602244318, - 0.0009400437702424824, - 0.0022071641869843006, - 0.0017764110816642642, - -0.0019472396234050393, - 0.0012656176695600152, - -0.000446564779849723, - 0.00030149624217301607, - -0.0004928427515551448, - 0.004860735964030027, - -0.0006344307330437005, - -0.0035646571777760983, - -0.002857634797692299, - 0.002114019123837352, - -0.007930709980428219, - 0.0035947076976299286, - -0.001859598676674068, - -0.0006342969718389213, - -0.0014380376087501645, - -0.0016749516362324357, - 0.0012480482691898942, - -0.0004050823044963181, - -0.0009794620564207435, - 0.0011765368981286883, - 0.0010093373712152243, - 0.0016244571888819337, - 0.000438447343185544, - -0.0010154000483453274, - 0.0009408723562955856, - 0.0011448342120274901, - 0.0020040504168719053, - 0.0006173252477310598, - -0.000245237082708627, - -0.0013017068849876523, - 0.0002549591881688684, - 0.0012020220747217536, - 0.00027136571588926017, - 1.4940680557629094e-05, - -0.002012175740674138, - -0.0022054584696888924, - 0.0007289555505849421, - -0.0013464668300002813, - 0.001513552968390286, - 0.0004515918262768537, - -0.001783012063242495, - 0.007913119159638882, - 0.0007235590019263327, - -0.00033948413329198956, - -0.0017659401055425406, - -0.0009665092220529914, - -0.00016899338515941054, - -0.0004329360672272742, - -0.006103427615016699, - -0.0011816825717687607, - 0.0008569038473069668, - -0.002645316068083048, - 0.0002384433028055355, - 0.0030570474918931723, - -0.0036167565267533064, - 0.002218598499894142, - -0.009715222753584385, - 0.0021555188577622175, - -0.001174028730019927, - -0.001169804367236793, - -0.0014509637840092182, - -0.07420941442251205, - 0.003043199423700571, - 0.005697122775018215, - 0.00015847294707782567, - 0.001433937344700098, - 0.0020815981552004814, - 0.002474506851285696, - -0.0028966700192540884, - 0.0020317714661359787, - -0.00025991120492108166, - 6.359930557664484e-05, - -0.9173904657363892, - -0.0002944012521766126, - -0.004469009116292, - 0.002196568762883544, - 0.0008172062807716429, - 0.00025703952996991575, - 0.00018526615167502314, - 0.003283431986346841, - 0.0011095823720097542, - 0.001310940133407712, - 0.007015174254775047, - -9.619399497751147e-05, - 0.0027364776469767094, - 0.002753689419478178, - -0.0004165541613474488, - -0.0013925826642662287, - 0.003192746313288808, - -0.0014343294315040112, - 0.0016820073360577226, - 0.001390409772284329, - 0.00035053337342105806, - 0.0012979599414393306, - 0.004866562783718109, - 0.0006039718282409012, - -0.002474282868206501, - 0.0017565239686518908, - -0.002030476462095976, - -0.0017810023855417967, - 0.007872011512517929, - 0.003742342349141836, - -0.0003223414532840252, - -4.0191400330513716e-05, - 0.0011097689857706428, - 0.004477465990930796, - -0.001664630719460547, - 0.000800100329797715, - -0.00015307440480683, - 0.00011072889174101874, - -0.0006425423780456185, - -0.0019398127915337682, - -0.0020764858927577734, - 0.0019969919230788946, - -0.003985940013080835, - -0.001843510428443551, - 0.2834094166755676, - 0.002004428533837199, - -3.47993009199854e-05, - 0.0010634330101311207, - -0.00019973744929302484, - 0.0031057705637067556, - 0.001338043250143528, - -0.0006236370536498725, - -0.0013195626670494676, - 0.0013103311648592353, - -0.0023375849705189466, - 0.0010879727778956294, - -0.0014144842280074954, - 0.001106920768506825, - 0.0012984405038878322, - 0.00021052692318335176, - -0.0013913685688748956, - -0.0009407057659700513, - -0.0011262152111157775, - -0.005326073616743088, - 0.0008869178127497435, - 0.001449446426704526, - -0.0016475423472002149, - 0.00028457483858801425, - -0.0013126221019774675, - -0.006267350632697344, - -0.0018029005732387304, - -0.005172349978238344, - -0.0025650651659816504, - 0.0008897685329429805, - 0.0012365992879495025, - -0.001879616640508175, - 0.0006765816360712051, - 0.20520241558551788, - -0.0007580157252959907, - 0.0008445880957879126, - 0.0006777478265576065, - 0.0006024122121743858, - 0.010225401259958744, - 0.0916261151432991, - 0.0017703210469335318, - -0.003755861194804311, - 0.0016806470230221748, - 0.0009759701206348836, - -0.0037971963174641132, - 0.0006764967693015933, - -0.0020032108295708895, - 0.0018166222143918276, - -0.0030545294284820557, - -0.0013642903650179505, - 5.9206409787293524e-05, - 0.004439226351678371, - 0.0009797688107937574, - 0.004492339678108692, - -0.0010332752717658877, - 0.0017866664566099644, - -0.00026242455351166427, - -0.000494287523906678, - -0.002771262777969241, - -0.0008415625197812915, - 0.0010716058313846588, - -0.0018821998964995146, - 0.000814649392850697, - -0.00019728711049538106, - 0.0007791540119796991, - -0.00032229808857664466, - -0.06079394742846489, - -0.0039939237758517265, - 0.005378313362598419, - -0.0016711376374587417, - 0.0011897054500877857, - 0.0018508179346099496, - -0.0010600060923025012, - 0.0015126161742955446, - -0.0014609204372391105, - -0.0019066184759140015, - 0.0028833055403083563, - -0.002075169002637267, - 0.000785052077844739, - 0.006811643950641155, - -0.001374155399389565, - -0.0021602388005703688, - -0.00040289334720000625, - 0.0009671496809460223, - -0.0006682858802378178, - -0.0002435442729620263, - -0.05347885563969612, - 0.0013109879801049829, - -0.0011962174903601408, - -0.00020206269982736558, - -0.00285423849709332, - 0.0001449954870622605, - 0.0043816776014864445, - -0.009620900265872478, - 0.00040435552364215255, - 0.00042049316107295454, - -0.0002625532215461135, - -0.00029422802617773414, - -0.0006174957379698753, - 0.00017251376993954182, - 3.312116677989252e-05, - 0.0011430502636358142, - 0.0014464764390140772, - -0.0014039507368579507, - 0.0007581464597024024, - 0.0024178021121770144, - 0.001853746478445828, - -0.00027620719629339874, - -0.0009531704126857221, - -0.0029005841352045536, - -0.004189668223261833, - 0.001610863022506237, - 0.11818678677082062, - 0.00024180224863812327, - 0.0023472397588193417, - 0.0005053050117567182, - -0.0012673077872022986, - -0.0036416209768503904, - -0.0012582984054461122, - -0.0010150569723919034, - 0.004485379904508591, - 0.00022292388894129544, - -0.001247028587386012, - -0.0031830405350774527, - -0.0009346615988761187, - 0.0015442108269780874, - -0.001530801528133452, - 0.0005902727134525776, - -0.0013900867197662592, - -0.0006484223995357752 - ], - [ - -0.01412788312882185, - -0.005780791863799095, - 0.010970639996230602, - 0.026003148406744003, - 0.006375069264322519, - -0.011992576532065868, - -0.002502838149666786, - 0.03271313011646271, - -0.01284958329051733, - -0.020482691004872322, - -0.04559362307190895, - 0.027656959369778633, - -0.046320173889398575, - 0.03316643089056015, - -0.037531398236751556, - -0.12116234004497528, - 0.020145900547504425, - -0.06463252753019333, - -0.02065500244498253, - -0.003356392728164792, - -0.08030889183282852, - 0.015698986127972603, - -0.00834181159734726, - -0.05559735372662544, - 0.02072943188250065, - -0.023384202271699905, - 0.037149086594581604, - -0.0016746761975809932, - -0.023410998284816742, - 0.00047007869579829276, - -0.00031886008218862116, - -0.0910368338227272, - 0.03033020906150341, - 0.03430457040667534, - 0.03607857972383499, - -0.03699030727148056, - 0.0009454913670197129, - -0.017215147614479065, - -0.008528283797204494, - 0.010560260154306889, - 0.06365887820720673, - 0.004141882061958313, - -0.01095308642834425, - 0.0035334164276719093, - -0.00764350825920701, - -0.0913274884223938, - 0.04733933508396149, - 0.04287806898355484, - 0.010614789091050625, - 0.026848720386624336, - -0.0024099673610180616, - 0.03784134238958359, - 0.0013746570330113173, - -0.034714724868535995, - 0.028407545760273933, - -0.046167969703674316, - -0.005575021728873253, - 0.0151931531727314, - 0.026742158457636833, - -0.001795031945221126, - -0.008221061900258064, - 0.021247249096632004, - -0.04993605241179466, - 0.006604301277548075, - 0.0007762299501337111, - -0.009199931286275387, - -0.05509890243411064, - -0.024620411917567253, - 1.946189149748534e-05, - -0.003886669408529997, - 0.025473827496170998, - 0.08919280767440796, - 0.0043396116234362125, - 0.05065853148698807, - 0.04101137816905975, - 0.01898909918963909, - 0.026227479800581932, - 0.015361685305833817, - 0.010747038759291172, - -0.01290249451994896, - 0.009287234395742416, - -0.03650978207588196, - -0.6985535621643066, - -0.009654521942138672, - -0.008060731925070286, - -0.043494582176208496, - -0.015573124401271343, - -0.012574600987136364, - -0.016151869669556618, - 0.03252553567290306, - -0.01757613755762577, - 0.014660181477665901, - 0.07380316406488419, - 0.029156450182199478, - -0.03238159045577049, - 0.04561822861433029, - -0.04938594251871109, - -0.0007233273354358971, - 0.01546578947454691, - -0.029823407530784607, - 0.023421773687005043, - -0.03894563391804695, - 0.018445245921611786, - -0.032610200345516205, - 0.017556082457304, - -0.028199106454849243, - 0.0062496778555214405, - 0.02200130559504032, - -0.032996390014886856, - 0.003132640616968274, - -0.01193872932344675, - 0.04419130086898804, - -0.00211841007694602, - 0.002058910671621561, - -0.01027454249560833, - -0.01517240609973669, - 0.010442419908940792, - -0.007288774009793997, - -0.044928405433893204, - 0.050344109535217285, - -0.015271542593836784, - 0.00011679304589051753, - 0.020766278728842735, - -0.00026746297953650355, - -0.0574396550655365, - -0.002668417524546385, - -0.21685272455215454, - -0.01410718634724617, - 0.0027276133187115192, - 0.01514599658548832, - 0.015122192911803722, - -0.06125125288963318, - 0.006043102592229843, - -0.011689377017319202, - 0.06183832138776779, - 0.022460035979747772, - -0.020742522552609444, - 0.0031210363376885653, - 0.04847244173288345, - -0.03160963952541351, - 0.0006831280770711601, - 0.010040457360446453, - -0.016881296411156654, - -0.012352102436125278, - 0.012423858977854252, - -0.0467967614531517, - -0.014958464540541172, - -0.033599257469177246, - -0.027157053351402283, - -0.0610848106443882, - -0.027839146554470062, - -0.0330292284488678, - 0.002155992202460766, - -0.017917612567543983, - 0.04360179975628853, - 0.04770611971616745, - 0.02540745586156845, - -0.0144885815680027, - 0.012664132751524448, - 0.41065162420272827, - -0.026424413546919823, - 0.007830463349819183, - -0.03732781484723091, - 0.012650917284190655, - 0.08318788558244705, - -0.07899675518274307, - -0.017340755090117455, - -0.004746070131659508, - 0.02385670132935047, - 0.031175408512353897, - 0.0009620891651138663, - -0.06583839654922485, - -0.006090408656746149, - 0.012250621803104877, - -0.004485403653234243, - -0.031098203733563423, - -0.022182222455739975, - -0.08616676181554794, - 0.037227872759103775, - -0.020026160404086113, - -0.04751676321029663, - 0.0009113540290854871, - -0.0032581929117441177, - -0.005881709046661854, - 0.04658285528421402, - -0.013257117941975594, - -0.04398691654205322, - -0.050434838980436325, - -0.054351937025785446, - -0.009439465589821339, - -0.019989801570773125, - -0.019452137872576714, - 0.13540835678577423, - -0.020747743546962738, - 0.05886895954608917, - 0.015874257311224937, - -0.007667751982808113, - -0.034555792808532715, - 0.005976587533950806, - -0.008416295051574707, - 0.015943005681037903, - 0.043199945241212845, - 0.019341522827744484, - 0.03682958707213402, - 0.022840887308120728, - -0.006819233298301697, - -0.04165305942296982, - 0.03956585377454758, - 0.0041482108645141125, - 0.012438054196536541, - 0.038722001016139984, - -0.035406168550252914, - 0.07247748225927353, - 0.025215424597263336, - -0.017300957813858986, - -0.005529289599508047, - 0.011665905825793743, - 0.019259175285696983, - -0.04425057768821716, - -0.08544690161943436, - 0.013951964676380157, - -0.016990458592772484, - -0.018185336142778397, - -0.007586624473333359, - 0.0058264401741325855, - 0.008395317941904068, - 0.019751496613025665, - -0.0338134840130806, - 0.01982722245156765, - 0.014574367552995682, - 0.03266686201095581, - -0.03162849694490433, - 0.02868969924747944, - -0.019635958597064018, - -0.04588157311081886, - 0.02101133018732071, - -0.0041586956940591335, - -0.012936427257955074, - -0.1357617825269699, - 0.029867997393012047, - 0.01021076925098896, - -0.008262804709374905, - -0.0005218894802965224, - -0.0003567102539818734, - 0.005399226676672697, - 0.009343200363218784, - 0.02992759831249714, - -0.018907463178038597, - 0.0371939018368721, - -0.007413733750581741, - -0.04138994961977005, - 0.0008657452999614179, - 0.012710504233837128, - 0.010259294882416725, - -0.021688047796487808, - 0.0002470010076649487 - ], - [ - 0.007879979908466339, - 0.011798301711678505, - 0.04342872276902199, - -0.012184898369014263, - 0.0058900658041238785, - 0.018572477623820305, - 0.017041703686118126, - -0.00504760118201375, - 0.011763145215809345, - 0.012394707649946213, - -0.011535738594830036, - 0.01385966781526804, - -0.0633779987692833, - -0.015352300368249416, - -0.050671130418777466, - 0.03544249013066292, - -0.013195852749049664, - -0.0863686129450798, - -0.06588593125343323, - 0.057739950716495514, - -0.15800225734710693, - 0.00737415999174118, - -0.02347637712955475, - -0.027363086119294167, - 0.041352372616529465, - -0.04710648953914642, - 0.005814261734485626, - 0.025804834440350533, - 0.03188663348555565, - -0.0007249166374094784, - -0.022168641909956932, - -0.03572641685605049, - -0.03888601437211037, - 0.07143963873386383, - -0.05154566839337349, - 0.015636682510375977, - -0.037591997534036636, - -0.06876814365386963, - 0.01451956294476986, - 0.026758575811982155, - 0.0930410847067833, - -0.016186153516173363, - -0.006442626938223839, - 0.018832456320524216, - 0.03587405011057854, - -0.09481319785118103, - -0.037662893533706665, - -0.04474688693881035, - 0.006658024154603481, - 0.015640368685126305, - -0.05141870677471161, - -0.0059772999957203865, - -0.012257308699190617, - 0.010614930652081966, - 0.052991025149822235, - -0.015442428179085255, - -0.0029435076285153627, - 0.09813901782035828, - -0.007046495098620653, - 0.022425737231969833, - -0.043406274169683456, - -0.021131480112671852, - 0.018016180023550987, - 0.009678320959210396, - -0.0596679225564003, - 0.04365319013595581, - -0.0056725600734353065, - -0.03168431296944618, - -0.04036279767751694, - 0.05013083666563034, - 0.07491756975650787, - 0.18840467929840088, - 0.052449215203523636, - 0.0072469888255000114, - 0.008327942341566086, - -0.07791206240653992, - -0.010899719782173634, - -0.007274638395756483, - 0.014585644006729126, - -0.049454059451818466, - 0.053319208323955536, - 0.03433062508702278, - -0.20120853185653687, - 0.013858538120985031, - -0.025135017931461334, - 0.013654906302690506, - 0.09653747826814651, - -0.0027910959906876087, - -0.05731942877173424, - 0.007327190134674311, - 0.023249763995409012, - -0.057166967540979385, - -0.1279703825712204, - 0.020380642265081406, - -0.03431827202439308, - 0.02586834318935871, - -0.05909174308180809, - -0.017824383452534676, - 0.006246128119528294, - -0.05356438085436821, - 0.03475695103406906, - 0.002494428539648652, - 0.02721049077808857, - -0.009933688677847385, - -0.008471379056572914, - -0.03324829787015915, - 0.026432519778609276, - 0.03147000074386597, - -0.01861327886581421, - -0.006887275725603104, - -0.010563352145254612, - 0.024187050759792328, - 0.03589395806193352, - 0.0317293256521225, - 0.05028284713625908, - -0.05516362562775612, - -0.0025764391757547855, - -0.07633577287197113, - 0.013107647188007832, - 0.03645044565200806, - -0.021053142845630646, - 0.035653095692396164, - -0.061191946268081665, - 0.024778254330158234, - -0.062495678663253784, - 0.01938600465655327, - -0.24373507499694824, - 0.04013349488377571, - -0.01520015299320221, - 0.07485678791999817, - 0.028559718281030655, - 0.011972375214099884, - -0.02496187388896942, - 0.03493528068065643, - 0.10861238837242126, - 0.021996378898620605, - 0.03330830857157707, - 0.027797473594546318, - -0.01690792478621006, - -0.019465534016489983, - -0.01568717136979103, - 0.031498998403549194, - 0.0192287415266037, - -0.007848110981285572, - -0.010502370074391365, - -0.07748337090015411, - -0.020076261833310127, - -0.04175466299057007, - -0.0188398789614439, - 0.04573996365070343, - 0.015338611789047718, - 0.01773613877594471, - -0.029210012406110764, - -0.07314708828926086, - 0.006302863359451294, - -0.006958991289138794, - 0.0594651959836483, - 0.0810413584113121, - 0.0157953891903162, - 0.24754518270492554, - -0.017957469448447227, - -0.003747188486158848, - -0.023190900683403015, - 0.007629915606230497, - 0.11401600390672684, - -0.15939387679100037, - -0.017695048823952675, - -0.024723749607801437, - 0.04523308202624321, - -0.008622679859399796, - -0.07146006077528, - -0.027837177738547325, - -0.09613139927387238, - 0.03355579450726509, - -0.025680366903543472, - 0.05247274413704872, - -0.02625909633934498, - -0.006380878388881683, - -0.0021554778795689344, - -0.04582497105002403, - -0.07511766254901886, - -0.0006119561730884016, - -0.004674820229411125, - -0.042121581733226776, - 0.03223463520407677, - 0.05078566074371338, - 0.05435436964035034, - 0.010545823723077774, - -0.0639074295759201, - -0.026073826476931572, - 0.030713623389601707, - -0.0487140491604805, - 0.22542701661586761, - 0.0003419468703214079, - 0.014037877321243286, - 0.00634842598810792, - -0.00666074501350522, - -0.011526228860020638, - -0.042200978845357895, - -0.018826643005013466, - 0.025004619732499123, - 0.022425580769777298, - -0.020052999258041382, - -0.0070685409009456635, - -0.014292461797595024, - 0.0008907305891625583, - 0.0283111110329628, - -0.016818387433886528, - 0.008299916982650757, - 0.03737647458910942, - -0.018365785479545593, - -0.020018141716718674, - 0.1970687061548233, - 0.05706756189465523, - 0.015268122777342796, - -0.007351232692599297, - 0.016723237931728363, - 0.0353035032749176, - -0.0745159313082695, - -0.07689842581748962, - 0.02241853065788746, - -0.033602818846702576, - -0.01869514398276806, - 0.011310361325740814, - 0.025373326614499092, - 0.05505576729774475, - 0.009394071064889431, - -0.05878841131925583, - -0.00596082815900445, - -0.020620880648493767, - 0.018670396879315376, - 0.0677889958024025, - -0.023934777826070786, - 0.016200847923755646, - 0.02411452680826187, - -0.04793500900268555, - -0.02710321731865406, - 0.027092501521110535, - -0.5219506025314331, - 0.04450487717986107, - 0.009782055392861366, - 0.019210675731301308, - 0.0676998719573021, - -0.014369387179613113, - 0.05530453845858574, - -0.05097447335720062, - 0.018338818103075027, - -0.06655336916446686, - 0.014578534290194511, - -0.05442109331488609, - -0.043081462383270264, - 0.003368234261870384, - -0.057040803134441376, - -0.003458648920059204, - 0.006746958941221237, - 0.05906110629439354 - ], - [ - -0.0024937354028224945, - -0.004222891293466091, - -0.026841670274734497, - 0.02348933182656765, - 0.0012356382794678211, - -0.008283929899334908, - -0.02964186482131481, - -0.02874487265944481, - -0.005529016721993685, - -0.022022860124707222, - 0.02372739464044571, - -0.041618719696998596, - 0.006850782316178083, - 0.0381065271794796, - -0.004031208343803883, - 0.22040918469429016, - 0.029129115864634514, - 0.0365847572684288, - 0.05025514215230942, - -0.03825419396162033, - 0.1402468979358673, - -0.10309591144323349, - 0.026736905798316002, - 0.030519958585500717, - 0.006427378859370947, - 0.014098827727138996, - 0.008267325349152088, - -0.01963054947555065, - -0.014039743691682816, - 0.029198264703154564, - 0.0007549768779426813, - -0.02561352215707302, - 0.035391394048929214, - 0.015058326534926891, - 0.02754550240933895, - -0.044979777187108994, - -0.0029235631227493286, - 0.015052568167448044, - -0.01590658165514469, - 0.015448266640305519, - -0.0032199095003306866, - -0.002791929291561246, - 0.02397173084318638, - -0.015986928716301918, - 0.008095402270555496, - 0.043929848819971085, - -0.01301215123385191, - 0.03079555556178093, - -0.013896070420742035, - -0.06085393205285072, - -0.0011611597146838903, - -0.07070271670818329, - -0.015740739181637764, - 0.013304529711604118, - 0.018846875056624413, - 0.05807575210928917, - -0.026158727705478668, - -0.050775665789842606, - 0.025951173156499863, - 0.041062962263822556, - 0.01238829642534256, - 0.0706612765789032, - 0.032022830098867416, - -0.08656143397092819, - 0.1021694615483284, - -0.02053768001496792, - 0.22259773313999176, - -0.024689659476280212, - 0.03827493265271187, - 0.020534412935376167, - 0.08174902200698853, - -0.13174943625926971, - -0.04506974667310715, - 0.009474631398916245, - -0.0290009044110775, - -0.03410838544368744, - -0.0502118282020092, - 0.004907405469566584, - 0.013051427900791168, - 0.014363393187522888, - 0.018634790554642677, - -0.013368221931159496, - 0.28624337911605835, - 0.029039941728115082, - 0.052918363362550735, - -0.06602375209331512, - -0.019197942689061165, - -0.040109604597091675, - 0.007226881571114063, - -0.03406485170125961, - -0.011486663483083248, - -0.02001342363655567, - -0.22664998471736908, - -0.009961734525859356, - 0.003404978197067976, - -0.038017190992832184, - -0.026943407952785492, - 0.038577571511268616, - -0.07075326889753342, - -0.01287271361798048, - 0.0006323177367448807, - -0.010222501121461391, - 0.016171181574463844, - -0.06427428126335144, - 0.020724451169371605, - 0.01077347993850708, - 0.0415501669049263, - -0.0477922149002552, - 0.03433594852685928, - 0.010047810152173042, - -0.028550302609801292, - -0.024824121966958046, - -0.0025738885160535574, - -0.0005566896288655698, - -0.01726374216377735, - -0.015726830810308456, - 0.04583694413304329, - 0.0005586452316492796, - 0.003058368805795908, - 0.021434295922517776, - 0.025459593161940575, - 0.06074652448296547, - 0.06394089758396149, - -0.02279636077582836, - 0.04272767901420593, - 0.014201493933796883, - 0.33894115686416626, - -0.02208850160241127, - -0.02453577145934105, - 0.024438533931970596, - 0.017364194616675377, - -0.022104909643530846, - -0.029025213792920113, - 0.00012031834194203839, - 0.05029246583580971, - -0.01470191590487957, - 0.03157231956720352, - -0.02450137957930565, - 0.03110715001821518, - -0.03256593644618988, - -0.009898852556943893, - 0.016016755253076553, - 0.007614161353558302, - -0.008792614564299583, - -0.00411206902936101, - 0.0737602636218071, - -0.052324485033750534, - -0.030668556690216064, - -0.005223175510764122, - 0.011989306658506393, - 0.004422327503561974, - 0.15956047177314758, - 0.01180435810238123, - 0.06509549915790558, - 0.024545002728700638, - 0.0005743008223362267, - -0.011238574050366879, - -0.07311075180768967, - -0.03203360736370087, - -0.37149202823638916, - 0.058182474225759506, - -0.01743253320455551, - 0.03144877403974533, - 0.028288396075367928, - -0.10096552968025208, - 0.09222573041915894, - -0.023833027109503746, - 0.06879185885190964, - -0.03582967072725296, - -0.02850326895713806, - 0.10833148658275604, - -0.025638284161686897, - 0.06090977415442467, - -0.04560541734099388, - 0.004295042250305414, - -0.03347473964095116, - 0.008833137340843678, - -0.01837143674492836, - -0.0012421320425346494, - -0.09668520092964172, - 0.027271801605820656, - -0.012272068299353123, - 0.0025906271766871214, - 0.037865761667490005, - 0.02358247898519039, - 0.03778290003538132, - 0.027223389595746994, - -0.007653991691768169, - -0.009042906574904919, - -0.023754293099045753, - -0.023848235607147217, - 0.02718619629740715, - -0.12034176290035248, - 0.07932118326425552, - -0.008210800588130951, - 0.04841206967830658, - -0.008130252361297607, - -0.0008973908261395991, - -0.014163033105432987, - -0.021425707265734673, - 0.017854832112789154, - 0.0815504640340805, - -0.03030056320130825, - 0.011929080821573734, - -0.008910729549825191, - 0.0024702372029423714, - 0.004958620760589838, - 0.02340482920408249, - -0.01962965540587902, - 0.014331324957311153, - 0.025306357070803642, - 0.020341981202363968, - -0.10390963405370712, - -0.022226890549063683, - 0.02835300751030445, - -0.01412185002118349, - 0.10094170272350311, - -0.013664067722856998, - -0.06601676344871521, - 0.22559016942977905, - 0.000558714207727462, - -0.02170736901462078, - 0.0019568540155887604, - -0.02511143684387207, - 0.019676167517900467, - -0.03994149714708328, - 0.017876649275422096, - -0.03310566022992134, - 0.040020763874053955, - 0.02341916598379612, - -0.029560325667262077, - -0.08807356655597687, - -0.006452654954046011, - 0.01155674085021019, - 0.004715895280241966, - 0.016698824241757393, - 0.09413740038871765, - -0.0035090174060314894, - 0.21492154896259308, - 0.005154683720320463, - -0.051035623997449875, - -0.035335347056388855, - 0.013431066647171974, - 0.042244162410497665, - 0.0164999570697546, - 0.016097310930490494, - -0.08013750612735748, - -0.03033241629600525, - 0.03312216326594353, - 0.07309558242559433, - 0.027746954932808876, - -0.005643938202410936, - 0.047674670815467834, - -0.05723395198583603, - -0.012029572390019894, - 0.03396514803171158 - ], - [ - 0.0003264168044552207, - 0.002062559127807617, - -0.0011180142173543572, - 0.0014015673659741879, - -0.0007985215052030981, - 0.0006298889638856053, - -0.0004846972005907446, - 0.0011909825261682272, - 0.0025216988287866116, - 0.0016900557093322277, - -0.001578185590915382, - 0.0010533498134464025, - -0.0002866109134629369, - -5.877823059563525e-05, - -0.0006832845974713564, - 0.005912824999541044, - -0.0006653768941760063, - -0.0035389901604503393, - -0.0032847861293703318, - 0.001943494426086545, - -0.008616271428763866, - 0.003853950183838606, - -0.0013503991067409515, - -0.0005633481196127832, - -0.0017542376881465316, - -0.001310004387050867, - 0.0014811658766120672, - -0.0003334695938974619, - -0.0011240001767873764, - 0.0012477755080908537, - 0.00035063180257566273, - 0.001942467293702066, - -0.00034649300505407155, - -0.0008825288387015462, - 0.0008131115464493632, - 0.0010162905091419816, - 0.0018725355621427298, - 0.0008388273417949677, - 2.6420810172567144e-05, - -0.0013257750542834401, - 0.0004846271185670048, - 0.0013641722034662962, - 0.0004845935618504882, - 0.00031920932815410197, - -0.002134629525244236, - -0.001834076945669949, - 0.0004176435468252748, - -0.0017171846702694893, - 0.001476345700211823, - 0.0006276936619542539, - -0.0018722985405474901, - 0.008128860965371132, - 0.0006016570841893554, - 0.0001621099654585123, - -0.0017332482384517789, - -0.0011550808558240533, - -0.00011390323197701946, - -0.0005816839402541518, - -0.006218401249498129, - -0.0006938716978766024, - 0.0008158085984177887, - -0.002893427386879921, - 0.0008341785287484527, - 0.0030334554612636566, - -0.004531241487711668, - 0.0026264090556651354, - -0.0096660777926445, - 0.0020485888235270977, - -0.0014938657404854894, - -0.0004579751403070986, - -0.0016034457366913557, - -0.07392417639493942, - 0.002702862024307251, - 0.0056738220155239105, - -0.0002996650291606784, - 0.0008823437383398414, - 0.0021431432105600834, - 0.0025814943946897984, - -0.0028583225794136524, - 0.0018524497281759977, - 0.00010396214929642156, - 0.0002429033484077081, - -0.9173761010169983, - 0.0003050320374313742, - -0.004393601790070534, - 0.002668387023732066, - 0.00143187097273767, - -7.862126039981376e-06, - 0.0002426216087769717, - 0.0027253238949924707, - 0.0011320288758724928, - 0.0011109170736745, - 0.0059388321824371815, - -6.731956091243774e-05, - 0.002862444845959544, - 0.00272139604203403, - -0.0004257849941495806, - -0.0014800758799538016, - 0.0027986071072518826, - -0.001478706020861864, - 0.0021283351816236973, - 0.0012699202634394169, - 0.00080656394129619, - 0.0013562337262555957, - 0.004405468236654997, - 0.0009378936374559999, - -0.002707095118239522, - 0.0013275434030219913, - -0.002118836622685194, - -0.0014041629619896412, - 0.008019260130822659, - 0.004056836478412151, - -4.925665780319832e-05, - -0.00013443590432871133, - 0.0012347693555057049, - 0.00443581398576498, - -0.001524857827462256, - 0.00018217797332908958, - 0.0004419288598001003, - 0.00017062711413018405, - -0.0008322198991663754, - -0.001880914787761867, - -0.002187188481912017, - 0.0018616507295519114, - -0.003710127202793956, - -0.00149103335570544, - 0.2846168279647827, - 0.001989291748031974, - 1.6030415281420574e-05, - 0.001420233049429953, - 0.00034177472116425633, - 0.0034339367412030697, - 0.001039140042848885, - -0.0007792302058078349, - -0.001025982666760683, - 0.001387115684337914, - -0.0030723405070602894, - 0.0013608274748548865, - -0.0013993293978273869, - 0.0013293370138853788, - 0.0013051599962636828, - 0.00010463299986440688, - -0.0012687689159065485, - -0.0003769689938053489, - -0.00138087070081383, - -0.005405906587839127, - 0.0012166565284132957, - 0.001544612692669034, - -0.0015468167839571834, - 0.0008395627373829484, - -0.0011601451551541686, - -0.00594404898583889, - -0.0018950492376461625, - -0.005201161839067936, - -0.0025374670512974262, - 0.0008012496982701123, - 0.0013161050155758858, - -0.0014906390570104122, - 0.0008509046165272593, - 0.2046821117401123, - -1.9561706722015515e-05, - 0.0006440769066102803, - 0.0007696253596805036, - 0.0007566990097984672, - 0.010645451955497265, - 0.09180256724357605, - 0.0013956299517303705, - -0.004018120467662811, - 0.0018336536595597863, - 0.0008525215671397746, - -0.004122063517570496, - 0.0007983213872648776, - -0.0026082410477101803, - 0.001699204440228641, - -0.0030684140510857105, - -0.0013437726302072406, - 0.00042210935498587787, - 0.004858194850385189, - 0.0009668733109720051, - 0.0045167854987084866, - -0.001154908793978393, - 0.0017157024703919888, - -0.00036470466875471175, - -0.0005805909167975187, - -0.003200545674189925, - -0.00031640197266824543, - 0.0017027343856170774, - -0.002075250493362546, - 0.0006241025403141975, - -0.000525905576068908, - 0.0004728302010335028, - -0.0006236747722141445, - -0.06063130497932434, - -0.004215332679450512, - 0.00548156164586544, - -0.002086156513541937, - 0.0014377560000866652, - 0.0018737382488325238, - -0.0011109658516943455, - 0.0016894853906705976, - -0.0009362413547933102, - -0.001692290767095983, - 0.0030291294679045677, - -0.0015975163551047444, - 0.0004256644460838288, - 0.006684602238237858, - -0.0009359217365272343, - -0.002290415344759822, - -0.00014928082237020135, - 0.0006687127170152962, - -0.0008241288596764207, - -0.00018407238530926406, - -0.0532088577747345, - 0.0011412950698286295, - -0.0010978014906868339, - -0.0002835352788679302, - -0.0027756968047469854, - -0.0002966010360978544, - 0.004425547085702419, - -0.00978844054043293, - 0.0006413409137167037, - 0.0004400611505843699, - -0.000599355495069176, - -0.0005488735623657703, - -0.0006114462157711387, - 0.0005982447182759643, - 0.00015485762560274452, - 0.0010609285673126578, - 0.0012326838914304972, - -0.001554684597067535, - 0.0008318577311001718, - 0.0029969867318868637, - 0.001973662292584777, - 9.969387610908598e-05, - -0.0004253227380104363, - -0.0029436356853693724, - -0.004268232733011246, - 0.001876860624179244, - 0.11628886312246323, - 0.0005584236932918429, - 0.002340704435482621, - 0.0007350664818659425, - -0.0008144070743583143, - -0.003589074593037367, - -0.0011060448596253991, - -0.0012024878524243832, - 0.004476217087358236, - 0.0003999668697360903, - -0.0011000094236806035, - -0.003652801737189293, - -0.0006211983854882419, - 0.0013984462711960077, - -0.0018045373726636171, - 0.0007564590778201818, - -0.0015670323045924306, - -0.0006740715471096337 - ], - [ - 0.0009970971150323749, - 0.025575395673513412, - 0.018050605431199074, - -0.020130647346377373, - 0.009308543987572193, - 0.002709273947402835, - 0.0110202981159091, - -0.006516535300761461, - 0.015375247225165367, - -0.020726175978779793, - -0.02766016311943531, - 0.0638391524553299, - -0.05798593536019325, - 0.05909617245197296, - -0.022741278633475304, - -0.22935375571250916, - -0.01596381701529026, - -0.03955359011888504, - -0.007352730259299278, - 0.0474017895758152, - -0.060315899550914764, - 0.03142433241009712, - -0.06831836700439453, - -0.052300676703453064, - 0.04821145161986351, - -0.030505094677209854, - 0.008479345589876175, - -0.03256917744874954, - 0.001263670390471816, - 0.01835213042795658, - 0.04079635813832283, - -0.04719219356775284, - 0.025392374023795128, - 0.03876763954758644, - 0.0022768930066376925, - -0.01584744267165661, - -0.013894645497202873, - -0.05926469713449478, - -0.010619983077049255, - 0.01374205481261015, - -3.1857773137744516e-05, - -0.01413059700280428, - -0.02578991837799549, - -0.0076532126404345036, - -0.003943208139389753, - -0.1336200088262558, - -0.014418479986488819, - 0.05226636305451393, - 0.018201647326350212, - 0.037505101412534714, - -0.016718411818146706, - -0.005033810157328844, - 0.008930607698857784, - -0.021749049425125122, - 0.03527816757559776, - -0.033531129360198975, - 0.0003100123140029609, - 0.045289039611816406, - 0.03697064518928528, - -0.025743786245584488, - -0.008020661771297455, - 0.01834401674568653, - -0.05621698126196861, - 0.029269492253661156, - 0.015543194487690926, - 0.005833317991346121, - -0.03552060201764107, - -0.010474522598087788, - -0.018778935074806213, - -0.045308347791433334, - 0.030560294166207314, - 0.13650014996528625, - 0.059888362884521484, - 0.07806423306465149, - 0.037083156406879425, - 0.01100931130349636, - -0.0253741554915905, - 0.01300429180264473, - -0.00704345153644681, - -0.017054695636034012, - -0.010750409215688705, - -0.028689563274383545, - -0.4047863483428955, - -0.0461423434317112, - -0.042928241193294525, - -0.03610345721244812, - 0.01263517327606678, - -0.002040371997281909, - -0.0423002615571022, - 0.03988451883196831, - -0.0030261597130447626, - 0.007411501836031675, - 0.13005003333091736, - 0.06147664785385132, - -0.027984853833913803, - 0.02309265173971653, - -0.03721194341778755, - -0.006551955360919237, - 0.035812899470329285, - -0.013894452713429928, - 0.03523179888725281, - -0.02285803109407425, - -0.049413688480854034, - -0.048685964196920395, - 0.042719267308712006, - -0.03544202819466591, - 0.04347624629735947, - 0.04053327441215515, - -0.025011684745550156, - -0.025122975930571556, - -0.053585149347782135, - 0.020734600722789764, - -0.006990976631641388, - 0.010344192385673523, - -0.00466548465192318, - 0.00045341035001911223, - 0.017334451898932457, - 0.01923847384750843, - -0.0290006585419178, - -0.03420264646410942, - 0.04075007885694504, - -0.024830713868141174, - -0.014252595603466034, - 0.04466250166296959, - -0.07228169590234756, - -0.029043562710285187, - -0.41357219219207764, - 0.06335272639989853, - -0.013767796568572521, - 0.011534417979419231, - 0.015930967405438423, - -0.04206058010458946, - 0.02859296090900898, - 0.021715255454182625, - 0.03279060125350952, - 0.04609498009085655, - 0.09570671617984772, - 0.00905978586524725, - -0.004637391772121191, - -0.04160961136221886, - 0.0057389019057154655, - 0.03450354188680649, - -0.01199079118669033, - -0.06232393905520439, - -0.0030113300308585167, - -0.0662158727645874, - -0.04994256794452667, - -0.060235556215047836, - -0.03534805774688721, - -0.02898312732577324, - -0.0009271748131141067, - -0.025147108361124992, - -0.006937530357390642, - -0.03791677951812744, - 0.009044257923960686, - 0.019378218799829483, - 0.019159169867634773, - 0.01310050766915083, - -0.010275064036250114, - 0.41659820079803467, - -0.0504416786134243, - 0.00107699038926512, - -0.04116053134202957, - 0.008002815768122673, - 0.08586113154888153, - -0.1474306434392929, - -0.01274767704308033, - -0.003448712872341275, - 0.022793032228946686, - 0.026210248470306396, - -0.012171081267297268, - -0.08255691081285477, - -0.03061608597636223, - 0.019918743520975113, - -0.012847727164626122, - -0.019582876935601234, - -0.08152524381875992, - -0.08240986615419388, - 0.022641034796833992, - -0.032295260578393936, - -0.054114505648612976, - 0.019460342824459076, - -0.02158496342599392, - -0.021606899797916412, - 0.11142827570438385, - 0.036180850118398666, - -0.016518505290150642, - -0.018839199095964432, - 0.008419591933488846, - 0.0038375186268240213, - 0.001104929018765688, - -0.024130340665578842, - 0.20943182706832886, - -0.0006639955099672079, - 0.06431566923856735, - 0.03536497429013252, - -0.019753603264689445, - -0.016722245141863823, - 0.013613330200314522, - -0.00878390297293663, - -0.007992067374289036, - 0.01269297394901514, - 0.021887360140681267, - -0.016971752047538757, - 0.03268754854798317, - 0.03833852708339691, - -0.04115666449069977, - 0.005036499816924334, - -0.009568354114890099, - 0.009677240625023842, - 0.024628177285194397, - -0.002054748125374317, - 0.13219057023525238, - 0.012590598315000534, - -0.019782867282629013, - -0.040383994579315186, - 0.01898934692144394, - 0.0480787456035614, - -0.025530239567160606, - -0.07193300127983093, - -0.003123918315395713, - -0.05008113756775856, - 0.05715488642454147, - 0.031001973897218704, - 0.018091535195708275, - 0.006900522392243147, - 0.012529854662716389, - -0.043444424867630005, - -0.007615766488015652, - 0.023815831169486046, - -0.011194206774234772, - -0.01807102933526039, - -0.0027634520083665848, - 0.015548632480204105, - -0.045403264462947845, - -0.011625653132796288, - 0.014979932457208633, - 0.00294478633441031, - -0.1362552046775818, - 0.013437745161354542, - 0.008009420707821846, - -0.011492786929011345, - -0.056487005203962326, - -0.020149629563093185, - -0.018539046868681908, - -0.0028474379796534777, - 0.003627142868936062, - -0.05371284857392311, - 0.0032098691444844007, - -0.004636540077626705, - -0.07061391323804855, - 0.05959485098719597, - -0.031231459230184555, - -0.015352904796600342, - 0.032818231731653214, - 0.03815361484885216 - ], - [ - 0.01255837082862854, - 0.03925732895731926, - 0.004460325930267572, - 0.03529168292880058, - 0.010449201799929142, - 0.014453396201133728, - 0.026009008288383484, - -0.036144156008958817, - 0.0038497934583574533, - -0.01594039425253868, - 0.004713703412562609, - 0.002240982139483094, - -0.04573369026184082, - 0.0222953911870718, - -0.01412580069154501, - -0.29832586646080017, - -0.047627922147512436, - -0.03661872074007988, - -0.033456653356552124, - -0.006816146895289421, - -0.055158406496047974, - -0.007829591631889343, - -0.02972022071480751, - -0.027828535065054893, - 0.031759921461343765, - -0.015418240800499916, - 0.01835613138973713, - -0.0218808576464653, - -0.006259470712393522, - -0.008787965402007103, - 0.019687626510858536, - -0.04769892245531082, - 0.022705810144543648, - 0.030270321294665337, - 0.013567258603870869, - -0.04110882431268692, - -0.000708684092387557, - -0.043919507414102554, - -0.013789293356239796, - 0.012358910404145718, - 0.04348800331354141, - 0.0570388063788414, - -0.0178650114685297, - -0.0175258107483387, - -0.001535908319056034, - -0.11261561512947083, - 0.013573584146797657, - 0.004806981887668371, - 0.026486705988645554, - 0.03496313467621803, - 0.025730449706315994, - 0.016819467768073082, - 0.020833706483244896, - 0.04903758689761162, - -0.0181980449706316, - -0.029912197962403297, - 0.023091576993465424, - 0.03948894888162613, - 0.03304154798388481, - 0.004377188626676798, - 0.016514653339982033, - 0.013483340851962566, - -0.00901845097541809, - -0.0022339734714478254, - 0.0017984014702960849, - 0.014908287674188614, - -0.02710321731865406, - -0.012935147620737553, - -0.007226583547890186, - -0.005399815738201141, - 0.029502155259251595, - 0.16140350699424744, - 0.019567392766475677, - 0.03839588910341263, - 0.014041655696928501, - -0.008357253856956959, - 0.0104436120018363, - 0.005078631453216076, - 0.007132790982723236, - -0.016054555773735046, - 0.02134391851723194, - -0.012243140488862991, - 0.03940697759389877, - -0.008133720606565475, - -0.01785879395902157, - -0.03898520767688751, - 0.017177246510982513, - -0.028657758608460426, - -0.016400616616010666, - 0.00256742793135345, - 0.014730703085660934, - 0.03413591906428337, - 0.17860199511051178, - 0.014736851677298546, - 0.0015436626272276044, - -0.010213928297162056, - -0.04972975328564644, - -0.018717685714364052, - -0.0005053881905041635, - -0.03675515204668045, - 0.0019888936076313257, - 0.0014649267541244626, - -0.021375248208642006, - -0.027661938220262527, - 0.048110656440258026, - -0.02396826073527336, - 0.047988660633563995, - 0.010243291966617107, - -0.00564796244725585, - 0.001916569541208446, - -0.002044060965999961, - 0.054552000015974045, - -0.018681857734918594, - -0.03349868580698967, - -0.02536901645362377, - -0.019390733912587166, - 0.0005008803564123809, - -0.0078356321901083, - -0.004637765232473612, - -0.03348621353507042, - -0.00280538247898221, - -0.028301330283284187, - -0.033794645220041275, - 0.004186286590993404, - -0.06217486038804054, - -0.02129816636443138, - -0.6214697957038879, - 0.05565397068858147, - 0.0007463567308150232, - 0.021217353641986847, - 0.010460790246725082, - -0.018537355586886406, - 0.02164912410080433, - 0.0015853672521188855, - 0.10322555154561996, - 0.047706540673971176, - 0.03054189123213291, - 0.008737376891076565, - 0.055348411202430725, - -0.006789717357605696, - 0.0038076697383075953, - 0.02427547797560692, - -0.0159244854003191, - -0.024244705215096474, - -0.020251382142305374, - -0.04368162900209427, - -0.00781431794166565, - -0.02883722260594368, - -0.020547717809677124, - 0.00019275771046523005, - 0.0068773506209254265, - -0.05109412223100662, - -0.013585895299911499, - -0.031307876110076904, - 0.019880831241607666, - 0.012878959067165852, - 0.037651222199201584, - -0.02390371635556221, - -0.010492225177586079, - 0.34063491225242615, - -0.00037271130713634193, - -0.0031967677641659975, - 0.01423421036452055, - 0.01161898858845234, - 0.06346268206834793, - -0.2011052817106247, - -0.004142008721828461, - -0.009690333157777786, - -0.0013581003295257688, - -0.010605355724692345, - -0.006199132185429335, - -0.05987948179244995, - -0.032744280993938446, - -0.035177912563085556, - -0.045904096215963364, - -0.010217485018074512, - -0.04340221360325813, - -0.0862727165222168, - 0.02446156181395054, - -0.03928328678011894, - -0.06447456032037735, - 0.005693923216313124, - -0.0007788271177560091, - -0.0114096375182271, - 0.13785940408706665, - 0.031187111511826515, - 0.02457328513264656, - -0.020892970263957977, - -0.011287478730082512, - -0.006378387566655874, - 0.013110343366861343, - -0.021331485360860825, - 0.2246537059545517, - -0.011353762820363045, - 0.07338643819093704, - 0.02243347093462944, - 0.02331828512251377, - 0.002429104410111904, - -0.02170138992369175, - -0.0019029983086511493, - -0.00694983871653676, - 0.016885215416550636, - -0.002010147087275982, - 0.031754687428474426, - 0.021857425570487976, - 0.03231799229979515, - -0.06337902694940567, - 0.006299048662185669, - -0.00019784370670095086, - 0.010034029372036457, - -0.008271670900285244, - -0.009489919990301132, - 0.15229210257530212, - 0.006684702821075916, - -0.0303909070789814, - 0.0030821748077869415, - 0.016531631350517273, - 0.029348570853471756, - -0.06814546883106232, - -0.0698833242058754, - -0.0006442594458349049, - -0.012054006569087505, - 0.026507163420319557, - 9.001033504318912e-06, - 0.03030242957174778, - 0.0198165662586689, - 0.02959165908396244, - -0.023295052349567413, - -0.0014729542890563607, - 0.03141767159104347, - 0.011423339135944843, - -0.024049697443842888, - 0.00901440717279911, - -0.01709243468940258, - -0.028699222952127457, - -0.0005603162571787834, - 0.017701061442494392, - 0.018604015931487083, - -0.11367622017860413, - 0.017247458919882774, - 0.030156375840306282, - -0.007177303079515696, - -0.0553571879863739, - -0.01620246283710003, - 0.02770521678030491, - 0.02118278294801712, - 0.020683739334344864, - -0.042508482933044434, - 0.03575883433222771, - 0.01143469288945198, - -0.04665195569396019, - 0.0190585944801569, - -0.020427832379937172, - -0.028725285083055496, - 0.010650965385138988, - 0.02904023602604866 - ], - [ - -0.02463616244494915, - -0.007007596082985401, - 0.02601068653166294, - -0.02043100818991661, - 0.0012160647893324494, - -0.004177220165729523, - 0.028659073635935783, - -0.01873721554875374, - -0.012299592606723309, - -0.027210019528865814, - 0.005674173589795828, - 0.04917554929852486, - -0.02402486652135849, - 0.022053614258766174, - -0.019009904935956, - -0.2932930886745453, - -0.02556903287768364, - -0.01812688261270523, - -0.0059023709036409855, - 0.029454771429300308, - -0.03721637278795242, - -0.01799437217414379, - -0.02571617253124714, - -0.03443671017885208, - 0.04189660772681236, - -0.022352134808897972, - 0.06312486529350281, - -0.015367785468697548, - -0.02375262789428234, - 0.007092339918017387, - 0.007056897506117821, - -0.04161480441689491, - 0.0031511331908404827, - 0.02483564428985119, - 0.023302294313907623, - -0.036297187209129333, - 0.010620755143463612, - -0.05209369212388992, - -0.0056560346856713295, - -0.0064234137535095215, - 0.004965546075254679, - 0.02313564345240593, - 0.0035644888412207365, - 0.03994858264923096, - -0.015368713065981865, - -0.08938591927289963, - 0.031308792531490326, - 0.013379700481891632, - 0.01584632135927677, - 0.028549233451485634, - -0.030561065301299095, - -0.0016369855729863048, - 0.011734590865671635, - 0.005664700176566839, - 0.0008713716524653137, - -0.05312412232160568, - -0.010076632723212242, - 0.019185833632946014, - 0.038446538150310516, - -0.021006222814321518, - -0.02718736045062542, - 0.018660636618733406, - -0.02957764081656933, - -0.033618297427892685, - -0.02718334086239338, - 0.05616214498877525, - -0.049427155405282974, - -0.005627960432320833, - -0.004347777925431728, - 0.023947134613990784, - 0.023442180827260017, - 0.07629562169313431, - 0.04291991889476776, - 0.08695738762617111, - 0.008648230694234371, - 0.0010715237585827708, - -0.0011159463319927454, - -0.012242250144481659, - -0.019435940310359, - -0.029602112248539925, - 0.007347296457737684, - -0.024971334263682365, - -0.5661842226982117, - 0.008976368233561516, - -0.0210266150534153, - -0.004034628160297871, - 0.013843218795955181, - 0.009054780937731266, - -0.038698963820934296, - -0.0333963967859745, - -0.016078710556030273, - -0.007099009118974209, - 0.16395923495292664, - 0.04141247272491455, - -0.02007307857275009, - 0.012779271230101585, - -0.025173798203468323, - 0.012313194572925568, - -0.002067022956907749, - -0.031438879668712616, - 0.04151729866862297, - -0.02060812897980213, - -0.012828895822167397, - -0.03426409512758255, - 0.011133567430078983, - -0.01344989612698555, - 0.031423479318618774, - -0.012108703143894672, - -0.018031630665063858, - -0.02767152711749077, - 0.01331477239727974, - 0.024562345817685127, - 0.030598124489188194, - 0.029123246669769287, - -0.02773677185177803, - 0.00816566776484251, - 0.011722476221621037, - -0.02807275764644146, - -0.013266559690237045, - -0.013960142619907856, - 0.0060638790018856525, - 0.01054304651916027, - 0.00023017263447400182, - -0.014633899554610252, - -0.07249737530946732, - 0.009560431353747845, - -0.3499024510383606, - 0.05549343302845955, - -0.007220523431897163, - 0.03246808424592018, - 0.009221932850778103, - -0.03369230031967163, - -0.017984017729759216, - -0.0075227790512144566, - 0.05181080475449562, - 0.024914085865020752, - 0.013172297738492489, - 0.018188199028372765, - 0.02084212377667427, - -0.061798371374607086, - 0.026625214144587517, - 0.005840016528964043, - 0.006207786500453949, - -0.021498851478099823, - 0.02178245410323143, - -0.040615782141685486, - -0.038295723497867584, - -0.06747037917375565, - -0.04032670333981514, - -0.01748519577085972, - -0.022672081366181374, - -0.022589344531297684, - -0.016991140320897102, - -0.02553321234881878, - -0.001478076446801424, - 0.03158537670969963, - 0.019292591139674187, - -0.008937100879848003, - 0.02326156012713909, - 0.4347180128097534, - 0.024292053654789925, - -0.04023219272494316, - -0.020639436319470406, - -0.026372862979769707, - 0.10008325427770615, - -0.08669463545084, - -0.04622234031558037, - 0.016879025846719742, - 0.04118141159415245, - 0.03634699806571007, - -0.023289458826184273, - -0.08999606966972351, - -0.020559241995215416, - 0.018432052806019783, - -0.01299038715660572, - -0.00731376139447093, - -0.025041956454515457, - -0.09371121972799301, - 0.025056850165128708, - -0.0024038164410740137, - -0.0614924356341362, - 0.013948607258498669, - 0.01097990944981575, - -0.0013348724460229278, - 0.10942781716585159, - 0.041807327419519424, - 0.01412979420274496, - -0.03328714519739151, - -0.04278901219367981, - -0.013794595375657082, - -0.02496284618973732, - 0.006450801622122526, - 0.13271987438201904, - -0.051891718059778214, - 0.054198961704969406, - 0.004026629962027073, - -0.02608647570014, - -0.030107969418168068, - 0.023649003356695175, - -0.03977963700890541, - 0.01717672310769558, - 0.04486532881855965, - -0.0021386484149843454, - 0.01551692932844162, - -0.0025840529706329107, - 0.04147449508309364, - -0.020232001319527626, - 0.010630232281982899, - 0.016119088977575302, - 0.005993311293423176, - 0.021216334775090218, - -0.018514178693294525, - 0.07070749998092651, - 0.02925141341984272, - -0.005616437643766403, - -0.02556813508272171, - 0.016673175618052483, - -0.02304457314312458, - -0.013360091485083103, - -0.06415436416864395, - 0.0022045266814529896, - -0.0328538753092289, - 0.002209668280556798, - -0.00662294402718544, - 0.018402112647891045, - 0.02187979221343994, - -0.01293709222227335, - -0.04141327366232872, - -0.026995228603482246, - 0.02002609521150589, - 0.012291684746742249, - -0.001989434938877821, - 0.0399710088968277, - -0.020964091643691063, - -0.04435412213206291, - -0.017080575227737427, - 0.008914699777960777, - -0.019439488649368286, - 0.0034165619872510433, - 0.019328197464346886, - 0.013192852027714252, - -0.021004166454076767, - -0.020137548446655273, - 0.02616867795586586, - -0.011662928387522697, - 0.012049220502376556, - 0.0011923420242965221, - -0.0190295297652483, - 0.02399413287639618, - 0.007773192599415779, - -0.03887055814266205, - 0.009152749553322792, - -0.0032822247594594955, - 0.007057481445372105, - -0.010995693504810333, - 0.010840823873877525 - ], - [ - 0.002311482559889555, - 0.025226466357707977, - 0.0002390240115346387, - 0.015112513676285744, - -0.005149170756340027, - 0.006663789041340351, - 0.008532826788723469, - 0.0037810802459716797, - 0.019647125154733658, - 0.003214415395632386, - 0.0069672707468271255, - -0.011383622884750366, - -0.019887063652276993, - 0.020835483446717262, - -0.019175445660948753, - -0.13019564747810364, - -0.019838517531752586, - -0.008931463584303856, - -0.024492312222719193, - -0.01160840317606926, - -0.04381229355931282, - 0.0027378881350159645, - -0.01776248961687088, - -0.004187243990600109, - -0.0021479499991983175, - -0.01130900252610445, - 0.014642327092587948, - -0.01936016045510769, - -0.016638483852148056, - 0.016889424994587898, - 0.008630557917058468, - -0.0013145471457391977, - -0.004413491114974022, - 0.003723918693140149, - 0.013605192303657532, - -0.004305308219045401, - 0.015526571311056614, - -0.008575902320444584, - -0.0003539159952197224, - 0.0006704896222800016, - 0.013769732788205147, - 0.0175463929772377, - 0.003797713667154312, - -0.011914082802832127, - -0.01197359524667263, - -0.04893559589982033, - 0.001288632513023913, - -0.005757883191108704, - 0.008603213354945183, - 0.011708474718034267, - 0.00015192353748716414, - 0.01624949462711811, - 0.003300567390397191, - 0.022858325392007828, - -0.008647887967526913, - -0.017174353823065758, - 0.012223661877214909, - -1.6596484783804044e-05, - 0.0007749352371320128, - 0.01632840745151043, - 0.0009748298325575888, - 0.006323882844299078, - 0.005130607169121504, - 0.0035534354392439127, - -0.001047348603606224, - 0.005547466222196817, - -0.02162926457822323, - 0.002871185075491667, - -0.005201144143939018, - 0.00877169519662857, - 0.0002042266569333151, - 0.008702743798494339, - 0.020616687834262848, - 0.029789038002490997, - 0.0032488901633769274, - -0.017637183889746666, - 0.018052304163575172, - -0.001658353372476995, - -0.002608279464766383, - -0.00647960277274251, - 0.016126427799463272, - -0.0039316751062870026, - -0.8876186013221741, - 0.001978869317099452, - -0.008180043660104275, - 0.00027462749858386815, - 0.003910759463906288, - -0.016604747623205185, - 0.004428305197507143, - -0.010244165547192097, - 0.004769597202539444, - 0.01725824922323227, - 0.08022641390562057, - -0.001739791943691671, - 0.009868252091109753, - 0.004762932192534208, - -0.016753196716308594, - -0.008391396142542362, - -0.0004890891723334789, - -0.018702173605561256, - -0.0013496079482138157, - -0.002882035681977868, - -0.01623421348631382, - -0.00904830638319254, - 0.037358589470386505, - -0.0015126524958759546, - 0.017453856766223907, - 0.000944686122238636, - -0.00041660162969492376, - -0.00564423855394125, - 0.009609117172658443, - 0.027823543176054955, - -0.00548354210332036, - -0.006567420903593302, - -0.014734718017280102, - 0.010547417216002941, - -0.0016435669967904687, - -0.0005539286648854613, - -0.00151128601282835, - -0.02327507734298706, - -0.01377770397812128, - -0.010184308513998985, - -0.020128222182393074, - -0.0004889067495241761, - -0.03002573922276497, - -0.004878305830061436, - -0.000814284197986126, - 0.021333204582333565, - 0.00834668055176735, - 0.017902810126543045, - 0.002748405560851097, - -0.004363321233540773, - 0.011717664077877998, - -0.011244113557040691, - 0.040142517536878586, - 0.011564547196030617, - -0.0015566828660666943, - 0.009418216533958912, - 0.023430921137332916, - 0.0016819937154650688, - 0.007170695811510086, - 0.016512621194124222, - -0.016308140009641647, - 0.005946493241935968, - -0.016083257272839546, - -0.01672460325062275, - -0.00475773960351944, - -0.004103399347513914, - -0.009868193417787552, - 0.01333891786634922, - -0.004442794248461723, - -0.014506095089018345, - -0.00893369596451521, - -0.027300411835312843, - 0.0013257676037028432, - 0.01377718523144722, - 0.007969214580953121, - -0.009465212002396584, - -0.005133857950568199, - 0.36425289511680603, - 0.005427609197795391, - 0.004058990627527237, - 0.008480902761220932, - 0.007734962739050388, - 0.04019325599074364, - -0.0034435016568750143, - 0.0033651397097855806, - -0.018206780776381493, - 0.00019775981490965933, - -0.009644929319620132, - -0.013980809599161148, - -0.019846895709633827, - -0.025130916386842728, - -0.007938315160572529, - -0.03097761608660221, - -0.011260239407420158, - -0.011261826381087303, - -0.02419840730726719, - 0.018093938007950783, - -0.01107996515929699, - -0.018753057345747948, - -0.0016847650986164808, - -0.007505940273404121, - 0.003626446472480893, - 0.04395478591322899, - 0.010995869524776936, - 0.016685716807842255, - -0.01712188497185707, - 0.005315140355378389, - -0.0062569319270551205, - 0.00880349986255169, - 0.0026376547757536173, - 0.04926275834441185, - -0.010721614584326744, - 0.031639859080314636, - 0.009054104797542095, - 0.010869338177144527, - 0.0044164881110191345, - -0.00950764212757349, - 0.0016629982274025679, - -0.005926988553255796, - 0.001062026945874095, - 0.012060463428497314, - 0.019468097016215324, - 0.002448724117130041, - 0.029030118137598038, - -0.0341607965528965, - -0.003580720629543066, - -0.003996319603174925, - 0.009061477147042751, - -0.0009794607758522034, - -0.0035453462041914463, - 0.023449111729860306, - -0.001008843071758747, - -0.01748473569750786, - -0.003956940490752459, - 0.001278021838515997, - 0.0013759313151240349, - -0.020179878920316696, - -0.05578656494617462, - 0.002385740401223302, - -0.00013509670679923147, - 0.01190304383635521, - -0.007609385531395674, - 0.009893004782497883, - 0.0047147576697170734, - 0.012890911661088467, - -0.006020908709615469, - 0.003321482101455331, - 0.0005844276747666299, - 0.004317994229495525, - 0.007093732710927725, - 0.012985519133508205, - 0.0010252423817291856, - -0.008440092206001282, - 0.006935718934983015, - 0.0020070227328687906, - 0.005818202160298824, - 0.04771910235285759, - 0.012387246824800968, - 0.02460855059325695, - -0.008183185942471027, - -0.021254032850265503, - -0.014534142799675465, - 0.01578831486403942, - 0.0025910527911037207, - 0.005532894283533096, - -0.020851634442806244, - 0.012765240855515003, - 0.004020238295197487, - -0.01482310052961111, - 0.019714856520295143, - -0.0016886598896235228, - -0.008386087603867054, - 0.0009435774991288781, - 0.002930916380137205 - ], - [ - 0.0034076247829943895, - 0.023717407137155533, - 0.027150707319378853, - 0.018352016806602478, - -0.011922301724553108, - 0.001771130133420229, - 0.009379001334309578, - 0.038497794419527054, - 0.042178764939308167, - 0.005965725518763065, - 0.011257726699113846, - -0.020932698622345924, - -0.04009512811899185, - 0.02307816781103611, - -0.057853806763887405, - -0.09590296447277069, - -0.036183085292577744, - -0.02995414473116398, - -0.054720208048820496, - 0.00974529329687357, - -0.15880291163921356, - 0.017965255305171013, - -0.05427724868059158, - -0.005891334265470505, - 0.026950810104608536, - -0.029940685257315636, - 0.02972409315407276, - -0.009040792472660542, - -0.00967197772115469, - 0.044298868626356125, - -0.0023984317667782307, - -0.014845979399979115, - -0.05466892942786217, - 0.022569721564650536, - 0.01250729151070118, - -0.004146757535636425, - 0.013336489908397198, - -0.03258485347032547, - 0.020662367343902588, - 0.015476654283702374, - 0.05303394794464111, - 0.013330793008208275, - 0.02316722460091114, - -0.0009367731981910765, - -0.006446657702326775, - -0.08504093438386917, - -0.012598006054759026, - -0.021968988701701164, - 0.018013224005699158, - 0.014551806263625622, - -0.033088017255067825, - 0.017247019335627556, - -0.0073624178767204285, - 0.06959989666938782, - 0.02067086286842823, - -0.018700404092669487, - 0.0017527327872812748, - 0.01954263634979725, - -0.010124011896550655, - 0.06239285320043564, - -0.032590460032224655, - -0.020347530022263527, - 0.03097628243267536, - -0.003979132045060396, - -0.057965729385614395, - 0.012568033300340176, - -0.009512728080153465, - -0.014164752326905727, - -0.0231978390365839, - 0.049739640206098557, - 0.047555357217788696, - 0.14643582701683044, - 0.05005619302392006, - 0.04439859464764595, - 0.002662608865648508, - -0.06500840187072754, - 0.022514868527650833, - 0.00650430703535676, - -0.009828055277466774, - -0.03264646232128143, - 0.04682781919836998, - 0.010207711718976498, - -0.5577391386032104, - 0.03726368397474289, - -0.005479702726006508, - 0.03691184148192406, - 0.06633775681257248, - -0.04284078627824783, - -0.01506722066551447, - -0.03376484289765358, - 0.009726353920996189, - 0.010129941627383232, - -0.03312547132372856, - 0.01785323955118656, - 0.0018202366773039103, - 0.021806368604302406, - -0.046286311000585556, - -0.006822369527071714, - -0.00128910131752491, - -0.03382830321788788, - 0.023196926340460777, - -0.007334936410188675, - -0.02564399503171444, - -0.02387862466275692, - 0.03173213079571724, - -0.002167864004150033, - 0.03244505822658539, - -0.006130054593086243, - -0.007759825326502323, - 0.002018359722569585, - -0.027776574715971947, - 0.04390586540102959, - 0.01716247759759426, - -0.001351824845187366, - 0.021473582834005356, - 0.006266597658395767, - 0.001421242719516158, - -0.031356800347566605, - 0.014789806678891182, - -0.03988417610526085, - -0.04147159308195114, - 0.005327298305928707, - -0.02482297085225582, - 0.01726062409579754, - -0.055933259427547455, - 0.03434053063392639, - -0.20113621652126312, - 0.04946072772145271, - 0.010581563226878643, - 0.05207851156592369, - 0.030918631702661514, - 0.005733035039156675, - -0.014820322394371033, - -0.022077694535255432, - 0.10559666901826859, - 0.01377802062779665, - -0.02872352860867977, - 0.023410437628626823, - 0.02345377393066883, - -0.002407990163192153, - -0.009506313130259514, - 0.03354719653725624, - -0.004736733622848988, - 0.015314803458750248, - -0.044799234718084335, - -0.057303473353385925, - -0.007501840125769377, - -0.03262118250131607, - -0.026502087712287903, - 0.029231645166873932, - 0.014406162314116955, - 0.020698221400380135, - -0.009359822608530521, - -0.057768382132053375, - 0.0054237013682723045, - 0.025208624079823494, - 0.030548982322216034, - 0.04011848568916321, - -0.001993232173845172, - 0.3834533989429474, - 0.017612606287002563, - -0.0009945197962224483, - -0.000630775059107691, - 0.0021328364964574575, - 0.12370329350233078, - -0.10983531922101974, - -0.010532706044614315, - -0.04736648499965668, - 0.01708410494029522, - -0.015019707381725311, - -0.03544970229268074, - -0.02127079851925373, - -0.10500481724739075, - 0.0179753378033638, - -0.038449160754680634, - -0.005219537764787674, - -0.0015464507741853595, - -0.004694788251072168, - 0.02944912016391754, - -0.026642007753252983, - -0.050326310098171234, - -0.022997276857495308, - -0.016893776133656502, - 0.002796278102323413, - 0.035788826644420624, - 0.04366817697882652, - 0.05125473067164421, - -0.028550779446959496, - 0.004913313314318657, - -0.033320918679237366, - 0.010477178730070591, - -0.019827015697956085, - 0.22399654984474182, - -0.03776036947965622, - 0.03690209612250328, - -0.0031716665253043175, - 0.004919983446598053, - 0.0018434736412018538, - -0.02805631048977375, - -0.0021861945278942585, - 0.009069795720279217, - 0.014999606646597385, - 0.02946780063211918, - 0.03193918615579605, - -0.019673911854624748, - 0.03518732264637947, - -0.02500307187438011, - -0.005085411947220564, - 0.0015178496250882745, - 0.03392055630683899, - 0.02268681861460209, - 0.011067908257246017, - 0.16597101092338562, - -0.00013070114073343575, - -0.0222772303968668, - -0.02259621024131775, - 0.015934551134705544, - -0.008800056762993336, - -0.03345528617501259, - -0.11091647297143936, - 0.026783175766468048, - -0.020578190684318542, - 0.01764790713787079, - -0.0154444994404912, - 0.02081306092441082, - 0.023697160184383392, - 0.024932147935032845, - -0.03714188560843468, - 0.0037650298327207565, - -0.014336382038891315, - 0.015423741191625595, - 0.0755741149187088, - 0.009810395538806915, - 0.020105142146348953, - 0.013073727488517761, - -0.02456548996269703, - -0.006574056576937437, - 0.017439410090446472, - -0.3357603847980499, - 0.0356636717915535, - 0.015609662979841232, - 0.004266620147973299, - -0.013979376293718815, - -0.01762179471552372, - 0.037189848721027374, - -0.03996613621711731, - -0.005439830478280783, - -0.0529397577047348, - 0.01692621037364006, - -0.013817133381962776, - -0.019028998911380768, - 0.03645934537053108, - -0.01601056382060051, - -0.021645262837409973, - 0.0224765632301569, - 0.02110181376338005 - ], - [ - 0.00048706738743931055, - 0.0016395616112276912, - -0.001142348861321807, - 0.0015725410776212811, - -0.000498447276186198, - 0.0006708289147354662, - -0.0009075456182472408, - 0.0014332921709865332, - 0.002135996939614415, - 0.001460032886825502, - -0.0014051580801606178, - 0.0008740004268474877, - -0.00028456462314352393, - 0.00029855198226869106, - -0.0010513707529753447, - 0.004908062517642975, - -0.0007831163820810616, - -0.003683309070765972, - -0.0034260491374880075, - 0.0013490437995642424, - -0.009283853694796562, - 0.003827199572697282, - -0.0018628756515681744, - -0.000870284391567111, - -0.001565434387885034, - -0.001403080765157938, - 0.0015922966413199902, - -0.0002507665194571018, - -0.001214096206240356, - 0.001053700689226389, - 0.0007313957903534174, - 0.0012875839602202177, - -0.0002842419780790806, - -0.000857460661791265, - 0.0006719257798977196, - 0.0009738103253766894, - 0.002445042133331299, - 0.0009698531357571483, - -5.657649580825819e-06, - -0.001418353640474379, - 0.0006683191750198603, - 0.001709305215626955, - 0.00026152184000238776, - 0.0008525383891537786, - -0.002326080109924078, - -0.0023947462905198336, - 0.0009101335308514535, - -0.0014797335024923086, - 0.0016801528399810195, - 0.001181129366159439, - -0.00175124267116189, - 0.008803005330264568, - 0.0008554488886147738, - 0.0002306730893906206, - -0.0022476566955447197, - -0.0017088991589844227, - -5.635335583065171e-06, - -0.0005543105071410537, - -0.005966260563582182, - -0.0004978293436579406, - 0.0007761646411381662, - -0.0029492040630429983, - 0.00031320101697929204, - 0.0033382561523467302, - -0.004848668351769447, - 0.002979483688250184, - -0.010805373080074787, - 0.001894282759167254, - -0.0016135412734001875, - -0.0004786272766068578, - -0.001752153504639864, - -0.07290530949831009, - 0.0033079604618251324, - 0.005514073185622692, - 0.00011115243250969797, - 0.0007327303756028414, - 0.0022621946409344673, - 0.0024790975730866194, - -0.002445792779326439, - 0.001710612908937037, - 0.0003777678939513862, - 0.00030644171056337655, - -0.9181501269340515, - 9.123011113842949e-05, - -0.004701695870608091, - 0.002627152483910322, - 0.0013416719157248735, - -8.00566776888445e-05, - -0.0002655400021467358, - 0.0028542226646095514, - 0.0009088329970836639, - 0.0016969129210337996, - 0.006622560787945986, - -1.0609437595121562e-05, - 0.002422369783744216, - 0.0031710979528725147, - -0.0006098591256886721, - -0.0019044735236093402, - 0.00310566951520741, - -0.001757642487064004, - 0.0023254314437508583, - 0.0012053298996761441, - 0.0008597281412221491, - 0.001488818903453648, - 0.004151861649006605, - 0.0004964600084349513, - -0.002725353231653571, - 0.001849470310844481, - -0.0023568079341202974, - -0.0016185739077627659, - 0.008319509215652943, - 0.004323506262153387, - -0.0002228493249276653, - -0.00029251124942675233, - 0.0008995878743007779, - 0.004353607073426247, - -0.0016779681900516152, - 0.0001502751256339252, - 0.00040971447015181184, - 1.7686160163066234e-06, - -0.0008341984357684851, - -0.0024449897464364767, - -0.002232115715742111, - 0.0019160135416314006, - -0.003876900766044855, - -0.0016714457888156176, - 0.2817855179309845, - 0.001877487637102604, - 0.0002935738884843886, - 0.001297307782806456, - 0.00027396061341278255, - 0.0030989593360573053, - 0.0011997000547125936, - -0.0008420757949352264, - -0.0013897197786718607, - 0.0017487031873315573, - -0.0037809957284480333, - 0.001426256145350635, - -0.0014308507088571787, - 0.0010930199641734362, - 0.0011635940754786134, - -7.405606447719038e-05, - -0.0014458702644333243, - -0.0004293655510991812, - -0.0017697467701509595, - -0.005566732492297888, - 0.0010990411974489689, - 0.0011888673761859536, - -0.0013967229751870036, - 0.00048657957813702524, - -0.0014070644974708557, - -0.0065702940337359905, - -0.0014734496362507343, - -0.0053850687108933926, - -0.002283178037032485, - 0.0009342251578345895, - 0.0015266938135027885, - -0.0015062307938933372, - 0.0009980588220059872, - 0.20668292045593262, - -0.0004906124086119235, - 0.0007482191431336105, - 0.0005027638399042189, - 0.0009719467489048839, - 0.011324610561132431, - 0.0906994566321373, - 0.001439287792891264, - -0.0042113373056054115, - 0.0016541052609682083, - 0.0011704551288858056, - -0.0046446179039776325, - 0.00026973485364578664, - -0.0025218098890036345, - 0.0018449756316840649, - -0.0030121514573693275, - -0.001533647533506155, - 0.00023380285711027682, - 0.004557114094495773, - 0.001128494506701827, - 0.00502573698759079, - -0.0016244212165474892, - 0.0014140503481030464, - -0.000363850878784433, - -0.0010113704483956099, - -0.0029894118197262287, - -0.00046571390703320503, - 0.0016035879962146282, - -0.0020742665510624647, - 0.0005471442127600312, - -0.0005239080055616796, - 0.0003925669880118221, - -0.0004221925628371537, - -0.060136470943689346, - -0.004654603078961372, - 0.0062117562629282475, - -0.0021281936205923557, - 0.0016580423107370734, - 0.0013185858260840178, - -0.0007269225898198783, - 0.0016660407418385148, - -0.000874674937222153, - -0.0018722257809713483, - 0.0031651861499994993, - -0.001722669112496078, - 0.0006831258069723845, - 0.006509914994239807, - -0.0013142935931682587, - -0.0021722128149122, - -8.234024426201358e-05, - 0.0005367011181078851, - -0.0005599042633548379, - -2.630635935929604e-05, - -0.052728962153196335, - 0.0008674810524098575, - -0.0015603405190631747, - -0.00030823759152553976, - -0.00276423548348248, - -0.00013023796782363206, - 0.004442548844963312, - -0.010910622775554657, - 0.0005225545028224587, - 0.00027906583272852004, - -0.0003063355397898704, - -0.00031028143712319434, - -0.0004780506424140185, - 0.0010605354327708483, - 0.0005870610475540161, - 0.0010775277623906732, - 0.001039745518937707, - -0.0013460050104185939, - 0.0010260376147925854, - 0.0033360791858285666, - 0.0022453670389950275, - -0.00020935370412189513, - -0.00039273782749660313, - -0.0029202518053352833, - -0.0043979850597679615, - 0.0018342864932492375, - 0.11480727046728134, - 0.0006329095340333879, - 0.0023956752847880125, - 0.0010385833447799087, - -0.0013836279977113008, - -0.003510086564347148, - -0.001281236414797604, - -0.0009523890912532806, - 0.0048708245158195496, - 0.00039834383642300963, - -0.0016786849591881037, - -0.003796258708462119, - -0.001270050066523254, - 0.0014803908998146653, - -0.001954123377799988, - 0.0011766148963943124, - -0.0015353990020230412, - -0.0006796157686039805 - ], - [ - 0.00020609890634659678, - 0.0019871548283845186, - -0.0010373549303039908, - 0.0009888112545013428, - -0.0005119547131471336, - 0.0007150977035053074, - -0.0004182328120805323, - 0.0007741539156995714, - 0.002853402867913246, - 0.0020253562834113836, - -0.002261823508888483, - 0.0020722271874547005, - -0.0004267584008630365, - -6.861578731331974e-05, - -0.0005334042944014072, - 0.0034358908887952566, - -0.00029604561859741807, - -0.0040728249587118626, - -0.0029746023938059807, - 0.0020678630098700523, - -0.007760003674775362, - 0.0036973210517317057, - -0.0017345566302537918, - -0.0011239061132073402, - -0.0015859168488532305, - -0.0017018895596265793, - 0.0016068699769675732, - -0.0005340610514394939, - -0.0007972240564413369, - 0.0006664354004897177, - 0.0008959100814536214, - 0.0018835325026884675, - 0.0001324018812738359, - -0.0006131623522378504, - 0.0008180055301636457, - 0.0013235409278422594, - 0.0019812744576483965, - 0.0003225055697839707, - -0.0004043289227411151, - -0.0016913763247430325, - 0.00060557498363778, - 0.0006710170418955386, - -0.00034513507853262126, - -0.00026407602126710117, - -0.0017863436369225383, - -0.002479113172739744, - 0.0009287184802815318, - -0.0011477487860247493, - 0.0012653493322432041, - 0.0011779143242165446, - -0.0018871696665883064, - 0.008119366131722927, - 0.0007247846806421876, - -0.0012895723339170218, - -0.0012478323187679052, - -0.001787982415407896, - 0.0002629272057674825, - -0.00010656227095751092, - -0.00624404801055789, - -0.002105098217725754, - 0.0007312798406928778, - -0.0024420996196568012, - -0.0003124735376331955, - 0.004151997622102499, - -0.0035801343619823456, - 0.0022845969069749117, - -0.010764610022306442, - 0.0021116635762155056, - -0.0012079280568286777, - -0.0009705318370833993, - -0.001994193997234106, - -0.07360167056322098, - 0.0027698937337845564, - 0.005642436444759369, - 0.0003906901984009892, - 0.0016579380026087165, - 0.002912466414272785, - 0.0020619486458599567, - -0.002896279329434037, - 0.001612145802937448, - -0.0003114539722446352, - -3.0421624614973553e-06, - -0.9179458618164062, - -0.0006866036565043032, - -0.005331022199243307, - 0.0018444452434778214, - 0.0009119310998357832, - 0.0008307249518111348, - 9.31503891479224e-05, - 0.0037639657966792583, - 0.0010626609437167645, - 0.0009788171155378222, - 0.009514501318335533, - -0.00034071531263180077, - 0.0026876197662204504, - 0.0031947463285177946, - -0.00011263092164881527, - -0.0014057413209229708, - 0.003526717657223344, - -0.0013910321285948157, - 0.0014417639467865229, - 0.0009690472506918013, - 0.0014532854547724128, - 0.0011211353121325374, - 0.005046098493039608, - 0.0005020736716687679, - -0.0027895234525203705, - 0.002229421865195036, - -0.002219041343778372, - -0.001998405670747161, - 0.008185241371393204, - 0.0042595406994223595, - 1.5941459423629567e-05, - 0.00011082496348535642, - 0.0007397587760351598, - 0.004361103288829327, - -0.0016406782669946551, - 0.0009094876586459577, - -0.0004976649070158601, - 0.000562718603760004, - -0.0007191103068180382, - -0.002392064779996872, - -0.0023011397570371628, - 0.001941296155564487, - -0.004382388666272163, - -0.002008377108722925, - 0.2802073061466217, - 0.0020226186607033014, - -2.747491635091137e-06, - 0.001089156256057322, - 0.00022707879543304443, - 0.0027603008784353733, - 0.0018137559527531266, - -0.0007848353125154972, - -0.0017045558197423816, - 0.0013278736732900143, - -0.0019832004327327013, - 0.001390094985254109, - -0.0016985490219667554, - 0.001028175582177937, - 0.0013054455630481243, - -6.797505193389952e-05, - -0.0011817800113931298, - -0.0007785451598465443, - -0.000731931475456804, - -0.005557028576731682, - 0.0008293809951283038, - 0.0016902335919439793, - -0.002084070350974798, - -9.381648123962805e-05, - -0.0013284165179356933, - -0.0076483567245304585, - -0.0018178046448156238, - -0.0058463988825678825, - -0.002669000532478094, - 0.0013177477521821856, - 0.00128877570386976, - -0.001683396054431796, - 0.00038884731475263834, - 0.20716367661952972, - -0.0007998508517630398, - 0.000700786302331835, - 0.00011365620594006032, - 0.0007569596054963768, - 0.010240228846669197, - 0.0911511704325676, - 0.001700939959846437, - -0.003944919910281897, - 0.0020168591290712357, - 0.00113699771463871, - -0.004310887306928635, - -5.43228852620814e-05, - -0.0017887918511405587, - 0.002142501063644886, - -0.0029731367249041796, - -0.0015778603265061975, - -0.0005885671125724912, - 0.00434017414227128, - 0.0007612901390530169, - 0.0043214778415858746, - -0.0013047235552221537, - 0.00198429636657238, - -0.0005695486324839294, - -0.0007690586498938501, - -0.002818875713273883, - -0.0010996507480740547, - 0.0009031418594531715, - -0.0017068039160221815, - 0.0007031813147477806, - 5.841930760652758e-05, - 0.0009109344100579619, - -0.00017590644711162895, - -0.060608867555856705, - -0.003924512770026922, - 0.0055933683179318905, - -0.0012375209480524063, - 0.0008537920657545328, - 0.0014413741882890463, - -0.0007194544305093586, - 0.0010149739682674408, - -0.0016955151222646236, - -0.002273662481456995, - 0.0026907091960310936, - -0.001987391384318471, - 0.0010056940373033285, - 0.006541547831147909, - -0.0013652518391609192, - -0.001708196010440588, - -0.0004924904205836356, - 0.0007499046041630208, - -0.0016304012387990952, - -9.302973194280639e-05, - -0.053389694541692734, - 0.001761197461746633, - -0.0010691153584048152, - -0.0006353639764711261, - -0.0035493550822138786, - 0.0005690446123480797, - 0.004359021317213774, - -0.01036022324115038, - -8.45852991915308e-05, - 2.4308777938131243e-05, - -0.0008703450439497828, - -0.000264851376414299, - -0.0008259568712674081, - 0.0006198597839102149, - 0.00023104502179194242, - 0.0012165625812485814, - 0.001259539509192109, - -0.0014573296066373587, - 0.0013990356819704175, - 0.001786030363291502, - 0.002071377355605364, - -0.00030341671663336456, - -0.0011652964167296886, - -0.003007646417245269, - -0.004573815036565065, - 0.0013463508803397417, - 0.11818651854991913, - 0.0003332688065711409, - 0.002867067465558648, - 0.00023818231420591474, - -0.0009356336668133736, - -0.0037062845658510923, - -0.0015043923631310463, - -0.0008492874330841005, - 0.004821625538170338, - 0.0005279481993056834, - -0.001418079948052764, - -0.0033158953301608562, - -0.001413343707099557, - 0.00224438589066267, - -0.0015179781476035714, - 0.00024371359904762357, - -0.0018139163730666041, - -0.00040243982220999897 - ], - [ - 0.0024313884787261486, - 0.050647709518671036, - 0.0027238146867603064, - -0.010270368307828903, - -0.049575768411159515, - 0.010866624303162098, - 0.0024309612344950438, - -0.007711708080023527, - 0.018404027447104454, - -0.01516793668270111, - -0.00929342396557331, - 0.031148463487625122, - -0.025042232125997543, - 0.09373302012681961, - -0.05190372094511986, - -0.07490367442369461, - 0.014896434731781483, - -0.10377080738544464, - -0.02455875836312771, - 0.017176613211631775, - -0.1525750309228897, - 0.016324127092957497, - -0.09293527156114578, - -0.01303811464458704, - 0.059782739728689194, - -0.03167972341179848, - -0.002185229677706957, - 0.02270938828587532, - -0.032698556780815125, - 0.03412238880991936, - -0.04235091805458069, - -0.044289249926805496, - -0.0760887935757637, - -0.05888153985142708, - -0.006950396578758955, - -0.0057406118139624596, - 0.0019701349083334208, - -0.06577537953853607, - 0.02836722321808338, - 0.06498084962368011, - 0.037326689809560776, - -0.03494814410805702, - 0.07917904108762741, - 0.016697103157639503, - 0.07408718019723892, - -0.07741376012563705, - 0.005573275964707136, - -0.05429777875542641, - 0.01637975312769413, - 0.05500686168670654, - -0.05285995826125145, - -0.006559939589351416, - 0.008759613148868084, - 0.03968066722154617, - -0.0015841869171708822, - 0.011196194216609001, - 0.0036833847407251596, - 0.10824785381555557, - 0.010690943337976933, - -0.024600543081760406, - -0.051599521189928055, - -0.05078671872615814, - 0.03434497490525246, - 0.011577151715755463, - -0.0010968860005959868, - 0.0008330914424732327, - 0.05551806092262268, - -0.035737231373786926, - -0.013660799711942673, - 0.031230218708515167, - 0.06664493680000305, - 0.11420156806707382, - 0.06790473312139511, - 0.01286626048386097, - -0.016491271555423737, - -0.03851177170872688, - -0.002916485769674182, - 0.08921612054109573, - -0.04246623069047928, - 0.0023287583608180285, - 0.0463605672121048, - -0.031461916863918304, - -0.37576428055763245, - 0.05099370330572128, - -0.02551841549575329, - 0.0592435821890831, - 0.07363227009773254, - -0.011880713514983654, - -0.002628159010782838, - -0.026455264538526535, - 0.015539399348199368, - 0.00777114974334836, - -0.1579904705286026, - 0.0673103928565979, - 0.011936371214687824, - 0.0268437247723341, - -0.062391649931669235, - 0.010231859050691128, - -0.01531754806637764, - -0.048317279666662216, - 0.0621894896030426, - -0.021932054311037064, - -0.07091080397367477, - 0.045403264462947845, - 0.04088359698653221, - -0.09542647004127502, - 0.014131191186606884, - 0.03505517169833183, - 0.07198265939950943, - -0.0323188491165638, - -0.04317285493016243, - -0.04021868109703064, - 0.012301011942327023, - 0.01952209882438183, - 0.1107487827539444, - 0.032226841896772385, - 0.002322564832866192, - -0.01596193015575409, - -0.006371889729052782, - 0.043475087732076645, - -0.027512243017554283, - 0.019321635365486145, - -0.004588353913277388, - 0.06560143083333969, - -0.03547411784529686, - 0.011546561494469643, - -0.12043500691652298, - 0.04960264638066292, - -0.04320187121629715, - 0.04045465216040611, - -0.02244706265628338, - 0.003553069196641445, - -0.04270131140947342, - -0.0037982547655701637, - 0.11646589636802673, - 0.022851677611470222, - -0.006597755942493677, - 0.04084659367799759, - -0.004648191854357719, - 0.0032174403313547373, - -0.06686297804117203, - 0.05544786527752876, - 0.03719890117645264, - -0.09551703184843063, - -0.004905767273157835, - -0.15057751536369324, - 0.0062582348473370075, - -0.0075350189581513405, - -0.03913392126560211, - 0.0018973445985466242, - -0.0023304088972508907, - 0.10232296586036682, - -0.009754490107297897, - -0.06782449781894684, - -0.021756615489721298, - -0.002674628281965852, - 0.024548400193452835, - -0.002559267682954669, - 0.026301652193069458, - 0.25199753046035767, - -0.028834622353315353, - -0.005470935255289078, - 0.007821901701390743, - 0.03985874354839325, - 0.20295937359333038, - -0.030474046245217323, - 0.05902475491166115, - -0.038924120366573334, - 0.029172400012612343, - -0.020639607682824135, - 0.043142080307006836, - 0.006304754409939051, - -0.1332038789987564, - -0.01068196538835764, - -0.09839148074388504, - 0.10867500305175781, - -0.053737904876470566, - 0.024057218804955482, - 0.03721543401479721, - 0.041429683566093445, - -0.01502727996557951, - 0.0817299485206604, - 0.02443857491016388, - -0.0012151371920481324, - 0.038271430879831314, - -0.001484267762862146, - 0.02248976193368435, - -0.0849272683262825, - 0.02948855236172676, - -0.05677742883563042, - 0.0873921662569046, - -0.02994612045586109, - 0.22993764281272888, - -0.04168589413166046, - 0.046794891357421875, - -0.013598626479506493, - -0.042163312435150146, - -0.004431628156453371, - -0.10485119372606277, - 0.04274926707148552, - -0.04017180576920509, - -0.02163464017212391, - 0.017424186691641808, - -0.05397498980164528, - 0.0033379741944372654, - -0.007944704964756966, - 0.004582973662763834, - -0.02950390614569187, - -0.03248467296361923, - 0.013068747706711292, - 0.0179683156311512, - 0.050399888306856155, - 0.13093151152133942, - 0.0068091219291090965, - -0.009910778142511845, - -0.06902728974819183, - 0.008675375021994114, - 0.021687544882297516, - -0.0700623020529747, - -0.09715663641691208, - 0.045587364584207535, - -0.07619599252939224, - 0.054863061755895615, - -0.0003517611476127058, - 0.02536293864250183, - -0.003101872745901346, - -0.018161773681640625, - -0.0191385205835104, - 0.025358719751238823, - -0.08418308943510056, - 0.011254576034843922, - 0.046209633350372314, - -0.04223930835723877, - -0.013165072537958622, - 0.045098140835762024, - -0.08637480437755585, - -0.01868193969130516, - 0.025089222937822342, - -0.30259838700294495, - 0.0014626013580709696, - 0.06007177010178566, - -0.003919112961739302, - 0.016288239508867264, - -0.02644904889166355, - -0.0012878025881946087, - -0.10191404819488525, - -0.026145774871110916, - -0.037867799401283264, - -0.018263574689626694, - -0.052991852164268494, - -0.045312345027923584, - 0.024044279009103775, - -0.051610637456178665, - 0.008263836614787579, - 0.0026063290424644947, - 0.019016815349459648 - ], - [ - -0.012339484877884388, - 0.012934520840644836, - 0.033229678869247437, - 0.0017240585293620825, - 0.011419527232646942, - -0.003381502116099, - 0.019723044708371162, - -0.013997434638440609, - 0.010107891634106636, - -0.012430110946297646, - -0.02070024237036705, - 0.03439156711101532, - -0.050985537469387054, - 0.04651552066206932, - -0.03748694062232971, - -0.2319919615983963, - -0.006352465599775314, - -0.053315434604883194, - -0.019263368099927902, - 0.02183377370238304, - -0.08318537473678589, - -0.01855834573507309, - -0.03160267323255539, - -0.03319065645337105, - 0.04051293805241585, - -0.02535027451813221, - 0.02806033007800579, - -0.017251569777727127, - -0.0049866558983922005, - 0.018185757100582123, - 0.038843169808387756, - -0.06056588888168335, - 0.007124464027583599, - 0.04255732521414757, - 0.0025981145445257425, - -0.03934568166732788, - 0.011151926591992378, - -0.06296490877866745, - 0.0008909170865081251, - 0.0024868666660040617, - 0.04491032660007477, - 0.007198708597570658, - -0.010124793276190758, - 0.0034913572017103434, - 0.006391826551407576, - -0.14289358258247375, - 0.009291455149650574, - 0.004862640518695116, - 0.01760276034474373, - 0.010385450907051563, - -0.006237790919840336, - 0.005615481175482273, - 0.0011381820077076554, - 0.00952960830181837, - 0.011627128347754478, - -0.030954843387007713, - -0.008152571506798267, - 0.07725421339273453, - 0.04500632360577583, - -0.01134300883859396, - -0.021510494872927666, - 0.012795636430382729, - -0.02857646904885769, - -0.012425350025296211, - -0.011046142317354679, - 0.03718579187989235, - -0.03117363341152668, - -0.021248091012239456, - -0.0198837760835886, - -0.003703267779201269, - 0.03406744450330734, - 0.16049420833587646, - 0.04957033321261406, - 0.058074820786714554, - 0.026469608768820763, - -0.008549189195036888, - 0.016463859006762505, - -0.01900199055671692, - -0.000713558925781399, - -0.03568614274263382, - 0.013985086232423782, - -0.011618219316005707, - -0.29318365454673767, - -0.017689036205410957, - -0.014026826247572899, - -0.04417882487177849, - 0.02215682342648506, - -0.0015044165775179863, - -0.05079305171966553, - 0.025421790778636932, - 0.016821561381220818, - -0.002269000979140401, - 0.10868667811155319, - 0.05221981555223465, - -0.03848686069250107, - 0.012901794165372849, - -0.059533242136240005, - -0.007759494241327047, - 0.02129925601184368, - -0.04628758132457733, - 0.03645174577832222, - -0.009475206956267357, - 0.0028594634495675564, - -0.06216605752706528, - 0.028107350692152977, - -0.03867854177951813, - 0.03518747538328171, - 0.04614512622356415, - -0.0172535739839077, - -0.01784355379641056, - -0.023623744025826454, - 0.03517606854438782, - 0.013906371779739857, - -0.0032545183785259724, - -0.008006439544260502, - 0.0013367997016757727, - 0.006255201995372772, - -0.021670294925570488, - -0.04061353951692581, - 0.011545563116669655, - 0.012658380903303623, - -0.01112669799476862, - -0.02282840944826603, - 0.007819675840437412, - -0.07194998115301132, - -0.01639411598443985, - -0.4872475266456604, - 0.06750959903001785, - -0.0136032709851861, - 0.02334102988243103, - -0.007082649972289801, - -0.036576393991708755, - 0.0044603548012673855, - -0.007697953376919031, - 0.06441287696361542, - 0.03084966540336609, - 0.05235704034566879, - 0.010113752447068691, - 0.04126252606511116, - -0.034891460090875626, - -0.011169652454555035, - 0.03167872130870819, - -0.001524824765510857, - -0.035964012145996094, - 0.012465015985071659, - -0.056750133633613586, - -0.024568507447838783, - -0.05969667062163353, - -0.03392789885401726, - -0.028405990451574326, - 0.007706969976425171, - -0.03344004973769188, - -0.009238987229764462, - -0.04508214071393013, - 0.004962997976690531, - 0.02721766196191311, - 0.03960069641470909, - 0.009928744286298752, - 0.009278505109250546, - 0.40255627036094666, - -0.033376503735780716, - -0.0140474708750844, - -0.033934447914361954, - -0.012221534736454487, - 0.11641082167625427, - -0.1735377013683319, - -0.02199387364089489, - 0.0009086382924579084, - 0.025584543123841286, - 0.024522291496396065, - -0.03963257372379303, - -0.09603647887706757, - -0.05295157432556152, - 0.02161470428109169, - -0.019609272480010986, - 0.00857795961201191, - -0.05966684967279434, - -0.08622633665800095, - 0.02388535812497139, - -0.05894430726766586, - -0.07726676017045975, - 0.006486512720584869, - -0.004144036211073399, - -0.03396133705973625, - 0.11115823686122894, - 0.004457843489944935, - 0.01642906665802002, - -0.004209623672068119, - -0.016276434063911438, - -0.006221833173185587, - 0.02199091576039791, - 0.008897404186427593, - 0.23007522523403168, - -0.01646408438682556, - 0.05368736386299133, - 0.01581057906150818, - -0.020625734701752663, - -0.020777037367224693, - -0.0019255081424489617, - -0.03338340297341347, - 0.0034896833822131157, - 0.02921064756810665, - -0.007848737761378288, - 0.021096399053931236, - 0.022627511993050575, - 0.023994462564587593, - -0.029280774295330048, - 0.00021670428395736963, - 0.010530462488532066, - 0.045698367059230804, - 0.004845254588872194, - -0.023894257843494415, - 0.14320331811904907, - 0.03186493739485741, - -0.011761942878365517, - -0.024892261251807213, - 0.022347450256347656, - 0.04819650202989578, - -0.07423277944326401, - -0.08055923879146576, - -0.005894553381949663, - -0.024651819840073586, - 0.00928803812712431, - 0.02495270036160946, - 0.030238086357712746, - 0.018784048035740852, - -0.00039708768599666655, - -0.04214124754071236, - -0.000718035560566932, - 0.01558645162731409, - 0.01898029074072838, - 0.01216972153633833, - 0.0014714966528117657, - -0.002632950199767947, - -0.051237694919109344, - -0.005021676421165466, - 0.001317252404987812, - 0.0028687515296041965, - -0.2059146910905838, - 0.008590257726609707, - -0.0007675004308111966, - -0.007949654012918472, - -0.019585439935326576, - -0.002286827191710472, - 0.01634964533150196, - -0.002266309689730406, - 0.019284911453723907, - -0.059774890542030334, - 0.00013257816317491233, - -0.018626336008310318, - -0.06297006458044052, - 0.033774252980947495, - 0.0025601608213037252, - -0.019294628873467445, - -0.000558036903385073, - 0.026323722675442696 - ], - [ - 0.00043275218922644854, - 0.011467336677014828, - 0.008727663196623325, - 0.0075629111379384995, - -0.0073807029984891415, - 0.007262052968144417, - 0.006204183679074049, - 0.016806073486804962, - 0.018635449931025505, - 0.0020916264038532972, - 0.0012092599645256996, - -0.004182351287454367, - -0.01713469997048378, - 0.014694731682538986, - -0.028024522587656975, - -0.00993532408028841, - -0.006793105974793434, - -0.032601501792669296, - -0.027022892609238625, - 0.007205628789961338, - -0.08591032028198242, - 0.014317702502012253, - -0.015077396295964718, - -0.004998938646167517, - 0.011886117048561573, - -0.009380216710269451, - 0.01025230623781681, - 0.0025690847542136908, - -0.007948583923280239, - 0.021536104381084442, - -0.017323467880487442, - -0.008109984919428825, - -0.027254747226834297, - 0.005027349106967449, - -0.008239700458943844, - 0.0019236819352954626, - 0.004922326188534498, - -0.018248043954372406, - 0.00918201170861721, - 0.011374524794518948, - 0.030813049525022507, - -0.007140946574509144, - 0.01735105738043785, - 0.007733579259365797, - 0.0054426491260528564, - -0.033308956772089005, - -0.01315646804869175, - -0.01935522072017193, - 0.003293630899861455, - 0.010161714628338814, - -0.019953692331910133, - 0.011852467432618141, - -0.0017661098390817642, - 0.017624709755182266, - 0.0067280977964401245, - -0.007768379990011454, - 0.0015789710450917482, - 0.022475045174360275, - -0.008171945810317993, - 0.017251327633857727, - -0.022068917751312256, - -0.017049528658390045, - 0.017480352893471718, - 0.010517075657844543, - -0.032308921217918396, - 0.013949382118880749, - -0.007450837176293135, - -0.006119693163782358, - -0.020498691126704216, - 0.03266254439949989, - 0.020787108689546585, - 0.01870349794626236, - 0.024332735687494278, - 0.020023247227072716, - -0.004778563044965267, - -0.035804782062768936, - 0.005965756252408028, - 0.01192391850054264, - -0.0054766107350587845, - -0.014328273013234138, - 0.027629604563117027, - 0.0005861600511707366, - -0.8918644785881042, - 0.0208779014647007, - -0.012943295761942863, - 0.027629008516669273, - 0.040302954614162445, - -0.015094178728759289, - -0.009492180310189724, - -0.009814320132136345, - 0.004178495146334171, - 0.001204263069666922, - -0.04222102090716362, - 0.015431211329996586, - 0.0022660549730062485, - 0.017691025510430336, - -0.023565856739878654, - -0.006083129905164242, - -0.002362350234761834, - -0.020128915086388588, - 0.019421936944127083, - -0.004842894151806831, - -0.007523509673774242, - 0.0018616124289110303, - 0.010945304296910763, - -0.013488872908055782, - 0.0026760906912386417, - -0.0006394717493094504, - -0.0012102910550311208, - -0.00624433346092701, - -0.009155596606433392, - 0.009509066119790077, - 0.009731659665703773, - 0.008486256934702396, - 0.024804238229990005, - 0.0006572463898919523, - 0.0031355873215943575, - -0.02298583649098873, - 0.009928354993462563, - 0.002228572964668274, - -0.018696079030632973, - 0.00628224853426218, - -0.02168717235326767, - 0.013130434788763523, - -0.025392722338438034, - 0.014154916629195213, - 0.13884735107421875, - 0.02199895679950714, - 0.0016028848476707935, - 0.029682159423828125, - 0.015036367811262608, - 0.010859695263206959, - -0.011104855686426163, - -0.00492206821218133, - 0.04963573068380356, - 0.006383453495800495, - -0.008967473171651363, - 0.016603970900177956, - 0.007379819639027119, - 0.0026949194725602865, - -0.011800828389823437, - 0.01726791076362133, - 0.006364234257489443, - -0.004064136650413275, - -0.019517796114087105, - -0.045907747000455856, - -0.0031534014269709587, - -0.011512331664562225, - -0.01466761901974678, - 0.017971018329262733, - 0.0008744925726205111, - 0.015295865945518017, - -0.009870736859738827, - -0.025510776787996292, - -0.002471989020705223, - 0.005085608921945095, - 0.019458768889307976, - 0.01983385905623436, - 0.0038182500284165144, - 0.29928115010261536, - 0.004531796555966139, - -0.001206801738590002, - 0.0012514331610873342, - 0.008093833923339844, - 0.07479195296764374, - 0.02476203814148903, - 0.0005807867855764925, - -0.02108733169734478, - 0.017640909180045128, - -0.008551549166440964, - -0.022871222347021103, - -0.013831838965415955, - -0.05841461569070816, - 0.008547442965209484, - -0.02508651465177536, - 0.013985060155391693, - -0.0062071471475064754, - 0.008443840779364109, - 0.013455085456371307, - -0.004329247400164604, - -0.024832891300320625, - 0.001272553694434464, - -0.0013960904907435179, - -0.009119505062699318, - 0.0069043319672346115, - 0.019321147352457047, - 0.03145616129040718, - -0.0194570180028677, - -0.00016676669474691153, - -0.02229379117488861, - 0.014302476309239864, - -0.01579825021326542, - 0.05965051427483559, - -0.016914431005716324, - 0.024320095777511597, - -0.007160332519561052, - -0.0014978715917095542, - 0.0020485862623900175, - -0.021791113540530205, - 0.0030505091417580843, - 0.0011666581267490983, - 0.00567623320966959, - 0.009064989164471626, - 0.006633695214986801, - -0.007287931628525257, - 0.013733836822211742, - -0.002196332672610879, - -0.008778615854680538, - -0.00031082244822755456, - 0.008555813692510128, - 0.003110278630629182, - 0.006782264914363623, - 0.0378543958067894, - 0.006694871932268143, - -0.0063596805557608604, - -0.015071255154907703, - 0.001990018878132105, - -0.003954228945076466, - -0.025380227714776993, - -0.05657094717025757, - 0.016064777970314026, - -0.02012557163834572, - 0.003279900411143899, - -0.002713140333071351, - 0.007043549790978432, - 0.018929168581962585, - 0.006714540533721447, - -0.01636681891977787, - 0.004910408053547144, - -0.01691414788365364, - 0.012917205691337585, - 0.036516763269901276, - 0.0013103514211252332, - 0.009010614827275276, - 0.01389338355511427, - -0.02257431298494339, - -0.008821135386824608, - 0.015408545732498169, - -0.10695822536945343, - 0.015418615192174911, - 0.011350477114319801, - 0.004758672323077917, - 0.013354424387216568, - -0.011159875430166721, - 0.014752541668713093, - -0.03131471946835518, - -0.000846994633320719, - -0.01947932131588459, - 0.003157907398417592, - -0.01874343305826187, - -0.015156892128288746, - 0.01206315215677023, - -0.017848405987024307, - -0.005154288839548826, - 0.002978707430884242, - 0.011050140485167503 - ], - [ - -0.01056748442351818, - 0.018858343362808228, - 0.02598487213253975, - -0.0094199413433671, - 0.01736203022301197, - 0.0003957145963795483, - 0.021108457818627357, - -0.026731548830866814, - -0.006908094044774771, - -0.021379876881837845, - -0.026604972779750824, - 0.05969466269016266, - -0.05870562791824341, - 0.02255135402083397, - -0.02526962012052536, - -0.24371379613876343, - -0.011820067651569843, - -0.06241529434919357, - -0.0180718544870615, - 0.039792224764823914, - -0.06391827762126923, - -0.0050936308689415455, - -0.04013172909617424, - -0.053691111505031586, - 0.05340150371193886, - -0.03317086026072502, - 0.018513668328523636, - -0.009485817514359951, - 0.007724871393293142, - -0.01084450539201498, - 0.021568335592746735, - -0.06425414234399796, - 0.017801400274038315, - 0.04916078969836235, - 0.0036038693506270647, - -0.03823480382561684, - -0.013548552058637142, - -0.07771268486976624, - -0.00539139099419117, - 0.00614780792966485, - 0.03523057699203491, - 0.005931355524808168, - -0.014780274592339993, - 0.006491765379905701, - 0.016131840646266937, - -0.14032356441020966, - 0.011556909419596195, - 0.03031504899263382, - 0.015911102294921875, - 0.03218362107872963, - -0.01367622334510088, - -0.004379713907837868, - 0.009489583782851696, - -0.014374579302966595, - 0.018472706899046898, - -0.03789117932319641, - -0.0005036817747168243, - 0.07587381452322006, - 0.041321177035570145, - -0.02971140295267105, - -0.010269996710121632, - 0.016531195491552353, - -0.046975430101156235, - -0.01433099340647459, - -0.0043397266417741776, - 0.022138401865959167, - -0.02904518134891987, - -0.018218640238046646, - -0.004603301174938679, - -0.03101443499326706, - 0.041881807148456573, - 0.1670149862766266, - 0.04255164787173271, - 0.051915351301431656, - 0.03188144415616989, - 0.009875897318124771, - -0.004847823176532984, - 0.009387406520545483, - -0.000983077217824757, - -0.02845536544919014, - -0.0031780521385371685, - -0.01658034510910511, - -0.08385981619358063, - -0.012386188842356205, - -0.02556067332625389, - -0.051341041922569275, - 0.02902418002486229, - 0.009448405355215073, - -0.05404096096754074, - 0.03810632973909378, - 0.012225905433297157, - -0.010039111599326134, - 0.1106463149189949, - 0.055474311113357544, - -0.04248494654893875, - 0.0124406972900033, - -0.050945963710546494, - -0.0070173791609704494, - 0.0204464141279459, - -0.03842921927571297, - 0.03313891589641571, - -0.008898709900677204, - 1.0224694960925262e-05, - -0.05937129259109497, - 0.023195654153823853, - -0.03479908034205437, - 0.04123670607805252, - 0.03896021842956543, - -0.029681814834475517, - -0.016163118183612823, - -0.025602946057915688, - 0.029167858883738518, - 0.007629236672073603, - 0.0074296933598816395, - -0.0063300905749201775, - -0.013482131063938141, - 0.0071950810961425304, - -0.01943296007812023, - -0.040528349578380585, - 0.017376594245433807, - 0.021913129836320877, - -0.005144709255546331, - -0.007528206799179316, - 0.01757676899433136, - -0.0781397745013237, - -0.0243013184517622, - -0.5644726753234863, - 0.061381615698337555, - -0.022485004737973213, - 0.01898113638162613, - 0.005691258702427149, - -0.05402287468314171, - 0.007196776568889618, - 0.016546059399843216, - 0.07778903096914291, - 0.04345414415001869, - 0.05887497588992119, - 0.003992948681116104, - 0.02243938110768795, - -0.04423700273036957, - -0.003922645002603531, - 0.029987383633852005, - 0.000334866315824911, - -0.05583995208144188, - 0.020777719095349312, - -0.06149790436029434, - -0.030880915001034737, - -0.062203627079725266, - -0.037783049046993256, - -0.04046149551868439, - 0.004409486893564463, - -0.032094087451696396, - -0.013891064561903477, - -0.04602954909205437, - 0.02364305406808853, - 0.022466806694865227, - 0.03506079316139221, - 0.0046165413223207, - 0.010145132429897785, - 0.35778093338012695, - -0.03009757585823536, - -0.014229518361389637, - -0.038712143898010254, - -0.00847665872424841, - 0.10028737038373947, - -0.1914103627204895, - -0.023526322096586227, - 0.003137855092063546, - 0.036374129354953766, - 0.026036333292722702, - -0.021092887967824936, - -0.08509854227304459, - -0.0297071672976017, - 0.015103527344763279, - -0.019592611119151115, - 0.00932161882519722, - -0.06466660648584366, - -0.10185506939888, - 0.017823366448283195, - -0.03669530525803566, - -0.07831530272960663, - 0.026289785280823708, - -0.006584223359823227, - -0.027869099751114845, - 0.11873427778482437, - 0.026038600131869316, - -0.01798153482377529, - -0.007464590482413769, - -0.04247098043560982, - -0.004184601362794638, - 0.008699708618223667, - -0.021184315904974937, - 0.23877549171447754, - -0.012515994720160961, - 0.05360584333539009, - 0.02783970721065998, - -0.022341903299093246, - -0.015379575081169605, - -0.002004252979531884, - -0.024217966943979263, - 0.0014349411940202117, - 0.030029702931642532, - -0.003675340209156275, - -0.003366574877873063, - 0.028120100498199463, - 0.012650768272578716, - -0.030207069590687752, - 0.014566761441528797, - 0.007555343676358461, - 0.026262866333127022, - 0.007755770813673735, - -0.029580170288681984, - 0.15046992897987366, - 0.04246466979384422, - -0.008412675000727177, - -0.017646681517362595, - 0.02697901614010334, - 0.049093037843704224, - -0.05126982927322388, - -0.06703151762485504, - 0.006459095515310764, - -0.03373688831925392, - 0.00914106797426939, - 0.026362039148807526, - 0.02684561349451542, - 0.012917359359562397, - -0.0023307641968131065, - -0.04790378734469414, - -0.0059983632527291775, - 0.027060896158218384, - 0.015530082397162914, - -0.02849121019244194, - 0.0032657221890985966, - -0.004612360615283251, - -0.056064777076244354, - -0.01690756529569626, - -0.0035566689912229776, - -0.002164859091863036, - -0.20115597546100616, - 0.015356509946286678, - 0.005905182100832462, - 0.001715006772428751, - -0.02642194554209709, - 0.0011864955304190516, - 0.0015538892475888133, - 0.0041259462013840675, - 0.02344716154038906, - -0.05549034848809242, - 0.015715915709733963, - -0.013155789114534855, - -0.06590795516967773, - 0.02223648689687252, - -0.01786057837307453, - -0.00290907034650445, - -0.0007001657504588366, - 0.03940984234213829 - ], - [ - -0.032559264451265335, - 0.03738895431160927, - 0.03292904421687126, - 0.03407725691795349, - -0.003754132194444537, - 0.008809410966932774, - 0.03257925063371658, - -0.002286443253979087, - 0.048209208995103836, - 0.0026084440760314465, - 0.015553252771496773, - 0.046328891068696976, - -0.0379195474088192, - -0.0014565599849447608, - -0.018854202702641487, - -0.31311213970184326, - -0.015163494274020195, - -0.008793930523097515, - -0.030182991176843643, - 0.023364759981632233, - -0.02431921474635601, - 0.0075569311156868935, - -0.01653747633099556, - -0.04020397365093231, - 0.020960858091711998, - -0.0009802206186577678, - 0.056619346141815186, - -0.020250529050827026, - -0.008278483524918556, - 0.001150663010776043, - -0.01325422152876854, - 0.015489554964005947, - 0.004740364383906126, - 0.053888749331235886, - 0.009297419339418411, - -0.04164564236998558, - -0.003324877703562379, - -0.07851773500442505, - 0.004706361796706915, - -0.004964025691151619, - -0.0007183344569057226, - -0.019240738824009895, - 0.006338059436529875, - -0.04004683718085289, - 0.023021254688501358, - -0.0984661802649498, - -0.01238283608108759, - 0.011432887986302376, - 0.013911126181483269, - 0.007150888442993164, - -0.022271307185292244, - 0.0013866048539057374, - -0.004631811287254095, - -0.01669890806078911, - 0.03855058550834656, - -0.030974006280303, - 0.01863001473248005, - 0.027054257690906525, - 0.03202478960156441, - -0.03934304043650627, - -0.024316495284438133, - 0.05026815086603165, - 0.004716470837593079, - -0.02697684057056904, - -0.02820904180407524, - 0.006190776824951172, - -0.0127250449731946, - 0.008962762542068958, - 0.022791728377342224, - 0.002919379621744156, - 0.005686910357326269, - 0.13770149648189545, - 0.01721520535647869, - 0.06359107047319412, - -0.02615070529282093, - -0.013072341680526733, - 0.04887138307094574, - -0.013111598789691925, - -0.021077565848827362, - -0.016300879418849945, - 0.01587124913930893, - 0.003586098086088896, - 0.19610638916492462, - 0.03546953201293945, - -0.013378698378801346, - -0.028371311724185944, - 0.005318478215485811, - 0.012139919213950634, - -0.026151634752750397, - -0.021576665341854095, - 0.02518039382994175, - -0.016087930649518967, - 0.2036007046699524, - 0.021647609770298004, - 0.00899552833288908, - 0.00995623879134655, - -0.015131215564906597, - 0.010054290294647217, - -0.027229096740484238, - -0.022984424605965614, - -0.0008544481243006885, - -0.01012418419122696, - 0.010990864597260952, - -0.07678696513175964, - 0.041243866086006165, - -0.025338290259242058, - 0.02086685225367546, - -0.020534276962280273, - -0.006421699188649654, - -0.028881646692752838, - -0.005890949163585901, - 0.045030780136585236, - 0.02718730829656124, - 0.02125469408929348, - -0.043376099318265915, - 0.011695001274347305, - 0.023092519491910934, - -0.005934803746640682, - -0.03329100087285042, - 0.0076345158740878105, - -0.010945332236588001, - -0.002746877958998084, - -0.006519426126033068, - -0.0162038616836071, - -0.05968308821320534, - 0.01322498731315136, - -0.624683141708374, - 0.07513604313135147, - -0.0245798509567976, - 0.032445259392261505, - 0.023398784920573235, - -0.06608769297599792, - 0.004182111471891403, - -0.01162642426788807, - 0.091629758477211, - 0.011007769033312798, - 0.012073232792317867, - 0.02338642254471779, - 0.01030394434928894, - -0.021671360358595848, - 0.026582330465316772, - 0.023796094581484795, - 0.006456618197262287, - -0.005980156362056732, - 0.043062541633844376, - -0.02547719143331051, - 0.01347779855132103, - -0.03604824095964432, - -0.06341714411973953, - -0.008828508667647839, - 0.010643274523317814, - -0.03458210453391075, - -0.0029995625372976065, - -0.06888269633054733, - 0.021846584975719452, - 0.03979802876710892, - -0.0069231754168868065, - -0.015640247613191605, - -0.003906393423676491, - 0.28346365690231323, - 0.044045865535736084, - -0.030658094212412834, - -0.024178555235266685, - -0.033890485763549805, - 0.053316403180360794, - -0.14811551570892334, - -0.04064160957932472, - -0.016344137489795685, - 0.04074810445308685, - 0.02528531290590763, - -0.013181198388338089, - -0.08657220751047134, - -0.04057544842362404, - 0.00973737146705389, - -0.02631419152021408, - -0.02351975068449974, - -0.029311224818229675, - -0.09663478285074234, - 0.0005008363514207304, - -0.012173905037343502, - -0.056864794343709946, - 0.02628995105624199, - -0.03296668827533722, - 0.0032213761005550623, - 0.10828853398561478, - 0.0352749340236187, - -0.0028511809650808573, - -0.0057710809633135796, - -0.019563106819987297, - -0.00952506810426712, - -0.0011285837972536683, - 0.005112735088914633, - 0.21405698359012604, - 0.006434512324631214, - 0.03085658699274063, - 0.04867386817932129, - -0.038674622774124146, - 0.029362434521317482, - -0.00764514459297061, - -0.03448934480547905, - -0.01140926405787468, - 0.039552416652441025, - -0.0029091769829392433, - 0.03107895329594612, - -0.0062093595042824745, - 0.021127931773662567, - -0.04249486327171326, - 0.02169577032327652, - 0.007388363126665354, - 0.021343741565942764, - -0.04849029704928398, - -0.00932235922664404, - 0.14317536354064941, - 0.03353097662329674, - 0.00026898790383711457, - -0.03011275641620159, - -0.0064149219542741776, - -0.0005744301597587764, - 0.0017426916165277362, - -0.05726755037903786, - 0.01315388921648264, - -0.029109252616763115, - -0.0330943837761879, - 0.0038684254977852106, - 0.005876384675502777, - -0.008190489374101162, - -0.023325245827436447, - -0.02983400784432888, - -0.01384706236422062, - 0.0199436042457819, - 0.03558443859219551, - -0.04742217808961868, - 0.04069367051124573, - -0.0017065467545762658, - -0.07864885777235031, - -0.004554812330752611, - -0.00817191507667303, - -0.028145426884293556, - -0.10598935931921005, - 0.010105335153639317, - 0.009262636303901672, - -0.018922356888651848, - -0.015587612055242062, - -0.008527453988790512, - -0.0016237532254308462, - -0.018110930919647217, - 0.004290352575480938, - -0.024796755984425545, - 0.0466698482632637, - 0.017390435561537743, - -0.04573880136013031, - 0.032941099256277084, - 0.01982586458325386, - -0.04537981003522873, - 0.00103388715069741, - 0.021851249039173126 - ], - [ - -0.00845923088490963, - 0.031157158315181732, - 0.04017706215381622, - 0.01362661924213171, - 0.0057745324447751045, - 0.007082357071340084, - 0.014047086238861084, - -0.0090061966329813, - 0.01759464479982853, - -0.02559305913746357, - -0.00901445746421814, - 0.03972065448760986, - -0.05767268314957619, - 0.05280005559325218, - -0.0571020133793354, - -0.16268223524093628, - -0.03515171259641647, - -0.039335377514362335, - -0.024537343531847, - 0.015981601551175117, - -0.11370795965194702, - 0.019496295601129532, - -0.04675767198204994, - -0.04563244432210922, - 0.045686494559049606, - -0.03252112865447998, - 0.02950241044163704, - -0.009330534376204014, - -0.0019571559969335794, - 0.029432369396090508, - 0.03800610452890396, - -0.06013768911361694, - -0.026975952088832855, - 0.04987606778740883, - -0.0014558853581547737, - -0.011613832786679268, - 0.02976652979850769, - -0.06842357665300369, - 0.01708162948489189, - 0.016963714733719826, - 0.03138842061161995, - 0.007751776371151209, - -0.010627002455294132, - -0.0014544924488291144, - 0.016209788620471954, - -0.13414831459522247, - -0.005146579816937447, - -0.0038309923838824034, - 0.01048458181321621, - 0.028593314811587334, - -0.02323148585855961, - 0.006238218862563372, - 0.0019335036631673574, - 0.04437458515167236, - 0.050767652690410614, - -0.03161720559000969, - 0.007445183116942644, - 0.0662040039896965, - 0.01883176900446415, - 0.016100488603115082, - -0.044818855822086334, - 0.0002776725450530648, - -0.018942775204777718, - 0.00973446574062109, - -0.033888138830661774, - 0.023074116557836533, - -0.025046570226550102, - -0.0018535424023866653, - -0.018348362296819687, - 0.0036478748079389334, - 0.042781297117471695, - 0.1912391632795334, - 0.04584769159555435, - 0.05202232301235199, - 0.025357739999890327, - -0.032412201166152954, - 0.012166866101324558, - 0.0022553789895027876, - 0.011987038888037205, - -0.02409345470368862, - 0.02365829423069954, - 0.013722489587962627, - -0.22191764414310455, - -0.012330773286521435, - -0.017557768151164055, - -0.02879301831126213, - 0.032717056572437286, - -0.019717955961823463, - -0.029608653858304024, - 0.007876328192651272, - 0.023064831271767616, - -0.008076244033873081, - 0.046164028346538544, - 0.021812692284584045, - -0.0293312706053257, - 0.035195548087358475, - -0.05554645508527756, - -0.0008961951825767756, - 0.012839673087000847, - -0.046183664351701736, - 0.05021221563220024, - -0.017831800505518913, - 0.004898138344287872, - -0.04322930425405502, - 0.00724814785644412, - -0.03535987809300423, - 0.0341104194521904, - 0.035691265016794205, - -0.02253706008195877, - -0.004351141396909952, - -0.03578762337565422, - 0.03059840388596058, - 0.01436609961092472, - -0.007110987324267626, - 0.006748958490788937, - -0.014054606668651104, - 0.0035494689363986254, - -0.011972405947744846, - -0.022732850164175034, - -0.015977151691913605, - -0.007839304395020008, - -0.014073616825044155, - -0.028091583400964737, - 0.030504077672958374, - -0.05852046608924866, - 0.010705109685659409, - -0.4595266580581665, - 0.06528747826814651, - -0.0005264976061880589, - 0.033550262451171875, - 0.005831078160554171, - -0.0323970727622509, - -0.012115619145333767, - 0.004431195557117462, - 0.06609941273927689, - 0.036523010581731796, - 0.0279444120824337, - 0.03154784068465233, - 0.02926086261868477, - -0.028179194778203964, - -0.012173847295343876, - 0.02429315075278282, - 0.012827889993786812, - -0.035565461963415146, - 0.0015498187858611345, - -0.06457329541444778, - 0.0014234678819775581, - -0.04497118666768074, - -0.03682662546634674, - -0.017466261982917786, - -0.0013474717270582914, - -0.012890774756669998, - -0.0018594310386106372, - -0.07165614515542984, - -0.0006199624622240663, - 0.022931527346372604, - 0.03937487304210663, - 0.020438453182578087, - 0.010393694043159485, - 0.37636634707450867, - -0.021635912358760834, - -0.0048127444460988045, - -0.03579487279057503, - -0.025503087788820267, - 0.1288798302412033, - -0.17661109566688538, - -0.01574961096048355, - -0.008075998164713383, - 0.03480135649442673, - 0.010749964974820614, - -0.06091298162937164, - -0.08312719315290451, - -0.08452058583498001, - 0.010053052566945553, - -0.020157573744654655, - 0.015963615849614143, - -0.036836378276348114, - -0.07666125148534775, - 0.026808949187397957, - -0.03370942920446396, - -0.0742567703127861, - 0.009003541432321072, - -0.00712783494964242, - -0.040571179240942, - 0.0891643539071083, - 0.029589081183075905, - 0.04901488125324249, - -0.018997207283973694, - -0.007156610954552889, - -0.014290095306932926, - 0.01201647613197565, - -0.0058479225262999535, - 0.2564637362957001, - -0.0007671096827834845, - 0.05323248356580734, - 0.01143600419163704, - -0.013959858566522598, - -0.019989369437098503, - -0.013319659046828747, - -0.022549279034137726, - 0.008373127318918705, - 0.030356915667653084, - 0.008898532018065453, - 0.023671433329582214, - 0.010568118654191494, - 0.020059775561094284, - -0.027243122458457947, - -0.0032591349445283413, - 0.004928790032863617, - 0.028913216665387154, - 0.020054740831255913, - -0.003987383563071489, - 0.17933782935142517, - 0.013405075296759605, - -0.023200422525405884, - -0.04565948247909546, - 0.023951394483447075, - 0.055539097636938095, - -0.06194204092025757, - -0.08998782932758331, - 0.0045116669498384, - -0.031655509024858475, - 0.020709222182631493, - 0.020924236625432968, - 0.023758087307214737, - 0.025837363675236702, - 0.015780838206410408, - -0.0619221068918705, - -0.02309892512857914, - 0.00014411397569347173, - 0.024595336988568306, - 0.031865473836660385, - -0.01111906673759222, - 0.008987066335976124, - -0.022254133597016335, - -0.015551794320344925, - -0.0018833574140444398, - 0.013307144865393639, - -0.34603238105773926, - 0.021819988265633583, - 0.014417300000786781, - -0.021678036078810692, - -0.020785463973879814, - -0.006519121117889881, - 0.026650268584489822, - -0.0353005975484848, - 0.016846628859639168, - -0.05253405123949051, - -0.0038062541279941797, - -0.022207997739315033, - -0.048795320093631744, - 0.013600350357592106, - -0.0304555743932724, - -0.019755903631448746, - 0.023795111104846, - 0.026502825319767 - ], - [ - -0.020758330821990967, - 0.03306281194090843, - 0.026519689708948135, - -0.0033108084462583065, - 0.022106021642684937, - 0.015276624821126461, - 0.029039651155471802, - -0.05180297791957855, - 0.005012167152017355, - -0.006216374225914478, - -0.016519758850336075, - 0.05585251748561859, - -0.06571945548057556, - 0.008132070302963257, - -0.02022705040872097, - -0.27982091903686523, - -0.014767994172871113, - -0.037029873579740524, - -0.02587600238621235, - 0.05466986075043678, - -0.028893301263451576, - -0.0024057128466665745, - -0.023530982434749603, - -0.05035019665956497, - 0.048841457813978195, - -0.01787741668522358, - 0.031431764364242554, - 0.0016072764992713928, - 0.017295094206929207, - -0.02285481058061123, - 0.014483049511909485, - -0.025623461231589317, - 0.0215119831264019, - 0.06586279720067978, - -0.008203290402889252, - -0.040034614503383636, - -0.026604140177369118, - -0.09446854144334793, - 0.0003724954149220139, - 0.003961537033319473, - 0.02387976460158825, - 0.00011856753553729504, - -0.004764859098941088, - -0.0055882493034005165, - 0.03087061084806919, - -0.12818187475204468, - -0.020497558638453484, - 0.023931747302412987, - 0.02027314342558384, - 0.01594766229391098, - -0.019101563841104507, - -0.029997272416949272, - 0.006028477102518082, - -0.011213047429919243, - 0.02625955455005169, - -0.03678181767463684, - 0.0015504217008128762, - 0.059929925948381424, - 0.03060125559568405, - -0.04931510239839554, - -0.022045914083719254, - 0.023711664602160454, - -0.016331641003489494, - -0.03139674291014671, - -0.0029096845537424088, - 0.02084341272711754, - -0.014028454199433327, - -0.019827622920274734, - 0.006041246000677347, - -0.028785811737179756, - 0.04598727077245712, - 0.15111292898654938, - 0.03530215471982956, - 0.055447015911340714, - -0.0033897757530212402, - 0.02015089988708496, - 0.01153501309454441, - 0.005176828242838383, - -0.022770026698708534, - -0.018930282443761826, - -0.009524567052721977, - -0.014728397130966187, - -0.047244660556316376, - 0.022283127531409264, - 3.937675865017809e-05, - -0.05864543840289116, - 0.01990809291601181, - 0.022719910368323326, - -0.043111737817525864, - 0.018302032724022865, - 0.020923582836985588, - -0.015073152258992195, - 0.15830305218696594, - 0.03930182009935379, - -0.01846626214683056, - -0.004033916629850864, - -0.03464589640498161, - 0.00020584044978022575, - 0.00793702807277441, - -0.02979639545083046, - 0.01152950618416071, - 0.006158357486128807, - 0.017239568755030632, - -0.0776621550321579, - 0.02217160537838936, - -0.02938898466527462, - 0.03438105806708336, - 0.01587248407304287, - -0.023256920278072357, - -0.028257008641958237, - -0.0333043709397316, - 0.04405442252755165, - 0.022023746743798256, - 0.01258657407015562, - -0.012068338692188263, - -0.003132572863250971, - 0.006348781753331423, - -0.019746728241443634, - -0.03558908402919769, - 0.019911672919988632, - 0.01876407116651535, - 0.016029993072152138, - -0.007561580743640661, - -0.005295511335134506, - -0.07837870717048645, - -0.01868392527103424, - -0.5760620832443237, - 0.07055531442165375, - -0.03832363337278366, - 0.0242827907204628, - 0.008463435806334019, - -0.04728604853153229, - -0.008956819772720337, - 0.02129894122481346, - 0.10245760530233383, - 0.026446497067809105, - 0.06657835096120834, - 0.009886251762509346, - 0.02891470491886139, - -0.03137689083814621, - 0.009275782853364944, - 0.023979516699910164, - 0.018255269154906273, - -0.03451453894376755, - 0.04133844003081322, - -0.050139568746089935, - -0.00880550965666771, - -0.06206768378615379, - -0.047388963401317596, - -0.026759803295135498, - 0.016404347494244576, - -0.03921534866094589, - -0.020385263487696648, - -0.042732350528240204, - 0.016390034928917885, - 0.018744386732578278, - 0.02354363538324833, - 0.0016005374491214752, - 0.0001813743874663487, - 0.3466666340827942, - 0.01694170944392681, - -0.03698703646659851, - -0.022041087970137596, - -0.03448779508471489, - 0.07131379842758179, - -0.1804526150226593, - -0.03176730126142502, - 0.009160613641142845, - 0.051955435425043106, - 0.014366325922310352, - -0.027499821037054062, - -0.0855017825961113, - -0.037411224097013474, - 0.015292778611183167, - -0.02179010584950447, - 0.005274709779769182, - -0.0451204814016819, - -0.12063053250312805, - 0.005948619917035103, - -0.03936648741364479, - -0.07302351295948029, - 0.02350972220301628, - -0.015544128604233265, - -0.02594565972685814, - 0.13968221843242645, - 0.039309557527303696, - -0.006663751322776079, - 0.010161224752664566, - -0.04669803008437157, - 0.003976126667112112, - -0.011012294329702854, - -0.014884433709084988, - 0.24162915349006653, - 0.004730863496661186, - 0.027269896119832993, - 0.03667039796710014, - -0.023107822984457016, - 0.011817922815680504, - 0.00219672336243093, - -0.03595450893044472, - 0.00449813436716795, - 0.045583903789520264, - -0.019678296521306038, - 0.017086245119571686, - 0.014802245423197746, - 0.01996936835348606, - -0.035734642297029495, - 0.025626959279179573, - 0.008285228163003922, - 0.01919182948768139, - -0.028154348954558372, - -0.03798279911279678, - 0.15353116393089294, - 0.03869183361530304, - 0.010211016982793808, - -0.01703592948615551, - 0.011335179209709167, - 0.042765967547893524, - -0.03445194661617279, - -0.032211389392614365, - 0.005393382161855698, - -0.025001803413033485, - -0.018746234476566315, - 0.02494741789996624, - 0.014867778867483139, - 0.005291953217238188, - -0.023370465263724327, - -0.04660344123840332, - -0.014750903472304344, - 0.028445260599255562, - 0.018371419981122017, - -0.04578855261206627, - 0.008579074405133724, - -0.014085857197642326, - -0.06766106933355331, - -0.018634401261806488, - -0.014975080266594887, - -0.009566651657223701, - -0.14310939610004425, - 0.008620177395641804, - -0.0020442467648535967, - -0.010088781826198101, - -0.014043961651623249, - 0.014909541234374046, - 0.006972373928874731, - -0.009858646430075169, - 0.020803745836019516, - -0.05261986330151558, - 0.040155887603759766, - 0.01169879175722599, - -0.05736594647169113, - 0.011571411043405533, - 0.0055823600850999355, - -0.03313276171684265, - -0.0021877505350857973, - 0.043067190796136856 - ], - [ - -0.005205835215747356, - 0.06658446788787842, - 0.02281760983169079, - -0.001659593777731061, - 0.012639039196074009, - -0.000394406117266044, - 0.0012135328724980354, - 0.03476181998848915, - 0.022552577778697014, - -0.015342194586992264, - 0.005806464236229658, - -0.014439776539802551, - -0.05740860104560852, - 0.049952369183301926, - -0.07263671606779099, - -0.1487768590450287, - -0.03839430958032608, - -0.013906685635447502, - -0.07223203778266907, - 0.03199392184615135, - -0.1441030353307724, - 0.025691332295536995, - -0.04842185974121094, - -0.011322397738695145, - 0.019824611023068428, - -0.057043854147195816, - 0.05121571570634842, - -0.032019391655921936, - -0.031405191868543625, - 0.07430464774370193, - -0.000401395809603855, - -0.03331838920712471, - -0.037176962941884995, - 0.015055447816848755, - -0.021190034225583076, - 0.01974879764020443, - 0.005650158040225506, - -0.04672515392303467, - 0.011051131412386894, - 0.03315766528248787, - 0.017604943364858627, - -0.02007930353283882, - -0.011709299869835377, - -0.001128559117205441, - -0.021751105785369873, - -0.11027385294437408, - -0.06042828783392906, - -0.026422686874866486, - 0.03824383020401001, - 0.016770681366324425, - -0.039729006588459015, - -0.001236399170011282, - -0.011476164683699608, - 0.0899258702993393, - 0.026122767478227615, - -0.031111842021346092, - 0.0008651475654914975, - 0.034723419696092606, - -0.004973253700882196, - 0.04454381763935089, - -0.03781702369451523, - -0.0014876897912472486, - 0.021270230412483215, - -0.020177094265818596, - -0.03856932744383812, - 0.03666246309876442, - -0.005509847775101662, - -0.011995452456176281, - -0.034439586102962494, - 0.03147502243518829, - 0.039830394089221954, - 0.1576845645904541, - 0.055832479149103165, - 0.057109396904706955, - -0.012807711958885193, - -0.07283861935138702, - 0.014275576919317245, - 0.008976330049335957, - -0.014967681840062141, - -0.04632505774497986, - 0.050973568111658096, - -0.011236234568059444, - -0.45721545815467834, - -0.0018696757033467293, - 0.011437498033046722, - 0.02713008224964142, - 0.046731796115636826, - -0.026666609570384026, - -0.02310720458626747, - -0.04320330545306206, - 0.018300766125321388, - 0.011548373848199844, - -0.013614981435239315, - 0.029252126812934875, - -0.013096415437757969, - 0.006763650104403496, - -0.05458870157599449, - -0.021562453359365463, - -0.004101700149476528, - -0.036561187356710434, - 0.03618159517645836, - -0.008827811107039452, - -0.014433946460485458, - -0.03716081753373146, - 0.04339505732059479, - -0.01007701177150011, - 0.0467960499227047, - -0.008197883144021034, - -0.00161463744007051, - -0.03004111535847187, - -0.02679433301091194, - 0.05169086158275604, - 0.020527029410004616, - 0.006917544174939394, - 0.010817204602062702, - 0.01907740719616413, - 0.00034550786949694157, - -0.0503896065056324, - -0.01163525227457285, - -0.05398820713162422, - -0.008164120838046074, - 0.028709188103675842, - -0.03838954120874405, - -0.0017267328221350908, - -0.06099211424589157, - 0.026695646345615387, - -0.26485317945480347, - 0.054878298193216324, - -0.015646345913410187, - 0.04308570548892021, - 0.0160371046513319, - -0.018211105838418007, - 0.004642402287572622, - -0.009976272471249104, - 0.0890345424413681, - 0.0020237776916474104, - 0.005351280327886343, - 0.03002694435417652, - 0.0442606657743454, - -0.018551521003246307, - 0.008967958390712738, - 0.04078692942857742, - -0.007259287405759096, - 0.001619841204956174, - -0.03456393629312515, - -0.06274846941232681, - 0.002980487421154976, - -0.04998398944735527, - -0.00932580977678299, - 0.04526999965310097, - 0.0002512802602723241, - 0.029204709455370903, - -0.02143622189760208, - -0.06099613383412361, - 0.016942549496889114, - 0.029330823570489883, - 0.02813063934445381, - 0.050561875104904175, - 0.02373373694717884, - 0.3776389956474304, - 0.0014482596889138222, - -0.005563008598983288, - 0.008915574289858341, - -0.009487584233283997, - 0.1430693417787552, - -0.14254482090473175, - -0.008468992076814175, - -0.04792328551411629, - 0.029485397040843964, - -0.020498741418123245, - -0.034936171025037766, - -0.06281328201293945, - -0.10718072950839996, - -0.007504752837121487, - -0.06094309687614441, - -0.017035609111189842, - -0.015490620397031307, - -0.05457254499197006, - 0.04468965157866478, - -0.03488670289516449, - -0.061678286641836166, - -0.00649386877194047, - -0.009462340734899044, - -0.005655068904161453, - 0.08196911960840225, - 0.06111858785152435, - 0.05771554633975029, - -0.02557421289384365, - -0.00014174771786201745, - -0.009816311299800873, - 0.011243883520364761, - -0.044783979654312134, - 0.2283094823360443, - -0.005672629456967115, - 0.019350292161107063, - 0.01092345081269741, - 1.7762731658876874e-05, - -0.011428027413785458, - -0.01895948499441147, - -0.033024951815605164, - 0.007522201631218195, - 0.00047555932542309165, - 0.019703442230820656, - 0.0304905716329813, - -0.016578800976276398, - 0.0539550855755806, - -0.04951808974146843, - -0.022139791399240494, - 0.008420787751674652, - 0.032704442739486694, - 0.021456019952893257, - -0.014691304415464401, - 0.16400733590126038, - 0.004171198233962059, - -0.024567829445004463, - -0.027619803324341774, - 0.026232853531837463, - 0.003631879109889269, - -0.03154737502336502, - -0.09208016097545624, - 0.04948514699935913, - -0.009960394352674484, - 0.02178967371582985, - 0.000637636985629797, - 0.03617586940526962, - 0.019987497478723526, - 0.008934129029512405, - -0.05138687789440155, - 0.0023089165333658457, - -0.02799718640744686, - 0.00972578302025795, - 0.06755756586790085, - -0.004773520864546299, - 0.026035424321889877, - -0.009729712270200253, - -0.014839009381830692, - -0.010526041500270367, - 0.01770307868719101, - -0.3149718940258026, - 0.02056211605668068, - 0.037928562611341476, - -0.012235446833074093, - -0.0458083413541317, - -0.006147712003439665, - 0.06235925108194351, - -0.022713059559464455, - -0.005271333735436201, - -0.0645689070224762, - -0.002713248133659363, - 0.006628433708101511, - -0.03185040131211281, - 0.020451372489333153, - -0.01588505133986473, - 0.0035540228709578514, - 0.029295172542333603, - 0.010676935315132141 - ], - [ - 0.0005840878002345562, - 0.0019625017885118723, - -0.0009376654634252191, - 0.0017862481763586402, - -0.0013519094791263342, - 0.0009770605247467756, - -0.0002983075100928545, - 0.001975724007934332, - 0.002984829479828477, - 0.00190505210775882, - -0.0015876403776928782, - 0.00021367953740991652, - -0.0005257095908746123, - 0.0004410672700032592, - -0.0012983318883925676, - 0.005859250668436289, - -0.0009243306121788919, - -0.004344107583165169, - -0.004365075379610062, - 0.002038064179942012, - -0.011481611989438534, - 0.004178014118224382, - -0.0016243975842371583, - -0.0005335138412192464, - -0.0012909851502627134, - -0.001608292106539011, - 0.0017662738682702184, - 0.0002287666138727218, - -0.0014687072252854705, - 0.0015312305185943842, - -4.73429354315158e-05, - 0.0018201320199295878, - -0.0014071143232285976, - -0.0012731445021927357, - 0.0007093902095220983, - 0.0014307881938293576, - 0.0016267565079033375, - 0.0006820707349106669, - 0.00035211865906603634, - -0.00031627973658032715, - 0.001607640995644033, - 0.001312259933911264, - 0.0007933145388960838, - 0.0010685754241421819, - -0.0021124272607266903, - -0.002423573052510619, - 0.0003087185905314982, - -0.0023331271950155497, - 0.0018412728095427155, - 0.0014136749086901546, - -0.002216548193246126, - 0.008814500644803047, - 0.0005571779329329729, - 0.0007998400833457708, - -0.0018367969896644354, - -0.0014754574513062835, - -0.0002753422886598855, - -0.0003670636215247214, - -0.006135666277259588, - 0.00045856231008656323, - 0.0006054268451407552, - -0.0037688761949539185, - 0.0015006714966148138, - 0.003472381504252553, - -0.005351783242076635, - 0.0030580342281609774, - -0.01000215020030737, - 0.001605510013177991, - -0.0025261174887418747, - 0.0008623456815257668, - -0.0012572602136060596, - -0.07168373465538025, - 0.0032062362879514694, - 0.005686781834810972, - -0.0001599692041054368, - -0.00044614836224354804, - 0.0024392909836024046, - 0.003376655513420701, - -0.002821180270984769, - 0.0013213560450822115, - 0.0012566002551466227, - 0.00038168299943208694, - -0.9186058640480042, - 0.0008131815120577812, - -0.004369364585727453, - 0.004022164735943079, - 0.0022829973604530096, - -0.0002951018395833671, - -0.00018691593140829355, - 0.0021922069136053324, - 0.0007608304149471223, - 0.00153553974814713, - 0.004072912503033876, - 0.0005201812600716949, - 0.003011546563357115, - 0.0030587418004870415, - -0.000994803151115775, - -0.001855994574725628, - 0.0026001420337706804, - -0.0019157498609274626, - 0.0027926063630729914, - 0.0008568420889787376, - 0.00034445832716301084, - 0.0020826261024922132, - 0.004254718776792288, - -0.0001361373724648729, - -0.002516068983823061, - 0.0014423911925405264, - -0.0018381462432444096, - -0.0017594509990885854, - 0.008142775855958462, - 0.0040229796431958675, - 0.00023915895144455135, - 0.0002248296805191785, - 0.0022969902493059635, - 0.004647637717425823, - -0.0019581399392336607, - -0.0007974241743795574, - 0.0011369133135303855, - 0.00028741126880049706, - -0.0012548246886581182, - -0.0017206197371706367, - -0.0027430395130068064, - 0.0022053890861570835, - -0.00416805362328887, - -0.0009854934178292751, - 0.28262773156166077, - 0.002036863937973976, - 0.00024656459572725, - 0.002232135506346822, - 0.00030102452728897333, - 0.0037905839271843433, - 0.0007659767288714647, - -0.001455422374419868, - -0.00029859095229767263, - 0.0017154508968815207, - -0.004190552514046431, - 0.0016754025127738714, - -0.0013647470623254776, - 0.0015744961565360427, - 0.0007290805806405842, - 0.00035818549804389477, - -0.0013102864613756537, - 0.00012135816359659657, - -0.0021682754158973694, - -0.006759246811270714, - 0.0013472858117893338, - 0.0015638513723388314, - -0.002122042700648308, - 0.001302856719121337, - -0.0010629453463479877, - -0.005459736101329327, - -0.0021142850164324045, - -0.006027380935847759, - -0.0027422409038990736, - 0.0009196290047839284, - 0.0019340184517204762, - -0.0007152572507038713, - 0.0014286994701251388, - 0.20705212652683258, - -1.0755903531389777e-05, - 0.0007212309865280986, - 0.0006884135073050857, - 0.0017550974152982235, - 0.012990538030862808, - 0.09051664918661118, - 0.0011522232089191675, - -0.005080453120172024, - 0.002017469145357609, - 0.0006484672194346786, - -0.004840730689466, - 0.0011207873467355967, - -0.004559479653835297, - 0.0021044458262622356, - -0.003731420496478677, - -0.000871179043315351, - 0.0004527583660092205, - 0.005650843493640423, - 0.0015306954737752676, - 0.004941302817314863, - -0.0016621212707832456, - 0.0014862699899822474, - -0.00043441978050395846, - -0.0007016070885583758, - -0.003360994625836611, - -0.0002775219618342817, - 0.0027262745425105095, - -0.0030152599792927504, - 0.0008450480527244508, - -0.0011298852041363716, - 0.0006028353236615658, - -0.0013508241390809417, - -0.05799463763833046, - -0.005448179319500923, - 0.0060606156475842, - -0.0028420386370271444, - 0.001682850532233715, - 0.0015517798019573092, - -0.0020006422419101, - 0.0021965880878269672, - -0.0007111296872608364, - -0.001986167160794139, - 0.003596889553591609, - -0.0016404599882662296, - 0.00014476491196546704, - 0.006662506144493818, - -0.0006364861619658768, - -0.0026784713845700026, - -0.00019876318401657045, - 0.0012472866801545024, - -0.00062419637106359, - 0.0006524172495119274, - -0.05098314583301544, - 0.0011159806745126843, - -0.0015826997114345431, - -0.0005073437350802124, - -0.0029541386757045984, - -0.000680187193211168, - 0.004041383042931557, - -0.0118346456438303, - 0.001409741584211588, - -8.337575309269596e-06, - -0.0005654715932905674, - -0.000769368140026927, - -0.00047132704639807343, - 0.001497809775173664, - 0.0006719495868310332, - 0.0008634882979094982, - 0.001407463918440044, - -0.0025133842136710882, - 0.0012409327318891883, - 0.004488764330744743, - 0.0016710212221369147, - 0.0003813399525824934, - 0.0008177371928468347, - -0.003744174260646105, - -0.004490061197429895, - 0.0021520587615668774, - 0.10982304811477661, - 0.0011029115412384272, - 0.0030846467707306147, - 0.000994374044239521, - -0.0002586584014352411, - -0.0038169980980455875, - -0.0010413244599476457, - -0.0019607022404670715, - 0.004387981258332729, - -4.283722591935657e-05, - -0.0015647654654458165, - -0.004581401124596596, - -0.0012595587177202106, - 0.0015716113848611712, - -0.0026207328774034977, - 0.0012694117613136768, - -0.002043489133939147, - -0.0005710580153390765 - ], - [ - 0.0003157284518238157, - 0.0015683189267292619, - -0.0013839701423421502, - 0.0014246595092117786, - -0.0005551177891902626, - 0.00038389675319194794, - -0.0008339880150742829, - 0.0010580270318314433, - 0.002000624081119895, - 0.0014631410595029593, - -0.0016007119556888938, - 0.0008760550990700722, - -0.00030309162684716284, - 0.00014084356371313334, - -0.0008531397324986756, - 0.006309555843472481, - -0.0008308822871185839, - -0.003638142952695489, - -0.003099741879850626, - 0.0013220272958278656, - -0.00868623610585928, - 0.0034728602040559053, - -0.0016514529706910253, - -0.000716644455678761, - -0.0013931982684880495, - -0.001611885498277843, - 0.0014368380652740598, - -0.0002854301710613072, - -0.0012629642151296139, - 0.0011026496067643166, - 0.0008538994588889182, - 0.0012338139349594712, - -0.0002583703026175499, - -0.0009140960173681378, - 0.0011469328310340643, - 0.0009110121172852814, - 0.0022592106834053993, - 0.0010812451364472508, - -3.571723209461197e-05, - -0.0013145481934770942, - 0.0006461077136918902, - 0.0018171659903600812, - 0.00041960348607972264, - 0.0005894370260648429, - -0.002358387690037489, - -0.002159952884539962, - 0.001083926297724247, - -0.0011659746523946524, - 0.001608171733096242, - 0.0010235956870019436, - -0.0016601791139692068, - 0.008285919204354286, - 0.0008446325082331896, - 0.00028423836920410395, - -0.0019061388447880745, - -0.0014132600044831634, - -0.00020604857127182186, - -0.0008666051435284317, - -0.006007205229252577, - -0.00013499574561137706, - 0.0008240524330176413, - -0.0029168534092605114, - 0.0003862062585540116, - 0.0029427031986415386, - -0.004170645494014025, - 0.0026885017286986113, - -0.009778301231563091, - 0.0018913735402747989, - -0.0012994479620829225, - -0.0006341375410556793, - -0.0014364452799782157, - -0.07361021637916565, - 0.0028417834546417, - 0.005511170253157616, - 0.00019226058793719858, - 0.0009253291063942015, - 0.0021232226863503456, - 0.002647455781698227, - -0.002401175443083048, - 0.0019089524867013097, - 2.6429963327245787e-05, - 0.00034117134055122733, - -0.917630136013031, - 6.720990495523438e-05, - -0.004278177861124277, - 0.0023395796306431293, - 0.001252090441994369, - -0.00022333397646434605, - 0.00019162935495842248, - 0.002881231252104044, - 0.0008386935805901885, - 0.0015398082323372364, - 0.005472492892295122, - -0.00013759138528257608, - 0.002472606021910906, - 0.00287740514613688, - -0.0005587477353401482, - -0.001641952316276729, - 0.003003018209710717, - -0.0016606886638328433, - 0.002025989582762122, - 0.0011967374011874199, - 0.0008916109800338745, - 0.001170795876532793, - 0.0042559122666716576, - 0.0007482986547984183, - -0.0025062370114028454, - 0.0015563264023512602, - -0.00221566972322762, - -0.0011981938732787967, - 0.00808036606758833, - 0.0043580420315265656, - -0.00025513352011330426, - -0.0004380301688797772, - 0.0009623710066080093, - 0.00449017621576786, - -0.0016057868488132954, - 0.00041505476110614836, - 0.0001784273044904694, - 1.5717921996838413e-05, - -0.0006520482711493969, - -0.0020295437425374985, - -0.0017725221114233136, - 0.0018594153225421906, - -0.0037457889411598444, - -0.0015592717099934816, - 0.284076988697052, - 0.0018637697212398052, - 0.0003021528827957809, - 0.0012146345106884837, - 0.00032261665910482407, - 0.0031550165731459856, - 0.001003578887321055, - -0.0007630830514244735, - -0.0012360026594251394, - 0.0017018434591591358, - -0.0034305471926927567, - 0.0012872529914602637, - -0.0013068707194179296, - 0.001121562672778964, - 0.0012754624476656318, - 3.170968557242304e-05, - -0.0014769077533856034, - -0.0004893870209343731, - -0.001680578920058906, - -0.005186796188354492, - 0.0007474355516023934, - 0.0012124590575695038, - -0.0013856200966984034, - 0.00045950646745041013, - -0.0013322167797014117, - -0.005830554291605949, - -0.0014489511959254742, - -0.005179389845579863, - -0.0023852051235735416, - 0.0008677889127284288, - 0.001367084914818406, - -0.0018469076603651047, - 0.00092465546913445, - 0.20498141646385193, - -0.00039206177461892366, - 0.0007082277443259954, - 0.0005271974368952215, - 0.0007407222874462605, - 0.010835186578333378, - 0.0911237895488739, - 0.0014709287788718939, - -0.004016933497041464, - 0.001451105927117169, - 0.0010929222917184234, - -0.004427626263350248, - 0.0007772031240165234, - -0.0021595824509859085, - 0.0016214021015912294, - -0.002798819448798895, - -0.001630097976885736, - 0.00048250937834382057, - 0.004628328140825033, - 0.0010622373083606362, - 0.0044763898476958275, - -0.0013377586146816611, - 0.0015272762393578887, - -0.00036736298352479935, - -0.0004727887862827629, - -0.00303441914729774, - -0.00040568996337242424, - 0.0014831701992079616, - -0.0022654354106634855, - 0.0003146743983961642, - -0.0003721300745382905, - 0.00036641425685957074, - -0.00034844112815335393, - -0.06065087392926216, - -0.004232276231050491, - 0.00588237913325429, - -0.0021338576916605234, - 0.0015702976379543543, - 0.0014367008116096258, - -0.0008692520204931498, - 0.0018018066184595227, - -0.0008484002319164574, - -0.001576174283400178, - 0.003333696164190769, - -0.0017421236261725426, - 0.0006823119474574924, - 0.0065581235103309155, - -0.0012311586178839207, - -0.0021177607122808695, - -0.00010863629722734913, - 0.00046697366633452475, - -0.00013116469199303538, - -0.00018375736544840038, - -0.05319378152489662, - 0.0008936944068409503, - -0.0012775564100593328, - -0.00025227729929611087, - -0.002347626956179738, - -0.00025682509294711053, - 0.004401414655148983, - -0.009864488616585732, - 0.0004835069121327251, - 0.00040018095751293004, - -0.00021972577087581158, - -0.0006050344090908766, - -0.0004561382229439914, - 0.0005991682410240173, - 0.00048918864922598, - 0.0008913264027796686, - 0.0011675067944452167, - -0.00122460862621665, - 0.0006369993789121509, - 0.0030122902244329453, - 0.0019255165243521333, - -0.00014098724932409823, - -0.00038809009129181504, - -0.0027152609545737505, - -0.004077390301972628, - 0.0018275515176355839, - 0.1158803179860115, - 0.0007018604082986712, - 0.0023093377240002155, - 0.0008476228686049581, - -0.0012699285289272666, - -0.0033313825260847807, - -0.0011679360177367926, - -0.0008703674538992345, - 0.004626840353012085, - 0.0002425907296128571, - -0.0015883642481639981, - -0.0034467894583940506, - -0.0009069643565453589, - 0.0015103371115401387, - -0.0017702801851555705, - 0.0010460529010742903, - -0.0014911863254383206, - -0.000692810514010489 - ], - [ - -0.0001312822860199958, - 0.0027350664604455233, - 0.0001327942736679688, - 0.0011662552133202553, - 0.00018337901565246284, - -0.0004510636208578944, - 0.0006021028384566307, - 9.745597344590351e-05, - 0.0024597507435828447, - 0.00061637326143682, - -0.002737365895882249, - 0.0031288990285247564, - -0.0022291725035756826, - 0.0016466248780488968, - -3.2809672120492905e-05, - -0.007956380024552345, - -0.00044648657785728574, - -0.005925275851041079, - -0.0026623376179486513, - 0.003354507265612483, - -0.010078037157654762, - 0.0031901057809591293, - -0.0024883230216801167, - -0.002539666835218668, - 0.00026756388251669705, - -0.0019606021232903004, - 0.0022632014006376266, - -0.0007320943986997008, - -0.0007034618174657226, - 0.0020884936675429344, - 0.0026081178802996874, - -0.001080014742910862, - 0.0007216965314000845, - 0.000604074914008379, - 0.0015267395647242665, - -0.0007546654087491333, - 0.0019665411673486233, - -0.0016645352588966489, - -0.0010422461200505495, - -0.0014965395675972104, - 0.001484500477090478, - 0.0013579382793977857, - -0.0006939467857591808, - 0.00024394920910708606, - -0.0018096017884090543, - -0.007179367821663618, - 0.0004995077033527195, - -0.0002843601396307349, - 0.002129208529368043, - 0.0018174288561567664, - -0.0010552601888775826, - 0.008638308383524418, - 0.0009182053036056459, - -0.0008679982856847346, - -0.001360926078632474, - -0.00265261041931808, - -0.000938087236136198, - 0.002372710732743144, - -0.0038338263984769583, - -0.002959845820441842, - 0.00044614344369620085, - -0.0019406747305765748, - -0.0014567143516615033, - 0.003668628865852952, - -0.004247722215950489, - 0.0037985793314874172, - -0.011723077856004238, - 0.00229719839990139, - -0.0017438357463106513, - -0.0019472310086712241, - -0.001265292172320187, - -0.06860281527042389, - 0.004284266382455826, - 0.008259234949946404, - 0.0017738260794430971, - 0.0018597267335280776, - 0.002502480521798134, - 0.001665776246227324, - -0.0033703523222357035, - 0.0008026789873838425, - -0.0003379478002898395, - -0.0007666722522117198, - -0.9223611950874329, - -0.0016892284620553255, - -0.005982573609799147, - 0.00033096069819293916, - 0.0010532495798543096, - 0.000827866664621979, - -0.001836857059970498, - 0.004331552889198065, - 0.0013900044141337276, - 0.0014306495431810617, - 0.01538312342017889, - 0.002864489797502756, - 0.0012582970084622502, - 0.0038100185338407755, - -0.002057250589132309, - -0.0022236567456275225, - 0.004282189998775721, - -0.0022338866256177425, - 0.003286964725703001, - 0.0009955533314496279, - -6.390686030499637e-05, - -0.0005222404142841697, - 0.0064224922098219395, - -0.00043818572885356843, - -0.0011715488508343697, - 0.0037556556053459644, - -0.003316923975944519, - -0.0029227875638753176, - 0.0073917340487241745, - 0.0045907278545200825, - 0.0006289066514000297, - 0.00013125008263159543, - -0.00011928606545552611, - 0.004540179390460253, - -0.0014018354704603553, - 0.0003920215822290629, - -0.0021807283628731966, - 0.00011293678835500032, - 0.0006456929259002209, - -0.0028597209602594376, - -0.0028212659526616335, - 0.0026059241499751806, - -0.006670741364359856, - -0.0028893891721963882, - 0.26024314761161804, - 0.004537065979093313, - -0.0007884897058829665, - 0.0013066413812339306, - -6.1383766478684265e-06, - 0.0008545744349248707, - 0.002317050937563181, - -0.0008977181278169155, - -0.0003722075489349663, - 0.0025768503546714783, - 0.00043273245682939887, - 0.0014598818961530924, - -0.0002004780835704878, - -0.0004475990426726639, - 0.0010654504876583815, - 0.0009081872412934899, - -0.0013634669594466686, - -0.002747280290350318, - -0.0008538914262317121, - -0.007556463126093149, - -8.420055382885039e-05, - -0.0008627419592812657, - -0.0033478906843811274, - -0.0019322598818689585, - -0.0009531504474580288, - -0.008921894244849682, - -0.0020377764012664557, - -0.006569042801856995, - -0.0029593880753964186, - 0.001780119608156383, - 0.0033024416770786047, - -0.0012374970829114318, - 0.0005523809813894331, - 0.22025124728679657, - -0.001816822332330048, - 0.00021429620392154902, - -0.0011309153633192182, - 0.0005719622713513672, - 0.012861821800470352, - 0.08511294424533844, - 0.00028128261328674853, - -0.004120893310755491, - 0.0021376025397330523, - 0.002455643145367503, - -0.004974743351340294, - -0.003933269530534744, - -0.003407279262319207, - 0.001878516748547554, - -0.003023188328370452, - -0.0015443166485056281, - -0.002885409165173769, - 0.0007030425476841629, - 0.0016027046367526054, - 0.0023691069800406694, - -0.004169948399066925, - 0.001970593584701419, - -0.0007105049444362521, - -0.001799577265046537, - 0.0014031040482223034, - -0.00036672462010756135, - 0.0007554700132459402, - -0.002212303224951029, - 0.0009734625928103924, - 0.00016996636986732483, - 0.0018076347187161446, - -0.00048645748756825924, - -0.053078290075063705, - -0.005012630019336939, - 0.008000180125236511, - -0.0007574800401926041, - 3.208918997188448e-06, - 0.0012128599919378757, - -0.000409138563554734, - 0.0002063378633465618, - -0.0014929532771930099, - -0.0014875148190185428, - 0.002781958319246769, - -0.0013439112808555365, - 0.0021537879947572947, - 0.008389679715037346, - -0.002210951177403331, - -0.0020860955119132996, - 0.00021299578656908125, - 0.002394444076344371, - -0.0013173071201890707, - -0.0009135104482993484, - -0.04865897074341774, - 0.0023660422302782536, - -0.0018762375693768263, - -0.0014069160679355264, - -0.0026545391883701086, - 0.0018312939209863544, - 0.002492971485480666, - -0.013254554010927677, - -0.0004876274324487895, - -0.00130572693888098, - -1.0116377779922914e-05, - 0.001388023141771555, - 0.0002856000792235136, - 0.0004264394228812307, - 0.0004123818944208324, - 0.00021381504484452307, - 0.0016400533495470881, - -0.00036668701795861125, - 0.0011306600645184517, - 0.0011733212741091847, - 0.002103396225720644, - -0.00023132574278861284, - -0.0037241068203002214, - -0.0036929610650986433, - -0.003580857999622822, - 0.001000087009742856, - 0.11522617936134338, - 0.0003755935758817941, - 0.002965217921882868, - -0.0006604600930586457, - -0.0025999965146183968, - -0.0032977312803268433, - -0.0008409614092670381, - -0.000646405213046819, - 0.004797712434083223, - -0.0014264448545873165, - -0.0015524494228884578, - -0.0033551352098584175, - -0.0033479800913482904, - 0.0033878860995173454, - -0.0020082220435142517, - -0.001056414213962853, - -0.001963681308552623, - 0.0005166077171452343 - ], - [ - -0.0183556005358696, - 0.049842122942209244, - 0.01830967329442501, - 0.014978661201894283, - 0.0007998797227628529, - 0.00956143718212843, - 0.002183494856581092, - -0.03648120164871216, - 0.033504437655210495, - 0.007520216051489115, - 0.013009616173803806, - -0.0014118177350610495, - -0.03711077198386192, - 0.035889409482479095, - -0.02851973846554756, - -0.3551841974258423, - -0.015166746452450752, - -0.010961000807583332, - -0.03569232299923897, - 0.006824012380093336, - -0.02669815719127655, - -0.013050886802375317, - -0.025238780304789543, - 0.0003350814513396472, - 0.012098672799766064, - -0.009505266323685646, - 0.03152193874120712, - -0.035774942487478256, - -0.01643320731818676, - 0.030113758519291878, - 0.04912922531366348, - -0.004360337741672993, - -0.006007951684296131, - 0.016185084357857704, - 0.021879857406020164, - -0.02015012688934803, - 0.0012627709656953812, - -0.0500699058175087, - -0.005620934069156647, - -0.030653266236186028, - 0.005633942782878876, - 0.026212234050035477, - 0.02735324203968048, - -0.01747084967792034, - -0.012120453640818596, - -0.09637963771820068, - -0.025742581114172935, - 0.018736567348241806, - 0.02784106135368347, - 0.007447388954460621, - -0.01810002699494362, - -0.0007837238372303545, - 0.010289686731994152, - 0.009761976078152657, - -0.00467676529660821, - -0.030893636867403984, - 0.0023400867357850075, - 0.0029152019415050745, - 0.017296206206083298, - -0.022224413231015205, - -0.008460710756480694, - 0.02490265853703022, - -0.006778887007385492, - -0.03546701371669769, - 0.002828830387443304, - 0.016512960195541382, - -0.014359729364514351, - -0.0003064251213800162, - 0.006805837154388428, - -0.0033248206600546837, - 0.022481167688965797, - 0.12787316739559174, - 0.033811744302511215, - 0.07639914005994797, - -0.007211397867649794, - 0.004762089811265469, - 0.04754112660884857, - -0.01510052103549242, - -0.01876647211611271, - -0.005825983826071024, - -0.0013605786953121424, - -0.021127410233020782, - -0.23957788944244385, - 0.03632596880197525, - -0.007505347020924091, - -0.02232879400253296, - -0.007499460596591234, - -0.0071520633064210415, - -0.02500900998711586, - -0.017929386347532272, - 0.020680926740169525, - 0.02455509640276432, - 0.21596162021160126, - 0.027956757694482803, - 0.005080227740108967, - -0.010696879588067532, - 0.0009005338069982827, - -0.005244954023510218, - -0.0016888310201466084, - -0.016942143440246582, - -0.01189082395285368, - 0.0103114889934659, - 0.005262776277959347, - -0.06509079039096832, - 0.053135283291339874, - -0.0003287900472059846, - 0.035252515226602554, - 0.006963812280446291, - 0.007203445769846439, - -0.032749198377132416, - 0.004707899875938892, - 0.06511063873767853, - 0.022287150844931602, - -0.006437614560127258, - -0.04846085608005524, - 0.059268902987241745, - -0.006589697208255529, - -0.007111913990229368, - -0.029210221022367477, - -0.026606105268001556, - 0.02737516537308693, - 0.01574031636118889, - -0.010241778567433357, - -0.007206772454082966, - -0.05955112725496292, - -0.019389677792787552, - -0.5475224852561951, - 0.0644916445016861, - -0.008261490613222122, - 0.02658403478562832, - 0.014775590039789677, - -0.0310264490544796, - 0.019071118906140327, - -0.029162272810935974, - 0.06255410611629486, - 0.005219606216996908, - 0.03737529739737511, - 0.014043617993593216, - 0.04701866954565048, - -0.006764824036508799, - 0.027110034599900246, - 0.028092175722122192, - -0.012278326787054539, - 0.016097165644168854, - 0.007708746939897537, - -0.012652886100113392, - -0.024533916264772415, - -0.03722958266735077, - -0.04221310839056969, - -0.0037075327709317207, - 0.013821885921061039, - -0.025951791554689407, - -0.015952955931425095, - -0.04811389371752739, - -0.003942827694118023, - 0.037203699350357056, - 0.007494370918720961, - -0.009756697341799736, - 0.002029883675277233, - 0.4169645309448242, - 0.033729225397109985, - -0.02923675999045372, - -0.018380992114543915, - -0.027795866131782532, - 0.05660584568977356, - -0.16386666893959045, - -0.008082850836217403, - -0.026753371581435204, - 0.017149966210126877, - -0.017748717218637466, - -0.04385406896471977, - -0.05094660446047783, - -0.020371774211525917, - 0.035719797015190125, - -0.053811173886060715, - -0.04006582498550415, - -0.045901693403720856, - -0.07815790176391602, - 0.024530654773116112, - -0.021262167021632195, - -0.053996991366147995, - -0.002301339292898774, - -0.02652648836374283, - -0.0028061314951628447, - 0.1164575144648552, - 0.03543641418218613, - 0.021410927176475525, - 0.009122902527451515, - -0.013204884715378284, - -0.004025042522698641, - 0.0014643588801845908, - 0.03828558698296547, - 0.20021633803844452, - -0.029506441205739975, - 0.042112912982702255, - 0.031654730439186096, - -0.007426052819937468, - 0.005159227177500725, - 0.017139263451099396, - -0.019486116245388985, - -0.01958335191011429, - 0.019360214471817017, - 0.010926434770226479, - 0.03336673602461815, - -0.0029525242280215025, - 0.056695859879255295, - -0.05456700921058655, - 0.017995012924075127, - 0.0028479485772550106, - 0.012614034116268158, - -0.02899133786559105, - -0.02127034030854702, - 0.11659298837184906, - 0.008903478272259235, - 0.0034417978022247553, - -0.022211121395230293, - 0.004826491232961416, - 0.024410707876086235, - -0.015475617721676826, - -0.06960080564022064, - -0.014158762991428375, - -0.014409164898097515, - 0.0015014857053756714, - 0.0069419932551681995, - 0.013599604368209839, - -0.008041498251259327, - -0.01225441973656416, - -0.018421024084091187, - -0.0032157429959625006, - 0.020096182823181152, - 0.011633829213678837, - -0.007085596211254597, - 0.020993193611502647, - -0.003190297167748213, - -0.045065850019454956, - -0.004507455974817276, - -0.008525692857801914, - -0.016012925654649734, - 0.0071502989158034325, - 0.005733154248446226, - 0.008067134767770767, - 0.0009574272553436458, - -0.0415329784154892, - -0.00204061740078032, - 0.004766745027154684, - -0.01028565876185894, - 0.0048692007549107075, - -0.04956087842583656, - 0.017664873972535133, - 0.021796461194753647, - -0.05290490388870239, - 0.052512865513563156, - 0.025114864110946655, - -0.03369598090648651, - -0.017456253990530968, - 0.04439274221658707 - ], - [ - 0.0008022862602956593, - 0.0027096758130937815, - -0.0009334975620731711, - 8.944250294007361e-05, - 0.0002072610514005646, - 0.0016291894717141986, - -0.000809122109785676, - -0.001159388804808259, - 0.0011657393770292401, - 0.0026083174161612988, - -0.0019685302395373583, - 0.002153174253180623, - -0.0012475241674110293, - -0.00011057146912207827, - -0.00027453264920040965, - 0.0005820599617436528, - -0.0010102821979671717, - -0.003175456076860428, - -0.004090965259820223, - 0.003647474106401205, - -0.007013136520981789, - 0.004434556234627962, - -0.0016742711886763573, - -0.0014961400302127004, - -0.0012821664568036795, - -0.001448367489501834, - 0.0017320365877822042, - 0.0007050776039250195, - 0.00030086367041803896, - -0.0016512508736923337, - 0.0011428706347942352, - 0.0031569411512464285, - 0.000954128336161375, - 1.3051887435722165e-05, - -4.843042916036211e-05, - 0.0010615491773933172, - 0.0009673277381807566, - -0.0003990466648247093, - -0.0005043511628173292, - -0.0013108364073559642, - -8.436799544142559e-05, - 0.0021640511695295572, - 0.0012098858132958412, - 0.0009353613131679595, - -0.0014729908434674144, - -0.002255487721413374, - -0.0012442381121218204, - -0.0006168472464196384, - 0.00245101866312325, - 0.0011645198101177812, - -0.002349893795326352, - 0.006301106885075569, - 0.000749399303458631, - -0.0007703232113271952, - -0.002386170206591487, - -0.0021787595469504595, - -0.00014651523088105023, - -0.0008802131051197648, - -0.006688873749226332, - -0.003265256993472576, - 0.0009505281923338771, - -0.0032509167212992907, - -5.822926323162392e-05, - 0.002608200302347541, - -0.003073503728955984, - 0.0024178349412977695, - -0.010397838428616524, - 0.0013359638396650553, - -0.001073876628652215, - -0.0034220791421830654, - -0.0009991880506277084, - -0.07377737760543823, - 0.0035672273952513933, - 0.0046431683003902435, - -0.000929113186430186, - 0.0036742074880748987, - 0.001971009885892272, - 0.004004850052297115, - -0.004189235623925924, - 0.0015264214016497135, - -0.0017982725985348225, - -0.00032132575870491564, - -0.9182704091072083, - 0.0008776805480010808, - -0.0029435670003294945, - 0.0011839536018669605, - 4.062684820382856e-05, - 0.0020302869379520416, - 0.00013952699373476207, - 0.004392264410853386, - 0.0013095656177029014, - 0.001528930733911693, - 0.010498838499188423, - -8.2407656009309e-05, - 0.003141955239698291, - 0.0015762558905407786, - 0.00023909394803922623, - -0.0018525016494095325, - 0.003338124603033066, - -0.0011491827899590135, - 0.0005086845485493541, - 0.0024070418439805508, - 0.001291900989599526, - 0.0007533948519267142, - 0.004314348567277193, - 0.0006072365795262158, - -0.0021305885165929794, - 0.0021592348348349333, - -0.002990149427205324, - -0.0031319395639002323, - 0.008101346902549267, - 0.005060763563960791, - -0.0005845522973686457, - -7.064062810968608e-05, - 0.0015363035490736365, - 0.004282262176275253, - -0.0020458302460610867, - 0.0008396066259592772, - -0.00011838816135423258, - 0.000737871800083667, - -0.0005460096290335059, - -0.0011482381960377097, - -0.0014262207550927997, - 0.001683601993136108, - -0.005105622112751007, - -0.0028653540648519993, - 0.278050035238266, - 0.0015517158899456263, - -0.001474631018936634, - 0.0011190433287993073, - -0.0007466162787750363, - 0.002816977212205529, - 0.0008152942755259573, - 0.001202687039040029, - -0.0003513309929985553, - 0.001406328403390944, - -0.0014114703517407179, - 0.001205487991683185, - -0.0010328680509701371, - 0.0015056496486067772, - 0.001386755728162825, - 6.6697421061689965e-06, - -0.0005364564131014049, - -0.0010324650211259723, - 0.0004850595141761005, - -0.005550360307097435, - 0.002021223306655884, - 0.0007392448023892939, - -0.0017269565723836422, - -0.00019715684175025672, - -0.0006958628655411303, - -0.007643695920705795, - -0.002648848108947277, - -0.005804111715406179, - -0.0016427412629127502, - -0.0003317372174933553, - 0.0009938101284205914, - -0.0014720124891027808, - 0.0008560132700949907, - 0.20809565484523773, - 0.0009122058399952948, - -0.00017355689487885684, - 0.0007420301553793252, - 3.52698680217145e-06, - 0.009800226427614689, - 0.08991272747516632, - 0.001480968203395605, - -0.0030398506205528975, - 0.003157357918098569, - 0.0008449610322713852, - -0.004745361395180225, - 0.0009023153106682003, - -0.001782981213182211, - 0.0027045877650380135, - -0.002939024241641164, - -0.00147588225081563, - 0.00020649118232540786, - 0.002978460630401969, - 2.1487590856850147e-05, - 0.00557665852829814, - -0.0010039082262665033, - 0.0018489578505977988, - -0.0007806220673955977, - -0.001063260599039495, - -0.0014062999980524182, - -0.0006032349192537367, - -5.518511534319259e-05, - -0.0009947706712409854, - -0.0007116711349226534, - 0.0004965917905792594, - -0.0006643999950028956, - -0.0007242558640427887, - -0.059353750199079514, - -0.0041958303190767765, - 0.0038040135987102985, - -0.0012434687232598662, - 0.002064724452793598, - 0.0021663338411599398, - 0.0003423933812882751, - 0.0011512624332681298, - -0.0006577885360457003, - -0.0016798144206404686, - 0.0017423139652237296, - -0.0024066483601927757, - 0.0011351300636306405, - 0.005978119093924761, - -0.0019541303627192974, - -0.0014315454754978418, - -0.0005596998380497098, - 0.00014288951933849603, - -0.0020296338479965925, - -0.0019357402343302965, - -0.052999891340732574, - 0.0008256605942733586, - -0.00021339894738048315, - 0.0007267715991474688, - -0.003499513491988182, - 0.0017609377391636372, - 0.005887332838028669, - -0.009078594855964184, - 0.00037686017458327115, - 0.00105966383125633, - -0.0010545630939304829, - 0.0004731215594802052, - -0.0012242426164448261, - 0.0006887140916660428, - -0.0009125831420533359, - 0.0012907225172966719, - 0.0003865679900627583, - -0.0004968454595655203, - 6.224424578249454e-05, - 0.0010556692723184824, - 0.0024647528771311045, - -0.0013089289423078299, - -0.001585689838975668, - -0.0032437837217003107, - -0.0057665142230689526, - 0.001517422148026526, - 0.1207885891199112, - 2.5436336727580056e-05, - 0.002050028881058097, - 0.0016851440304890275, - -0.0012956807622686028, - -0.002605680376291275, - -0.0019391694804653525, - -0.0011801229557022452, - 0.005338102579116821, - 0.00023738144955132157, - -0.000654274714179337, - -0.0025648290757089853, - -0.001066051423549652, - 0.00020385360403452069, - -0.0015642651123926044, - 0.0005002500838600099, - -0.0029552208725363016, - 0.0010145703563466668 - ] - ] - ], - "dims": [ - 1, - 50, - 256 - ], - "type": "float32" - }, - "style_dp": { - "data": [ - [ - [ - -0.8503223061561584, - 0.0052531324326992035, - -0.006904392968863249, - 0.011085276491940022, - 0.003755821380764246, - 0.48670706152915955, - 0.026352310553193092, - 0.0003759039391297847, - -0.10207138955593109, - 0.027113430202007294, - 0.11047866940498352, - 0.047462135553359985, - -0.11593509465456009, - -0.009643754921853542, - -0.001608835649676621, - -0.003590564476326108 - ], - [ - -0.8563914895057678, - 0.006230977363884449, - -0.022573810070753098, - 0.013360942713916302, - 0.00523237232118845, - 0.4855544865131378, - 0.027601750567555428, - -0.00028835091507062316, - -0.09052520245313644, - 0.009074010886251926, - 0.08619428426027298, - 0.05350237339735031, - -0.10317706316709518, - -0.007430273573845625, - -0.004392289090901613, - -0.005026422441005707 - ], - [ - -0.8719179630279541, - -0.0009122375631704926, - -0.00916001945734024, - 0.009744206443428993, - -0.007291337475180626, - 0.47629523277282715, - 0.01429330836981535, - 0.006041357759386301, - -0.047234877943992615, - 0.029877616092562675, - 0.07318754494190216, - 0.007197509985417128, - -0.06191941723227501, - -0.0071236989460885525, - -0.003374493680894375, - -0.00030668312683701515 - ], - [ - -0.8489211201667786, - 0.006337174214422703, - -0.03906535357236862, - 0.010135029442608356, - 0.003361691953614354, - 0.4873548746109009, - 0.02983248606324196, - 0.0016460140468552709, - -0.09635254740715027, - 0.02346101589500904, - 0.1119874119758606, - 0.04448602721095085, - -0.12150740623474121, - -0.009817642159759998, - -0.0025424279738217592, - -0.00487861130386591 - ], - [ - -0.8491000533103943, - 0.005224526859819889, - 0.052909959107637405, - 0.05365109071135521, - 0.006884274072945118, - 0.4898468852043152, - 0.017684003338217735, - -0.0009150365367531776, - -0.09191858768463135, - 0.018219873309135437, - 0.10787045955657959, - 0.02460508793592453, - -0.1089785173535347, - -0.010326187126338482, - -0.0016534158494323492, - -0.002205563709139824 - ], - [ - -0.8535430431365967, - 0.00702074496075511, - -0.035886459052562714, - 0.01198642235249281, - 0.003255167743191123, - 0.4868048429489136, - 0.03169369697570801, - 0.0012298420770093799, - -0.09410705417394638, - 0.014322103932499886, - 0.08801072835922241, - 0.061703313142061234, - -0.10610528290271759, - -0.008633757941424847, - -0.003255558433011174, - -0.005484594963490963 - ], - [ - -0.8761806488037109, - -0.00042383227264508605, - -0.05862624570727348, - -0.01072170864790678, - -0.010511796921491623, - 0.4696875810623169, - 0.021579714491963387, - 0.00597860012203455, - -0.0412348210811615, - 0.021785743534564972, - 0.04444601386785507, - 0.03281642869114876, - -0.04763393849134445, - -0.004921997897326946, - -0.003723232774063945, - -0.0015584246721118689 - ], - [ - -0.858098030090332, - 0.004930279217660427, - -0.07519427686929703, - -0.007881912402808666, - -0.003721277927979827, - 0.48272401094436646, - 0.030898651108145714, - 0.004373354837298393, - -0.07954098284244537, - 0.002091479254886508, - 0.06480081379413605, - 0.06860468536615372, - -0.09243158251047134, - -0.005784065928310156, - -0.007275731302797794, - -0.007077763322740793 - ] - ] - ], - "dims": [ - 1, - 8, - 16 - ], - "type": "float32" - }, - "metadata": { - "source_file": "M2.wav", - "source_sample_rate": 44100, - "target_sample_rate": 44100, - "extracted_at": "2025-11-18T17:05:40.897689" - } -} \ No newline at end of file diff --git a/Cs_HMI/SubProject/SuperTonic/packages.config b/Cs_HMI/SubProject/SuperTonic/packages.config deleted file mode 100644 index f937885..0000000 --- a/Cs_HMI/SubProject/SuperTonic/packages.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Cs_HMI/TestProject/mcpServers b/Cs_HMI/TestProject/mcpServers deleted file mode 160000 index 792c474..0000000 --- a/Cs_HMI/TestProject/mcpServers +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 792c47442d1b81f8aeeff2f6de2a2ce6560072ae diff --git a/Cs_HMI/DLL/ArLog.Net4.dll b/DLL/ArLog.Net4.dll similarity index 100% rename from Cs_HMI/DLL/ArLog.Net4.dll rename to DLL/ArLog.Net4.dll diff --git a/Cs_HMI/DLL/ArSetting.Net4.dll b/DLL/ArSetting.Net4.dll similarity index 100% rename from Cs_HMI/DLL/ArSetting.Net4.dll rename to DLL/ArSetting.Net4.dll diff --git a/Cs_HMI/DLL/CarlosAg.ExcelXmlWriter.dll b/DLL/CarlosAg.ExcelXmlWriter.dll similarity index 100% rename from Cs_HMI/DLL/CarlosAg.ExcelXmlWriter.dll rename to DLL/CarlosAg.ExcelXmlWriter.dll diff --git a/Cs_HMI/DLL/Winsock Orcas.dll b/DLL/Winsock Orcas.dll similarity index 100% rename from Cs_HMI/DLL/Winsock Orcas.dll rename to DLL/Winsock Orcas.dll diff --git a/DLL/arCommUtil.dll b/DLL/arCommUtil.dll new file mode 100644 index 0000000..bfe8482 Binary files /dev/null and b/DLL/arCommUtil.dll differ diff --git a/Cs_HMI/DLL/arControl.Net4.dll b/DLL/arControl.Net4.dll similarity index 100% rename from Cs_HMI/DLL/arControl.Net4.dll rename to DLL/arControl.Net4.dll diff --git a/Cs_HMI/.claude/settings.local.json b/HMI/.claude/settings.local.json similarity index 100% rename from Cs_HMI/.claude/settings.local.json rename to HMI/.claude/settings.local.json diff --git a/Cs_HMI/.cursorrules b/HMI/.cursorrules similarity index 100% rename from Cs_HMI/.cursorrules rename to HMI/.cursorrules diff --git a/Cs_HMI/AGVCSharp.sln b/HMI/AGVCSharp.sln similarity index 93% rename from Cs_HMI/AGVCSharp.sln rename to HMI/AGVCSharp.sln index 5425bd8..5a6c99c 100644 --- a/Cs_HMI/AGVCSharp.sln +++ b/HMI/AGVCSharp.sln @@ -1,200 +1,196 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.14.36804.6 d17.14 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sub", "Sub", "{C423C39A-44E7-4F09-B2F7-7943975FF948}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StateMachine", "StateMachine\StateMachine.csproj", "{BBC9BCCF-6262-4355-9CC2-37FF678AC499}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "agvControl", "SubProject\AGVControl\agvControl.csproj", "{8CB883C0-99C3-4DD4-B017-F9B92010A806}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWPatch", "SubProject\Patch\SWPatch.csproj", "{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NARUMI", "SubProject\AGV\NARUMI.csproj", "{8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommData", "SubProject\CommData\CommData.csproj", "{14E8C9A5-013E-49BA-B435-EFEFC77DD623}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENIGProtocol", "SubProject\EnigProtocol\enigprotocol\ENIGProtocol.csproj", "{9365803B-933D-4237-93C7-B502C855A71C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGV4", "Project\AGV4.csproj", "{D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "솔루션 항목", "솔루션 항목", "{2A3A057F-5D22-31FD-628C-DF5EF75AEF1E}" - ProjectSection(SolutionItems) = preProject - build.bat = build.bat - CHANGELOG.md = CHANGELOG.md - CLAUDE.md = CLAUDE.md - PATHSCENARIO.md = PATHSCENARIO.md - TODO.md = TODO.md - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Logic", "Logic", "{E5C75D32-5AD6-44DD-8F27-E32023206EBB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVNavigationCore", "AGVLogic\AGVNavigationCore\AGVNavigationCore.csproj", "{C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVMapEditor", "AGVLogic\AGVMapEditor\AGVMapEditor.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVSimulator", "AGVLogic\AGVSimulator\AGVSimulator.csproj", "{B2C3D4E5-0000-0000-0000-000000000000}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arCommUtil", "SubProject\commutil\arCommUtil.csproj", "{14E8C9A5-013E-49BA-B435-FFFFFF7DD623}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x64.ActiveCfg = Debug|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x64.Build.0 = Debug|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x86.ActiveCfg = Debug|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x86.Build.0 = Debug|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|Any CPU.Build.0 = Release|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x64.ActiveCfg = Release|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x64.Build.0 = Release|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x86.ActiveCfg = Release|Any CPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x86.Build.0 = Release|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x64.ActiveCfg = Debug|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x64.Build.0 = Debug|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x86.ActiveCfg = Debug|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x86.Build.0 = Debug|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|Any CPU.Build.0 = Release|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x64.ActiveCfg = Release|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x64.Build.0 = Release|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x86.ActiveCfg = Release|Any CPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x86.Build.0 = Release|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x64.ActiveCfg = Debug|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x64.Build.0 = Debug|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x86.ActiveCfg = Debug|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x86.Build.0 = Debug|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|Any CPU.Build.0 = Release|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x64.ActiveCfg = Release|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x64.Build.0 = Release|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x86.ActiveCfg = Release|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x86.Build.0 = Release|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x64.ActiveCfg = Debug|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x64.Build.0 = Debug|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x86.ActiveCfg = Debug|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x86.Build.0 = Debug|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|Any CPU.Build.0 = Release|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x64.ActiveCfg = Release|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x64.Build.0 = Release|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x86.ActiveCfg = Release|Any CPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x86.Build.0 = Release|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Any CPU.Build.0 = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x64.ActiveCfg = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x64.Build.0 = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x86.ActiveCfg = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x86.Build.0 = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Any CPU.ActiveCfg = Release|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Any CPU.Build.0 = Release|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x64.ActiveCfg = Release|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x64.Build.0 = Release|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.ActiveCfg = Release|Any CPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.Build.0 = Release|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x64.ActiveCfg = Debug|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x64.Build.0 = Debug|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x86.ActiveCfg = Debug|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x86.Build.0 = Debug|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Release|Any CPU.Build.0 = Release|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Release|x64.ActiveCfg = Release|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Release|x64.Build.0 = Release|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Release|x86.ActiveCfg = Release|Any CPU - {9365803B-933D-4237-93C7-B502C855A71C}.Release|x86.Build.0 = Release|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x64.ActiveCfg = Debug|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x64.Build.0 = Debug|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x86.ActiveCfg = Debug|x86 - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x86.Build.0 = Debug|x86 - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|Any CPU.Build.0 = Release|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x64.ActiveCfg = Release|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x64.Build.0 = Release|Any CPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x86.ActiveCfg = Release|x86 - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x86.Build.0 = Release|x86 - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x64.ActiveCfg = Debug|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x64.Build.0 = Debug|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x86.ActiveCfg = Debug|x86 - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x86.Build.0 = Debug|x86 - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|Any CPU.Build.0 = Release|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x64.ActiveCfg = Release|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x64.Build.0 = Release|Any CPU - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x86.ActiveCfg = Release|x86 - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x86.Build.0 = Release|x86 - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.Build.0 = Debug|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.ActiveCfg = Debug|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.Build.0 = Debug|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.ActiveCfg = Release|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.Build.0 = Release|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.ActiveCfg = Release|Any CPU - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.Build.0 = Release|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x86.ActiveCfg = Debug|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x86.Build.0 = Debug|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Release|x86.ActiveCfg = Release|Any CPU - {B2C3D4E5-0000-0000-0000-000000000000}.Release|x86.Build.0 = Release|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Any CPU.Build.0 = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x64.ActiveCfg = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x64.Build.0 = Debug|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x86.ActiveCfg = Debug|x86 - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x86.Build.0 = Debug|x86 - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Any CPU.ActiveCfg = Release|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Any CPU.Build.0 = Release|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x64.ActiveCfg = Release|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x64.Build.0 = Release|Any CPU - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x86.ActiveCfg = Release|x86 - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {8CB883C0-99C3-4DD4-B017-F9B92010A806} = {C423C39A-44E7-4F09-B2F7-7943975FF948} - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7} = {C423C39A-44E7-4F09-B2F7-7943975FF948} - {14E8C9A5-013E-49BA-B435-EFEFC77DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948} - {9365803B-933D-4237-93C7-B502C855A71C} = {C423C39A-44E7-4F09-B2F7-7943975FF948} - {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C} = {E5C75D32-5AD6-44DD-8F27-E32023206EBB} - {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} = {E5C75D32-5AD6-44DD-8F27-E32023206EBB} - {B2C3D4E5-0000-0000-0000-000000000000} = {E5C75D32-5AD6-44DD-8F27-E32023206EBB} - {14E8C9A5-013E-49BA-B435-FFFFFF7DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B5B1FD72-356F-4840-83E8-B070AC21C8D9} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36804.6 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sub", "Sub", "{C423C39A-44E7-4F09-B2F7-7943975FF948}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StateMachine", "StateMachine\StateMachine.csproj", "{BBC9BCCF-6262-4355-9CC2-37FF678AC499}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "agvControl", "SubProject\AGVControl\agvControl.csproj", "{8CB883C0-99C3-4DD4-B017-F9B92010A806}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NARUMI", "SubProject\AGV\NARUMI.csproj", "{8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommData", "SubProject\CommData\CommData.csproj", "{14E8C9A5-013E-49BA-B435-EFEFC77DD623}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ENIGProtocol", "..\AGVLogic\EnigProtocol\enigprotocol\ENIGProtocol.csproj", "{9365803B-933D-4237-93C7-B502C855A71C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGV4", "Project\AGV4.csproj", "{D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "솔루션 항목", "솔루션 항목", "{2A3A057F-5D22-31FD-628C-DF5EF75AEF1E}" + ProjectSection(SolutionItems) = preProject + build.bat = build.bat + CHANGELOG.md = CHANGELOG.md + CLAUDE.md = CLAUDE.md + PATHSCENARIO.md = PATHSCENARIO.md + TODO.md = TODO.md + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Logic", "Logic", "{E5C75D32-5AD6-44DD-8F27-E32023206EBB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVNavigationCore", "..\AGVLogic\AGVNavigationCore\AGVNavigationCore.csproj", "{C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVMapEditor", "..\AGVLogic\AGVMapEditor\AGVMapEditor.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGVSimulator", "..\AGVLogic\AGVSimulator\AGVSimulator.csproj", "{B2C3D4E5-0000-0000-0000-000000000000}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x64.ActiveCfg = Debug|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x64.Build.0 = Debug|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x86.ActiveCfg = Debug|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Debug|x86.Build.0 = Debug|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|Any CPU.Build.0 = Release|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x64.ActiveCfg = Release|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x64.Build.0 = Release|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x86.ActiveCfg = Release|Any CPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499}.Release|x86.Build.0 = Release|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x64.ActiveCfg = Debug|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x64.Build.0 = Debug|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x86.ActiveCfg = Debug|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Debug|x86.Build.0 = Debug|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|Any CPU.Build.0 = Release|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x64.ActiveCfg = Release|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x64.Build.0 = Release|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x86.ActiveCfg = Release|Any CPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x86.Build.0 = Release|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x64.ActiveCfg = Debug|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x64.Build.0 = Debug|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x86.ActiveCfg = Debug|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x86.Build.0 = Debug|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|Any CPU.Build.0 = Release|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x64.ActiveCfg = Release|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x64.Build.0 = Release|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x86.ActiveCfg = Release|Any CPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x86.Build.0 = Release|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x64.ActiveCfg = Debug|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x64.Build.0 = Debug|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x86.ActiveCfg = Debug|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x86.Build.0 = Debug|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|Any CPU.Build.0 = Release|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x64.ActiveCfg = Release|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x64.Build.0 = Release|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x86.ActiveCfg = Release|Any CPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Release|x86.Build.0 = Release|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x64.ActiveCfg = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x64.Build.0 = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x86.ActiveCfg = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Debug|x86.Build.0 = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|Any CPU.Build.0 = Release|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x64.ActiveCfg = Release|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x64.Build.0 = Release|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.ActiveCfg = Release|Any CPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.Build.0 = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x64.ActiveCfg = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x64.Build.0 = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x86.ActiveCfg = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Debug|x86.Build.0 = Debug|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|Any CPU.Build.0 = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|x64.ActiveCfg = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|x64.Build.0 = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|x86.ActiveCfg = Release|Any CPU + {9365803B-933D-4237-93C7-B502C855A71C}.Release|x86.Build.0 = Release|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x64.ActiveCfg = Debug|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x64.Build.0 = Debug|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x86.ActiveCfg = Debug|x86 + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Debug|x86.Build.0 = Debug|x86 + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|Any CPU.Build.0 = Release|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x64.ActiveCfg = Release|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x64.Build.0 = Release|Any CPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x86.ActiveCfg = Release|x86 + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38}.Release|x86.Build.0 = Release|x86 + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x64.ActiveCfg = Debug|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x64.Build.0 = Debug|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x86.ActiveCfg = Debug|x86 + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Debug|x86.Build.0 = Debug|x86 + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|Any CPU.Build.0 = Release|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x64.ActiveCfg = Release|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x64.Build.0 = Release|Any CPU + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x86.ActiveCfg = Release|x86 + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C}.Release|x86.Build.0 = Release|x86 + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.Build.0 = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|x86.Build.0 = Debug|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.ActiveCfg = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x64.Build.0 = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.ActiveCfg = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|x86.Build.0 = Release|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x64.ActiveCfg = Debug|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x64.Build.0 = Debug|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x86.ActiveCfg = Debug|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Debug|x86.Build.0 = Debug|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Release|x64.ActiveCfg = Release|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Release|x64.Build.0 = Release|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Release|x86.ActiveCfg = Release|Any CPU + {B2C3D4E5-0000-0000-0000-000000000000}.Release|x86.Build.0 = Release|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|Any CPU.Build.0 = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x64.ActiveCfg = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x64.Build.0 = Debug|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x86.ActiveCfg = Debug|x86 + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Debug|x86.Build.0 = Debug|x86 + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Any CPU.ActiveCfg = Release|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|Any CPU.Build.0 = Release|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x64.ActiveCfg = Release|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x64.Build.0 = Release|Any CPU + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x86.ActiveCfg = Release|x86 + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {8CB883C0-99C3-4DD4-B017-F9B92010A806} = {C423C39A-44E7-4F09-B2F7-7943975FF948} + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7} = {C423C39A-44E7-4F09-B2F7-7943975FF948} + {14E8C9A5-013E-49BA-B435-EFEFC77DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948} + {9365803B-933D-4237-93C7-B502C855A71C} = {C423C39A-44E7-4F09-B2F7-7943975FF948} + {C5F7A8B2-8D3E-4A1B-9C6E-7F4D5E2A9B1C} = {E5C75D32-5AD6-44DD-8F27-E32023206EBB} + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} = {E5C75D32-5AD6-44DD-8F27-E32023206EBB} + {B2C3D4E5-0000-0000-0000-000000000000} = {E5C75D32-5AD6-44DD-8F27-E32023206EBB} + {14E8C9A5-013E-49BA-B435-FFFFFF7DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B5B1FD72-356F-4840-83E8-B070AC21C8D9} + EndGlobalSection +EndGlobal diff --git a/Cs_HMI/CHANGELOG.md b/HMI/CHANGELOG.md similarity index 100% rename from Cs_HMI/CHANGELOG.md rename to HMI/CHANGELOG.md diff --git a/Cs_HMI/Data/NewMap.json b/HMI/Data/NewMap.json similarity index 100% rename from Cs_HMI/Data/NewMap.json rename to HMI/Data/NewMap.json diff --git a/Cs_HMI/Project/AGV4.csproj b/HMI/Project/AGV4.csproj similarity index 96% rename from Cs_HMI/Project/AGV4.csproj rename to HMI/Project/AGV4.csproj index 1df3f86..497fa76 100644 --- a/Cs_HMI/Project/AGV4.csproj +++ b/HMI/Project/AGV4.csproj @@ -1,584 +1,584 @@ - - - - - Debug - AnyCPU - {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38} - WinExe - Project - Amkor - v4.8 - 512 - win-x86 - 게시\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - False - False - False - OnBuildSuccess - False - False - False - obj\$(Configuration)\ - - - - x86 - true - Full - False - ..\..\..\..\..\Amkor\AGV4\ - TRACE;DEBUG;NOSPEECH - prompt - 4 - false - IDE1006 - - - AnyCPU - pdbonly - true - ..\..\..\ManualMapEditor\ - TRACE - prompt - 4 - false - - - icons8-split-64.ico - - - LocalIntranet - - - false - - - - true - ..\..\..\..\Amkor\OTP2DReading\ - DEBUG;TRACE - full - x64 - prompt - MinimumRecommendedRules.ruleset - false - - - bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - false - - - Project - False - obj\ - - - 4194304 - False - Auto - - - - False - ..\DLL\arCommUtil.dll - - - False - ..\DLL\arControl.Net4.dll - - - False - ..\DLL\CarlosAg.ExcelXmlWriter.dll - - - False - C:\Program Files (x86)\Microsoft SDKs\Speech\v11.0\Assembly\Microsoft.Speech.dll - - - ..\packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll - - - - - ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - - - - ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll - True - True - - - - ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll - - - - ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - - ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll - - - - - - - - - - - - ..\DLL\Winsock Orcas.dll - - - - - - - Component - - - CtlAuto.cs - - - Component - - - CtlPos.cs - - - - - - DataSet1.xsd - - - True - True - DataSet1.xsd - - - - - - - Component - - - - Form - - - fCounter.cs - - - Form - - - fXbeeSetting.cs - - - Form - - - fStateMachineDebug.cs - - - Form - - - fUpdateForm.cs - - - Form - - - fLog.cs - - - Form - - - fJobSelect.cs - - - Form - - - fSystem.cs - - - Form - - - fVolume.cs - - - Form - - - fMessageWindow.cs - - - Form - - - fTouchKey.cs - - - Form - - - fTouchKeyFull.cs - - - Form - - - fTouchNumDot.cs - - - Form - - - fPassword.cs - - - Form - - - fErrorException.cs - - - Form - - - fMain.cs - - - - - - - - - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - fBms.cs - - - Form - - - fAuto.cs - - - Form - - - fAgv.cs - - - Form - - - fFlag.cs - - - Form - - - fIO.cs - - - Form - - - fSetup.cs - - - Form - - - fManual.cs - - - fCounter.cs - - - fXbeeSetting.cs - - - fUpdateForm.cs - - - fLog.cs - - - fJobSelect.cs - - - fSystem.cs - - - fVolume.cs - - - fMessageWindow.cs - - - fTouchKey.cs - - - fTouchKeyFull.cs - - - fTouchNumDot.cs - - - fPassword.cs - - - fErrorException.cs - - - fMain.cs - Designer - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - fBms.cs - - - fAuto.cs - - - fAgv.cs - - - fFlag.cs - - - fIO.cs - - - fSetup.cs - - - fManual.cs - - - - DataSet1.xsd - - - Designer - MSDataSetGenerator - DataSet1.Designer.cs - - - DataSet1.xsd - Designer - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - False - Microsoft .NET Framework 4%28x86 및 x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 4.5 - true - - - - - {c5f7a8b2-8d3e-4a1b-9c6e-7f4d5e2a9b1c} - AGVNavigationCore - - - {bbc9bccf-6262-4355-9cc2-37ff678ac499} - StateMachine - - - {8cb883c0-99c3-4dd4-b017-f9b92010a806} - agvControl - - - {8bae0eac-3d25-402f-9a65-2ba1ecfe28b7} - NARUMI - - - {14e8c9a5-013e-49ba-b435-efefc77dd623} - CommData - - - {499d8912-4b96-41e5-a70d-cfe797883d65} - ENIGProtocol - - - - - - - - - - + + + + + Debug + AnyCPU + {D6B3880D-7D5C-44E2-B6A5-CF6D881A8A38} + WinExe + Project + Amkor + v4.8 + 512 + win-x86 + 게시\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + False + False + False + OnBuildSuccess + False + False + False + obj\$(Configuration)\ + + + + x86 + true + Full + False + ..\..\..\..\..\Amkor\AGV4\ + TRACE;DEBUG;NOSPEECH + prompt + 4 + false + IDE1006 + + + AnyCPU + pdbonly + true + ..\..\..\ManualMapEditor\ + TRACE + prompt + 4 + false + + + icons8-split-64.ico + + + LocalIntranet + + + false + + + + true + ..\..\..\..\Amkor\OTP2DReading\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + + + Project + False + obj\ + + + 4194304 + False + Auto + + + + False + ..\DLL\arCommUtil.dll + + + False + ..\DLL\arControl.Net4.dll + + + False + ..\DLL\CarlosAg.ExcelXmlWriter.dll + + + False + C:\Program Files (x86)\Microsoft SDKs\Speech\v11.0\Assembly\Microsoft.Speech.dll + + + ..\packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll + + + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + + + + + + + + + + + + ..\DLL\Winsock Orcas.dll + + + + + + + Component + + + CtlAuto.cs + + + Component + + + CtlPos.cs + + + + + + DataSet1.xsd + + + True + True + DataSet1.xsd + + + + + + + Component + + + + Form + + + fCounter.cs + + + Form + + + fXbeeSetting.cs + + + Form + + + fStateMachineDebug.cs + + + Form + + + fUpdateForm.cs + + + Form + + + fLog.cs + + + Form + + + fJobSelect.cs + + + Form + + + fSystem.cs + + + Form + + + fVolume.cs + + + Form + + + fMessageWindow.cs + + + Form + + + fTouchKey.cs + + + Form + + + fTouchKeyFull.cs + + + Form + + + fTouchNumDot.cs + + + Form + + + fPassword.cs + + + Form + + + fErrorException.cs + + + Form + + + fMain.cs + + + + + + + + + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + fBms.cs + + + Form + + + fAuto.cs + + + Form + + + fAgv.cs + + + Form + + + fFlag.cs + + + Form + + + fIO.cs + + + Form + + + fSetup.cs + + + Form + + + fManual.cs + + + fCounter.cs + + + fXbeeSetting.cs + + + fUpdateForm.cs + + + fLog.cs + + + fJobSelect.cs + + + fSystem.cs + + + fVolume.cs + + + fMessageWindow.cs + + + fTouchKey.cs + + + fTouchKeyFull.cs + + + fTouchNumDot.cs + + + fPassword.cs + + + fErrorException.cs + + + fMain.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + fBms.cs + + + fAuto.cs + + + fAgv.cs + + + fFlag.cs + + + fIO.cs + + + fSetup.cs + + + fManual.cs + + + + DataSet1.xsd + + + Designer + MSDataSetGenerator + DataSet1.Designer.cs + + + DataSet1.xsd + Designer + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4%28x86 및 x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 4.5 + true + + + + + {c5f7a8b2-8d3e-4a1b-9c6e-7f4d5e2a9b1c} + AGVNavigationCore + + + {9365803b-933d-4237-93c7-b502c855a71c} + ENIGProtocol + + + {bbc9bccf-6262-4355-9cc2-37ff678ac499} + StateMachine + + + {8cb883c0-99c3-4dd4-b017-f9b92010a806} + agvControl + + + {8bae0eac-3d25-402f-9a65-2ba1ecfe28b7} + NARUMI + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/Project/CSetting.cs b/HMI/Project/CSetting.cs similarity index 97% rename from Cs_HMI/Project/CSetting.cs rename to HMI/Project/CSetting.cs index cdf5a71..805279f 100644 --- a/Cs_HMI/Project/CSetting.cs +++ b/HMI/Project/CSetting.cs @@ -1,552 +1,552 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.ComponentModel; -using System.Drawing.Design; -using System.Runtime.CompilerServices; -using System.Management; -using System.IO.Ports; -using AR; - -namespace Project -{ - public class MyUITypeEditor : UITypeEditor - { - public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) - { - using (var f = new System.Windows.Forms.Form - { - WindowState = System.Windows.Forms.FormWindowState.Normal, - StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen, - Size = new System.Drawing.Size(800, 400), - MaximizeBox = false, - MinimizeBox = false, - Text = "Select Port", - FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - }) - { - var lst = new System.Windows.Forms.ListBox - { - Font = new System.Drawing.Font("Consolas", 15, System.Drawing.FontStyle.Bold), - Dock = System.Windows.Forms.DockStyle.Fill, - }; - lst.DoubleClick += (s1, e1) => - { - if (lst.SelectedItem != null) f.DialogResult = System.Windows.Forms.DialogResult.OK; - }; - using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort")) - { - var portnames = System.IO.Ports.SerialPort.GetPortNames().OrderBy(t => t); - var ports = searcher.Get().Cast().ToList(); - foreach (var port in portnames) - { - var desc = ""; - var portInfo = ports.Where(t => t["DeviceId"].ToString() == port).FirstOrDefault(); - if (portInfo != null) desc = portInfo["Caption"].ToString(); - lst.Items.Add(string.Format("{0} - {1}", port, desc)); - } - } - f.Controls.Add(lst); - if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - var name = lst.SelectedItem.ToString().Split('-'); - return name[0].Trim(); - } - else - { - return base.EditValue(context, provider, value); - } - } - - } - public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) - { - return UITypeEditorEditStyle.Modal; - } - } - - public class CSetting : AR.Setting - { - #region "log" - - [Category("System Log"), DisplayName("Digital Input/Output"), - Description("입/출력 장치의 상태 변화를 기록 합니다.")] - public Boolean Log_IO { get; set; } - [Category("System Log"), DisplayName("Network Alive Check(Ping)"), - Description("서버와의 통신검사 로그를 기록 합니다")] - public Boolean Log_Ping { get; set; } - [Category("System Log"), DisplayName("S/M Step Change"), - Description("상태머신의 변화 상태를 기록 합니다.")] - public Boolean Log_StepChange { get; set; } - [Category("System Log"), DisplayName("Socket Recv Message"), - Description("서버 수신 메세지를 기록 합니다.")] - public Boolean LOg_SocketRecv { get; set; } - - #endregion - - #region "Communication" - - [Browsable(false), Category("Commnunication Setting"), DisplayName("XBee PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] - public string Port_XBE { get; set; } - - [Browsable(false), Category("Commnunication Setting"), DisplayName("RFID PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] - public string Port_AGV { get; set; } - - [Browsable(false), Category("Commnunication Setting"), DisplayName("Xbee ID"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] - public byte XBE_ID { get; set; } - - [Browsable(false), Category("Commnunication Setting"), DisplayName("BMS PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] - public string Port_BAT { get; set; } - - public int ChargerID { get; set; } - - [Browsable(false)] - public int Baud_AGV { get; set; } - [Browsable(false)] - public int Baud_BAT { get; set; } - [Browsable(false)] - public int Baud_XBE { get; set; } - - //public int QueryInterval_BAT { get; set; } - - - #endregion - - #region "Debug" - [Category("Developer Setting"), DisplayName("Listening Port"), - Description("서버와의 통신을 위한 대기 포트(TCP) - 기본값 : 7979")] - public int listenPort { get; set; } - - [Category("Developer Setting")] - public Boolean UseDebugMode { get; set; } - - #endregion - - #region "Count Reset Setting" - - [Category("Count Reset Setting"), DisplayName("A/M Clear Enable"), - Description("오전 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요")] - public Boolean datetime_Check_1 { get; set; } - [Category("Count Reset Setting"), DisplayName("P/M Clear Enable"), - Description("오후 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요")] - public Boolean datetime_Check_2 { get; set; } - [Category("Count Reset Setting"), DisplayName("A/M Clear Time(HH:mm)"), - Description("오전 초기화 시간(시:분)\n예) 09:00")] - public string datetime_Reset_1 { get; set; } - [Category("Count Reset Setting"), DisplayName("P/M Clear Time(HH:mm)"), - Description("오후 초기화 시간(시:분)\n예) 19:00")] - public string datetime_Reset_2 { get; set; } - - #endregion - - #region "general" - - - - - [Category("General Setting"), DisplayName("Enable Popup Message"), - Description("오류 발생시 별도의 메세지 창으로 표시합니다. 사용하지 않을 경우에는 우측 상단의 결과창의 메세지를 확인합니다.")] - public Boolean ShowPopUpMessage { get; set; } - [Category("General Setting"), DisplayName("Asset Number"), - Description("자산번호(서버에 값 전송 시 사용됩니다)")] - public string Asset { get; set; } - - [Category("General Setting"), - Description("데이터 자동 소거 기간(일) 비활성=0")] - public int AutoDeleteDay { get; set; } - [Category("General Setting"), - Description("데이터 자동 소거 조건(남은용량 %)")] - public int AutoDeleteThreshold { get; set; } - - [Category("General Setting"), PasswordPropertyText(true)] - public string Password_Setup { get; set; } - - [Category("General Setting"), Browsable(false)] - public string Language { get; set; } - - [Browsable(false), Category("General Setting"), DisplayName("Full Screen Window State"), - Description("화면을 전체화면으로 사용 합니다.")] - public Boolean FullScreen { get; set; } - public bool DetectManualCharge { get; set; } - public Boolean StartLog { get; set; } - - #endregion - - #region "Charge" - [Browsable(false)] - public int ChargetWaitSec { get; set; } - [Browsable(false)] - public int ChargeEmergencyLevel { get; set; } - [Browsable(false)] - public int ChargeMaxLevel { get; set; } - [Browsable(false)] - public int ChargeStartLevel { get; set; } - [Browsable(false)] - public Boolean Enable_AutoCharge { get; set; } - [Browsable(false)] - public int ChargeRetryTerm { get; set; } - [Browsable(false)] - public int ChargeMaxTime { get; set; } - [Browsable(false)] - public int ChargeSearchTime { get; set; } - - [Category("Charge"), DisplayName("Low Battery Limit"), Description("배터리 부족 경고 알림 기준 (%)")] - public int BatteryLimit_Low { get; set; } - - #endregion - - #region "AGV" - - public bool AutoModeOffAndClearPosition { get; set; } - - - [Browsable(false)] - public UInt16 GDSValue { get; set; } - - - [Browsable(false)] - public string musicfile { get; set; } - - - [Browsable(false)] - public Boolean Enable_Speak { get; set; } - - - [Browsable(false)] - public string AGV_PANID { get; set; } - [Browsable(false)] - public string AGV_CHANNEL { get; set; } - [Browsable(false)] - public string AGV_ADDRESS { get; set; } - - [Browsable(false)] - public int SCK { get; set; } - [Browsable(false)] - public int SSK { get; set; } - [Browsable(false)] - public int STT { get; set; } - [Browsable(false)] - public int SAD { get; set; } - - [Browsable(false)] - public byte ZSpeed { get; set; } - [Browsable(false)] - public int SPD_L { get; set; } - [Browsable(false)] - public int SPD_M { get; set; } - [Browsable(false)] - public int SPD_H { get; set; } - [Browsable(false)] - public int SPD_DRIVE { get; set; } - [Browsable(false)] - public int SPD_S { get; set; } - [Browsable(false)] - public int SPD_R { get; set; } - - [Browsable(false)] - public int PID_PH { get; set; } - [Browsable(false)] - public int PID_PM { get; set; } - [Browsable(false)] - public int PID_PL { get; set; } - [Browsable(false)] - public int PID_IH { get; set; } - [Browsable(false)] - public int PID_IM { get; set; } - [Browsable(false)] - public int PID_IL { get; set; } - [Browsable(false)] - public int PID_DH { get; set; } - [Browsable(false)] - public int PID_DM { get; set; } - [Browsable(false)] - public int PID_DL { get; set; } - [Browsable(false)] - public int PID_PS { get; set; } - [Browsable(false)] - public int PID_IS { get; set; } - [Browsable(false)] - public int PID_DS { get; set; } - - public double WheelSpeedCharge { get; set; } - public byte HomePositionValue { get; set; } - public byte HomeKitNo { get; set; } - - [Browsable(false)] - public Single interval_xbe { get; set; } - [Browsable(false)] - public int interval_bms { get; set; } - - /// - /// 스피커출력 간격 - /// - [DisplayName("Speak Term")] - public int alarmSoundTerm { get; set; } - - [Browsable(false)] - public int musicvol { get; set; } - [Browsable(false)] - public bool Enable_Music { get; set; } - #endregion - - #region "Node Mapping" - - [Category("Node Mapping"),DisplayName("Charger")] - public string NodeMAP_RFID_Charger { get; set; } - - [Category("Node Mapping"), DisplayName("Home")] - public string NodeMAP_RFID_Home { get; set; } - - #endregion - - [Browsable(false)] - public string LastMapFile { get; set; } - - [Category("Report"), Browsable(false), - Description("상태기록시 장비 식별코드(4자리)"), - DisplayName("M/C ID")] - public string MCID { get; set; } - - [Category("Report"), - Description("작업 기록을 장비기술(EE) Database 에 기록 합니다. 원격으로 장비 현황을 모니터링 할 수 있습니다"), - DisplayName("SAVE EE-DB")] - public Boolean Save_EEDatabase { get; set; } - [Category("Report"), Description("상태값을 전송하는 간격(초)")] - public int StatusInterval { get; set; } - - - [Category("AutoReboot"), - DisplayName("자동재부팅시간"), - Description("기본값 14:00:00~14:05:00 , 재부팅은 장비가 대기(IDLE)일 때에만 동작하며 지정 시간 범위를 벗어나면 동작하지 않습니다")] - public String AutoRebootTimeStart { get; set; } - [Category("AutoReboot")] - public string AUtoRebootLastTime { get; set; } - - - public bool SetAutoModeOn { get; set; } - public override void AfterLoad() - { - if (StatusInterval < 10) StatusInterval = 300; //5분간격 - if (XBE_ID < 1) XBE_ID = 0xFF; //0은 acs 이므로 쓰지못하게한다. - if (SAD == 0) SAD = 999; - if (GDSValue == 0) GDSValue = 1000; - if (SCK == 0) SCK = 10; - if (SSK == 0) SSK = 10; - if (STT == 0) STT = 30; - if (ChargerID == 0) ChargerID = 203; - if (ChargerID < 200) ChargerID += 200; - - //자동충전요건 - if (ChargetWaitSec == 0) ChargetWaitSec = 3; - if (ChargeStartLevel == 0) ChargeStartLevel = 85; - if (ChargeMaxLevel == 0) ChargeMaxLevel = 85; - if (ChargeEmergencyLevel == 0) ChargeEmergencyLevel = 30; - if (interval_bms == 0) interval_bms = 10; - - if (ChargeRetryTerm == 0) ChargeRetryTerm = 600; - if (alarmSoundTerm == 0) alarmSoundTerm = 15; //기본 15초 - if (ChargeSearchTime == 0) ChargeSearchTime = 25; - if (BatteryLimit_Low == 0) BatteryLimit_Low = 20; - //최대 충전진행 시간(기본 1시간) - if (ChargeMaxTime == 0) ChargeMaxTime = 3600; - // if (interval_iostate == 0 || interval_iostate == 255) interval_iostate = 100; - if (ZSpeed == 0) ZSpeed = 20; - if (interval_xbe == 0) interval_xbe = 5.0f; - if (HomePositionValue == 0) HomePositionValue = 4; - if (HomeKitNo == 0) HomeKitNo = 2; - if (datetime_Reset_1 == "") datetime_Reset_1 = "00:00"; - if (datetime_Reset_2 == "") datetime_Reset_2 = "00:00"; - - if (SPD_H == 0) - { - SPD_DRIVE = 200; - SPD_H = 110; - SPD_M = 70; - SPD_L = 30; - SPD_S = 61; - SPD_R = 70; - } - - if (PID_PH == 0) - { - PID_PH = 180; PID_PM = 240; PID_PL = 260; - PID_IH = 610; PID_IM = 640; PID_IL = 660; - PID_DH = 110; PID_DM = 140; PID_DL = 160; - PID_PS = 200; PID_IS = 620; PID_DS = 120; - } - - if (WheelSpeedCharge == 0) WheelSpeedCharge = 10; - - if (AutoDeleteThreshold == 0) AutoDeleteThreshold = 20; - if (Asset == "") Asset = "DEV_SPLIT"; - if (listenPort == 0) listenPort = 7979; - if (Port_XBE == "") Port_XBE = "COM8"; - - if (Language.isEmpty()) Language = "Kor"; - if (Password_Setup.isEmpty()) Password_Setup = "0000"; - if (musicfile.isEmpty()) musicfile = UTIL.CurrentPath + "music.mp3"; - if (musicvol == 0) musicvol = 50; - - - if (string.IsNullOrEmpty(Port_AGV)) Port_AGV = "COM1"; - // if (string.IsNullOrEmpty(Port_PLC)) Port_PLC = "COM2"; - if (string.IsNullOrEmpty(Port_XBE)) Port_XBE = "COM4"; - if (string.IsNullOrEmpty(Port_BAT)) Port_BAT = "COM7"; - - if (Baud_AGV == 0) Baud_AGV = 57600; - //if (Baud_PLC == 0) Baud_PLC = 19200; - if (Baud_XBE == 0) Baud_XBE = 9600; - if (Baud_BAT == 0) Baud_BAT = 9600; - - - } - public override void AfterSave() - { - //throw new NotImplementedException(); - } - - public void CopyTo(CSetting dest) - { - //이곳의 모든 쓰기가능한 속성값을 대상에 써준다. - Type thClass = this.GetType(); - foreach (var method in thClass.GetMethods()) - { - //var parameters = method.GetParameters(); - if (!method.Name.StartsWith("get_")) continue; - - string keyname = method.Name.Substring(4); - string methodName = method.Name; - - object odata = GetType().GetMethod(methodName).Invoke(this, null); - var wMethod = dest.GetType().GetMethod(Convert.ToString("set_") + keyname); - if (wMethod != null) wMethod.Invoke(dest, new object[] { odata }); - } - } - } - - - public class CounterSetting : AR.Setting, INotifyPropertyChanged - { - public DateTime CountReset { get; set; } - - public event PropertyChangedEventHandler PropertyChanged; - private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - private int countUp1 = 0; - private int countUp2 = 0; - private int countUp3 = 0; - private int countUp4 = 0; - // private int countUp5 = 0; - private int countchgaerr = 0; - private int countchga = 0; - private int countchgm = 0; - //private int countdn = 0; - private int countqa = 0; - private int countqc = 0; - - //메인카운터 - public int CountUp1 - { - get { return countUp1; } - set { if (value != countUp1) { countUp1 = value; NotifyPropertyChanged(); } } - } - public int CountUp2 - { - get { return countUp2; } - set { if (value != countUp2) { countUp2 = value; NotifyPropertyChanged(); } } - } - public int CountUp3 - { - get { return countUp3; } - set { if (value != countUp3) { countUp3 = value; NotifyPropertyChanged(); } } - } - public int CountUp4 - { - get { return countUp4; } - set { if (value != countUp4) { countUp4 = value; NotifyPropertyChanged(); } } - } - //public int CountUp5 - //{ - // get { return countUp5; } - // set { if (value != countUp5) { countUp5 = value; NotifyPropertyChanged(); } } - //} - - /// - /// 상차수량(FVI 1+2+3+4) - /// - public int CountUp - { - get - { - return CountUp1 + CountUp2 + CountUp3 + CountUp4;// + CountUp5; - } - } - - public int CountChargeE - { - get { return this.countchgaerr; } - set { if (value != countchgaerr) { countchgaerr = value; NotifyPropertyChanged(); } } - } - public int CountChargeA - { - get { return this.countchga; } - set { if (value != countchga) { countchga = value; NotifyPropertyChanged(); } } - } - public int CountChargeM - { - get { return this.countchgm; } - set { if (value != countchgm) { countchgm = value; NotifyPropertyChanged(); } } - } - - /// - /// 하차수량(QC+QA) - /// - public int CountDn - { - get { return this.countqa + this.countqc; } - //set { if (value != countdn) { countdn = value; NotifyPropertyChanged(); } } - } - public int CountQA - { - get { return this.countqa; } - set { if (value != countqa) { countqa = value; NotifyPropertyChanged(); } } - } - public int CountQC - { - get { return this.countqc; } - set { if (value != countqc) { countqc = value; NotifyPropertyChanged(); } } - } - public void CountClear() - { - CountUp1 = 0; - CountUp2 = 0; - CountUp3 = 0; - CountUp4 = 0; - // CountUp5 = 0; - CountQC = 0; - CountQA = 0; - //CountQa2 = 0; - CountReset = DateTime.Now; - PUB.log.Add("Count Clear"); - this.Save(); - } - - public CounterSetting() - { - this.filename = AR.UTIL.CurrentPath + "counter.xml"; - } - public override void AfterLoad() - { - if (CountReset == null) CountReset = DateTime.Parse("1982-11-23"); - } - public override void AfterSave() - { - //throw new NotImplementedException(); - } - } - -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.Drawing.Design; +using System.Runtime.CompilerServices; +using System.Management; +using System.IO.Ports; +using AR; + +namespace Project +{ + public class MyUITypeEditor : UITypeEditor + { + public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) + { + using (var f = new System.Windows.Forms.Form + { + WindowState = System.Windows.Forms.FormWindowState.Normal, + StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen, + Size = new System.Drawing.Size(800, 400), + MaximizeBox = false, + MinimizeBox = false, + Text = "Select Port", + FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + }) + { + var lst = new System.Windows.Forms.ListBox + { + Font = new System.Drawing.Font("Consolas", 15, System.Drawing.FontStyle.Bold), + Dock = System.Windows.Forms.DockStyle.Fill, + }; + lst.DoubleClick += (s1, e1) => + { + if (lst.SelectedItem != null) f.DialogResult = System.Windows.Forms.DialogResult.OK; + }; + using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort")) + { + var portnames = System.IO.Ports.SerialPort.GetPortNames().OrderBy(t => t); + var ports = searcher.Get().Cast().ToList(); + foreach (var port in portnames) + { + var desc = ""; + var portInfo = ports.Where(t => t["DeviceId"].ToString() == port).FirstOrDefault(); + if (portInfo != null) desc = portInfo["Caption"].ToString(); + lst.Items.Add(string.Format("{0} - {1}", port, desc)); + } + } + f.Controls.Add(lst); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + var name = lst.SelectedItem.ToString().Split('-'); + return name[0].Trim(); + } + else + { + return base.EditValue(context, provider, value); + } + } + + } + public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) + { + return UITypeEditorEditStyle.Modal; + } + } + + public class CSetting : AR.Setting + { + #region "log" + + [Category("System Log"), DisplayName("Digital Input/Output"), + Description("입/출력 장치의 상태 변화를 기록 합니다.")] + public Boolean Log_IO { get; set; } + [Category("System Log"), DisplayName("Network Alive Check(Ping)"), + Description("서버와의 통신검사 로그를 기록 합니다")] + public Boolean Log_Ping { get; set; } + [Category("System Log"), DisplayName("S/M Step Change"), + Description("상태머신의 변화 상태를 기록 합니다.")] + public Boolean Log_StepChange { get; set; } + [Category("System Log"), DisplayName("Socket Recv Message"), + Description("서버 수신 메세지를 기록 합니다.")] + public Boolean LOg_SocketRecv { get; set; } + + #endregion + + #region "Communication" + + [Browsable(false), Category("Commnunication Setting"), DisplayName("XBee PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Port_XBE { get; set; } + + [Browsable(false), Category("Commnunication Setting"), DisplayName("RFID PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Port_AGV { get; set; } + + [Browsable(false), Category("Commnunication Setting"), DisplayName("Xbee ID"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public byte XBE_ID { get; set; } + + [Browsable(false), Category("Commnunication Setting"), DisplayName("BMS PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Port_BAT { get; set; } + + public int ChargerID { get; set; } + + [Browsable(false)] + public int Baud_AGV { get; set; } + [Browsable(false)] + public int Baud_BAT { get; set; } + [Browsable(false)] + public int Baud_XBE { get; set; } + + //public int QueryInterval_BAT { get; set; } + + + #endregion + + #region "Debug" + [Category("Developer Setting"), DisplayName("Listening Port"), + Description("서버와의 통신을 위한 대기 포트(TCP) - 기본값 : 7979")] + public int listenPort { get; set; } + + [Category("Developer Setting")] + public Boolean UseDebugMode { get; set; } + + #endregion + + #region "Count Reset Setting" + + [Category("Count Reset Setting"), DisplayName("A/M Clear Enable"), + Description("오전 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요")] + public Boolean datetime_Check_1 { get; set; } + [Category("Count Reset Setting"), DisplayName("P/M Clear Enable"), + Description("오후 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요")] + public Boolean datetime_Check_2 { get; set; } + [Category("Count Reset Setting"), DisplayName("A/M Clear Time(HH:mm)"), + Description("오전 초기화 시간(시:분)\n예) 09:00")] + public string datetime_Reset_1 { get; set; } + [Category("Count Reset Setting"), DisplayName("P/M Clear Time(HH:mm)"), + Description("오후 초기화 시간(시:분)\n예) 19:00")] + public string datetime_Reset_2 { get; set; } + + #endregion + + #region "general" + + + + + [Category("General Setting"), DisplayName("Enable Popup Message"), + Description("오류 발생시 별도의 메세지 창으로 표시합니다. 사용하지 않을 경우에는 우측 상단의 결과창의 메세지를 확인합니다.")] + public Boolean ShowPopUpMessage { get; set; } + [Category("General Setting"), DisplayName("Asset Number"), + Description("자산번호(서버에 값 전송 시 사용됩니다)")] + public string Asset { get; set; } + + [Category("General Setting"), + Description("데이터 자동 소거 기간(일) 비활성=0")] + public int AutoDeleteDay { get; set; } + [Category("General Setting"), + Description("데이터 자동 소거 조건(남은용량 %)")] + public int AutoDeleteThreshold { get; set; } + + [Category("General Setting"), PasswordPropertyText(true)] + public string Password_Setup { get; set; } + + [Category("General Setting"), Browsable(false)] + public string Language { get; set; } + + [Browsable(false), Category("General Setting"), DisplayName("Full Screen Window State"), + Description("화면을 전체화면으로 사용 합니다.")] + public Boolean FullScreen { get; set; } + public bool DetectManualCharge { get; set; } + public Boolean StartLog { get; set; } + + #endregion + + #region "Charge" + [Browsable(false)] + public int ChargetWaitSec { get; set; } + [Browsable(false)] + public int ChargeEmergencyLevel { get; set; } + [Browsable(false)] + public int ChargeMaxLevel { get; set; } + [Browsable(false)] + public int ChargeStartLevel { get; set; } + [Browsable(false)] + public Boolean Enable_AutoCharge { get; set; } + [Browsable(false)] + public int ChargeRetryTerm { get; set; } + [Browsable(false)] + public int ChargeMaxTime { get; set; } + [Browsable(false)] + public int ChargeSearchTime { get; set; } + + [Category("Charge"), DisplayName("Low Battery Limit"), Description("배터리 부족 경고 알림 기준 (%)")] + public int BatteryLimit_Low { get; set; } + + #endregion + + #region "AGV" + + public bool AutoModeOffAndClearPosition { get; set; } + + + [Browsable(false)] + public UInt16 GDSValue { get; set; } + + + [Browsable(false)] + public string musicfile { get; set; } + + + [Browsable(false)] + public Boolean Enable_Speak { get; set; } + + + [Browsable(false)] + public string AGV_PANID { get; set; } + [Browsable(false)] + public string AGV_CHANNEL { get; set; } + [Browsable(false)] + public string AGV_ADDRESS { get; set; } + + [Browsable(false)] + public int SCK { get; set; } + [Browsable(false)] + public int SSK { get; set; } + [Browsable(false)] + public int STT { get; set; } + [Browsable(false)] + public int SAD { get; set; } + + [Browsable(false)] + public byte ZSpeed { get; set; } + [Browsable(false)] + public int SPD_L { get; set; } + [Browsable(false)] + public int SPD_M { get; set; } + [Browsable(false)] + public int SPD_H { get; set; } + [Browsable(false)] + public int SPD_DRIVE { get; set; } + [Browsable(false)] + public int SPD_S { get; set; } + [Browsable(false)] + public int SPD_R { get; set; } + + [Browsable(false)] + public int PID_PH { get; set; } + [Browsable(false)] + public int PID_PM { get; set; } + [Browsable(false)] + public int PID_PL { get; set; } + [Browsable(false)] + public int PID_IH { get; set; } + [Browsable(false)] + public int PID_IM { get; set; } + [Browsable(false)] + public int PID_IL { get; set; } + [Browsable(false)] + public int PID_DH { get; set; } + [Browsable(false)] + public int PID_DM { get; set; } + [Browsable(false)] + public int PID_DL { get; set; } + [Browsable(false)] + public int PID_PS { get; set; } + [Browsable(false)] + public int PID_IS { get; set; } + [Browsable(false)] + public int PID_DS { get; set; } + + public double WheelSpeedCharge { get; set; } + public byte HomePositionValue { get; set; } + public byte HomeKitNo { get; set; } + + [Browsable(false)] + public Single interval_xbe { get; set; } + [Browsable(false)] + public int interval_bms { get; set; } + + /// + /// 스피커출력 간격 + /// + [DisplayName("Speak Term")] + public int alarmSoundTerm { get; set; } + + [Browsable(false)] + public int musicvol { get; set; } + [Browsable(false)] + public bool Enable_Music { get; set; } + #endregion + + #region "Node Mapping" + + [Category("Node Mapping"),DisplayName("Charger")] + public string NodeMAP_RFID_Charger { get; set; } + + [Category("Node Mapping"), DisplayName("Home")] + public string NodeMAP_RFID_Home { get; set; } + + #endregion + + [Browsable(false)] + public string LastMapFile { get; set; } + + [Category("Report"), Browsable(false), + Description("상태기록시 장비 식별코드(4자리)"), + DisplayName("M/C ID")] + public string MCID { get; set; } + + [Category("Report"), + Description("작업 기록을 장비기술(EE) Database 에 기록 합니다. 원격으로 장비 현황을 모니터링 할 수 있습니다"), + DisplayName("SAVE EE-DB")] + public Boolean Save_EEDatabase { get; set; } + [Category("Report"), Description("상태값을 전송하는 간격(초)")] + public int StatusInterval { get; set; } + + + [Category("AutoReboot"), + DisplayName("자동재부팅시간"), + Description("기본값 14:00:00~14:05:00 , 재부팅은 장비가 대기(IDLE)일 때에만 동작하며 지정 시간 범위를 벗어나면 동작하지 않습니다")] + public String AutoRebootTimeStart { get; set; } + [Category("AutoReboot")] + public string AUtoRebootLastTime { get; set; } + + + public bool SetAutoModeOn { get; set; } + public override void AfterLoad() + { + if (StatusInterval < 10) StatusInterval = 300; //5분간격 + if (XBE_ID < 1) XBE_ID = 0xFF; //0은 acs 이므로 쓰지못하게한다. + if (SAD == 0) SAD = 999; + if (GDSValue == 0) GDSValue = 1000; + if (SCK == 0) SCK = 10; + if (SSK == 0) SSK = 10; + if (STT == 0) STT = 30; + if (ChargerID == 0) ChargerID = 203; + if (ChargerID < 200) ChargerID += 200; + + //자동충전요건 + if (ChargetWaitSec == 0) ChargetWaitSec = 3; + if (ChargeStartLevel == 0) ChargeStartLevel = 85; + if (ChargeMaxLevel == 0) ChargeMaxLevel = 85; + if (ChargeEmergencyLevel == 0) ChargeEmergencyLevel = 30; + if (interval_bms == 0) interval_bms = 10; + + if (ChargeRetryTerm == 0) ChargeRetryTerm = 600; + if (alarmSoundTerm == 0) alarmSoundTerm = 15; //기본 15초 + if (ChargeSearchTime == 0) ChargeSearchTime = 25; + if (BatteryLimit_Low == 0) BatteryLimit_Low = 20; + //최대 충전진행 시간(기본 1시간) + if (ChargeMaxTime == 0) ChargeMaxTime = 3600; + // if (interval_iostate == 0 || interval_iostate == 255) interval_iostate = 100; + if (ZSpeed == 0) ZSpeed = 20; + if (interval_xbe == 0) interval_xbe = 5.0f; + if (HomePositionValue == 0) HomePositionValue = 4; + if (HomeKitNo == 0) HomeKitNo = 2; + if (datetime_Reset_1 == "") datetime_Reset_1 = "00:00"; + if (datetime_Reset_2 == "") datetime_Reset_2 = "00:00"; + + if (SPD_H == 0) + { + SPD_DRIVE = 200; + SPD_H = 110; + SPD_M = 70; + SPD_L = 30; + SPD_S = 61; + SPD_R = 70; + } + + if (PID_PH == 0) + { + PID_PH = 180; PID_PM = 240; PID_PL = 260; + PID_IH = 610; PID_IM = 640; PID_IL = 660; + PID_DH = 110; PID_DM = 140; PID_DL = 160; + PID_PS = 200; PID_IS = 620; PID_DS = 120; + } + + if (WheelSpeedCharge == 0) WheelSpeedCharge = 10; + + if (AutoDeleteThreshold == 0) AutoDeleteThreshold = 20; + if (Asset == "") Asset = "DEV_SPLIT"; + if (listenPort == 0) listenPort = 7979; + if (Port_XBE == "") Port_XBE = "COM8"; + + if (Language.isEmpty()) Language = "Kor"; + if (Password_Setup.isEmpty()) Password_Setup = "0000"; + if (musicfile.isEmpty()) musicfile = UTIL.CurrentPath + "music.mp3"; + if (musicvol == 0) musicvol = 50; + + + if (string.IsNullOrEmpty(Port_AGV)) Port_AGV = "COM1"; + // if (string.IsNullOrEmpty(Port_PLC)) Port_PLC = "COM2"; + if (string.IsNullOrEmpty(Port_XBE)) Port_XBE = "COM4"; + if (string.IsNullOrEmpty(Port_BAT)) Port_BAT = "COM7"; + + if (Baud_AGV == 0) Baud_AGV = 57600; + //if (Baud_PLC == 0) Baud_PLC = 19200; + if (Baud_XBE == 0) Baud_XBE = 9600; + if (Baud_BAT == 0) Baud_BAT = 9600; + + + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + + public void CopyTo(CSetting dest) + { + //이곳의 모든 쓰기가능한 속성값을 대상에 써준다. + Type thClass = this.GetType(); + foreach (var method in thClass.GetMethods()) + { + //var parameters = method.GetParameters(); + if (!method.Name.StartsWith("get_")) continue; + + string keyname = method.Name.Substring(4); + string methodName = method.Name; + + object odata = GetType().GetMethod(methodName).Invoke(this, null); + var wMethod = dest.GetType().GetMethod(Convert.ToString("set_") + keyname); + if (wMethod != null) wMethod.Invoke(dest, new object[] { odata }); + } + } + } + + + public class CounterSetting : AR.Setting, INotifyPropertyChanged + { + public DateTime CountReset { get; set; } + + public event PropertyChangedEventHandler PropertyChanged; + private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + private int countUp1 = 0; + private int countUp2 = 0; + private int countUp3 = 0; + private int countUp4 = 0; + // private int countUp5 = 0; + private int countchgaerr = 0; + private int countchga = 0; + private int countchgm = 0; + //private int countdn = 0; + private int countqa = 0; + private int countqc = 0; + + //메인카운터 + public int CountUp1 + { + get { return countUp1; } + set { if (value != countUp1) { countUp1 = value; NotifyPropertyChanged(); } } + } + public int CountUp2 + { + get { return countUp2; } + set { if (value != countUp2) { countUp2 = value; NotifyPropertyChanged(); } } + } + public int CountUp3 + { + get { return countUp3; } + set { if (value != countUp3) { countUp3 = value; NotifyPropertyChanged(); } } + } + public int CountUp4 + { + get { return countUp4; } + set { if (value != countUp4) { countUp4 = value; NotifyPropertyChanged(); } } + } + //public int CountUp5 + //{ + // get { return countUp5; } + // set { if (value != countUp5) { countUp5 = value; NotifyPropertyChanged(); } } + //} + + /// + /// 상차수량(FVI 1+2+3+4) + /// + public int CountUp + { + get + { + return CountUp1 + CountUp2 + CountUp3 + CountUp4;// + CountUp5; + } + } + + public int CountChargeE + { + get { return this.countchgaerr; } + set { if (value != countchgaerr) { countchgaerr = value; NotifyPropertyChanged(); } } + } + public int CountChargeA + { + get { return this.countchga; } + set { if (value != countchga) { countchga = value; NotifyPropertyChanged(); } } + } + public int CountChargeM + { + get { return this.countchgm; } + set { if (value != countchgm) { countchgm = value; NotifyPropertyChanged(); } } + } + + /// + /// 하차수량(QC+QA) + /// + public int CountDn + { + get { return this.countqa + this.countqc; } + //set { if (value != countdn) { countdn = value; NotifyPropertyChanged(); } } + } + public int CountQA + { + get { return this.countqa; } + set { if (value != countqa) { countqa = value; NotifyPropertyChanged(); } } + } + public int CountQC + { + get { return this.countqc; } + set { if (value != countqc) { countqc = value; NotifyPropertyChanged(); } } + } + public void CountClear() + { + CountUp1 = 0; + CountUp2 = 0; + CountUp3 = 0; + CountUp4 = 0; + // CountUp5 = 0; + CountQC = 0; + CountQA = 0; + //CountQa2 = 0; + CountReset = DateTime.Now; + PUB.log.Add("Count Clear"); + this.Save(); + } + + public CounterSetting() + { + this.filename = AR.UTIL.CurrentPath + "counter.xml"; + } + public override void AfterLoad() + { + if (CountReset == null) CountReset = DateTime.Parse("1982-11-23"); + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } + +} diff --git a/Cs_HMI/Project/Class/CParser.cs b/HMI/Project/Class/CParser.cs similarity index 98% rename from Cs_HMI/Project/Class/CParser.cs rename to HMI/Project/Class/CParser.cs index e086661..63c0771 100644 --- a/Cs_HMI/Project/Class/CParser.cs +++ b/HMI/Project/Class/CParser.cs @@ -1,926 +1,926 @@ -//using System; -//using System.Collections.Generic; -//using System.Diagnostics; -//using System.Globalization; -//using System.IO; -//using System.Linq; -//using System.Reflection; -//using System.Runtime.CompilerServices; -//using System.Security; -//using System.Text; -//using System.Threading.Tasks; -//using System.Collections; - -//namespace Project -//{ -// public class CParser -// { -// private string SrcText; -// private ArrayList CommandList; // //여기엔 Scommand 가 들어있다. -// private System.Text.StringBuilder ErrMsg; -// // Public Log As System.Text.StringBuilder - -// public event MessageEventHandler Message; -// public void raiseMessage(string m, Boolean err) -// { -// if (Message != null) Message(m, err); -// } -// public delegate void MessageEventHandler(string M, bool Err); - -// public CParser() -// { - -// } - -// public new string toString -// { -// get -// { -// if (this.isError == false) -// { -// object Value = ParseCommand(SrcText, true); -// return Value.ToString(); -// } -// return ""; -// } -// } -// public new object GetData -// { -// get -// { -// if (this.isError == false) -// { -// object Value = ParseCommand(SrcText, true); -// return Value; -// } -// return null; -// } -// } -// public bool isError -// { -// get -// { -// if (this.ErrMsg.ToString() != "") -// return true; -// else -// return false; -// } -// } -// private void Check_error(string vSrcText) -// { -// // Return '//임시로 해제 - -// int Lcnt = 0; -// int Rcnt = 0; - -// ErrMsg = new System.Text.StringBuilder(); - -// return; // -// foreach (string EXP_ in vSrcText.Split(';')) // //각명령을 ;로 구분되어잇기떄문에 구분됫것들이 각자의 명령이다. -// { -// var EXP = EXP_.Trim(); -// Lcnt = EXP.ToCharArray().Where(t => t == '(').Count();// MyString.GetInCountChar(EXP, "("); // //파라미터 시작갯수 -// Rcnt = EXP.ToCharArray().Where(t => t == ')').Count();// MyString.GetInCountChar(EXP, ")"); // //파라미터 종료갯수 -// if (Lcnt != Rcnt) -// ErrMsg.AppendLine(EXP + "파라미터 시작기호 ( 와 종료기호 ) 가 일치하지 않습니다"); -// Lcnt = EXP.ToCharArray().Where(t => t == '"').Count();// MyString.GetInCountChar(EXP, Strings.Chr(34)); // //파라미터 시작갯수 -// Rcnt = EXP.ToCharArray().Where(t => t == '"').Count();// MyString.GetInCountChar(EXP, Strings.Chr(34)); // //파라미터 종료갯수 -// if (Lcnt != Rcnt) -// ErrMsg.AppendLine(EXP + "문자열묶음기호(\")가 일치하지 않습니다"); -// } -// } - -// public virtual void CommandText(string s) -// { -// SrcText = s; -// Check_error(SrcText); -// if (this.isError) -// UTIL.MsgE(ErrMsg.ToString());// Interaction.MsgBox(ErrMsg.ToString(), MsgBoxStyle.Critical, "오류"); -// } - -// protected string Buffer1 = ""; -// protected string Buffer2 = ""; -// protected string Buffer3 = ""; -// protected string Buffer4 = ""; - -// private object ParseCommand(string vSrcText, bool isfirst, object NEwValue = null) -// { -// // //각명령어를 쪼갠다. -// // //중첩명령어의 경우에도 쪼갠다. - -// // Dim Cmd As String '//명령어 -// // Dim Param As String '//명렁파라미터 -// // Dim target As String '//타겏값 -// // Dim Str As String -// // Dim Line As String - -// if (isfirst) -// this.CommandList = new ArrayList();// //처음에만 이것을 초기화한다. - -// vSrcText = vSrcText.Replace("\r\n","\n");//Constants.vbCrLf, Constants.vbLf); -// vSrcText = vSrcText.Replace("\r","\n");//Constants.vbCr, Constants.vbLf); -// vSrcText = vSrcText.Replace("\n\n","\n");//Constants.vbLf + Constants.vbLf, Constants.vbLf); -// vSrcText = vSrcText.Replace(";","\n");// Constants.vbLf); - -// raiseMessage("Command Expression : " + vSrcText, false); -// foreach (string EXP_ in vSrcText.Split('\n')) // //각명령을 ;로 구분되어잇기떄문에 구분됫것들이 각자의 명령이다. -// { -// if (EXP_.Trim() == "") -// continue; -// if (EXP_.Length < 3) -// continue; -// if (EXP_.Substring(0, 2) == "//") -// continue; - -// // Me.Log.AppendLine("New Line Value is : " & NEwValue.ToString) - -// var EXP = EXP_.Trim(); -// bool CmdFind = false; // //명령어를다 찾앗는가? -// bool ParamFind = false; -// System.Text.StringBuilder NewParam = new System.Text.StringBuilder(); -// bool Isfunction = false; -// bool IsFunctionEnd = false; -// short InnerFuncCnt = 0; -// System.Text.StringBuilder NewCmd = new System.Text.StringBuilder(); -// ArrayList ParamList = new ArrayList(); -// bool IsTextInner = false; - -// if (EXP != "") -// { - -// // My.Computer.FileSystem.WriteAllText("c:\command.txT", "expressiong=" & EXP, True) - -// if (EXP.Substring(0, 1) == "\"")//Strings.Chr(34)) -// NEwValue = EXP; // //해당문자자체가 값이된다. -// else -// // //파라미터란 ()사이의 명령어이며, 콤마(,)로 분리된다 -// // //단 "" 사이의 콤마는 인정하지않는다. - -// foreach (char C in EXP.ToCharArray()) -// { -// if (CmdFind == false) -// { -// if (C == '(') -// CmdFind = true; -// else -// NewCmd.Append(C); -// } -// else -// switch (C) -// { -// case ',': -// { -// if (IsTextInner) -// NewParam.Append(C); -// else if (Isfunction == false) -// { -// if (IsFunctionEnd) -// ParamList.Add(NewParam.ToString()); // //파라미터를 찾았으므로 파람리스트에 추가한다. -// else -// ParamList.Add(NewParam.ToString());// //파라미터를 찾았으므로 파람리스트에 추가한다. -// NewParam = new System.Text.StringBuilder(); // //파라미터부분 초기화 -// IsFunctionEnd = false; -// } -// else -// NewParam.Append(C); -// break; -// } - -// case '(': -// { -// if (IsTextInner) -// NewParam.Append(C); -// else if (Isfunction) -// { -// InnerFuncCnt += 1; -// NewParam.Append(C); -// } -// else -// { -// Isfunction = true; // //이파라미터가 또 함수를 가지고있다 ㅠ_ㅠ; -// NewParam.Append(C); -// } - -// break; -// } - -// case ')': -// { -// if (IsTextInner) -// NewParam.Append(C); -// else if (Isfunction) -// { -// if (InnerFuncCnt > 0) -// { -// InnerFuncCnt -= 1; -// NewParam.Append(C); -// } -// else -// { -// Isfunction = false; // //이파라미터가 또 함수를 가지고있다 ㅠ_ㅠ; -// IsFunctionEnd = true; -// NewParam.Append(C); -// } -// } -// else -// { -// if (NewParam.ToString() != "") -// ParamList.Add(NewParam.ToString()); // //파라미터를 찾았으므로 파람리스트에 추가한다. -// NewParam = new System.Text.StringBuilder(); // //파라미터부분 초기화 -// IsFunctionEnd = false; - -// // MsgBox("명령어실행 : " & NewCmd.ToString) -// // //각 파라미터들의 값을 가져온다 -// raiseMessage("New COmmand : " + NewCmd.ToString() + " paramCount=" + ParamList.Count, false); -// switch (NewCmd.ToString().ToUpper()) -// { -// case "MUL": -// { -// if (ParamList.Count != 2) -// raiseMessage("MUL 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// // Me.Log.AppendLine("MUL " & Param1 & vbTab & Param2) - -// if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false) -// // Me.Log.AppendLine("MUL param error support only number") -// return 0; -// else -// NEwValue = System.Convert.ToDecimal(Param1) * System.Convert.ToDecimal(Param2); -// } - -// break; -// } - -// case "PLUS": -// { -// if (ParamList.Count != 2) -// raiseMessage("PLUS 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); - -// if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false) -// return 0; -// else -// NEwValue = System.Convert.ToDecimal(Param1) + System.Convert.ToDecimal(Param2); -// } - -// break; -// } - -// case "MINUS": -// { -// if (ParamList.Count != 2) -// raiseMessage("MINUS 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// // Me.Log.AppendLine("PLUS " & Param1 & vbTab & Param2) -// if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false ) -// // Me.Log.AppendLine("MINUS param error support only number") -// return 0; -// else -// NEwValue = System.Convert.ToDecimal(Param1) - System.Convert.ToDecimal(Param2); -// } - -// break; -// } - -// case "ISEQULE": -// case "EQ" // //둘이 같은지 반환해준다. -// : -// { -// if (ParamList.Count != 2) -// raiseMessage("ISEQULE 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// // MsgBox(ParamList[1].ToString & "/" & NewValue) -// // Me.Log.AppendLine("ISEQULE " & Param1 & vbTab & Param2) -// if (Param1 != Param2) -// { -// raiseMessage("ISEQULE RETURN FALSE", true); -// return false; -// } -// else -// { -// raiseMessage("ISEQULE RETURN TRUE", true); -// return true; -// } -// } - -// break; -// } - -// case "NEQ": -// case "DIFF" // //둘이 다르면 true 반환해준다. -// : -// { -// if (ParamList.Count != 2) -// raiseMessage("DIFF(NEQ) 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// // MsgBox(ParamList[1].ToString & "/" & NewValue) -// // Me.Log.AppendLine("ISEQULE " & Param1 & vbTab & Param2) -// if (Param1 != Param2) -// { -// raiseMessage("DIFF RETURN True", true); -// return true; -// } -// else -// { -// raiseMessage("DIFF RETURN False", true); -// return false; -// } -// } - -// break; -// } - -// case "IF": -// { -// if (ParamList.Count != 2) -// raiseMessage("IF 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// if (Param1.ToString().ToLower() != Param2.ToString().ToLower()) -// { -// raiseMessage("IF문 조건이 서로 다르므로 실행을 종료합니다.", false); -// return ""; // //해당구문전체를 모두 FALSE한다. -// } -// else -// // RaiseEvent RaiseMessage("IF문 조건이 동일 True Case IN(" & Param1 & " " & Param2 & ")") -// Console.WriteLine("sdf"); -// } - -// break; -// } - -// case "IFNOT": -// { -// if (ParamList.Count != 2) -// raiseMessage("IFNOT 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// if (Param1 == Param2) -// { -// raiseMessage("IF문 조건이 서로 같으므로 실행을 종료합니다.", true); -// return ""; // //해당구문전체를 모두 FALSE한다. -// } -// else -// { -// } -// } - -// break; -// } - -// case "MSGBOX": -// case "MSG": -// { -// if (ParamList.Count != 1) -// raiseMessage("MSGBOX 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// UTIL.MsgE(Param1, MsgBoxStyle.Information, "확인"); -// } - -// break; -// } - -// case "ISNUM": -// { -// if (ParamList.Count != 1) -// raiseMessage("ISNUM 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = Information.IsNumeric(Param1); -// } - -// break; -// } - -// case "NVL": -// { -// if (ParamList.Count != 2) -// raiseMessage("ISEMPTY 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// if (Param1.Trim() == "") -// NEwValue = Param2; -// else -// NEwValue = Param1; -// } - -// break; -// } - -// case "INDEXOF": -// { -// if (ParamList.Count != 2) -// raiseMessage("INDEXOF 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// NEwValue = Param1.IndexOf(Param2) + 1; -// } - -// break; -// } - -// case "LINDEXOF": -// { -// if (ParamList.Count != 2) -// raiseMessage("LINDEXOF 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// NEwValue = Param1.LastIndexOf(Param2) + 1; -// } - -// break; -// } - -// case "REPLACE": -// { -// if (ParamList.Count != 3) -// raiseMessage("REPLACE 함수에 3개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// object Param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); -// NEwValue = Param1.ToString().Replace(Param2, Param3); -// } - -// break; -// } - -// case "REMOVECHAR": -// { -// if (ParamList.Count != 2) -// raiseMessage("REMOVESPACE 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// NEwValue = Param1.Trim(Param2.ToCharArray()).ToString().Trim(); -// } - -// break; -// } - -// case "REMOVESCHAR" // //특수기호삭제한다. -// : -// { -// if (ParamList.Count != 1) -// raiseMessage("REMOVESCHAR 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// System.Text.StringBuilder NewString = new System.Text.StringBuilder(); -// foreach (char Cc in Param1.ToCharArray()) -// { -// switch (Strings.Asc(Cc)) -// { -// case object _ when 65 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 90: -// case object _ when 48 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 57: -// case object _ when 97 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 122: -// case object _ when Strings.Asc(Cc) < 0: -// case 32: -// { -// NewString.Append(Cc); -// break; -// } -// } -// } -// NEwValue = NewString.ToString(); -// } - -// break; -// } - -// case "REMOVESPACE": -// { -// if (ParamList.Count != 1) -// raiseMessage("REMOVESPACE 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = Param1.Replace(Strings.Space(1), Constants.vbNullString); -// } - -// break; -// } - -// case "TOUPPER": -// { -// if (ParamList.Count != 1) -// raiseMessage("TOUPPER 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = Param1.ToUpper(); -// } - -// break; -// } - -// case "TRIM": -// { -// if (ParamList.Count != 1) -// raiseMessage("TRIM 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = Param1.Trim(); -// } - -// break; -// } - -// case "TOLOWER": -// { -// if (ParamList.Count != 1) -// raiseMessage("TOLOWER 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = Param1.ToLower(); -// } - -// break; -// } - -// case "LENB": -// { -// if (ParamList.Count != 1) -// raiseMessage("LENB 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = System.Text.Encoding.Default.GetByteCount(Param1.ToString()); -// } - -// break; -// } - -// case "LEN": -// { -// if (ParamList.Count != 1) -// raiseMessage("LEN 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = Param1.Length; -// } - -// break; -// } - -// case "RIGHTADD": -// case "ADDRIGHT": -// { -// if (ParamList.Count != 2) -// raiseMessage("RIGHTADD 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// NEwValue = Param1 + Param2; -// } - -// break; -// } - -// case "ADDNUM": -// { -// if (ParamList.Count != 2) -// raiseMessage("ADDNUM 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// NEwValue = Param1 + Param2; -// } - -// break; -// } - -// case "LEFTADD": -// case "ADDLEFT": -// { -// if (ParamList.Count != 2) -// raiseMessage("LEFTADD 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// NEwValue = Param2 + Param1; -// } - -// break; -// } - -// case "TODATE": -// { -// if (ParamList.Count != 1) -// raiseMessage("TODATE 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = ((DateTime)Param1); -// } - -// break; -// } - -// case "TOSTRING": -// { -// if (ParamList.Count != 1) -// raiseMessage("TOSTRING 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = (System.Convert.ToString(Param1)); -// } - -// break; -// } - -// case "TOINT": -// { -// if (ParamList.Count != 1) -// raiseMessage("TOINT 함수에 1개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// NEwValue = Param1; -// } - -// break; -// } - -// case "NOW": -// { -// NEwValue = DateTime.Now; -// break; -// } - -// case "SUBSTRING": -// case "SUBSTR" // //2개의 파라미터를 사용한다. -// : -// { -// if (ParamList.Count < 2) -// raiseMessage("SUBSTRING 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// object param3 = ""; -// if (ParamList.Count == 3) -// param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); -// if (Param1.Trim() == "" || Information.IsNumeric(Param2) == false || System.Convert.ToInt32(Param2) < 0) -// NEwValue = ""; -// else if (param3 != "") -// { -// // //길이를 참고한다. 너무 긴건 처리하지 못하므로 -// if (System.Convert.ToInt32(Param2) + System.Convert.ToInt32(param3) > Param1.Length) -// NEwValue = Param1.Substring(Param2, (Param1.Length - System.Convert.ToInt32(Param2))); -// else -// NEwValue = Param1.Substring(Param2, param3); -// } -// else -// NEwValue = Param1.Substring(Param2); -// } - -// break; -// } - -// case "SAVE1": -// { -// if (ParamList.Count < 1) -// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// Buffer1 = Param1; -// } - -// break; -// } - -// case "SAVE2": -// { -// if (ParamList.Count < 1) -// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// Buffer2 = Param1; -// } - -// break; -// } - -// case "SAVE3": -// { -// if (ParamList.Count < 1) -// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// Buffer3 = Param1; -// } - -// break; -// } - -// case "SAVE4": -// { -// if (ParamList.Count < 1) -// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// Buffer4 = Param1; -// } - -// break; -// } - -// case "LEFT" // //2개의 파라미터를 사용한다. -// : -// { -// if (ParamList.Count != 2) -// raiseMessage("LEFT 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// NEwValue = Strings.Left(Param1, Param2); -// } - -// break; -// } - -// case "RIGHT" // //2개의 파라미터를 사용한다. -// : -// { -// if (ParamList.Count != 2) -// raiseMessage("RIGHT 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// var Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()).ToString(); -// var Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()).ToString(); -// NEwValue = Param1.Substring(Param1.Length-int.Parse(Param2));// Strings.Right(Param1, Param2); -// } - -// break; -// } - -// case "MID": // //2개의 파라미터를 사용한다. -// { -// if (ParamList.Count != 3) -// raiseMessage("MID 함수에 3개의 파라미터가 없습니다", true); -// else -// { -// var Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// var Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); -// var Param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); -// if (Param2 == "-1" || int.Parse(Param3.ToString()) < 1) -// { -// raiseMessage("MID 함수의 시작위치값은 0이상이여야합니다\nMID 함수의 추출길이는 1이상이여야합니다", true); -// NEwValue = ""; -// } -// else -// NEwValue = Param1.ToString().Substring(int.Parse(Param2.ToString()), int.Parse(Param3.ToString())); -// } - -// break; -// } - -// case "FORMAT": -// { -// if (ParamList.Count != 2) -// raiseMessage("FORMAT 함수에 2개의 파라미터가 없습니다", true); -// else -// { -// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); -// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); - -// // MsgBox(Param1 & "/" & Param2) -// if(Param1.GetType()== typeof(int)) -// NEwValue = ((int)Param1).ToString(Param2.ToString()); -// else -// NEwValue = Param1.ToString(); -// } - -// break; -// } - -// default: -// { -// //raiseMessage("미지원 함수 입니다") -// raiseMessage("미지원 : " + NewCmd.ToString(),true); -// break; -// } -// } -// } - -// break; -// } - -// default: -// { -// if (C == '"') -// { -// IsTextInner = !IsTextInner; -// NewParam.Append(C); -// } -// else if (IsFunctionEnd) -// raiseMessage("내부한수 종결문다음에 , 가 와야하는데 " + C + "가 왔습니다", true); -// else -// NewParam.Append(C); -// break; -// } -// } -// } -// } -// } -// // Me.Log.AppendLine("ParseCOmmand Return : " & NEwValue.ToString) -// return NEwValue; -// } - -// public object RunParam(string vParam, string SrcValue) -// { -// // My.Computer.FileSystem.WriteAllText("c:\log.txT", "runparam param=" & vParam, True) -// vParam = vParam.Trim(); -// if (vParam == "") -// return ""; -// if (vParam.Substring(0, 1) == "\"") -// return vParam.Replace("\"", ""); -// if (vParam.ToUpper() == "TRUE") -// return true; -// if (vParam.ToUpper() == "FALSE") -// return false; - -// // //시작값이 숫자라면 이건 숫자값이다. -// if (vParam.Substring(0, 1).IsNumeric() == true) -// return vParam; - -// // //시작값이 # 라면 원본 데이터이다. -// if (vParam == "#") -// return SrcValue; -// if (vParam == "#1") -// return Buffer1; -// if (vParam == "#2") -// return Buffer2; -// if (vParam == "#3") -// return Buffer3; -// if (vParam == "#4") -// return Buffer4; - -// // //시작값이 숫자도 일반 문자도 공백도 아니라면 영문단어이다. -// // // ( 가 있다면 함수이므로 함수를 실행한다. -// switch (vParam.ToUpper()) -// { -// case "NOW" // //date 타입을 반환한다. -// : -// { -// return DateTime.Now; -// } - -// default: -// { -// if (vParam.IndexOf("(") != -1) -// return this.ParseCommand(vParam, false, SrcValue); -// else -// return "";// return RunUnknown(vParam, SrcValue);// //비지원 목록으로 반환한다. -// break; -// } -// } -// return ""; -// } - -// } -//} - +//using System; +//using System.Collections.Generic; +//using System.Diagnostics; +//using System.Globalization; +//using System.IO; +//using System.Linq; +//using System.Reflection; +//using System.Runtime.CompilerServices; +//using System.Security; +//using System.Text; +//using System.Threading.Tasks; +//using System.Collections; + +//namespace Project +//{ +// public class CParser +// { +// private string SrcText; +// private ArrayList CommandList; // //여기엔 Scommand 가 들어있다. +// private System.Text.StringBuilder ErrMsg; +// // Public Log As System.Text.StringBuilder + +// public event MessageEventHandler Message; +// public void raiseMessage(string m, Boolean err) +// { +// if (Message != null) Message(m, err); +// } +// public delegate void MessageEventHandler(string M, bool Err); + +// public CParser() +// { + +// } + +// public new string toString +// { +// get +// { +// if (this.isError == false) +// { +// object Value = ParseCommand(SrcText, true); +// return Value.ToString(); +// } +// return ""; +// } +// } +// public new object GetData +// { +// get +// { +// if (this.isError == false) +// { +// object Value = ParseCommand(SrcText, true); +// return Value; +// } +// return null; +// } +// } +// public bool isError +// { +// get +// { +// if (this.ErrMsg.ToString() != "") +// return true; +// else +// return false; +// } +// } +// private void Check_error(string vSrcText) +// { +// // Return '//임시로 해제 + +// int Lcnt = 0; +// int Rcnt = 0; + +// ErrMsg = new System.Text.StringBuilder(); + +// return; // +// foreach (string EXP_ in vSrcText.Split(';')) // //각명령을 ;로 구분되어잇기떄문에 구분됫것들이 각자의 명령이다. +// { +// var EXP = EXP_.Trim(); +// Lcnt = EXP.ToCharArray().Where(t => t == '(').Count();// MyString.GetInCountChar(EXP, "("); // //파라미터 시작갯수 +// Rcnt = EXP.ToCharArray().Where(t => t == ')').Count();// MyString.GetInCountChar(EXP, ")"); // //파라미터 종료갯수 +// if (Lcnt != Rcnt) +// ErrMsg.AppendLine(EXP + "파라미터 시작기호 ( 와 종료기호 ) 가 일치하지 않습니다"); +// Lcnt = EXP.ToCharArray().Where(t => t == '"').Count();// MyString.GetInCountChar(EXP, Strings.Chr(34)); // //파라미터 시작갯수 +// Rcnt = EXP.ToCharArray().Where(t => t == '"').Count();// MyString.GetInCountChar(EXP, Strings.Chr(34)); // //파라미터 종료갯수 +// if (Lcnt != Rcnt) +// ErrMsg.AppendLine(EXP + "문자열묶음기호(\")가 일치하지 않습니다"); +// } +// } + +// public virtual void CommandText(string s) +// { +// SrcText = s; +// Check_error(SrcText); +// if (this.isError) +// UTIL.MsgE(ErrMsg.ToString());// Interaction.MsgBox(ErrMsg.ToString(), MsgBoxStyle.Critical, "오류"); +// } + +// protected string Buffer1 = ""; +// protected string Buffer2 = ""; +// protected string Buffer3 = ""; +// protected string Buffer4 = ""; + +// private object ParseCommand(string vSrcText, bool isfirst, object NEwValue = null) +// { +// // //각명령어를 쪼갠다. +// // //중첩명령어의 경우에도 쪼갠다. + +// // Dim Cmd As String '//명령어 +// // Dim Param As String '//명렁파라미터 +// // Dim target As String '//타겏값 +// // Dim Str As String +// // Dim Line As String + +// if (isfirst) +// this.CommandList = new ArrayList();// //처음에만 이것을 초기화한다. + +// vSrcText = vSrcText.Replace("\r\n","\n");//Constants.vbCrLf, Constants.vbLf); +// vSrcText = vSrcText.Replace("\r","\n");//Constants.vbCr, Constants.vbLf); +// vSrcText = vSrcText.Replace("\n\n","\n");//Constants.vbLf + Constants.vbLf, Constants.vbLf); +// vSrcText = vSrcText.Replace(";","\n");// Constants.vbLf); + +// raiseMessage("Command Expression : " + vSrcText, false); +// foreach (string EXP_ in vSrcText.Split('\n')) // //각명령을 ;로 구분되어잇기떄문에 구분됫것들이 각자의 명령이다. +// { +// if (EXP_.Trim() == "") +// continue; +// if (EXP_.Length < 3) +// continue; +// if (EXP_.Substring(0, 2) == "//") +// continue; + +// // Me.Log.AppendLine("New Line Value is : " & NEwValue.ToString) + +// var EXP = EXP_.Trim(); +// bool CmdFind = false; // //명령어를다 찾앗는가? +// bool ParamFind = false; +// System.Text.StringBuilder NewParam = new System.Text.StringBuilder(); +// bool Isfunction = false; +// bool IsFunctionEnd = false; +// short InnerFuncCnt = 0; +// System.Text.StringBuilder NewCmd = new System.Text.StringBuilder(); +// ArrayList ParamList = new ArrayList(); +// bool IsTextInner = false; + +// if (EXP != "") +// { + +// // My.Computer.FileSystem.WriteAllText("c:\command.txT", "expressiong=" & EXP, True) + +// if (EXP.Substring(0, 1) == "\"")//Strings.Chr(34)) +// NEwValue = EXP; // //해당문자자체가 값이된다. +// else +// // //파라미터란 ()사이의 명령어이며, 콤마(,)로 분리된다 +// // //단 "" 사이의 콤마는 인정하지않는다. + +// foreach (char C in EXP.ToCharArray()) +// { +// if (CmdFind == false) +// { +// if (C == '(') +// CmdFind = true; +// else +// NewCmd.Append(C); +// } +// else +// switch (C) +// { +// case ',': +// { +// if (IsTextInner) +// NewParam.Append(C); +// else if (Isfunction == false) +// { +// if (IsFunctionEnd) +// ParamList.Add(NewParam.ToString()); // //파라미터를 찾았으므로 파람리스트에 추가한다. +// else +// ParamList.Add(NewParam.ToString());// //파라미터를 찾았으므로 파람리스트에 추가한다. +// NewParam = new System.Text.StringBuilder(); // //파라미터부분 초기화 +// IsFunctionEnd = false; +// } +// else +// NewParam.Append(C); +// break; +// } + +// case '(': +// { +// if (IsTextInner) +// NewParam.Append(C); +// else if (Isfunction) +// { +// InnerFuncCnt += 1; +// NewParam.Append(C); +// } +// else +// { +// Isfunction = true; // //이파라미터가 또 함수를 가지고있다 ㅠ_ㅠ; +// NewParam.Append(C); +// } + +// break; +// } + +// case ')': +// { +// if (IsTextInner) +// NewParam.Append(C); +// else if (Isfunction) +// { +// if (InnerFuncCnt > 0) +// { +// InnerFuncCnt -= 1; +// NewParam.Append(C); +// } +// else +// { +// Isfunction = false; // //이파라미터가 또 함수를 가지고있다 ㅠ_ㅠ; +// IsFunctionEnd = true; +// NewParam.Append(C); +// } +// } +// else +// { +// if (NewParam.ToString() != "") +// ParamList.Add(NewParam.ToString()); // //파라미터를 찾았으므로 파람리스트에 추가한다. +// NewParam = new System.Text.StringBuilder(); // //파라미터부분 초기화 +// IsFunctionEnd = false; + +// // MsgBox("명령어실행 : " & NewCmd.ToString) +// // //각 파라미터들의 값을 가져온다 +// raiseMessage("New COmmand : " + NewCmd.ToString() + " paramCount=" + ParamList.Count, false); +// switch (NewCmd.ToString().ToUpper()) +// { +// case "MUL": +// { +// if (ParamList.Count != 2) +// raiseMessage("MUL 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// // Me.Log.AppendLine("MUL " & Param1 & vbTab & Param2) + +// if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false) +// // Me.Log.AppendLine("MUL param error support only number") +// return 0; +// else +// NEwValue = System.Convert.ToDecimal(Param1) * System.Convert.ToDecimal(Param2); +// } + +// break; +// } + +// case "PLUS": +// { +// if (ParamList.Count != 2) +// raiseMessage("PLUS 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); + +// if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false) +// return 0; +// else +// NEwValue = System.Convert.ToDecimal(Param1) + System.Convert.ToDecimal(Param2); +// } + +// break; +// } + +// case "MINUS": +// { +// if (ParamList.Count != 2) +// raiseMessage("MINUS 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// // Me.Log.AppendLine("PLUS " & Param1 & vbTab & Param2) +// if (Param1.ToString().IsNumeric()==false || Param2.ToString().IsNumeric()==false ) +// // Me.Log.AppendLine("MINUS param error support only number") +// return 0; +// else +// NEwValue = System.Convert.ToDecimal(Param1) - System.Convert.ToDecimal(Param2); +// } + +// break; +// } + +// case "ISEQULE": +// case "EQ" // //둘이 같은지 반환해준다. +// : +// { +// if (ParamList.Count != 2) +// raiseMessage("ISEQULE 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// // MsgBox(ParamList[1].ToString & "/" & NewValue) +// // Me.Log.AppendLine("ISEQULE " & Param1 & vbTab & Param2) +// if (Param1 != Param2) +// { +// raiseMessage("ISEQULE RETURN FALSE", true); +// return false; +// } +// else +// { +// raiseMessage("ISEQULE RETURN TRUE", true); +// return true; +// } +// } + +// break; +// } + +// case "NEQ": +// case "DIFF" // //둘이 다르면 true 반환해준다. +// : +// { +// if (ParamList.Count != 2) +// raiseMessage("DIFF(NEQ) 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// // MsgBox(ParamList[1].ToString & "/" & NewValue) +// // Me.Log.AppendLine("ISEQULE " & Param1 & vbTab & Param2) +// if (Param1 != Param2) +// { +// raiseMessage("DIFF RETURN True", true); +// return true; +// } +// else +// { +// raiseMessage("DIFF RETURN False", true); +// return false; +// } +// } + +// break; +// } + +// case "IF": +// { +// if (ParamList.Count != 2) +// raiseMessage("IF 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// if (Param1.ToString().ToLower() != Param2.ToString().ToLower()) +// { +// raiseMessage("IF문 조건이 서로 다르므로 실행을 종료합니다.", false); +// return ""; // //해당구문전체를 모두 FALSE한다. +// } +// else +// // RaiseEvent RaiseMessage("IF문 조건이 동일 True Case IN(" & Param1 & " " & Param2 & ")") +// Console.WriteLine("sdf"); +// } + +// break; +// } + +// case "IFNOT": +// { +// if (ParamList.Count != 2) +// raiseMessage("IFNOT 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// if (Param1 == Param2) +// { +// raiseMessage("IF문 조건이 서로 같으므로 실행을 종료합니다.", true); +// return ""; // //해당구문전체를 모두 FALSE한다. +// } +// else +// { +// } +// } + +// break; +// } + +// case "MSGBOX": +// case "MSG": +// { +// if (ParamList.Count != 1) +// raiseMessage("MSGBOX 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// UTIL.MsgE(Param1, MsgBoxStyle.Information, "확인"); +// } + +// break; +// } + +// case "ISNUM": +// { +// if (ParamList.Count != 1) +// raiseMessage("ISNUM 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = Information.IsNumeric(Param1); +// } + +// break; +// } + +// case "NVL": +// { +// if (ParamList.Count != 2) +// raiseMessage("ISEMPTY 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// if (Param1.Trim() == "") +// NEwValue = Param2; +// else +// NEwValue = Param1; +// } + +// break; +// } + +// case "INDEXOF": +// { +// if (ParamList.Count != 2) +// raiseMessage("INDEXOF 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// NEwValue = Param1.IndexOf(Param2) + 1; +// } + +// break; +// } + +// case "LINDEXOF": +// { +// if (ParamList.Count != 2) +// raiseMessage("LINDEXOF 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// NEwValue = Param1.LastIndexOf(Param2) + 1; +// } + +// break; +// } + +// case "REPLACE": +// { +// if (ParamList.Count != 3) +// raiseMessage("REPLACE 함수에 3개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// object Param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); +// NEwValue = Param1.ToString().Replace(Param2, Param3); +// } + +// break; +// } + +// case "REMOVECHAR": +// { +// if (ParamList.Count != 2) +// raiseMessage("REMOVESPACE 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// NEwValue = Param1.Trim(Param2.ToCharArray()).ToString().Trim(); +// } + +// break; +// } + +// case "REMOVESCHAR" // //특수기호삭제한다. +// : +// { +// if (ParamList.Count != 1) +// raiseMessage("REMOVESCHAR 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// System.Text.StringBuilder NewString = new System.Text.StringBuilder(); +// foreach (char Cc in Param1.ToCharArray()) +// { +// switch (Strings.Asc(Cc)) +// { +// case object _ when 65 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 90: +// case object _ when 48 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 57: +// case object _ when 97 <= Strings.Asc(Cc) && Strings.Asc(Cc) <= 122: +// case object _ when Strings.Asc(Cc) < 0: +// case 32: +// { +// NewString.Append(Cc); +// break; +// } +// } +// } +// NEwValue = NewString.ToString(); +// } + +// break; +// } + +// case "REMOVESPACE": +// { +// if (ParamList.Count != 1) +// raiseMessage("REMOVESPACE 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = Param1.Replace(Strings.Space(1), Constants.vbNullString); +// } + +// break; +// } + +// case "TOUPPER": +// { +// if (ParamList.Count != 1) +// raiseMessage("TOUPPER 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = Param1.ToUpper(); +// } + +// break; +// } + +// case "TRIM": +// { +// if (ParamList.Count != 1) +// raiseMessage("TRIM 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = Param1.Trim(); +// } + +// break; +// } + +// case "TOLOWER": +// { +// if (ParamList.Count != 1) +// raiseMessage("TOLOWER 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = Param1.ToLower(); +// } + +// break; +// } + +// case "LENB": +// { +// if (ParamList.Count != 1) +// raiseMessage("LENB 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = System.Text.Encoding.Default.GetByteCount(Param1.ToString()); +// } + +// break; +// } + +// case "LEN": +// { +// if (ParamList.Count != 1) +// raiseMessage("LEN 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = Param1.Length; +// } + +// break; +// } + +// case "RIGHTADD": +// case "ADDRIGHT": +// { +// if (ParamList.Count != 2) +// raiseMessage("RIGHTADD 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// NEwValue = Param1 + Param2; +// } + +// break; +// } + +// case "ADDNUM": +// { +// if (ParamList.Count != 2) +// raiseMessage("ADDNUM 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// NEwValue = Param1 + Param2; +// } + +// break; +// } + +// case "LEFTADD": +// case "ADDLEFT": +// { +// if (ParamList.Count != 2) +// raiseMessage("LEFTADD 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// NEwValue = Param2 + Param1; +// } + +// break; +// } + +// case "TODATE": +// { +// if (ParamList.Count != 1) +// raiseMessage("TODATE 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = ((DateTime)Param1); +// } + +// break; +// } + +// case "TOSTRING": +// { +// if (ParamList.Count != 1) +// raiseMessage("TOSTRING 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = (System.Convert.ToString(Param1)); +// } + +// break; +// } + +// case "TOINT": +// { +// if (ParamList.Count != 1) +// raiseMessage("TOINT 함수에 1개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// NEwValue = Param1; +// } + +// break; +// } + +// case "NOW": +// { +// NEwValue = DateTime.Now; +// break; +// } + +// case "SUBSTRING": +// case "SUBSTR" // //2개의 파라미터를 사용한다. +// : +// { +// if (ParamList.Count < 2) +// raiseMessage("SUBSTRING 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// object param3 = ""; +// if (ParamList.Count == 3) +// param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); +// if (Param1.Trim() == "" || Information.IsNumeric(Param2) == false || System.Convert.ToInt32(Param2) < 0) +// NEwValue = ""; +// else if (param3 != "") +// { +// // //길이를 참고한다. 너무 긴건 처리하지 못하므로 +// if (System.Convert.ToInt32(Param2) + System.Convert.ToInt32(param3) > Param1.Length) +// NEwValue = Param1.Substring(Param2, (Param1.Length - System.Convert.ToInt32(Param2))); +// else +// NEwValue = Param1.Substring(Param2, param3); +// } +// else +// NEwValue = Param1.Substring(Param2); +// } + +// break; +// } + +// case "SAVE1": +// { +// if (ParamList.Count < 1) +// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// Buffer1 = Param1; +// } + +// break; +// } + +// case "SAVE2": +// { +// if (ParamList.Count < 1) +// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// Buffer2 = Param1; +// } + +// break; +// } + +// case "SAVE3": +// { +// if (ParamList.Count < 1) +// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// Buffer3 = Param1; +// } + +// break; +// } + +// case "SAVE4": +// { +// if (ParamList.Count < 1) +// UTIL.MsgE("SAVE1 함수에 1개의 파라미터가 없습니다"); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// Buffer4 = Param1; +// } + +// break; +// } + +// case "LEFT" // //2개의 파라미터를 사용한다. +// : +// { +// if (ParamList.Count != 2) +// raiseMessage("LEFT 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// NEwValue = Strings.Left(Param1, Param2); +// } + +// break; +// } + +// case "RIGHT" // //2개의 파라미터를 사용한다. +// : +// { +// if (ParamList.Count != 2) +// raiseMessage("RIGHT 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// var Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()).ToString(); +// var Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()).ToString(); +// NEwValue = Param1.Substring(Param1.Length-int.Parse(Param2));// Strings.Right(Param1, Param2); +// } + +// break; +// } + +// case "MID": // //2개의 파라미터를 사용한다. +// { +// if (ParamList.Count != 3) +// raiseMessage("MID 함수에 3개의 파라미터가 없습니다", true); +// else +// { +// var Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// var Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); +// var Param3 = RunParam(ParamList[2].ToString(), NEwValue.ToString()); +// if (Param2 == "-1" || int.Parse(Param3.ToString()) < 1) +// { +// raiseMessage("MID 함수의 시작위치값은 0이상이여야합니다\nMID 함수의 추출길이는 1이상이여야합니다", true); +// NEwValue = ""; +// } +// else +// NEwValue = Param1.ToString().Substring(int.Parse(Param2.ToString()), int.Parse(Param3.ToString())); +// } + +// break; +// } + +// case "FORMAT": +// { +// if (ParamList.Count != 2) +// raiseMessage("FORMAT 함수에 2개의 파라미터가 없습니다", true); +// else +// { +// object Param1 = RunParam(ParamList[0].ToString(), NEwValue.ToString()); +// object Param2 = RunParam(ParamList[1].ToString(), NEwValue.ToString()); + +// // MsgBox(Param1 & "/" & Param2) +// if(Param1.GetType()== typeof(int)) +// NEwValue = ((int)Param1).ToString(Param2.ToString()); +// else +// NEwValue = Param1.ToString(); +// } + +// break; +// } + +// default: +// { +// //raiseMessage("미지원 함수 입니다") +// raiseMessage("미지원 : " + NewCmd.ToString(),true); +// break; +// } +// } +// } + +// break; +// } + +// default: +// { +// if (C == '"') +// { +// IsTextInner = !IsTextInner; +// NewParam.Append(C); +// } +// else if (IsFunctionEnd) +// raiseMessage("내부한수 종결문다음에 , 가 와야하는데 " + C + "가 왔습니다", true); +// else +// NewParam.Append(C); +// break; +// } +// } +// } +// } +// } +// // Me.Log.AppendLine("ParseCOmmand Return : " & NEwValue.ToString) +// return NEwValue; +// } + +// public object RunParam(string vParam, string SrcValue) +// { +// // My.Computer.FileSystem.WriteAllText("c:\log.txT", "runparam param=" & vParam, True) +// vParam = vParam.Trim(); +// if (vParam == "") +// return ""; +// if (vParam.Substring(0, 1) == "\"") +// return vParam.Replace("\"", ""); +// if (vParam.ToUpper() == "TRUE") +// return true; +// if (vParam.ToUpper() == "FALSE") +// return false; + +// // //시작값이 숫자라면 이건 숫자값이다. +// if (vParam.Substring(0, 1).IsNumeric() == true) +// return vParam; + +// // //시작값이 # 라면 원본 데이터이다. +// if (vParam == "#") +// return SrcValue; +// if (vParam == "#1") +// return Buffer1; +// if (vParam == "#2") +// return Buffer2; +// if (vParam == "#3") +// return Buffer3; +// if (vParam == "#4") +// return Buffer4; + +// // //시작값이 숫자도 일반 문자도 공백도 아니라면 영문단어이다. +// // // ( 가 있다면 함수이므로 함수를 실행한다. +// switch (vParam.ToUpper()) +// { +// case "NOW" // //date 타입을 반환한다. +// : +// { +// return DateTime.Now; +// } + +// default: +// { +// if (vParam.IndexOf("(") != -1) +// return this.ParseCommand(vParam, false, SrcValue); +// else +// return "";// return RunUnknown(vParam, SrcValue);// //비지원 목록으로 반환한다. +// break; +// } +// } +// return ""; +// } + +// } +//} + diff --git a/Cs_HMI/Project/Class/CResult.cs b/HMI/Project/Class/CResult.cs similarity index 96% rename from Cs_HMI/Project/Class/CResult.cs rename to HMI/Project/Class/CResult.cs index 8c95ce5..7e5ab0f 100644 --- a/Cs_HMI/Project/Class/CResult.cs +++ b/HMI/Project/Class/CResult.cs @@ -1,201 +1,201 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using Project.StateMachine; -using AR; - -namespace Project -{ - public class CResult - { - - public bool SMSG_ProgressEnable = false; - //public string SMSG_Text = string.Empty; - public float SMSG_ProgressMax = 0; - public int SMSG_ProgressMin = 0; - public Color SMSG_ProgressForeColor = Color.Red; - public Color SMSG_ForeColor = Color.Black; - public Color SMSG_BackColor = Color.White; - public Color SMSG_BackColor2 = Color.White; - public Color SMSG_ShadowColor = Color.Transparent; - public float SMSG_ProgressValue = 0; - public string SMSG_Tag = string.Empty; - /// - /// 이동대상위치(상차,하차,충전) - /// - private ePosition _targetPos = ePosition.NONE; - public string result_message = ""; - public double result_progressmax = 0; - public double result_progressvalue = 0; - public DateTime StopMessageTimePLC = DateTime.Parse("1982-11-23"); - public DateTime StopMessageTimeSWR = DateTime.Parse("1982-11-23"); - public string StopMessagePLC = string.Empty; - public string StopMessageSWR = string.Empty; - private ePosition _currentpos = ePosition.NONE; - private string _currentposcw = string.Empty; - public ushort LastTAG { get; set; } = 0; - public ePosition NextPos = ePosition.NONE; - private char _comandKit { get; set; } - public string Memo; - public eResult ResultCode { get; set; } - public eECode ResultErrorCode; - public ENIGProtocol.AGVErrorCode RunStepErrorCode { get; set; } - public string ResultMessage { get; set; } - public int retry = 0; - public DateTime retryTime; - public Device.Socket.Message RecvMessage; - - /// - /// 작업시작시간 - /// - public DateTime JobStartTime; - - /// - /// 작업종료시간 - /// - public DateTime JobEndTime; - - //public DateTime IdleStartTime = DateTime.Parse("1982-11-23"); - - /// - /// 작업진행시간 - /// - public TimeSpan JobRunTime - { - get - { - if (JobStartTime.Year == 1982) return new TimeSpan(0); - if (JobEndTime.Year == 1982) return DateTime.Now - JobStartTime; - else return JobEndTime - JobStartTime; - } - } - - #region "AGV Status Value" - public string PLC1_RawData { get; set; } - public string PLC2_RawData { get; set; } - - - #endregion - - - public ePosition TargetPos - { - get - { - return _targetPos; - } - set - { - _targetPos = value; - PUB.log.Add(string.Format("대상위치설정:{0}", value)); - } - } - - - public char CommandKit - { - get - { - return _comandKit; - } - set - { - _comandKit = value; - - PUB.log.Add(string.Format("명령을 내린 KIT 설정 No={0}", value)); - } - } - - - public ePosition CurrentPos - { - get - { - return _currentpos; } - set - { - - if (_currentpos != value) //값이 바뀔때만 메세지 220628 - PUB.log.Add(string.Format("TAG위치 설정:{0}->{1}", _currentpos, value)); - _currentpos = value; - } - } - - - public string CurrentPosCW - { - get - { - - return _currentposcw; - } - set - { - - if (_currentposcw != value) //값이바뀔때만 메세지 220628 - PUB.log.Add(string.Format("TAG방향 설정:{0}->{1}", _currentposcw, value)); - _currentposcw = value; - } - } - - - #region "SetResultMessage" - - public void SetResultMessage(eResult code, eECode err, eNextStep systempause, params object[] args) - { - - var rltMsg = PUB.GetResultCodeMessage(code); - var codeMSg = $"[E{(int)err}] ";// + Util.GetResultCodeMessage(code); - if (err == eECode.MESSAGE_ERROR) - { - codeMSg = $"[{rltMsg} ERROR MESSAGE]\n"; - } - else if (err == eECode.MESSAGE_INFO) - { - codeMSg = $"[{rltMsg} INFORMATION]\n"; - } - - - - var erMsg = PUB.GetErrorMessage(err, args); - var msg = codeMSg + erMsg; - - this.ResultCode = code; - this.ResultErrorCode = err; - this.ResultMessage = msg; - - if (systempause == eNextStep.PAUSENOMESAGE) this.ResultMessage = string.Empty; //210129 - - PUB.log.AddE(msg); - if (systempause == eNextStep.PAUSE) PUB.sm.SetNewStep(eSMStep.PAUSE); - else if (systempause == eNextStep.PAUSENOMESAGE) PUB.sm.SetNewStep(eSMStep.PAUSE); - else if (systempause == eNextStep.ERROR) PUB.sm.SetNewStep(eSMStep.ERROR); - } - - - #endregion - - - public CResult() - { - this.Clear(); - } - - - public void Clear() - { - JobStartTime = DateTime.Parse("1982-11-23"); - JobEndTime = DateTime.Parse("1982-11-23"); - - Memo = string.Empty; - ResultCode = eResult.NoError; - RunStepErrorCode = ENIGProtocol.AGVErrorCode.None; - ResultMessage = string.Empty; - } - - - } - -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using Project.StateMachine; +using AR; + +namespace Project +{ + public class CResult + { + + public bool SMSG_ProgressEnable = false; + //public string SMSG_Text = string.Empty; + public float SMSG_ProgressMax = 0; + public int SMSG_ProgressMin = 0; + public Color SMSG_ProgressForeColor = Color.Red; + public Color SMSG_ForeColor = Color.Black; + public Color SMSG_BackColor = Color.White; + public Color SMSG_BackColor2 = Color.White; + public Color SMSG_ShadowColor = Color.Transparent; + public float SMSG_ProgressValue = 0; + public string SMSG_Tag = string.Empty; + /// + /// 이동대상위치(상차,하차,충전) + /// + private ePosition _targetPos = ePosition.NONE; + public string result_message = ""; + public double result_progressmax = 0; + public double result_progressvalue = 0; + public DateTime StopMessageTimePLC = DateTime.Parse("1982-11-23"); + public DateTime StopMessageTimeSWR = DateTime.Parse("1982-11-23"); + public string StopMessagePLC = string.Empty; + public string StopMessageSWR = string.Empty; + private ePosition _currentpos = ePosition.NONE; + private string _currentposcw = string.Empty; + public ushort LastTAG { get; set; } = 0; + public ePosition NextPos = ePosition.NONE; + private char _comandKit { get; set; } + public string Memo; + public eResult ResultCode { get; set; } + public eECode ResultErrorCode; + public ENIGProtocol.AGVErrorCode RunStepErrorCode { get; set; } + public string ResultMessage { get; set; } + public int retry = 0; + public DateTime retryTime; + public Device.Socket.Message RecvMessage; + + /// + /// 작업시작시간 + /// + public DateTime JobStartTime; + + /// + /// 작업종료시간 + /// + public DateTime JobEndTime; + + //public DateTime IdleStartTime = DateTime.Parse("1982-11-23"); + + /// + /// 작업진행시간 + /// + public TimeSpan JobRunTime + { + get + { + if (JobStartTime.Year == 1982) return new TimeSpan(0); + if (JobEndTime.Year == 1982) return DateTime.Now - JobStartTime; + else return JobEndTime - JobStartTime; + } + } + + #region "AGV Status Value" + public string PLC1_RawData { get; set; } + public string PLC2_RawData { get; set; } + + + #endregion + + + public ePosition TargetPos + { + get + { + return _targetPos; + } + set + { + _targetPos = value; + PUB.log.Add(string.Format("대상위치설정:{0}", value)); + } + } + + + public char CommandKit + { + get + { + return _comandKit; + } + set + { + _comandKit = value; + + PUB.log.Add(string.Format("명령을 내린 KIT 설정 No={0}", value)); + } + } + + + public ePosition CurrentPos + { + get + { + return _currentpos; } + set + { + + if (_currentpos != value) //값이 바뀔때만 메세지 220628 + PUB.log.Add(string.Format("TAG위치 설정:{0}->{1}", _currentpos, value)); + _currentpos = value; + } + } + + + public string CurrentPosCW + { + get + { + + return _currentposcw; + } + set + { + + if (_currentposcw != value) //값이바뀔때만 메세지 220628 + PUB.log.Add(string.Format("TAG방향 설정:{0}->{1}", _currentposcw, value)); + _currentposcw = value; + } + } + + + #region "SetResultMessage" + + public void SetResultMessage(eResult code, eECode err, eNextStep systempause, params object[] args) + { + + var rltMsg = PUB.GetResultCodeMessage(code); + var codeMSg = $"[E{(int)err}] ";// + Util.GetResultCodeMessage(code); + if (err == eECode.MESSAGE_ERROR) + { + codeMSg = $"[{rltMsg} ERROR MESSAGE]\n"; + } + else if (err == eECode.MESSAGE_INFO) + { + codeMSg = $"[{rltMsg} INFORMATION]\n"; + } + + + + var erMsg = PUB.GetErrorMessage(err, args); + var msg = codeMSg + erMsg; + + this.ResultCode = code; + this.ResultErrorCode = err; + this.ResultMessage = msg; + + if (systempause == eNextStep.PAUSENOMESAGE) this.ResultMessage = string.Empty; //210129 + + PUB.log.AddE(msg); + if (systempause == eNextStep.PAUSE) PUB.sm.SetNewStep(eSMStep.PAUSE); + else if (systempause == eNextStep.PAUSENOMESAGE) PUB.sm.SetNewStep(eSMStep.PAUSE); + else if (systempause == eNextStep.ERROR) PUB.sm.SetNewStep(eSMStep.ERROR); + } + + + #endregion + + + public CResult() + { + this.Clear(); + } + + + public void Clear() + { + JobStartTime = DateTime.Parse("1982-11-23"); + JobEndTime = DateTime.Parse("1982-11-23"); + + Memo = string.Empty; + ResultCode = eResult.NoError; + RunStepErrorCode = ENIGProtocol.AGVErrorCode.None; + ResultMessage = string.Empty; + } + + + } + +} diff --git a/Cs_HMI/Project/Class/EEMStatus.cs b/HMI/Project/Class/EEMStatus.cs similarity index 97% rename from Cs_HMI/Project/Class/EEMStatus.cs rename to HMI/Project/Class/EEMStatus.cs index 5aaa936..e21b5e5 100644 --- a/Cs_HMI/Project/Class/EEMStatus.cs +++ b/HMI/Project/Class/EEMStatus.cs @@ -1,466 +1,466 @@ -using Project; -using Project.Device; -using Project.StateMachine; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Management; -using System.Net; -using System.Net.NetworkInformation; -using System.Text; -using System.Threading.Tasks; - -/// -/// ============================================================================ -/// 장비기술 상태 모니터링 관련 클래스 -/// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다. -/// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다. -/// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다. -/// ============================================================================ -/// 작성자 : chi -/// 작성일 : 202-06-15 -/// GIT : (none) -/// -public static partial class EEMStatus -{ - static System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(true); - static string ip = string.Empty; - static string mac = string.Empty; - static DateTime StatusChecktime = DateTime.Now; - static DateTime MonitorChecktime = DateTime.Now.AddYears(-1); - static DateTime FileCheckTime = DateTime.Now; - static string monitorfile = string.Empty; - /// - /// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다. - /// - public static int UpdateStatusInterval { get; set; } = 180; - public static int UpdateFileInterval { get; set; } = 3; - static bool queryok = false; - static bool UpdateRun = false; - - public static string IP - { - get - { - if (queryok == false) GetNetworkInfo(); - return ip; - } - set { ip = value; } - } - public static string MAC - { - get - { - if (queryok == false) GetNetworkInfo(); - return mac; - } - set - { - mac = value; - } - } - - /// - /// 현재 시스템의 IP/MAC정보를 취득합니다. - /// - static void GetNetworkInfo() - { - - ip = ""; - mac = ""; - // string prgmName = Application.ProductName; - - var nif = NetworkInterface.GetAllNetworkInterfaces(); - var host = Dns.GetHostEntry(Dns.GetHostName()); - string fullname = System.Net.Dns.GetHostEntry("").HostName; - foreach (IPAddress r in host.AddressList) - { - string str = r.ToString(); - - if (str != "" && str.Substring(0, 3) == "10.") - { - ip = str; - break; - } - } - - string rtn = string.Empty; - ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); - ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); - foreach (ManagementObject mo in query1.Get()) - { - string[] address = (string[])mo["IPAddress"]; - if (address[0] == ip && mo["MACAddress"] != null) - { - mac = mo["MACAddress"].ToString(); - break; - } - } - queryok = true; - } - - /// - /// 배터리데이터수신시 값을 기록한다. - /// - public static void MakeBMSInformation_INFO() - { - if (PUB.BMS.Current_DataTime.Year == 1982 || LastBMSIFTime == PUB.BMS.Current_DataTime || PUB.setting.MCID.isEmpty()) return; - try - { - // BMS 데이터 취득 (실제 BMS 객체에서 데이터를 가져와야 함) - // 예시: var bms = Project.Device.BMS.Instance; - var mcid = Project.PUB.setting.MCID; - var timestr = PUB.BMS.Current_DataTime.ToString("yyyy-MM-dd HH:mm:ss"); - - var data = PUB.BMS.BMSInformation; - - // Status 폴더에 SQL 파일 생성 - var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); - if (System.IO.Directory.Exists(path) == false) - System.IO.Directory.CreateDirectory(path); - - var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_BMS_INF.sql"); - - var sql = "insert into AGV_Shuttle_BMS(MCID,wdate,info_volt,info_current,info_capa,info_level,info_temp1,info_temp2,soc,cycle,protection,balance,watt) " + - $"values('{mcid}','{timestr}',{data.packVoltage},{data.current},{data.fullCapacity},{data.RawLevel},{data.ntcTemp[0]},{data.ntcTemp[1]},{data.rsoc},{data.cycleCount},{data.raw_protection},{data.fullBalance},{data.watt})"; - - System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); - LastBMSIFTime = DateTime.Now; - } - catch (Exception ex) - { - // 오류 로깅 (필요시 PUB.log.Add 등으로 처리) - Console.WriteLine($"MakeBMSInformation Error: {ex.Message}"); - } - } - - static DateTime LastBMSIFTime = DateTime.Now; - static DateTime LastBMSCVTime = DateTime.Now; - - /// - /// 배터리데이터수신시 값을 기록한다. - /// - public static void MakeBMSInformation_Cell() - { - if (PUB.BMS.Current_CellTime.Year == 1982 || LastBMSCVTime == PUB.BMS.Current_CellTime || PUB.setting.MCID.isEmpty()) return; - try - { - // BMS 데이터 취득 (실제 BMS 객체에서 데이터를 가져와야 함) - // 예시: var bms = Project.Device.BMS.Instance; - var mcid = Project.PUB.setting.MCID; - var timestr = PUB.BMS.Current_CellTime.ToString("yyyy-MM-dd HH:mm:ss"); - - // BMS 데이터 (실제 값으로 교체 필요) - var volt = PUB.BMS.BMSCellVoltage; - var cell_volt1 = volt.Voltage[0];// "null"; // bms.CellVolt1 - var cell_volt2 = volt.Voltage[1]; // bms.CellVolt2 - var cell_volt3 = volt.Voltage[2]; // bms.CellVolt3 - var cell_volt4 = volt.Voltage[3]; // bms.CellVolt4 - var cell_volt5 = volt.Voltage[4]; // bms.CellVolt5 - var cell_volt6 = volt.Voltage[5]; // bms.CellVolt6 - var cell_volt7 = volt.Voltage[6]; // bms.CellVolt7 - var cell_volt8 = volt.Voltage[7]; // bms.CellVolt8 - - // Status 폴더에 SQL 파일 생성 - var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); - if (System.IO.Directory.Exists(path) == false) - System.IO.Directory.CreateDirectory(path); - - var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_BMS_CV.sql"); - - var sql = "insert into AGV_Shuttle_BMS(MCID,wdate," + - "cell_volt1,cell_volt2,cell_volt3,cell_volt4,cell_volt5,cell_volt6,cell_volt7,cell_volt8) " + - "values('{0}','{1}',{2},{3},{4},{5},{6},{7},{8},{9})"; - - sql = string.Format(sql, mcid, timestr, - cell_volt1, cell_volt2, cell_volt3, cell_volt4, - cell_volt5, cell_volt6, cell_volt7, cell_volt8); - - System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); - LastBMSCVTime = DateTime.Now; - } - catch (Exception ex) - { - // 오류 로깅 (필요시 PUB.log.Add 등으로 처리) - Console.WriteLine($"MakeBMSInformation Error: {ex.Message}"); - } - } - - public static void UpdateStatusSQL(eSMStep status, bool _extrun = false, string remark = "") - { - var tsrun = DateTime.Now - StatusChecktime; - if (tsrun.TotalSeconds >= UpdateStatusInterval) - { - AddStatusSQL(status, "UPDATE", extrun: _extrun); - StatusChecktime = DateTime.Now; - } - - ////내부실행모드일때에만 파일을 처리한다 - //if (_extrun == false) - //{ - // var tsfile = DateTime.Now - FileCheckTime; - // if (tsfile.TotalSeconds >= UpdateFileInterval) - // { - // if (UpdateRun == false) - // { - // UpdateRun = true; - // Task.Run(() => - // { - // UpdateFileToDB(); - // UpdateRun = false; - // }); - // } - // FileCheckTime = DateTime.Now; - // } - //} - } - - /// - /// 상태모니터링 프로그램의 실행파일 명 - /// - static string StatusMonitorFile - { - get - { - if (string.IsNullOrEmpty(monitorfile)) - monitorfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status", "SQLFileToDB.exe"); - return monitorfile; - } - } - - static System.Diagnostics.Process CheckMonitor() - { - if (System.IO.File.Exists(StatusMonitorFile) == false) return null; - - var prcs = System.Diagnostics.Process.GetProcesses(); - return prcs.Where(t => t.ProcessName.ToLower().StartsWith("sqlfiletodb")).FirstOrDefault(); - } - - public static bool RunStatusMonitor() - { - //파일이 없으면 실행 불가 - if (System.IO.File.Exists(StatusMonitorFile) == false) return false; - - //실행프로세스 검사 - var prc = CheckMonitor(); - if (prc == null) - { - try - { - prc = new System.Diagnostics.Process(); - prc.StartInfo = new System.Diagnostics.ProcessStartInfo - { - Arguments = string.Empty, - FileName = StatusMonitorFile, - }; - prc.Start(); - } - catch - { - return false; - } - } - - return true; - } - - /// - /// 작업수량을 입력합니다 - /// - /// - /// - public static string AddStatusCount(int cnt, string remark = "") - { - if (remark.isEmpty()) remark = $"Count Set : {cnt}"; - return AddStatusSQL(PUB.sm.Step, remark, count: cnt); - } - /// - /// 상태메세지를 status 폴더에 기록합니다. - /// - /// 상태머신의 상태값 - /// 비고 - /// 기록일시 - /// 오류발생시 오류메세지가 반환 됩니다 - public static string AddStatusSQL(eSMStep status, string remark = "", DateTime? wdate = null, bool extrun = false, int? count = null) - { - if (queryok == false || MAC.isEmpty()) GetNetworkInfo(); - if (status == eSMStep.CLOSEWAIT || status == eSMStep.CLOSED) return string.Empty; - - if (extrun) - { - //상태모니터링 프로그램을 실행합니다. - var tsMon = DateTime.Now - MonitorChecktime; - if (tsMon.TotalMinutes > 5) RunStatusMonitor(); - } - - try - { - var state = 0; - string cntstr = "null"; - if (count != null) cntstr = count.ToString(); - var alarmid = string.Empty; - var alarmmsg = string.Empty; - if (string.IsNullOrEmpty(remark)) remark = $"STS:{status}"; - - if (status == eSMStep.RUN) state = 1; - else if (status == eSMStep.ERROR || status == eSMStep.EMERGENCY) - { - state = 2; - alarmid = PUB.Result.ResultErrorCode.ToString(); - alarmmsg = PUB.Result.ResultMessage; - } - else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다, - { - if (PUB.Result.ResultErrorCode == eECode.USER_STEP || PUB.Result.ResultErrorCode == eECode.USER_STOP || PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE")) - { - //사용자에의해 멈추는 것은 오류코드를 넣지 않는다. - } - else - { - alarmid = PUB.Result.ResultErrorCode.ToString(); - alarmmsg = PUB.Result.ResultMessage; - } - } - else if (status == eSMStep.INIT) state = 3; //시작 - else if (status == eSMStep.CLOSING) state = 4; //종료 - - //length check - if (alarmid.Length > 10) alarmid = alarmid.Substring(0, 10); - if (remark.Length > 99) remark = remark.Substring(0, 99); - if (alarmmsg.Length > 250) alarmmsg = alarmmsg.Substring(0, 50); - - var mcid = Project.PUB.setting.MCID;//.Data.MCID; - var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); - var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql"); - var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time,alarmid,alarmmsg,count,version) " + - " values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},'{9}')"; - - var timestr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - if (wdate != null) timestr = ((DateTime)wdate).ToString("yyyy-MM-dd HH:mm:ss"); - var VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); - sql = string.Format(sql, mcid, state, remark.Replace("'", "''"), IP, MAC, timestr, alarmid, alarmmsg, cntstr, VersionNumber); - System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); - - ////만들어진지 3분이 지난 파일은 삭제한다. - //var di = new System.IO.DirectoryInfo(path); - //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); - //if (fi != null) fi.Delete(); - //if (state == 4 && extrun == false) UpdateFileToDB(); - return string.Empty; - } - catch (Exception ex) - { - return ex.Message; - } - } - - - - //static void UpdateFileToDB() - //{ - // if (mre.WaitOne(1000) == false) return; - // mre.Reset(); - // var cs = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; - // var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); - // var di = new System.IO.DirectoryInfo(path); - // if (di.Exists == false) return; - // var file = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly) - // .Where(t => t.LastWriteTime < DateTime.Now.AddSeconds(-3)) - // .OrderByDescending(t => t.LastWriteTime).FirstOrDefault(); - - // if (file == null) - // { - // mre.Set(); - // return; - // } - - // //파일을 찾아야한다 - // // PUB.log.Add($">> {file.FullName}"); - - - - // try - // { - // var sql = System.IO.File.ReadAllText(file.FullName, System.Text.Encoding.Default); - // if (string.IsNullOrEmpty(sql)) - // { - // //비어잇다면 - // var errpath = System.IO.Path.Combine(di.FullName, "Error"); - // var errfile = System.IO.Path.Combine(errpath, file.Name); - // if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); - // System.IO.File.Move(file.FullName, errfile);// file.MoveTo(errfile); - // // ecnt += 1; - // } - // else - // { - // // var csstr = PUB.setting.ConnectionString; - // // if (string.IsNullOrEmpty(csstr)) csstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; - // var cn = new System.Data.SqlClient.SqlConnection(cs); - // var cmd = new System.Data.SqlClient.SqlCommand(sql, cn); - // cn.Open(); - // var cnt = cmd.ExecuteNonQuery(); - // //if (cnt == 0) PUB.log.Add($"Result Empty : {sql}"); - // cn.Close(); - // cnt += 1; - - // var errpath = System.IO.Path.Combine(di.FullName, "Complete"); - // var errfile = System.IO.Path.Combine(errpath, file.Name); - // if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); - // //file.MoveTo(errfile); - // System.IO.File.Move(file.FullName, errfile); - // } - - // } - // catch (Exception ex) - // { - // var errpath = System.IO.Path.Combine(di.FullName, "Error"); - // var errfile = System.IO.Path.Combine(errpath, file.Name); - // if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); - // try - // { - // //file.MoveTo(errfile); - // System.IO.File.Move(file.FullName, errfile); - // } - // catch (Exception ex2) - // { - // Console.WriteLine($"move error : {ex2.Message} : {errfile}"); - // } - - // //ecnt += 1; - // } - - // try - // { - // //생성된지 10일이 넘은 자료는 삭제한다. - // //시간소비를 피해서 1개의 파일만 작업한다 - // var sqlfiles = di.GetFiles("*.sql", System.IO.SearchOption.AllDirectories); - // //총3번의 데이터를 처리한다 - // var files = sqlfiles.Where(t => t.LastWriteTime < DateTime.Now.AddDays(-10)).Select(t => t.FullName); - // int i = 0; - // var dellist = files.TakeWhile(t => i++ < 3); - // foreach (var delfile in dellist) - // System.IO.File.Delete(delfile); - // } - // catch - // { - - // } - // mre.Set(); - //} -} - - -/* -================================================= -변경내역 -================================================= -230619 chi UpdateFileToDB 에서 폴더가 없다면 return 하도록 함 -230615 chi UpdateFiletoDB의 ManualResetEvent적용 - Version 항목 추가 -230612 chi 프로그램 시작/종료 alarmid항목 추가 - 완료된 파일 10일간 보존하도록 함 -230522 chi extrun 모드 추가(agv용 - SQL파일을 외부 프로그램에서 처리하도록 함) -230617 chi 파일쓰기함수를 Task 로 처리 - 3분지난데이터 삭제기능 제거 -230516 chi initial commit -*/ +using Project; +using Project.Device; +using Project.StateMachine; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management; +using System.Net; +using System.Net.NetworkInformation; +using System.Text; +using System.Threading.Tasks; + +/// +/// ============================================================================ +/// 장비기술 상태 모니터링 관련 클래스 +/// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다. +/// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다. +/// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다. +/// ============================================================================ +/// 작성자 : chi +/// 작성일 : 202-06-15 +/// GIT : (none) +/// +public static partial class EEMStatus +{ + static System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(true); + static string ip = string.Empty; + static string mac = string.Empty; + static DateTime StatusChecktime = DateTime.Now; + static DateTime MonitorChecktime = DateTime.Now.AddYears(-1); + static DateTime FileCheckTime = DateTime.Now; + static string monitorfile = string.Empty; + /// + /// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다. + /// + public static int UpdateStatusInterval { get; set; } = 180; + public static int UpdateFileInterval { get; set; } = 3; + static bool queryok = false; + static bool UpdateRun = false; + + public static string IP + { + get + { + if (queryok == false) GetNetworkInfo(); + return ip; + } + set { ip = value; } + } + public static string MAC + { + get + { + if (queryok == false) GetNetworkInfo(); + return mac; + } + set + { + mac = value; + } + } + + /// + /// 현재 시스템의 IP/MAC정보를 취득합니다. + /// + static void GetNetworkInfo() + { + + ip = ""; + mac = ""; + // string prgmName = Application.ProductName; + + var nif = NetworkInterface.GetAllNetworkInterfaces(); + var host = Dns.GetHostEntry(Dns.GetHostName()); + string fullname = System.Net.Dns.GetHostEntry("").HostName; + foreach (IPAddress r in host.AddressList) + { + string str = r.ToString(); + + if (str != "" && str.Substring(0, 3) == "10.") + { + ip = str; + break; + } + } + + string rtn = string.Empty; + ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); + ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); + foreach (ManagementObject mo in query1.Get()) + { + string[] address = (string[])mo["IPAddress"]; + if (address[0] == ip && mo["MACAddress"] != null) + { + mac = mo["MACAddress"].ToString(); + break; + } + } + queryok = true; + } + + /// + /// 배터리데이터수신시 값을 기록한다. + /// + public static void MakeBMSInformation_INFO() + { + if (PUB.BMS.Current_DataTime.Year == 1982 || LastBMSIFTime == PUB.BMS.Current_DataTime || PUB.setting.MCID.isEmpty()) return; + try + { + // BMS 데이터 취득 (실제 BMS 객체에서 데이터를 가져와야 함) + // 예시: var bms = Project.Device.BMS.Instance; + var mcid = Project.PUB.setting.MCID; + var timestr = PUB.BMS.Current_DataTime.ToString("yyyy-MM-dd HH:mm:ss"); + + var data = PUB.BMS.BMSInformation; + + // Status 폴더에 SQL 파일 생성 + var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); + if (System.IO.Directory.Exists(path) == false) + System.IO.Directory.CreateDirectory(path); + + var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_BMS_INF.sql"); + + var sql = "insert into AGV_Shuttle_BMS(MCID,wdate,info_volt,info_current,info_capa,info_level,info_temp1,info_temp2,soc,cycle,protection,balance,watt) " + + $"values('{mcid}','{timestr}',{data.packVoltage},{data.current},{data.fullCapacity},{data.RawLevel},{data.ntcTemp[0]},{data.ntcTemp[1]},{data.rsoc},{data.cycleCount},{data.raw_protection},{data.fullBalance},{data.watt})"; + + System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); + LastBMSIFTime = DateTime.Now; + } + catch (Exception ex) + { + // 오류 로깅 (필요시 PUB.log.Add 등으로 처리) + Console.WriteLine($"MakeBMSInformation Error: {ex.Message}"); + } + } + + static DateTime LastBMSIFTime = DateTime.Now; + static DateTime LastBMSCVTime = DateTime.Now; + + /// + /// 배터리데이터수신시 값을 기록한다. + /// + public static void MakeBMSInformation_Cell() + { + if (PUB.BMS.Current_CellTime.Year == 1982 || LastBMSCVTime == PUB.BMS.Current_CellTime || PUB.setting.MCID.isEmpty()) return; + try + { + // BMS 데이터 취득 (실제 BMS 객체에서 데이터를 가져와야 함) + // 예시: var bms = Project.Device.BMS.Instance; + var mcid = Project.PUB.setting.MCID; + var timestr = PUB.BMS.Current_CellTime.ToString("yyyy-MM-dd HH:mm:ss"); + + // BMS 데이터 (실제 값으로 교체 필요) + var volt = PUB.BMS.BMSCellVoltage; + var cell_volt1 = volt.Voltage[0];// "null"; // bms.CellVolt1 + var cell_volt2 = volt.Voltage[1]; // bms.CellVolt2 + var cell_volt3 = volt.Voltage[2]; // bms.CellVolt3 + var cell_volt4 = volt.Voltage[3]; // bms.CellVolt4 + var cell_volt5 = volt.Voltage[4]; // bms.CellVolt5 + var cell_volt6 = volt.Voltage[5]; // bms.CellVolt6 + var cell_volt7 = volt.Voltage[6]; // bms.CellVolt7 + var cell_volt8 = volt.Voltage[7]; // bms.CellVolt8 + + // Status 폴더에 SQL 파일 생성 + var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); + if (System.IO.Directory.Exists(path) == false) + System.IO.Directory.CreateDirectory(path); + + var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_BMS_CV.sql"); + + var sql = "insert into AGV_Shuttle_BMS(MCID,wdate," + + "cell_volt1,cell_volt2,cell_volt3,cell_volt4,cell_volt5,cell_volt6,cell_volt7,cell_volt8) " + + "values('{0}','{1}',{2},{3},{4},{5},{6},{7},{8},{9})"; + + sql = string.Format(sql, mcid, timestr, + cell_volt1, cell_volt2, cell_volt3, cell_volt4, + cell_volt5, cell_volt6, cell_volt7, cell_volt8); + + System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); + LastBMSCVTime = DateTime.Now; + } + catch (Exception ex) + { + // 오류 로깅 (필요시 PUB.log.Add 등으로 처리) + Console.WriteLine($"MakeBMSInformation Error: {ex.Message}"); + } + } + + public static void UpdateStatusSQL(eSMStep status, bool _extrun = false, string remark = "") + { + var tsrun = DateTime.Now - StatusChecktime; + if (tsrun.TotalSeconds >= UpdateStatusInterval) + { + AddStatusSQL(status, "UPDATE", extrun: _extrun); + StatusChecktime = DateTime.Now; + } + + ////내부실행모드일때에만 파일을 처리한다 + //if (_extrun == false) + //{ + // var tsfile = DateTime.Now - FileCheckTime; + // if (tsfile.TotalSeconds >= UpdateFileInterval) + // { + // if (UpdateRun == false) + // { + // UpdateRun = true; + // Task.Run(() => + // { + // UpdateFileToDB(); + // UpdateRun = false; + // }); + // } + // FileCheckTime = DateTime.Now; + // } + //} + } + + /// + /// 상태모니터링 프로그램의 실행파일 명 + /// + static string StatusMonitorFile + { + get + { + if (string.IsNullOrEmpty(monitorfile)) + monitorfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status", "SQLFileToDB.exe"); + return monitorfile; + } + } + + static System.Diagnostics.Process CheckMonitor() + { + if (System.IO.File.Exists(StatusMonitorFile) == false) return null; + + var prcs = System.Diagnostics.Process.GetProcesses(); + return prcs.Where(t => t.ProcessName.ToLower().StartsWith("sqlfiletodb")).FirstOrDefault(); + } + + public static bool RunStatusMonitor() + { + //파일이 없으면 실행 불가 + if (System.IO.File.Exists(StatusMonitorFile) == false) return false; + + //실행프로세스 검사 + var prc = CheckMonitor(); + if (prc == null) + { + try + { + prc = new System.Diagnostics.Process(); + prc.StartInfo = new System.Diagnostics.ProcessStartInfo + { + Arguments = string.Empty, + FileName = StatusMonitorFile, + }; + prc.Start(); + } + catch + { + return false; + } + } + + return true; + } + + /// + /// 작업수량을 입력합니다 + /// + /// + /// + public static string AddStatusCount(int cnt, string remark = "") + { + if (remark.isEmpty()) remark = $"Count Set : {cnt}"; + return AddStatusSQL(PUB.sm.Step, remark, count: cnt); + } + /// + /// 상태메세지를 status 폴더에 기록합니다. + /// + /// 상태머신의 상태값 + /// 비고 + /// 기록일시 + /// 오류발생시 오류메세지가 반환 됩니다 + public static string AddStatusSQL(eSMStep status, string remark = "", DateTime? wdate = null, bool extrun = false, int? count = null) + { + if (queryok == false || MAC.isEmpty()) GetNetworkInfo(); + if (status == eSMStep.CLOSEWAIT || status == eSMStep.CLOSED) return string.Empty; + + if (extrun) + { + //상태모니터링 프로그램을 실행합니다. + var tsMon = DateTime.Now - MonitorChecktime; + if (tsMon.TotalMinutes > 5) RunStatusMonitor(); + } + + try + { + var state = 0; + string cntstr = "null"; + if (count != null) cntstr = count.ToString(); + var alarmid = string.Empty; + var alarmmsg = string.Empty; + if (string.IsNullOrEmpty(remark)) remark = $"STS:{status}"; + + if (status == eSMStep.RUN) state = 1; + else if (status == eSMStep.ERROR || status == eSMStep.EMERGENCY) + { + state = 2; + alarmid = PUB.Result.ResultErrorCode.ToString(); + alarmmsg = PUB.Result.ResultMessage; + } + else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다, + { + if (PUB.Result.ResultErrorCode == eECode.USER_STEP || PUB.Result.ResultErrorCode == eECode.USER_STOP || PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE")) + { + //사용자에의해 멈추는 것은 오류코드를 넣지 않는다. + } + else + { + alarmid = PUB.Result.ResultErrorCode.ToString(); + alarmmsg = PUB.Result.ResultMessage; + } + } + else if (status == eSMStep.INIT) state = 3; //시작 + else if (status == eSMStep.CLOSING) state = 4; //종료 + + //length check + if (alarmid.Length > 10) alarmid = alarmid.Substring(0, 10); + if (remark.Length > 99) remark = remark.Substring(0, 99); + if (alarmmsg.Length > 250) alarmmsg = alarmmsg.Substring(0, 50); + + var mcid = Project.PUB.setting.MCID;//.Data.MCID; + var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); + var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql"); + var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time,alarmid,alarmmsg,count,version) " + + " values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},'{9}')"; + + var timestr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + if (wdate != null) timestr = ((DateTime)wdate).ToString("yyyy-MM-dd HH:mm:ss"); + var VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + sql = string.Format(sql, mcid, state, remark.Replace("'", "''"), IP, MAC, timestr, alarmid, alarmmsg, cntstr, VersionNumber); + System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); + + ////만들어진지 3분이 지난 파일은 삭제한다. + //var di = new System.IO.DirectoryInfo(path); + //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); + //if (fi != null) fi.Delete(); + //if (state == 4 && extrun == false) UpdateFileToDB(); + return string.Empty; + } + catch (Exception ex) + { + return ex.Message; + } + } + + + + //static void UpdateFileToDB() + //{ + // if (mre.WaitOne(1000) == false) return; + // mre.Reset(); + // var cs = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; + // var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); + // var di = new System.IO.DirectoryInfo(path); + // if (di.Exists == false) return; + // var file = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly) + // .Where(t => t.LastWriteTime < DateTime.Now.AddSeconds(-3)) + // .OrderByDescending(t => t.LastWriteTime).FirstOrDefault(); + + // if (file == null) + // { + // mre.Set(); + // return; + // } + + // //파일을 찾아야한다 + // // PUB.log.Add($">> {file.FullName}"); + + + + // try + // { + // var sql = System.IO.File.ReadAllText(file.FullName, System.Text.Encoding.Default); + // if (string.IsNullOrEmpty(sql)) + // { + // //비어잇다면 + // var errpath = System.IO.Path.Combine(di.FullName, "Error"); + // var errfile = System.IO.Path.Combine(errpath, file.Name); + // if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); + // System.IO.File.Move(file.FullName, errfile);// file.MoveTo(errfile); + // // ecnt += 1; + // } + // else + // { + // // var csstr = PUB.setting.ConnectionString; + // // if (string.IsNullOrEmpty(csstr)) csstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; + // var cn = new System.Data.SqlClient.SqlConnection(cs); + // var cmd = new System.Data.SqlClient.SqlCommand(sql, cn); + // cn.Open(); + // var cnt = cmd.ExecuteNonQuery(); + // //if (cnt == 0) PUB.log.Add($"Result Empty : {sql}"); + // cn.Close(); + // cnt += 1; + + // var errpath = System.IO.Path.Combine(di.FullName, "Complete"); + // var errfile = System.IO.Path.Combine(errpath, file.Name); + // if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); + // //file.MoveTo(errfile); + // System.IO.File.Move(file.FullName, errfile); + // } + + // } + // catch (Exception ex) + // { + // var errpath = System.IO.Path.Combine(di.FullName, "Error"); + // var errfile = System.IO.Path.Combine(errpath, file.Name); + // if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); + // try + // { + // //file.MoveTo(errfile); + // System.IO.File.Move(file.FullName, errfile); + // } + // catch (Exception ex2) + // { + // Console.WriteLine($"move error : {ex2.Message} : {errfile}"); + // } + + // //ecnt += 1; + // } + + // try + // { + // //생성된지 10일이 넘은 자료는 삭제한다. + // //시간소비를 피해서 1개의 파일만 작업한다 + // var sqlfiles = di.GetFiles("*.sql", System.IO.SearchOption.AllDirectories); + // //총3번의 데이터를 처리한다 + // var files = sqlfiles.Where(t => t.LastWriteTime < DateTime.Now.AddDays(-10)).Select(t => t.FullName); + // int i = 0; + // var dellist = files.TakeWhile(t => i++ < 3); + // foreach (var delfile in dellist) + // System.IO.File.Delete(delfile); + // } + // catch + // { + + // } + // mre.Set(); + //} +} + + +/* +================================================= +변경내역 +================================================= +230619 chi UpdateFileToDB 에서 폴더가 없다면 return 하도록 함 +230615 chi UpdateFiletoDB의 ManualResetEvent적용 + Version 항목 추가 +230612 chi 프로그램 시작/종료 alarmid항목 추가 + 완료된 파일 10일간 보존하도록 함 +230522 chi extrun 모드 추가(agv용 - SQL파일을 외부 프로그램에서 처리하도록 함) +230617 chi 파일쓰기함수를 Task 로 처리 + 3분지난데이터 삭제기능 제거 +230516 chi initial commit +*/ diff --git a/Cs_HMI/Project/Class/EnumData.cs b/HMI/Project/Class/EnumData.cs similarity index 93% rename from Cs_HMI/Project/Class/EnumData.cs rename to HMI/Project/Class/EnumData.cs index 811c4a3..9501e31 100644 --- a/Cs_HMI/Project/Class/EnumData.cs +++ b/HMI/Project/Class/EnumData.cs @@ -1,107 +1,107 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Project -{ - public enum StepResult - { - Wait = 0, - Complete, - Error, - Cancel, - } - public enum eNextStep : byte - { - NOTHING = 0, - PAUSE, - PAUSENOMESAGE, - ERROR - } - - public enum EFlag : byte - { - MINSPACE = 0, - - MOTZ_LIMD, - MOTZ_LIMU, - WAIT_COVER_DOWN, - WAIT_COVER_UP, - POSITION_OUT, - FLAG_CHARGEALIGN, - //FLAG_AUTORUN, - FLAG_MOVING, - FLAG_NEXTSTOP_MARK, - FLAG_DIR_BW, - FLAG_SETUP, - FLAG_GATEOUT, - FLAG_STOP, - FLAG_LIMITHIGH, - FLAG_LIMITHIGHL, - FLAG_LIMITHIGHR, - FLAG_LIMITLOW, - FLAG_LIMITLOWL, - FLAG_LIMITLOWR, - } - - public enum eECode : byte - { - NOERROR, - EMERGENCY, - NOMODELV, - USER_STOP, - USER_STEP, - - AGVCONN, - PLCCONN, - - MESSAGE_INFO, - MESSAGE_ERROR, - - DOOFF, - DOON, - DIOFF, - DION, - - NOTALLOWUP, - } - - public enum eResult : byte - { - TimeOut, - Dio, - NoError, - Setting, - NoModel, - Emergency, - Sensor, - Hardware, - Motion, - HomeTimeout, - PCBDetect, - Vision, - LOT, - } - - public enum ePosition : byte - { - NONE = 0, - NOT, - QA, - QA_QC, - QC, - CHARGE, - QC_F1, - F1, - F1_F2, - F2, - F2_F3, - F3, - F3_F4, - F4, - F4_F5, - F5, - POT, - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public enum StepResult + { + Wait = 0, + Complete, + Error, + Cancel, + } + public enum eNextStep : byte + { + NOTHING = 0, + PAUSE, + PAUSENOMESAGE, + ERROR + } + + public enum EFlag : byte + { + MINSPACE = 0, + + MOTZ_LIMD, + MOTZ_LIMU, + WAIT_COVER_DOWN, + WAIT_COVER_UP, + POSITION_OUT, + FLAG_CHARGEALIGN, + //FLAG_AUTORUN, + FLAG_MOVING, + FLAG_NEXTSTOP_MARK, + FLAG_DIR_BW, + FLAG_SETUP, + FLAG_GATEOUT, + FLAG_STOP, + FLAG_LIMITHIGH, + FLAG_LIMITHIGHL, + FLAG_LIMITHIGHR, + FLAG_LIMITLOW, + FLAG_LIMITLOWL, + FLAG_LIMITLOWR, + } + + public enum eECode : byte + { + NOERROR, + EMERGENCY, + NOMODELV, + USER_STOP, + USER_STEP, + + AGVCONN, + PLCCONN, + + MESSAGE_INFO, + MESSAGE_ERROR, + + DOOFF, + DOON, + DIOFF, + DION, + + NOTALLOWUP, + } + + public enum eResult : byte + { + TimeOut, + Dio, + NoError, + Setting, + NoModel, + Emergency, + Sensor, + Hardware, + Motion, + HomeTimeout, + PCBDetect, + Vision, + LOT, + } + + public enum ePosition : byte + { + NONE = 0, + NOT, + QA, + QA_QC, + QC, + CHARGE, + QC_F1, + F1, + F1_F2, + F2, + F2_F3, + F3, + F3_F4, + F4, + F4_F5, + F5, + POT, + } +} diff --git a/Cs_HMI/Project/Class/Lang.cs b/HMI/Project/Class/Lang.cs similarity index 98% rename from Cs_HMI/Project/Class/Lang.cs rename to HMI/Project/Class/Lang.cs index f619b08..3299f80 100644 --- a/Cs_HMI/Project/Class/Lang.cs +++ b/HMI/Project/Class/Lang.cs @@ -1,80 +1,80 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Security.Policy; -using System.Text; -using System.Threading.Tasks; - -namespace Project -{ - public static class Lang - { - - public static string 목적지가없어대기상태로전환합니다 = "목적지가 설정되지 않아 대기상태로 전환 합니다"; - public static string 위치로이동합니다 = "위치로 이동 합니다"; - public static string 전방에물체가감지되었습니다 = "전방에 물체가 감지 되었습니다"; - public static string 비상정지신호가감지되었습니다 = "비상정지 신호가 감지 되었습니다"; - public static string 비상정지로인해작업을중단합니다 = "비상정지로 인해 작업을 중단 합니다"; - public static string 선로를이탈했습니다 = "선로를 이탈 했습니다"; - public static string 충전이필요합니다자동모드로전환하세요 = "충전이 필요 합니다. 자동모드로 전환 하세요"; - public static string 충전이필요합니다 = "충전이 필요 합니다"; - public static string 배터리통신에문제가있습니다 = "배터리 통신에 문제가 있습니다"; - public static string 자동운전상태가아닙니다 = "자동운전 상태가 아닙니다"; - public static string 비상정지 = "비상 정지"; - public static string 연결실패 = "연결 실패"; - public static string 현재위치를검색합니다 = "현재 위치를 검색 합니다"; - public static string 충전완료로해제합니다 = "충전 완료로 해제 합니다"; - public static string 장비상태초기화 = "장비 상태 초기화"; - public static string 충전을시작합니다 = "충전을 시작 합니다"; - public static string 충전을해제합니다 = "충전을 해제 합니다"; - public static string 충전을위해홈위치로이동합니다 = "충전을 위해 홈 위치로 이동 합니다"; - public static string 충전기검색실패 = "충전기 검색 실패"; - public static string 충전기를검색합니다 = "충전기를 검색 합니다"; - public static string 수동충전을시작합니다 = "수동충전을 시작 합니다"; - public static string 수동충전을해제합니다 = "수동충전을 해제 합니다"; - public static string 하드웨어오류발생 = "하드웨어 오류 발생"; - public static string 하드웨어오류로인해진행할수없습니다 = "하드웨어 오류로 인해 진행할 수 없습니다"; - public static string 초기화완료 = "초기화 완료"; - public static string 자동재부팅을실행합니다 = "자동 재부팅을 실행 합니다"; - public static string 충전기작동확인이오버되어홈으로이동조치합니다 = "충전기 작동 확인이 30초 이내로 확인이 안되어 홈으로 이동 합니다"; - public static string 충전시작명령을전송합니다 = "충전 시작명령을 전송 합니다"; - public static string 충전기위치오류로작업을취소합니다 = "충전기 위치 오류로 인해 작업을 취소 합니다"; - public static string 프로그램이초기화되었습니다 = "프로그램이 초기화 되었습니다"; - public static string 대기상태로전환합니다 = "대기 상태로 전환 합니다"; - public static string 작업종료 = "작업 종료"; - public static string 자동전환 = "자동 전환"; - public static string 충전기위치오류 = "충전기 위치 오류"; - public static string 다음마크위치에서정지합니다 = "다음 마크위치에서 정지 합니다"; - public static string 충전이감지되어수동충전으로전환합니다 = "충전이 감지되어 수동충전으로 전환 합니다"; - public static string PLC연결실패 { get { return string.Format("PLC {0}", 연결실패); } } - public static string PLC통신실패 = "PLC 통신실패"; - public static string AGV연결실패 { get { return string.Format("AGV {0}", 연결실패); } } - public static string 예측값이계산되지않아이동을중단합니다 = "이동 예측이 동작하지 않습니다. 개발부서에 문의 하세요"; - public static string 목적지이동이완료되었습니다 = "목적지 이동 이 완료 되었습니다"; - public static string FindCurrentPisition = "현재 위치를 검색 합니다"; - - public static string 상차 = "상차"; - public static string 하차 = "하차"; - public static string 이동완료 = "이동 완료"; - public static string 오버로드감지 = "오버로드 감지"; - public static string 진출을시작합니다 { get { return "진출 시작"; } } - public static string 진입을작합니다 { get { return "진입 시작"; } } - public static string 안전커버를내려주세요 = "안전 커버를 내려 주세요"; - public static string 안전커버를올려주세요 = "안전 커버를 올려 주세요"; - public static string 안전커버를올리면상차가완료됩니다 = "안전 커버를 올리면 상차가 완료 됩니다"; - public static string 안전커버를내립니다 = "안전 커버를 내립니다"; - public static string 홈으로이동합니다 = "홈 으로 이동 합니다"; - public static string 홈이동완료대기상태로전환합니다 = "홈 이동이 완료 되었습니다. 대기 상태로 전환 합니다"; - public static string 커버를내립니다 = "커버를 내립니다"; - public static string 커버를올립니다 = "커버를 올립니다"; - - public static string 홈위치로이동합니다 = "홈 위치로 이동 합니다"; - public static string 버퍼도킹이완료되었습니다 = "버퍼 도킹이 완료 되었습니다"; - public static string 버퍼도킹해제완료 = "버퍼 도킹이 해제 되었습니다"; - public static string 커버업대기상태가아닙니다 = "커버 업 대기 상태가 아닙니다"; - public static string QC이동버튼은상하차에서만사용가능합니다 = "QC이동 버튼은 상,하차 에서만 사용 가능합니다"; - public static string QA이동버튼은상하차에서만사용가능합니다 = "QA이동 버튼은 상,하차 에서만 사용 가능합니다"; - public static string 하차상태에서만사용가능합니다 = "하차 상태에서만 사용가능 합니다"; - - } +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Policy; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public static class Lang + { + + public static string 목적지가없어대기상태로전환합니다 = "목적지가 설정되지 않아 대기상태로 전환 합니다"; + public static string 위치로이동합니다 = "위치로 이동 합니다"; + public static string 전방에물체가감지되었습니다 = "전방에 물체가 감지 되었습니다"; + public static string 비상정지신호가감지되었습니다 = "비상정지 신호가 감지 되었습니다"; + public static string 비상정지로인해작업을중단합니다 = "비상정지로 인해 작업을 중단 합니다"; + public static string 선로를이탈했습니다 = "선로를 이탈 했습니다"; + public static string 충전이필요합니다자동모드로전환하세요 = "충전이 필요 합니다. 자동모드로 전환 하세요"; + public static string 충전이필요합니다 = "충전이 필요 합니다"; + public static string 배터리통신에문제가있습니다 = "배터리 통신에 문제가 있습니다"; + public static string 자동운전상태가아닙니다 = "자동운전 상태가 아닙니다"; + public static string 비상정지 = "비상 정지"; + public static string 연결실패 = "연결 실패"; + public static string 현재위치를검색합니다 = "현재 위치를 검색 합니다"; + public static string 충전완료로해제합니다 = "충전 완료로 해제 합니다"; + public static string 장비상태초기화 = "장비 상태 초기화"; + public static string 충전을시작합니다 = "충전을 시작 합니다"; + public static string 충전을해제합니다 = "충전을 해제 합니다"; + public static string 충전을위해홈위치로이동합니다 = "충전을 위해 홈 위치로 이동 합니다"; + public static string 충전기검색실패 = "충전기 검색 실패"; + public static string 충전기를검색합니다 = "충전기를 검색 합니다"; + public static string 수동충전을시작합니다 = "수동충전을 시작 합니다"; + public static string 수동충전을해제합니다 = "수동충전을 해제 합니다"; + public static string 하드웨어오류발생 = "하드웨어 오류 발생"; + public static string 하드웨어오류로인해진행할수없습니다 = "하드웨어 오류로 인해 진행할 수 없습니다"; + public static string 초기화완료 = "초기화 완료"; + public static string 자동재부팅을실행합니다 = "자동 재부팅을 실행 합니다"; + public static string 충전기작동확인이오버되어홈으로이동조치합니다 = "충전기 작동 확인이 30초 이내로 확인이 안되어 홈으로 이동 합니다"; + public static string 충전시작명령을전송합니다 = "충전 시작명령을 전송 합니다"; + public static string 충전기위치오류로작업을취소합니다 = "충전기 위치 오류로 인해 작업을 취소 합니다"; + public static string 프로그램이초기화되었습니다 = "프로그램이 초기화 되었습니다"; + public static string 대기상태로전환합니다 = "대기 상태로 전환 합니다"; + public static string 작업종료 = "작업 종료"; + public static string 자동전환 = "자동 전환"; + public static string 충전기위치오류 = "충전기 위치 오류"; + public static string 다음마크위치에서정지합니다 = "다음 마크위치에서 정지 합니다"; + public static string 충전이감지되어수동충전으로전환합니다 = "충전이 감지되어 수동충전으로 전환 합니다"; + public static string PLC연결실패 { get { return string.Format("PLC {0}", 연결실패); } } + public static string PLC통신실패 = "PLC 통신실패"; + public static string AGV연결실패 { get { return string.Format("AGV {0}", 연결실패); } } + public static string 예측값이계산되지않아이동을중단합니다 = "이동 예측이 동작하지 않습니다. 개발부서에 문의 하세요"; + public static string 목적지이동이완료되었습니다 = "목적지 이동 이 완료 되었습니다"; + public static string FindCurrentPisition = "현재 위치를 검색 합니다"; + + public static string 상차 = "상차"; + public static string 하차 = "하차"; + public static string 이동완료 = "이동 완료"; + public static string 오버로드감지 = "오버로드 감지"; + public static string 진출을시작합니다 { get { return "진출 시작"; } } + public static string 진입을작합니다 { get { return "진입 시작"; } } + public static string 안전커버를내려주세요 = "안전 커버를 내려 주세요"; + public static string 안전커버를올려주세요 = "안전 커버를 올려 주세요"; + public static string 안전커버를올리면상차가완료됩니다 = "안전 커버를 올리면 상차가 완료 됩니다"; + public static string 안전커버를내립니다 = "안전 커버를 내립니다"; + public static string 홈으로이동합니다 = "홈 으로 이동 합니다"; + public static string 홈이동완료대기상태로전환합니다 = "홈 이동이 완료 되었습니다. 대기 상태로 전환 합니다"; + public static string 커버를내립니다 = "커버를 내립니다"; + public static string 커버를올립니다 = "커버를 올립니다"; + + public static string 홈위치로이동합니다 = "홈 위치로 이동 합니다"; + public static string 버퍼도킹이완료되었습니다 = "버퍼 도킹이 완료 되었습니다"; + public static string 버퍼도킹해제완료 = "버퍼 도킹이 해제 되었습니다"; + public static string 커버업대기상태가아닙니다 = "커버 업 대기 상태가 아닙니다"; + public static string QC이동버튼은상하차에서만사용가능합니다 = "QC이동 버튼은 상,하차 에서만 사용 가능합니다"; + public static string QA이동버튼은상하차에서만사용가능합니다 = "QA이동 버튼은 상,하차 에서만 사용 가능합니다"; + public static string 하차상태에서만사용가능합니다 = "하차 상태에서만 사용가능 합니다"; + + } } \ No newline at end of file diff --git a/Cs_HMI/Project/CtlAuto.Designer.cs b/HMI/Project/CtlAuto.Designer.cs similarity index 96% rename from Cs_HMI/Project/CtlAuto.Designer.cs rename to HMI/Project/CtlAuto.Designer.cs index 2c3e4c5..24c7719 100644 --- a/Cs_HMI/Project/CtlAuto.Designer.cs +++ b/HMI/Project/CtlAuto.Designer.cs @@ -1,36 +1,36 @@ -namespace Project -{ - partial class CtlAuto - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region 구성 요소 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} +namespace Project +{ + partial class CtlAuto + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Cs_HMI/Project/CtlAuto.cs b/HMI/Project/CtlAuto.cs similarity index 97% rename from Cs_HMI/Project/CtlAuto.cs rename to HMI/Project/CtlAuto.cs index 8a4997e..1291a97 100644 --- a/Cs_HMI/Project/CtlAuto.cs +++ b/HMI/Project/CtlAuto.cs @@ -1,1096 +1,1096 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Data; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using COMM; -using System.Diagnostics; -using AR; - -namespace Project -{ - /// - /// 2017-04-13 13:26:00 : 라벨이므로 커서 IN 시 Hand 에서 Default로 변경함 - /// - public partial class CtlAuto : Control - { - #region "Enum & Structure" - public enum eColorTheme : byte - { - DaeHyun = 0, - eGrayBlue, - eDarkBlue, - TopMenu, - GrayButton, - GrayTitleBar, - IOStatus, - IOStatusDepp, - BlackButton, - RedButton, - GrayOmokButton, - Stepbar, - RobotStatus, - NewGray_Group, - NewGray_BG, - NewGray_Button, - NewBlue_Button, - Custom, - } - #endregion - - public arDev.BMS dev_bms { private get; set; } = null; - // public arDev.FakePLC dev_plc { private get; set; } = null; - public arDev.Narumi dev_agv { private get; set; } = null; - public Device.Xbee dev_xbe { private get; set; } = null; - - public event EventHandler ItemClick; - - private Font _font_bms_vlt = new Font("Consolas", 50, FontStyle.Bold); - private Font _font_bms_lev = new Font("Consolas", 150, FontStyle.Bold); - private Font _font_main_batlev = new Font("Consolas", 50, FontStyle.Bold); - public Font Font_MAIN_BMSLevel { get { return _font_main_batlev; } set { _font_main_batlev = value; Invalidate(); } } - public Font Font_BMS_Volt { get { return _font_bms_vlt; } set { _font_bms_vlt = value; Invalidate(); } } - public Font Font_BMS_Level { get { return _font_bms_lev; } set { _font_bms_lev = value; Invalidate(); } } - - public enum eScean - { - Normal = 0, - Progress, - } - public eScean Scean { get; set; } = eScean.Normal; - - //public new event EventHandler Click; - public string StatusMessage { get; set; } = string.Empty; - public CtlAuto() - { - - InitializeComponent(); - - // Set Optimized Double Buffer to reduce flickering - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); - - // Redraw when resized - this.SetStyle(ControlStyles.ResizeRedraw, true); - - this.MouseDown += arButton_MouseDown; - this.MouseUp += arButton_MouseUp; - this.MouseEnter += arButton_MouseEnter; - this.MouseLeave += arButton_MouseLeave; - this.Resize += arLabel_Resize; - - base.BackColor = Color.FromArgb(32, 32, 32); - ForeColor = Color.White; - } - - ~CtlAuto() - { - this.MouseDown -= arButton_MouseDown; - this.MouseUp -= arButton_MouseUp; - this.MouseEnter -= arButton_MouseEnter; - this.MouseLeave -= arButton_MouseLeave; - this.Resize -= arLabel_Resize; - } - - public void PerformClick() - { - if (Enabled == false) return; //171126 - this.InvokeOnClick(this, new EventArgs()); - } - - void arLabel_Resize(object sender, EventArgs e) - { - if (this.MinimumSize.Width == 0 || this.MinimumSize.Height == 0) - this.MinimumSize = new Size(100, 30); - - //bRemakeRect = true; - Invalidate(); - } - - public new Padding Padding - { - get - { - return base.Padding; - } - set - { - base.Padding = value; - this.Invalidate(); - } - } - public Color BorderColor { get; set; } - private int _itemgap = 0; - public int ItemGap { get { return _itemgap; } set { _itemgap = value; Invalidate(); } } - //Boolean bRemakeRect = true; - public item[] Items { get; set; } - - public StateMachine.ERunStep runStep = StateMachine.ERunStep.READY; - public Boolean OnUpdateMode = false; - - public Boolean Status_AutoRun - { - get - { - if (VAR.BOOL == null) return true; - else return VAR.BOOL[eVarBool.FLAG_AUTORUN]; - } - } - - - - public DateTime StopTime { get; set; } - private string stopmessage = ""; - public string StopMessage { get { return stopmessage; } set { this.stopmessage = value; this.Invalidate(); } } - - System.Diagnostics.Stopwatch wframe = new System.Diagnostics.Stopwatch(); - - Point centerpt; - protected override void OnPaint(PaintEventArgs e) - { - //Set Optimized Double Buffer to reduce flickering - e.Graphics.CompositingQuality = CompositingQuality.HighQuality; - e.Graphics.InterpolationMode = InterpolationMode.High; - e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; - - if (wframe.IsRunning == false) wframe.Restart(); - - if (this.Scean == eScean.Normal) - { - var chargeM = VAR.BOOL?.Get(eVarBool.FLAG_CHARGEONM) ?? false; - var chargeA = dev_agv?.system1.Battery_charging ?? false; - var charge = chargeM || chargeA; - - //if (DesignMode) charge = true; - if (charge) - { - Scean_Normal_Charge(e.Graphics, (chargeM ? "수동" : "자동")); - } - else - { - Scean_Normal(e.Graphics); - } - } - else if (this.Scean == eScean.Progress) - Scean_Progress(e.Graphics); - - //버젼표시 - var version = VAR.STR?.Get(eVarString.SWVersion) ?? string.Empty; - if (DesignMode) version = "1.1.1.1"; - using (var f = new Font("Consolas", 8)) - e.Graphics.DrawString(version, f, Brushes.Gray, DisplayRectangle, sfBottomRight); - - } - StringFormat sfEnd = new StringFormat - { - Alignment = StringAlignment.Far, - LineAlignment = StringAlignment.Center - }; - StringFormat sfStart = new StringFormat - { - Alignment = StringAlignment.Near, - LineAlignment = StringAlignment.Center - }; - StringFormat sfCenter = new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center - }; - StringFormat sfBottom = new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Far - }; - StringFormat sfBottomRight = new StringFormat - { - Alignment = StringAlignment.Far, - LineAlignment = StringAlignment.Far - }; - StringFormat sfBottomLeft = new StringFormat - { - Alignment = StringAlignment.Near, - LineAlignment = StringAlignment.Far - }; - public float ProgressMax { get; set; } = 100; - public float ProgressVal { get; set; } = 0; - Matrix TranslationTransform = new Matrix(); - Matrix RotateTransform = new Matrix(); - void Scean_Progress(Graphics g) - { - var progheight = DisplayRectangle.Height * 0.1f; - var r = new RectangleF(DisplayRectangle.Left + 50, - DisplayRectangle.Bottom - progheight - (DisplayRectangle.Height * 0.2f), - DisplayRectangle.Width - 100, progheight); - - var rt = new RectangleF( - r.Left, - DisplayRectangle.Top, - r.Width, - r.Top - DisplayRectangle.Height * 0.05f); - - //g.DrawRectangle(Pens.Blue, rt.Left, rt.Top, rt.Width, rt.Height); - g.DrawString(this.StatusMessage, this.Font, Brushes.White, - rt, sfBottom); - - var progw = r.Width * (this.ProgressVal / this.ProgressMax); - var progr = new RectangleF(r.Left, r.Top, progw, r.Height); - - g.FillRectangle(new LinearGradientBrush(r, Color.LightSkyBlue, Color.DeepSkyBlue, LinearGradientMode.Vertical), progr); - g.DrawRectangle(Pens.DimGray, r.Left, r.Top, r.Width, r.Height); - - } - int textdir = -1; - void Scean_Normal_Charge(Graphics g, string mode) - { - var bmsready = dev_bms?.IsValid ?? false;// != null; - - if (DesignMode) bmsready = true; - if (bmsready == false) - { - var pts = new List(); - pts.Add(new Point(0, 0)); - pts.Add(new Point(80, 0)); - pts.Add(new Point(0, 80)); - - using (var f = new Font("Consolas", 110, FontStyle.Bold)) - g.DrawString("BMS NOT CONNECTED", f, Brushes.Gold, this.DisplayRectangle, this.sfCenter); - - g.FillPolygon(Brushes.Gold, pts.ToArray()); - - pts.Clear(); - pts.Add(new Point(0, 0)); - pts.Add(new Point(30, 0)); - pts.Add(new Point(0, 30)); - g.FillPolygon(Brushes.Orange, pts.ToArray()); - - } - else - { - //단순 수치값을 크게 표시히낟. - var Volt = dev_bms?.BMSInformation.packVoltage ?? 25.35f; - var Lev = dev_bms?.BMSInformation.rsoc ?? 80f; - - var textColor = Color.Lime; - if (Lev < 30) textColor = Color.Red; - else if (Lev < 40) textColor = Color.Tomato; - else if (Lev < 60) textColor = Color.Orange; - else if (Lev < 80) textColor = Color.Gold; - - - using (var textbrush = new SolidBrush(textColor)) - g.DrawString($"{Lev:N1}%", this.Font_BMS_Level, textbrush, DisplayRectangle, sfCenter); - - g.DrawString($"{Volt:N1}v", this.Font_BMS_Volt, Brushes.Gold, DisplayRectangle, sfBottomRight); - - var r = new RectangleF(DisplayRectangle.Left, DisplayRectangle.Top, - DisplayRectangle.Width, 25); - - //msg = wframe.ElapsedMilliseconds.ToString() + msg; - var msgc = mode.Equals("수동") ? Color.Gray : Color.Gray; - using (var f = new Font("맑은 고딕", 11, FontStyle.Regular)) - using (var sb = new SolidBrush(msgc)) - { - var msg = mode.Equals("수동") ? "수동 충전 중입니다 / 해제 하려면 케이블을 제거하고 [충전취소] 버튼을 누르세요" : - "자동 충전 중 입니다 / 최대 충전량에 도달 하거나 (CALL)이 발생하면 자동 해제 됩니다"; - - var textsize = g.MeasureString(msg, f); - //msg = textsize.Width.ToString() + "_" + TranslationTransform.OffsetX.ToString() + ":" + msg; - //var minx = DisplayRectangle.Width - textsize.Width - - //화면이 넘어갔다면 다시 오른쪽으로 간다 - if (textdir < 0 && TranslationTransform.OffsetX < (textsize.Width - DisplayRectangle.Width)) - textdir *= -1; - else if (textdir > 0 && TranslationTransform.OffsetX >= 0) - textdir *= -1; - - //g.FillRectangle(Brushes.BlanchedAlmond, r.Left, r.Top, r.Width, r.Height); - TranslationTransform.Translate(textdir * (wframe.ElapsedMilliseconds / 10f), 0); - wframe.Restart(); - - g.Transform = TranslationTransform; - - g.DrawString(msg, f, sb, r, sfEnd); - } - - - //TranslationTransform.Reset(); - - - - - } - } - void Scean_Normal(Graphics g) - { - - // if (Status_AutoRun) - // g.FillRectangle(new SolidBrush(Color.FromArgb(40, 40, 40)), this.DisplayRectangle); - //else - g.FillRectangle(new SolidBrush(Color.FromArgb(32, 32, 32)), this.DisplayRectangle); - - var wheelSize = new Size((int)(DisplayRectangle.Width * 0.35), - (int)(DisplayRectangle.Width * 0.35)); - - bool agv_run = true; - if (dev_agv != null) agv_run = dev_agv.system1.agv_run; - - Color wheelbackL = agv_run ? Color.DeepSkyBlue : Color.DimGray; - Color wheelBorder = Color.Gold; - if (dev_agv != null) - { - if (dev_agv.data.Speed == 'H') wheelBorder = Color.Red; - else if (dev_agv.data.Speed == 'M') wheelBorder = Color.Gold; - else if (dev_agv.data.Speed == 'L') wheelBorder = Color.Black; - else if (dev_agv.data.Speed == 'S') wheelBorder = Color.Magenta; - } - - var wheelspace = 0; - var wheelborder = 8; - - //충전중 아이콘 추가 - //var charge = VAR.BOOL?.Get(eVarBool.FLAG_CHARGEONA) ?? false; - ////charge = true; - //if (charge) - //{ - // var x = DisplayRectangle.Right - Properties.Resources.ChargeH.Width - 20; - // var y = -30; - // g.DrawImage(Properties.Resources.ChargeH, x, y); - //} - - //왼쪽오른쪽 분리해서 좌측에는 주행정보를 우측에는 배터리 정보를 표시한다 - - //left wheeel - centerpt = new Point( - (int)(DisplayRectangle.Width / 2.0), - (int)(DisplayRectangle.Height / 2.0)); - - var rectL = new Rectangle(DisplayRectangle.Left, DisplayRectangle.Top, - (int)(DisplayRectangle.Width / 2f), DisplayRectangle.Height); - var rectR = new Rectangle(rectL.Right, DisplayRectangle.Top, - (int)(DisplayRectangle.Width / 2f), DisplayRectangle.Height); - - wheelSize = new Size((int)(rectL.Width * 0.7f), (int)(rectL.Width * 0.7f)); - var rect_lwheel = new Rectangle( - (int)(rectL.Left + (rectL.Width - wheelSize.Width) / 2f), - (int)(rectL.Top + (rectL.Height - wheelSize.Height) / 2f), - wheelSize.Width, - wheelSize.Height); - - g.FillEllipse(new SolidBrush(Color.FromArgb(200, wheelbackL)), rect_lwheel); - g.DrawEllipse(new Pen(Color.Black, wheelborder), rect_lwheel.AddOffset(1, 1)); - g.DrawEllipse(new Pen(wheelBorder, wheelborder), rect_lwheel); - - - //g.DrawRectangle(Pens.Red, rectL); - //g.DrawRectangle(Pens.Blue, rectR); - - //wheel speed text - string speedchar = "마크\n멈춤"; - if (dev_bms != null) - { - //speedchar = dev_bms.Current_Level.ToString("N0"); - if (dev_agv.data.Speed == 'H') - speedchar = "고속"; - else if (dev_agv.data.Speed == 'L') - speedchar = "저속"; - else if (dev_agv.data.Speed == 'M') - speedchar = "중속"; - else if (dev_agv.data.Speed == 'S') - speedchar = "마크\n멈춤"; - else - speedchar = dev_agv.data.Speed.ToString(); - } - - //g.FillRectangle(Brushes.BlanchedAlmond, r.Left, r.Top, r.Width, r.Height); - var degree = 10;// wframe.ElapsedMilliseconds / 10f; - //var angle = (float)(degree * Math.PI / 180f); - - if (RotateTransform.OffsetX == 0) - { - RotateTransform.Translate(DisplayRectangle.Width / 2f, DisplayRectangle.Height / 2f); - } - g.Transform = RotateTransform; - //g.FillEllipse(Brushes.Magenta, new Rectangle(-5, -5, 10, 10)); - - RotateTransform.Reset(); - g.Transform = RotateTransform; - - //speedchar = "100"; - using (Font f = new Font("맑은 고딕", 70, FontStyle.Bold)) - g.DrawString(speedchar, f, Brushes.Black, rect_lwheel, sfCenter); - - - //배터리모양표시 - List batpts = new List(); - var batw = (int)(rectR.Width * 0.6f); - var bath = (int)(rectR.Height * 0.7f); - var ptLT = new PointF(rectR.Left + (rectR.Width - batw) / 2f, rectR.Top + ((rectR.Height - bath) / 2f) + (rectR.Height * 0.05f)); - batpts.Add(ptLT); - batpts.Add(new PointF(ptLT.X + batw, ptLT.Y)); - batpts.Add(new PointF(ptLT.X + batw, ptLT.Y + bath)); - batpts.Add(new PointF(ptLT.X, ptLT.Y + bath)); - //g.DrawPolygon(Pens.Gold, batpts.ToArray()); - - - var bmslevel = 28f; - if (dev_bms != null) bmslevel = dev_bms.BMSInformation.rsoc; - var CornerRadius = 10; - var XPosition = rectR.Left + (rectR.Width - batw) / 2f; - var YPosition = rectR.Top + (rectR.Height - bath) / 2f + (rectR.Height * 0.05f); - var batrect = new RectangleF(XPosition, YPosition, batw, bath); - var bathatsizeH = 30; - Color bmsback = Color.Lime; - if (bmslevel < 30) bmsback = Color.Red; - else if (bmslevel < 40) bmsback = Color.Tomato; - else if (bmslevel < 70) bmsback = Color.Gold; - - using (GraphicsPath Path = new GraphicsPath()) - { - Path.AddLine(XPosition + CornerRadius, YPosition, XPosition + batw / 2f - (batw * 0.1f), YPosition); - Path.AddLine(XPosition + batw / 2f - (batw * 0.1f), YPosition, XPosition + batw / 2f - (batw * 0.1f), YPosition - bathatsizeH + CornerRadius); - Path.AddLine(XPosition + batw / 2f - (batw * 0.1f) + CornerRadius, YPosition - bathatsizeH, XPosition + batw / 2f + (batw * 0.1f) - CornerRadius , YPosition - bathatsizeH); - Path.AddLine(XPosition + batw / 2f + (batw * 0.1f), YPosition - bathatsizeH + CornerRadius, XPosition + batw / 2f + (batw * 0.1f), YPosition ); - Path.AddLine(XPosition + batw / 2f - (batw * 0.1f), YPosition, XPosition + batw - (CornerRadius * 2), YPosition); - Path.AddArc(XPosition + batw - (CornerRadius * 2), YPosition, CornerRadius * 2, CornerRadius * 2, 270, 90); - Path.AddLine(XPosition + batw, YPosition + CornerRadius, XPosition + batw, YPosition + bath - (CornerRadius * 2)); - Path.AddArc(XPosition + batw - (CornerRadius * 2), YPosition + bath - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 0, 90); - Path.AddLine(XPosition + batw - (CornerRadius * 2), YPosition + bath, XPosition + CornerRadius, YPosition + bath); - Path.AddArc(XPosition, YPosition + bath - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 90, 90); - Path.AddLine(XPosition, YPosition + bath - (CornerRadius * 2), XPosition, YPosition + CornerRadius); - Path.AddArc(XPosition, YPosition, CornerRadius * 2, CornerRadius * 2, 180, 90); - Path.CloseFigure(); - var tRegion = new System.Drawing.Region(Path); - var bmsh = (int)(bath * (bmslevel / 100f)); - var gRegion = new Region(new RectangleF(XPosition, YPosition + bath - bmsh, batw, bmsh)); - gRegion.Intersect(tRegion); - g.DrawPath(new Pen(bmsback, 20), Path); - g.FillRegion(Brushes.WhiteSmoke, tRegion); - g.FillRegion(new SolidBrush(bmsback), gRegion); - g.DrawString($"{bmslevel:N0}", Font_MAIN_BMSLevel, Brushes.Black, batrect, sfCenter); - } - - this.DrawDirection(g, rect_lwheel, wheelborder); - - //경고메세지표시 - DrawWarning(g); - - //전체테두리 - g.DrawRectangle(new Pen(BorderColor), DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); - - var nextstop = PUB.AGV.data.Speed == 'S';// VAR.BOOL?.Get(eVarBool.NEXTSTOP_MARK) ?? false; - //if (VAR.BOOL != null) nextstop = VAR.BOOL[eVarBool.NEXTSTOP_MARK]; - //상태메세지표시 - string stmsg = string.Empty; - - if (VAR.STR != null && VAR.STR[eVarString.StatusMessage].isEmpty() == false) stmsg = VAR.STR[eVarString.StatusMessage]; - else stmsg = "STATUS MESSAGE DEMO"; - if (nextstop) stmsg += "|MARK-STOP"; - - var MsgColor = Color.Lime; - if (PUB.Result != null) MsgColor = PUB.Result.SMSG_ForeColor; - using (SolidBrush sb = new SolidBrush(MsgColor)) - using (Font f = new Font("맑은 고딕", 10, FontStyle.Bold)) - g.DrawString(stmsg, f, sb, DisplayRectangle, new StringFormat - { - Alignment = StringAlignment.Near, - LineAlignment = StringAlignment.Far, - }); - - } - - readonly Font StopFont = new Font("맑은 고딕", 30, FontStyle.Bold); - - public class UIButton - { - public RectangleF rect { get; set; } - public string title { get; set; } - public string cmd { get; set; } - public bool Visible { get; set; } - } - public List Buttons = new List(); - public delegate void ButtonClickHandler(UIButton idx); - public event ButtonClickHandler ButtonClick; - - void DrawWarning(Graphics g) - { - - string warnmsg = string.Empty; - string butcmd = string.Empty; - if (dev_agv != null) - { - if (dev_agv.error.Emergency) - warnmsg = "비상 정지"; - else if (dev_agv.error.line_out_error) - warnmsg = "LINE OUT"; - else if (dev_agv.error.Overcurrent) - warnmsg = "OVER CURRENT"; - else if (dev_agv.system1.agv_run && dev_agv.system1.stop_by_front_detect) - warnmsg = "전방 장애물"; - } - //if (DesignMode) - //{ - // warnmsg = "비.상.정.지"; - // butcmd = "EMG"; - //} - - if (warnmsg.isEmpty() && stopmessage.isEmpty() == false) - warnmsg = stopmessage; - - if (warnmsg != "") - { - var but = this.Buttons.Where(t => t.title.Equals(warnmsg)).FirstOrDefault(); - if (but == null) - { - but = new UIButton(); - but.title = warnmsg; - this.Buttons.Add(but); - } - but.cmd = butcmd; - var w = this.Width * 0.9f; - var h = this.Height * 0.4f; - but.rect = new RectangleF( - (float)((this.Width - w) / 2.0f), - (float)((this.Height - h) / 2.0f), - w, h); - var rectt = new RectangleF(but.rect.Left, but.rect.Top, but.rect.Width, 10); - var rectb = new RectangleF(but.rect.Left, but.rect.Bottom - 10, but.rect.Width, 10); - g.FillRectangle(new SolidBrush(Color.FromArgb(200, Color.White)), but.rect); - g.FillRectangle(new SolidBrush(Color.FromArgb(220, Color.Red)), rectt); - g.FillRectangle(new SolidBrush(Color.FromArgb(220, Color.Red)), rectb); - - //var sf = new StringFormat - //{ - // LineAlignment = StringAlignment.Center, - // Alignment = StringAlignment.Center - //}; - var sfsize = g.MeasureString(warnmsg, StopFont); - var scx = (float)((but.rect.Width - sfsize.Width) / 2.0); - var scy = (float)((but.rect.Height - sfsize.Height) / 2.0); - g.DrawString(warnmsg, StopFont, Brushes.Black, but.rect.Left + scx + 1, but.rect.Top + scy + 1); - g.DrawString(warnmsg, StopFont, Brushes.Red, but.rect.Left + scx, but.rect.Top + scy); - g.DrawRectangle(new Pen(Color.FromArgb(250, Color.Black), 2), but.rect.Left, but.rect.Top, but.rect.Width, but.rect.Height); - } - else - { - //버튼을 모두 숨긴다. - foreach (var but in Buttons) - but.Visible = false; - } - } - - - public int frame_direction = 1000 / 10; //초당 4프레임으로 표시한다 - public long frame_direction_ms = 0; - public int frame_direction_idx = 0; - - void DrawDirection(Graphics g, Rectangle rect, int wheelborder) - { - - //위쪽에 방향지시등을 그린다. - var dirterm = 15; - var ditHeight = 50; - var dirWidth = (int)(rect.Width / 5.5f); - var rect_dirup = new Rectangle( - (int)((rect.Left + rect.Width / 2.0) - (dirWidth / 2.0)), - rect.Top - ditHeight - dirterm, - dirWidth, - (ditHeight - wheelborder)); - - var ptsUp = new Point[] { - new Point( rect_dirup.Left, rect_dirup.Bottom), - new Point( rect_dirup.Right, rect_dirup.Bottom), - new Point( (int)(rect_dirup.Left+ rect_dirup.Width/2.0), rect_dirup.Top) - }; - - bool dirup = true; - if (dev_agv != null) dirup = dev_agv.data.Direction == 'B'; - - if (dirup == true) - { - g.FillPolygon(Brushes.Lime, ptsUp); - } - else g.FillPolygon(new SolidBrush(Color.FromArgb(28, 28, 28)), ptsUp); - g.DrawPolygon(Pens.Black, ptsUp); - - - - //아래쪾에 방향지시등을 그린다 - var rect_dirdn = new Rectangle( - (int)((rect.Left + rect.Width / 2.0) - (dirWidth / 2.0)), - rect.Bottom + wheelborder + 1 + dirterm, - dirWidth, - (ditHeight - wheelborder)); - - var ptDn = new Point[] { - new Point( rect_dirdn.Left, rect_dirdn.Top), - new Point( rect_dirdn.Right, rect_dirdn.Top), - new Point( (int)(rect_dirdn.Left+ rect_dirdn.Width/2.0), rect_dirdn.Bottom) - }; - - if (dirup == false) - { - g.FillPolygon(Brushes.Lime, ptDn); - } - else g.FillPolygon(new SolidBrush(Color.FromArgb(28, 28, 28)), ptDn); - g.DrawPolygon(Pens.Black, ptDn); - - - - ////오른쪾에 방향지시등을 그린다 - //var dirR = false; - //var rect_dirr = new Rectangle( - // (int)(rect.Right + dirterm), - // (int)(rect.Top + (rect.Height / 2f)), - // dirWidth, - // (ditHeight - wheelborder)); - - //var ptR = new Point[] { - // new Point( rect_dirr.Left, rect_dirr.Top), - // new Point( rect_dirr.Right, rect_dirr.Top), - // new Point( (int)(rect_dirr.Left+ rect_dirr.Width/2.0), rect_dirr.Bottom) - //}; - - //if (dirR == false) - //{ - // g.FillPolygon(Brushes.Lime, ptR); - //} - //else g.FillPolygon(new SolidBrush(Color.FromArgb(28, 28, 28)), ptR); - //g.DrawPolygon(Pens.Black, ptR); - - } - - //public bool LimitLU - //{ - // get - // { - // if (dev_plc == null) return true; - // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU); - // } - - //} - //public bool LimitLD - //{ - // get - // { - // if (dev_plc == null) return false; - // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD); - // } - //} - //public bool LimitRU - //{ - // get - // { - // if (dev_plc == null) return false; - // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU); - // } - //} - //public bool LimitRD - //{ - // get - // { - // if (dev_plc == null) return true; - // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD); - // } - //} - - void DrawMC(Graphics g) - { - var boxw = DisplayRectangle.Width * 0.5f; - var r = new RectangleF( - boxw - 80, - DisplayRectangle.Top + 50, - boxw, - DisplayRectangle.Height - 20); - //g.DrawRectangle(Pens.Red, r.Left, r.Top, r.Width, r.Height); - - var w = r.Width * 0.7f;// this.DisplayRectangle.Width * 0.45; - var h = r.Height * 0.5f;// this.DisplayRectangle.Height * 0.75; - var pt = new PointF(r.Left + r.Width / 2.0f, r.Top + r.Height / 2.0f); - var rect = new RectangleF((float)(pt.X - w / 2.0f), (float)((pt.Y - h / 2.0f) + 20), (float)w, (float)h); - - //3d모형으로 엣지를 넣는다 - // pt = new PointF(DisplayRectangle.Width / 2.1f, DisplayRectangle.Height / 1.5f); - var sizeX = 150; - // var sizeY = 100; - var sizeZ = 150; - - var PtsFront = new PointF[] { - new PointF(pt.X-sizeX,pt.Y-sizeZ / 2.0f), - new PointF(pt.X+sizeX,pt.Y-sizeZ / 2.0f), - new PointF(pt.X+sizeX,pt.Y+sizeZ / 2.0f), - new PointF(pt.X-sizeX,pt.Y+sizeZ / 2.0f) - }; - var PtsTop = new PointF[] { - new PointF(pt.X-sizeX,pt.Y-(sizeZ / 2.0f)), - new PointF(pt.X+sizeX,pt.Y-(sizeZ / 2.0f)), - new PointF(pt.X +sizeX + 75,pt.Y- sizeZ), - new PointF(pt.X - (sizeX / 2.0f) ,pt.Y-sizeZ) - }; - - - var PtsBottom = new PointF[] { - new PointF(pt.X-sizeX,sizeZ+pt.Y-(sizeZ / 2.0f)), - new PointF(pt.X+sizeX,sizeZ+pt.Y-(sizeZ / 2.0f)), - new PointF(pt.X +sizeX +75,sizeZ+pt.Y- sizeZ), - new PointF(pt.X - (sizeX / 2.0f) ,sizeZ+pt.Y-sizeZ) - }; - - var PtsBack = new PointF[] { - new PointF( (sizeX / 2.0f)+pt.X-sizeX,pt.Y-sizeZ ), - new PointF( (sizeX / 2.0f)+pt.X+sizeX,pt.Y-sizeZ ), - new PointF( (sizeX / 2.0f)+pt.X+sizeX,pt.Y), - new PointF( (sizeX / 2.0f)+pt.X-sizeX,pt.Y) - }; - - var PtsRight = new PointF[] { - new PointF( PtsFront[1].X, PtsFront[1].Y ), - new PointF( PtsBack[1].X, PtsBack[1].Y ), - new PointF( PtsBack[2].X, PtsBack[2].Y ), - new PointF( PtsFront[2].X, PtsFront[2].Y ) - }; - - - var PtsLeft = new PointF[] { - new PointF( PtsFront[0].X, PtsFront[0].Y ), - new PointF( PtsBack[0].X, PtsBack[0].Y ), - new PointF( PtsBack[3].X, PtsBack[3].Y ), - new PointF( PtsFront[3].X, PtsFront[3].Y ) - }; - - //foreach (var p in PtsBottom) - //{ - // var xx = p.X - 5; - // var yy = p.Y - 5; - // var ww = 10; - // var hh = 10; - // g.DrawEllipse(Pens.Red, xx, yy, ww, hh); - //} - - //바닥면 출력 - g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.White)), PtsBottom); - g.DrawPolygon(Pens.Black, PtsBottom); - - //윗면 출력 - g.FillPolygon(new SolidBrush(Color.FromArgb(50, Color.White)), PtsTop); - - ////뒷면먼저출력 - g.FillPolygon(new SolidBrush(Color.FromArgb(50, Color.White)), PtsBack); - - ////우측출력 - g.FillPolygon(new SolidBrush(Color.FromArgb(10, Color.White)), PtsRight); - - ////좌측출력 - g.FillPolygon(new SolidBrush(Color.FromArgb(10, Color.White)), PtsLeft); - - //안전커버 뒷 - var coverPadding = 10; - var coverYOffset = -30; - var coverLYOffset = 0; - var coverRYOffset = 0; - - //if (LimitRD == true) coverRYOffset = 20; - //else if (LimitRU == true) coverRYOffset = coverYOffset; - - //if (LimitLD == true) coverLYOffset = 20; - //else if (LimitLU == true) coverLYOffset = coverYOffset; - - var PtsCoverBack = new PointF[] { - new PointF( PtsBack[0].X+coverPadding, PtsBack[0].Y+coverLYOffset ), - new PointF( PtsBack[1].X-coverPadding, PtsBack[1].Y+coverLYOffset ), - new PointF( PtsBack[2].X-coverPadding, PtsBack[2].Y+coverLYOffset ), - new PointF( PtsBack[3].X+coverPadding, PtsBack[3].Y+coverLYOffset ) - }; - - var PtsCoverFront = new PointF[] { - new PointF( PtsFront[0].X+coverPadding, PtsFront[0].Y+coverRYOffset ), - new PointF( PtsFront[1].X-coverPadding, PtsFront[1].Y+coverRYOffset ), - new PointF( PtsFront[2].X-coverPadding, PtsFront[2].Y+coverRYOffset ), - new PointF( PtsFront[3].X+coverPadding, PtsFront[3].Y+coverRYOffset ) - }; - - //if (LimitLU == true) - //{ - // g.FillPolygon(new SolidBrush(Color.FromArgb(100, Color.Red)), PtsCoverBack); - // g.DrawPolygon(new Pen(Color.DarkRed, 2), PtsCoverBack); - //} - //else if (LimitLD == true) - //{ - // g.FillPolygon(new SolidBrush(Color.FromArgb(100, Color.Blue)), PtsCoverBack); - // g.DrawPolygon(new Pen(Color.DarkBlue, 2), PtsCoverBack); - //} - //else - { - g.FillPolygon(new SolidBrush(Color.FromArgb(100, Color.Gray)), PtsCoverBack); - g.DrawPolygon(Pens.DimGray, PtsCoverBack); - } - - //g.DrawPolygon(Pens.Orange, PtsCoverBack); - - g.FillPolygon(new SolidBrush(Color.FromArgb(50, Color.White)), PtsFront); - // g.DrawPolygon(Pens.Black, PtsFront); - - //if (LimitRU == true) - //{ - // g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.Red)), PtsCoverFront); - // g.DrawPolygon(new Pen(Color.DarkRed, 2), PtsCoverFront); - //} - //else if (LimitRD == true) - //{ - // g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.Blue)), PtsCoverFront); - // g.DrawPolygon(new Pen(Color.DarkBlue, 2), PtsCoverFront); - //} - //else - { - g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.Gray)), PtsCoverFront); - g.DrawPolygon(Pens.DimGray, PtsCoverFront); - } - - //중앙포인트 - g.FillEllipse(Brushes.White, pt.X - 2, pt.Y - 2, 4f, 4f); - - ////button - start - //var buttonSize = 15; - //var offset = 10; - //g.FillEllipse(Brushes.Red, offset * 2.7f + PtsTop[0].X - buttonSize / 2.0f, -offset + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); - //g.DrawEllipse(Pens.Black, offset * 2.7f + PtsTop[0].X - buttonSize / 2.0f, -offset + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); - - //g.FillEllipse(Brushes.Blue, offset * 4.2f + PtsTop[0].X - buttonSize / 2.0f, -offset*2.5f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); - //g.DrawEllipse(Pens.Black, offset * 4.2f + PtsTop[0].X - buttonSize / 2.0f, -offset * 2.5f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); - - //g.FillEllipse(Brushes.Green, offset * 5.5f + PtsTop[0].X - buttonSize / 2.0f, -offset * 4.0f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); - //g.DrawEllipse(Pens.Black, offset * 5.5f + PtsTop[0].X - buttonSize / 2.0f, -offset * 4.0f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); - - } - - //void DrawBattery(Graphics g) - //{ - // //우측 끝에 세로로 표시한다 - // int r = 10; - // int w = 25; - // int y = 10; - // Rectangle rect = new Rectangle(DisplayRectangle.Right - w - r, y, w, DisplayRectangle.Height - (y * 2)); - // var ph = (this.ChargeLevel / 100.0) * rect.Height; - // Rectangle rectp = new Rectangle(rect.Left, (int)(rect.Top + rect.Height - ph), rect.Width, (int)ph); - - // Color pColor = Color.Gold; - // if (ChargeLevel <= 40) pColor = Color.Tomato; - // else if (ChargeLevel >= 80) pColor = Color.Lime; - - - // if (rectp.Height > 1) - // { - // using (LinearGradientBrush b = new LinearGradientBrush(rectp, pColor, Color.FromArgb(150, 150, 150), LinearGradientMode.Vertical)) - // g.FillRectangle(b, rectp); - - // } - - - // //for (int i = 1; i < 10; i++) - // //{ - // // var ly = (int)( rect.Height * ((i*1.0) / 10.0) ); - // // g.DrawLine(Pens.Gray, rect.Left, rect.Top + ly, rect.Right, rect.Top + ly); - // // g.DrawString((10-i).ToString(), this.Font, Brushes.Gray, rect.Left+5, ly+5); - // //} - - - // //전체테두리 - // using (Pen p = new Pen(Color.FromArgb(100, Color.Black))) - // g.DrawRectangle(p, rect); - - - //} - - public class item - { - - public bool Enable_Direction { get; set; } - public Color BackColor1 { get; set; } - public Color BackColor2 { get; set; } - public Color ForeColor { get; set; } - public Color ShadowColor { get; set; } - public Color BorderColor { get; set; } - - public Color RightColor { get; set; } - public Color LeftColor { get; set; } - - [Browsable(false)] - public Rectangle fullrect { get; set; } - [Browsable(false)] - public Rectangle leftrect { get; set; } - [Browsable(false)] - public Rectangle rightrect { get; set; } - - public item() - { - BorderColor = Color.FromArgb(100, 100, 100); - fullrect = Rectangle.Empty; - leftrect = Rectangle.Empty; - rightrect = Rectangle.Empty; - BackColor1 = Color.White; - BackColor2 = Color.Transparent; - ForeColor = Color.DimGray; - ShadowColor = Color.Black; - Enable_Direction = true; - } - - - - public string Title { get; set; } - - public void Draw(Graphics g, Font font, StringFormat sf) - { - Pen pen_border = null; - LinearGradientBrush br_back = null; - SolidBrush br_text = null; - - //펜 - if (pen_border == null) pen_border = new Pen(this.BorderColor); - else pen_border.Color = this.BorderColor; - - //배경브러쉬 - if (br_back == null) br_back = new LinearGradientBrush(this.fullrect, this.BackColor1, this.BackColor2, LinearGradientMode.Vertical); - else - { - br_back.LinearColors[0] = this.BackColor1; - br_back.LinearColors[1] = this.BackColor2; - } - - //제목브러쉬 - if (br_text == null) br_text = new SolidBrush(this.ForeColor); - else br_text.Color = this.ForeColor; - - //배경표시 - g.FillRectangle(br_back, this.fullrect); - - //제목표시 - if (this.Title.isEmpty() == false) - { - if (this.ShadowColor != Color.Transparent && this.ShadowColor != this.ForeColor) - { - using (var brShadow = new SolidBrush(this.ShadowColor)) - g.DrawString( - this.Title, - font, brShadow, - new Rectangle( - this.fullrect.Left + 1, - this.fullrect.Top + 1, - this.fullrect.Width, - this.fullrect.Height), - sf); - } - - g.DrawString(this.Title, font, br_text, this.fullrect, sf); - g.DrawString(this.Title, font, br_text, this.fullrect, sf); - } - - //테두리표시 - g.DrawRectangle(pen_border, this.fullrect); - - if (Enable_Direction) - { - //좌측테두리 - if (this.leftrect.IsEmpty == false) - { - if (this.LeftColor != Color.Transparent) - { - using (SolidBrush sb = new SolidBrush(this.LeftColor)) - g.FillRectangle(sb, this.leftrect); - } - g.DrawRectangle(pen_border, this.leftrect); - } - //우측테두리 - if (this.rightrect.IsEmpty == false) - { - if (this.RightColor != Color.Transparent) - { - using (SolidBrush sb = new SolidBrush(this.RightColor)) - g.FillRectangle(sb, this.rightrect); - } - g.DrawRectangle(pen_border, this.rightrect); - } - - } - - if (pen_border != null) pen_border.Dispose(); - if (br_back != null) br_back.Dispose(); - if (br_text != null) br_text.Dispose(); - } - } - - public class ItemClickEventArgs : EventArgs - { - public item Item { get; set; } - public ItemClickEventArgs(item item) - { - this.Item = item; - } - } - - - - - - void arButton_MouseLeave(object sender, EventArgs e) - { - //isMouseOver = false; - this.Cursor = Cursors.Default; - Invalidate(); - } - - void arButton_MouseEnter(object sender, EventArgs e) - { - //isMouseOver = true; - //this.Cursor = Cursors.Hand; - Invalidate(); - } - - void arButton_MouseUp(object sender, MouseEventArgs e) - { - if (!Enabled) - { - return; - } - // isMouseDown = false; - Invalidate(); - } - - - void arButton_MouseDown(object sender, MouseEventArgs e) - { - if (Enabled == false || Enabled == false) return; - // isMouseDown = true; - - //item fullrect 에서 클릭위치를 찾아야함 - if (Items != null && Items.Length > 0) - { - //마우스위치가 아이템에 포함되어있다면 - var focusItem = Items.Where(t => t.fullrect.Contains(e.Location)).FirstOrDefault(); - if (focusItem != null) - { - ItemClick?.Invoke(this, new ItemClickEventArgs(focusItem)); - } - } - - if (Buttons.Any()) - { - //마우스위치가 아이템에 포함되어있다면 - var focusItem = Buttons.Where(t => t.rect.Contains(e.Location)).FirstOrDefault(); - if (focusItem != null) - { - //ItemClick?.Invoke(this, new ItemClickEventArgs(focusItem)); - ButtonClick?.Invoke(focusItem); - } - } - Invalidate(); - } - - - - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using COMM; +using System.Diagnostics; +using AR; + +namespace Project +{ + /// + /// 2017-04-13 13:26:00 : 라벨이므로 커서 IN 시 Hand 에서 Default로 변경함 + /// + public partial class CtlAuto : Control + { + #region "Enum & Structure" + public enum eColorTheme : byte + { + DaeHyun = 0, + eGrayBlue, + eDarkBlue, + TopMenu, + GrayButton, + GrayTitleBar, + IOStatus, + IOStatusDepp, + BlackButton, + RedButton, + GrayOmokButton, + Stepbar, + RobotStatus, + NewGray_Group, + NewGray_BG, + NewGray_Button, + NewBlue_Button, + Custom, + } + #endregion + + public arDev.BMS dev_bms { private get; set; } = null; + // public arDev.FakePLC dev_plc { private get; set; } = null; + public arDev.Narumi dev_agv { private get; set; } = null; + public Device.Xbee dev_xbe { private get; set; } = null; + + public event EventHandler ItemClick; + + private Font _font_bms_vlt = new Font("Consolas", 50, FontStyle.Bold); + private Font _font_bms_lev = new Font("Consolas", 150, FontStyle.Bold); + private Font _font_main_batlev = new Font("Consolas", 50, FontStyle.Bold); + public Font Font_MAIN_BMSLevel { get { return _font_main_batlev; } set { _font_main_batlev = value; Invalidate(); } } + public Font Font_BMS_Volt { get { return _font_bms_vlt; } set { _font_bms_vlt = value; Invalidate(); } } + public Font Font_BMS_Level { get { return _font_bms_lev; } set { _font_bms_lev = value; Invalidate(); } } + + public enum eScean + { + Normal = 0, + Progress, + } + public eScean Scean { get; set; } = eScean.Normal; + + //public new event EventHandler Click; + public string StatusMessage { get; set; } = string.Empty; + public CtlAuto() + { + + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.MouseDown += arButton_MouseDown; + this.MouseUp += arButton_MouseUp; + this.MouseEnter += arButton_MouseEnter; + this.MouseLeave += arButton_MouseLeave; + this.Resize += arLabel_Resize; + + base.BackColor = Color.FromArgb(32, 32, 32); + ForeColor = Color.White; + } + + ~CtlAuto() + { + this.MouseDown -= arButton_MouseDown; + this.MouseUp -= arButton_MouseUp; + this.MouseEnter -= arButton_MouseEnter; + this.MouseLeave -= arButton_MouseLeave; + this.Resize -= arLabel_Resize; + } + + public void PerformClick() + { + if (Enabled == false) return; //171126 + this.InvokeOnClick(this, new EventArgs()); + } + + void arLabel_Resize(object sender, EventArgs e) + { + if (this.MinimumSize.Width == 0 || this.MinimumSize.Height == 0) + this.MinimumSize = new Size(100, 30); + + //bRemakeRect = true; + Invalidate(); + } + + public new Padding Padding + { + get + { + return base.Padding; + } + set + { + base.Padding = value; + this.Invalidate(); + } + } + public Color BorderColor { get; set; } + private int _itemgap = 0; + public int ItemGap { get { return _itemgap; } set { _itemgap = value; Invalidate(); } } + //Boolean bRemakeRect = true; + public item[] Items { get; set; } + + public StateMachine.ERunStep runStep = StateMachine.ERunStep.READY; + public Boolean OnUpdateMode = false; + + public Boolean Status_AutoRun + { + get + { + if (VAR.BOOL == null) return true; + else return VAR.BOOL[eVarBool.FLAG_AUTORUN]; + } + } + + + + public DateTime StopTime { get; set; } + private string stopmessage = ""; + public string StopMessage { get { return stopmessage; } set { this.stopmessage = value; this.Invalidate(); } } + + System.Diagnostics.Stopwatch wframe = new System.Diagnostics.Stopwatch(); + + Point centerpt; + protected override void OnPaint(PaintEventArgs e) + { + //Set Optimized Double Buffer to reduce flickering + e.Graphics.CompositingQuality = CompositingQuality.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.High; + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + if (wframe.IsRunning == false) wframe.Restart(); + + if (this.Scean == eScean.Normal) + { + var chargeM = VAR.BOOL?.Get(eVarBool.FLAG_CHARGEONM) ?? false; + var chargeA = dev_agv?.system1.Battery_charging ?? false; + var charge = chargeM || chargeA; + + //if (DesignMode) charge = true; + if (charge) + { + Scean_Normal_Charge(e.Graphics, (chargeM ? "수동" : "자동")); + } + else + { + Scean_Normal(e.Graphics); + } + } + else if (this.Scean == eScean.Progress) + Scean_Progress(e.Graphics); + + //버젼표시 + var version = VAR.STR?.Get(eVarString.SWVersion) ?? string.Empty; + if (DesignMode) version = "1.1.1.1"; + using (var f = new Font("Consolas", 8)) + e.Graphics.DrawString(version, f, Brushes.Gray, DisplayRectangle, sfBottomRight); + + } + StringFormat sfEnd = new StringFormat + { + Alignment = StringAlignment.Far, + LineAlignment = StringAlignment.Center + }; + StringFormat sfStart = new StringFormat + { + Alignment = StringAlignment.Near, + LineAlignment = StringAlignment.Center + }; + StringFormat sfCenter = new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }; + StringFormat sfBottom = new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Far + }; + StringFormat sfBottomRight = new StringFormat + { + Alignment = StringAlignment.Far, + LineAlignment = StringAlignment.Far + }; + StringFormat sfBottomLeft = new StringFormat + { + Alignment = StringAlignment.Near, + LineAlignment = StringAlignment.Far + }; + public float ProgressMax { get; set; } = 100; + public float ProgressVal { get; set; } = 0; + Matrix TranslationTransform = new Matrix(); + Matrix RotateTransform = new Matrix(); + void Scean_Progress(Graphics g) + { + var progheight = DisplayRectangle.Height * 0.1f; + var r = new RectangleF(DisplayRectangle.Left + 50, + DisplayRectangle.Bottom - progheight - (DisplayRectangle.Height * 0.2f), + DisplayRectangle.Width - 100, progheight); + + var rt = new RectangleF( + r.Left, + DisplayRectangle.Top, + r.Width, + r.Top - DisplayRectangle.Height * 0.05f); + + //g.DrawRectangle(Pens.Blue, rt.Left, rt.Top, rt.Width, rt.Height); + g.DrawString(this.StatusMessage, this.Font, Brushes.White, + rt, sfBottom); + + var progw = r.Width * (this.ProgressVal / this.ProgressMax); + var progr = new RectangleF(r.Left, r.Top, progw, r.Height); + + g.FillRectangle(new LinearGradientBrush(r, Color.LightSkyBlue, Color.DeepSkyBlue, LinearGradientMode.Vertical), progr); + g.DrawRectangle(Pens.DimGray, r.Left, r.Top, r.Width, r.Height); + + } + int textdir = -1; + void Scean_Normal_Charge(Graphics g, string mode) + { + var bmsready = dev_bms?.IsValid ?? false;// != null; + + if (DesignMode) bmsready = true; + if (bmsready == false) + { + var pts = new List(); + pts.Add(new Point(0, 0)); + pts.Add(new Point(80, 0)); + pts.Add(new Point(0, 80)); + + using (var f = new Font("Consolas", 110, FontStyle.Bold)) + g.DrawString("BMS NOT CONNECTED", f, Brushes.Gold, this.DisplayRectangle, this.sfCenter); + + g.FillPolygon(Brushes.Gold, pts.ToArray()); + + pts.Clear(); + pts.Add(new Point(0, 0)); + pts.Add(new Point(30, 0)); + pts.Add(new Point(0, 30)); + g.FillPolygon(Brushes.Orange, pts.ToArray()); + + } + else + { + //단순 수치값을 크게 표시히낟. + var Volt = dev_bms?.BMSInformation.packVoltage ?? 25.35f; + var Lev = dev_bms?.BMSInformation.rsoc ?? 80f; + + var textColor = Color.Lime; + if (Lev < 30) textColor = Color.Red; + else if (Lev < 40) textColor = Color.Tomato; + else if (Lev < 60) textColor = Color.Orange; + else if (Lev < 80) textColor = Color.Gold; + + + using (var textbrush = new SolidBrush(textColor)) + g.DrawString($"{Lev:N1}%", this.Font_BMS_Level, textbrush, DisplayRectangle, sfCenter); + + g.DrawString($"{Volt:N1}v", this.Font_BMS_Volt, Brushes.Gold, DisplayRectangle, sfBottomRight); + + var r = new RectangleF(DisplayRectangle.Left, DisplayRectangle.Top, + DisplayRectangle.Width, 25); + + //msg = wframe.ElapsedMilliseconds.ToString() + msg; + var msgc = mode.Equals("수동") ? Color.Gray : Color.Gray; + using (var f = new Font("맑은 고딕", 11, FontStyle.Regular)) + using (var sb = new SolidBrush(msgc)) + { + var msg = mode.Equals("수동") ? "수동 충전 중입니다 / 해제 하려면 케이블을 제거하고 [충전취소] 버튼을 누르세요" : + "자동 충전 중 입니다 / 최대 충전량에 도달 하거나 (CALL)이 발생하면 자동 해제 됩니다"; + + var textsize = g.MeasureString(msg, f); + //msg = textsize.Width.ToString() + "_" + TranslationTransform.OffsetX.ToString() + ":" + msg; + //var minx = DisplayRectangle.Width - textsize.Width + + //화면이 넘어갔다면 다시 오른쪽으로 간다 + if (textdir < 0 && TranslationTransform.OffsetX < (textsize.Width - DisplayRectangle.Width)) + textdir *= -1; + else if (textdir > 0 && TranslationTransform.OffsetX >= 0) + textdir *= -1; + + //g.FillRectangle(Brushes.BlanchedAlmond, r.Left, r.Top, r.Width, r.Height); + TranslationTransform.Translate(textdir * (wframe.ElapsedMilliseconds / 10f), 0); + wframe.Restart(); + + g.Transform = TranslationTransform; + + g.DrawString(msg, f, sb, r, sfEnd); + } + + + //TranslationTransform.Reset(); + + + + + } + } + void Scean_Normal(Graphics g) + { + + // if (Status_AutoRun) + // g.FillRectangle(new SolidBrush(Color.FromArgb(40, 40, 40)), this.DisplayRectangle); + //else + g.FillRectangle(new SolidBrush(Color.FromArgb(32, 32, 32)), this.DisplayRectangle); + + var wheelSize = new Size((int)(DisplayRectangle.Width * 0.35), + (int)(DisplayRectangle.Width * 0.35)); + + bool agv_run = true; + if (dev_agv != null) agv_run = dev_agv.system1.agv_run; + + Color wheelbackL = agv_run ? Color.DeepSkyBlue : Color.DimGray; + Color wheelBorder = Color.Gold; + if (dev_agv != null) + { + if (dev_agv.data.Speed == 'H') wheelBorder = Color.Red; + else if (dev_agv.data.Speed == 'M') wheelBorder = Color.Gold; + else if (dev_agv.data.Speed == 'L') wheelBorder = Color.Black; + else if (dev_agv.data.Speed == 'S') wheelBorder = Color.Magenta; + } + + var wheelspace = 0; + var wheelborder = 8; + + //충전중 아이콘 추가 + //var charge = VAR.BOOL?.Get(eVarBool.FLAG_CHARGEONA) ?? false; + ////charge = true; + //if (charge) + //{ + // var x = DisplayRectangle.Right - Properties.Resources.ChargeH.Width - 20; + // var y = -30; + // g.DrawImage(Properties.Resources.ChargeH, x, y); + //} + + //왼쪽오른쪽 분리해서 좌측에는 주행정보를 우측에는 배터리 정보를 표시한다 + + //left wheeel + centerpt = new Point( + (int)(DisplayRectangle.Width / 2.0), + (int)(DisplayRectangle.Height / 2.0)); + + var rectL = new Rectangle(DisplayRectangle.Left, DisplayRectangle.Top, + (int)(DisplayRectangle.Width / 2f), DisplayRectangle.Height); + var rectR = new Rectangle(rectL.Right, DisplayRectangle.Top, + (int)(DisplayRectangle.Width / 2f), DisplayRectangle.Height); + + wheelSize = new Size((int)(rectL.Width * 0.7f), (int)(rectL.Width * 0.7f)); + var rect_lwheel = new Rectangle( + (int)(rectL.Left + (rectL.Width - wheelSize.Width) / 2f), + (int)(rectL.Top + (rectL.Height - wheelSize.Height) / 2f), + wheelSize.Width, + wheelSize.Height); + + g.FillEllipse(new SolidBrush(Color.FromArgb(200, wheelbackL)), rect_lwheel); + g.DrawEllipse(new Pen(Color.Black, wheelborder), rect_lwheel.AddOffset(1, 1)); + g.DrawEllipse(new Pen(wheelBorder, wheelborder), rect_lwheel); + + + //g.DrawRectangle(Pens.Red, rectL); + //g.DrawRectangle(Pens.Blue, rectR); + + //wheel speed text + string speedchar = "마크\n멈춤"; + if (dev_bms != null) + { + //speedchar = dev_bms.Current_Level.ToString("N0"); + if (dev_agv.data.Speed == 'H') + speedchar = "고속"; + else if (dev_agv.data.Speed == 'L') + speedchar = "저속"; + else if (dev_agv.data.Speed == 'M') + speedchar = "중속"; + else if (dev_agv.data.Speed == 'S') + speedchar = "마크\n멈춤"; + else + speedchar = dev_agv.data.Speed.ToString(); + } + + //g.FillRectangle(Brushes.BlanchedAlmond, r.Left, r.Top, r.Width, r.Height); + var degree = 10;// wframe.ElapsedMilliseconds / 10f; + //var angle = (float)(degree * Math.PI / 180f); + + if (RotateTransform.OffsetX == 0) + { + RotateTransform.Translate(DisplayRectangle.Width / 2f, DisplayRectangle.Height / 2f); + } + g.Transform = RotateTransform; + //g.FillEllipse(Brushes.Magenta, new Rectangle(-5, -5, 10, 10)); + + RotateTransform.Reset(); + g.Transform = RotateTransform; + + //speedchar = "100"; + using (Font f = new Font("맑은 고딕", 70, FontStyle.Bold)) + g.DrawString(speedchar, f, Brushes.Black, rect_lwheel, sfCenter); + + + //배터리모양표시 + List batpts = new List(); + var batw = (int)(rectR.Width * 0.6f); + var bath = (int)(rectR.Height * 0.7f); + var ptLT = new PointF(rectR.Left + (rectR.Width - batw) / 2f, rectR.Top + ((rectR.Height - bath) / 2f) + (rectR.Height * 0.05f)); + batpts.Add(ptLT); + batpts.Add(new PointF(ptLT.X + batw, ptLT.Y)); + batpts.Add(new PointF(ptLT.X + batw, ptLT.Y + bath)); + batpts.Add(new PointF(ptLT.X, ptLT.Y + bath)); + //g.DrawPolygon(Pens.Gold, batpts.ToArray()); + + + var bmslevel = 28f; + if (dev_bms != null) bmslevel = dev_bms.BMSInformation.rsoc; + var CornerRadius = 10; + var XPosition = rectR.Left + (rectR.Width - batw) / 2f; + var YPosition = rectR.Top + (rectR.Height - bath) / 2f + (rectR.Height * 0.05f); + var batrect = new RectangleF(XPosition, YPosition, batw, bath); + var bathatsizeH = 30; + Color bmsback = Color.Lime; + if (bmslevel < 30) bmsback = Color.Red; + else if (bmslevel < 40) bmsback = Color.Tomato; + else if (bmslevel < 70) bmsback = Color.Gold; + + using (GraphicsPath Path = new GraphicsPath()) + { + Path.AddLine(XPosition + CornerRadius, YPosition, XPosition + batw / 2f - (batw * 0.1f), YPosition); + Path.AddLine(XPosition + batw / 2f - (batw * 0.1f), YPosition, XPosition + batw / 2f - (batw * 0.1f), YPosition - bathatsizeH + CornerRadius); + Path.AddLine(XPosition + batw / 2f - (batw * 0.1f) + CornerRadius, YPosition - bathatsizeH, XPosition + batw / 2f + (batw * 0.1f) - CornerRadius , YPosition - bathatsizeH); + Path.AddLine(XPosition + batw / 2f + (batw * 0.1f), YPosition - bathatsizeH + CornerRadius, XPosition + batw / 2f + (batw * 0.1f), YPosition ); + Path.AddLine(XPosition + batw / 2f - (batw * 0.1f), YPosition, XPosition + batw - (CornerRadius * 2), YPosition); + Path.AddArc(XPosition + batw - (CornerRadius * 2), YPosition, CornerRadius * 2, CornerRadius * 2, 270, 90); + Path.AddLine(XPosition + batw, YPosition + CornerRadius, XPosition + batw, YPosition + bath - (CornerRadius * 2)); + Path.AddArc(XPosition + batw - (CornerRadius * 2), YPosition + bath - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 0, 90); + Path.AddLine(XPosition + batw - (CornerRadius * 2), YPosition + bath, XPosition + CornerRadius, YPosition + bath); + Path.AddArc(XPosition, YPosition + bath - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 90, 90); + Path.AddLine(XPosition, YPosition + bath - (CornerRadius * 2), XPosition, YPosition + CornerRadius); + Path.AddArc(XPosition, YPosition, CornerRadius * 2, CornerRadius * 2, 180, 90); + Path.CloseFigure(); + var tRegion = new System.Drawing.Region(Path); + var bmsh = (int)(bath * (bmslevel / 100f)); + var gRegion = new Region(new RectangleF(XPosition, YPosition + bath - bmsh, batw, bmsh)); + gRegion.Intersect(tRegion); + g.DrawPath(new Pen(bmsback, 20), Path); + g.FillRegion(Brushes.WhiteSmoke, tRegion); + g.FillRegion(new SolidBrush(bmsback), gRegion); + g.DrawString($"{bmslevel:N0}", Font_MAIN_BMSLevel, Brushes.Black, batrect, sfCenter); + } + + this.DrawDirection(g, rect_lwheel, wheelborder); + + //경고메세지표시 + DrawWarning(g); + + //전체테두리 + g.DrawRectangle(new Pen(BorderColor), DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + var nextstop = PUB.AGV.data.Speed == 'S';// VAR.BOOL?.Get(eVarBool.NEXTSTOP_MARK) ?? false; + //if (VAR.BOOL != null) nextstop = VAR.BOOL[eVarBool.NEXTSTOP_MARK]; + //상태메세지표시 + string stmsg = string.Empty; + + if (VAR.STR != null && VAR.STR[eVarString.StatusMessage].isEmpty() == false) stmsg = VAR.STR[eVarString.StatusMessage]; + else stmsg = "STATUS MESSAGE DEMO"; + if (nextstop) stmsg += "|MARK-STOP"; + + var MsgColor = Color.Lime; + if (PUB.Result != null) MsgColor = PUB.Result.SMSG_ForeColor; + using (SolidBrush sb = new SolidBrush(MsgColor)) + using (Font f = new Font("맑은 고딕", 10, FontStyle.Bold)) + g.DrawString(stmsg, f, sb, DisplayRectangle, new StringFormat + { + Alignment = StringAlignment.Near, + LineAlignment = StringAlignment.Far, + }); + + } + + readonly Font StopFont = new Font("맑은 고딕", 30, FontStyle.Bold); + + public class UIButton + { + public RectangleF rect { get; set; } + public string title { get; set; } + public string cmd { get; set; } + public bool Visible { get; set; } + } + public List Buttons = new List(); + public delegate void ButtonClickHandler(UIButton idx); + public event ButtonClickHandler ButtonClick; + + void DrawWarning(Graphics g) + { + + string warnmsg = string.Empty; + string butcmd = string.Empty; + if (dev_agv != null) + { + if (dev_agv.error.Emergency) + warnmsg = "비상 정지"; + else if (dev_agv.error.line_out_error) + warnmsg = "LINE OUT"; + else if (dev_agv.error.Overcurrent) + warnmsg = "OVER CURRENT"; + else if (dev_agv.system1.agv_run && dev_agv.system1.stop_by_front_detect) + warnmsg = "전방 장애물"; + } + //if (DesignMode) + //{ + // warnmsg = "비.상.정.지"; + // butcmd = "EMG"; + //} + + if (warnmsg.isEmpty() && stopmessage.isEmpty() == false) + warnmsg = stopmessage; + + if (warnmsg != "") + { + var but = this.Buttons.Where(t => t.title.Equals(warnmsg)).FirstOrDefault(); + if (but == null) + { + but = new UIButton(); + but.title = warnmsg; + this.Buttons.Add(but); + } + but.cmd = butcmd; + var w = this.Width * 0.9f; + var h = this.Height * 0.4f; + but.rect = new RectangleF( + (float)((this.Width - w) / 2.0f), + (float)((this.Height - h) / 2.0f), + w, h); + var rectt = new RectangleF(but.rect.Left, but.rect.Top, but.rect.Width, 10); + var rectb = new RectangleF(but.rect.Left, but.rect.Bottom - 10, but.rect.Width, 10); + g.FillRectangle(new SolidBrush(Color.FromArgb(200, Color.White)), but.rect); + g.FillRectangle(new SolidBrush(Color.FromArgb(220, Color.Red)), rectt); + g.FillRectangle(new SolidBrush(Color.FromArgb(220, Color.Red)), rectb); + + //var sf = new StringFormat + //{ + // LineAlignment = StringAlignment.Center, + // Alignment = StringAlignment.Center + //}; + var sfsize = g.MeasureString(warnmsg, StopFont); + var scx = (float)((but.rect.Width - sfsize.Width) / 2.0); + var scy = (float)((but.rect.Height - sfsize.Height) / 2.0); + g.DrawString(warnmsg, StopFont, Brushes.Black, but.rect.Left + scx + 1, but.rect.Top + scy + 1); + g.DrawString(warnmsg, StopFont, Brushes.Red, but.rect.Left + scx, but.rect.Top + scy); + g.DrawRectangle(new Pen(Color.FromArgb(250, Color.Black), 2), but.rect.Left, but.rect.Top, but.rect.Width, but.rect.Height); + } + else + { + //버튼을 모두 숨긴다. + foreach (var but in Buttons) + but.Visible = false; + } + } + + + public int frame_direction = 1000 / 10; //초당 4프레임으로 표시한다 + public long frame_direction_ms = 0; + public int frame_direction_idx = 0; + + void DrawDirection(Graphics g, Rectangle rect, int wheelborder) + { + + //위쪽에 방향지시등을 그린다. + var dirterm = 15; + var ditHeight = 50; + var dirWidth = (int)(rect.Width / 5.5f); + var rect_dirup = new Rectangle( + (int)((rect.Left + rect.Width / 2.0) - (dirWidth / 2.0)), + rect.Top - ditHeight - dirterm, + dirWidth, + (ditHeight - wheelborder)); + + var ptsUp = new Point[] { + new Point( rect_dirup.Left, rect_dirup.Bottom), + new Point( rect_dirup.Right, rect_dirup.Bottom), + new Point( (int)(rect_dirup.Left+ rect_dirup.Width/2.0), rect_dirup.Top) + }; + + bool dirup = true; + if (dev_agv != null) dirup = dev_agv.data.Direction == 'B'; + + if (dirup == true) + { + g.FillPolygon(Brushes.Lime, ptsUp); + } + else g.FillPolygon(new SolidBrush(Color.FromArgb(28, 28, 28)), ptsUp); + g.DrawPolygon(Pens.Black, ptsUp); + + + + //아래쪾에 방향지시등을 그린다 + var rect_dirdn = new Rectangle( + (int)((rect.Left + rect.Width / 2.0) - (dirWidth / 2.0)), + rect.Bottom + wheelborder + 1 + dirterm, + dirWidth, + (ditHeight - wheelborder)); + + var ptDn = new Point[] { + new Point( rect_dirdn.Left, rect_dirdn.Top), + new Point( rect_dirdn.Right, rect_dirdn.Top), + new Point( (int)(rect_dirdn.Left+ rect_dirdn.Width/2.0), rect_dirdn.Bottom) + }; + + if (dirup == false) + { + g.FillPolygon(Brushes.Lime, ptDn); + } + else g.FillPolygon(new SolidBrush(Color.FromArgb(28, 28, 28)), ptDn); + g.DrawPolygon(Pens.Black, ptDn); + + + + ////오른쪾에 방향지시등을 그린다 + //var dirR = false; + //var rect_dirr = new Rectangle( + // (int)(rect.Right + dirterm), + // (int)(rect.Top + (rect.Height / 2f)), + // dirWidth, + // (ditHeight - wheelborder)); + + //var ptR = new Point[] { + // new Point( rect_dirr.Left, rect_dirr.Top), + // new Point( rect_dirr.Right, rect_dirr.Top), + // new Point( (int)(rect_dirr.Left+ rect_dirr.Width/2.0), rect_dirr.Bottom) + //}; + + //if (dirR == false) + //{ + // g.FillPolygon(Brushes.Lime, ptR); + //} + //else g.FillPolygon(new SolidBrush(Color.FromArgb(28, 28, 28)), ptR); + //g.DrawPolygon(Pens.Black, ptR); + + } + + //public bool LimitLU + //{ + // get + // { + // if (dev_plc == null) return true; + // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU); + // } + + //} + //public bool LimitLD + //{ + // get + // { + // if (dev_plc == null) return false; + // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD); + // } + //} + //public bool LimitRU + //{ + // get + // { + // if (dev_plc == null) return false; + // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU); + // } + //} + //public bool LimitRD + //{ + // get + // { + // if (dev_plc == null) return true; + // return dev_plc.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD); + // } + //} + + void DrawMC(Graphics g) + { + var boxw = DisplayRectangle.Width * 0.5f; + var r = new RectangleF( + boxw - 80, + DisplayRectangle.Top + 50, + boxw, + DisplayRectangle.Height - 20); + //g.DrawRectangle(Pens.Red, r.Left, r.Top, r.Width, r.Height); + + var w = r.Width * 0.7f;// this.DisplayRectangle.Width * 0.45; + var h = r.Height * 0.5f;// this.DisplayRectangle.Height * 0.75; + var pt = new PointF(r.Left + r.Width / 2.0f, r.Top + r.Height / 2.0f); + var rect = new RectangleF((float)(pt.X - w / 2.0f), (float)((pt.Y - h / 2.0f) + 20), (float)w, (float)h); + + //3d모형으로 엣지를 넣는다 + // pt = new PointF(DisplayRectangle.Width / 2.1f, DisplayRectangle.Height / 1.5f); + var sizeX = 150; + // var sizeY = 100; + var sizeZ = 150; + + var PtsFront = new PointF[] { + new PointF(pt.X-sizeX,pt.Y-sizeZ / 2.0f), + new PointF(pt.X+sizeX,pt.Y-sizeZ / 2.0f), + new PointF(pt.X+sizeX,pt.Y+sizeZ / 2.0f), + new PointF(pt.X-sizeX,pt.Y+sizeZ / 2.0f) + }; + var PtsTop = new PointF[] { + new PointF(pt.X-sizeX,pt.Y-(sizeZ / 2.0f)), + new PointF(pt.X+sizeX,pt.Y-(sizeZ / 2.0f)), + new PointF(pt.X +sizeX + 75,pt.Y- sizeZ), + new PointF(pt.X - (sizeX / 2.0f) ,pt.Y-sizeZ) + }; + + + var PtsBottom = new PointF[] { + new PointF(pt.X-sizeX,sizeZ+pt.Y-(sizeZ / 2.0f)), + new PointF(pt.X+sizeX,sizeZ+pt.Y-(sizeZ / 2.0f)), + new PointF(pt.X +sizeX +75,sizeZ+pt.Y- sizeZ), + new PointF(pt.X - (sizeX / 2.0f) ,sizeZ+pt.Y-sizeZ) + }; + + var PtsBack = new PointF[] { + new PointF( (sizeX / 2.0f)+pt.X-sizeX,pt.Y-sizeZ ), + new PointF( (sizeX / 2.0f)+pt.X+sizeX,pt.Y-sizeZ ), + new PointF( (sizeX / 2.0f)+pt.X+sizeX,pt.Y), + new PointF( (sizeX / 2.0f)+pt.X-sizeX,pt.Y) + }; + + var PtsRight = new PointF[] { + new PointF( PtsFront[1].X, PtsFront[1].Y ), + new PointF( PtsBack[1].X, PtsBack[1].Y ), + new PointF( PtsBack[2].X, PtsBack[2].Y ), + new PointF( PtsFront[2].X, PtsFront[2].Y ) + }; + + + var PtsLeft = new PointF[] { + new PointF( PtsFront[0].X, PtsFront[0].Y ), + new PointF( PtsBack[0].X, PtsBack[0].Y ), + new PointF( PtsBack[3].X, PtsBack[3].Y ), + new PointF( PtsFront[3].X, PtsFront[3].Y ) + }; + + //foreach (var p in PtsBottom) + //{ + // var xx = p.X - 5; + // var yy = p.Y - 5; + // var ww = 10; + // var hh = 10; + // g.DrawEllipse(Pens.Red, xx, yy, ww, hh); + //} + + //바닥면 출력 + g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.White)), PtsBottom); + g.DrawPolygon(Pens.Black, PtsBottom); + + //윗면 출력 + g.FillPolygon(new SolidBrush(Color.FromArgb(50, Color.White)), PtsTop); + + ////뒷면먼저출력 + g.FillPolygon(new SolidBrush(Color.FromArgb(50, Color.White)), PtsBack); + + ////우측출력 + g.FillPolygon(new SolidBrush(Color.FromArgb(10, Color.White)), PtsRight); + + ////좌측출력 + g.FillPolygon(new SolidBrush(Color.FromArgb(10, Color.White)), PtsLeft); + + //안전커버 뒷 + var coverPadding = 10; + var coverYOffset = -30; + var coverLYOffset = 0; + var coverRYOffset = 0; + + //if (LimitRD == true) coverRYOffset = 20; + //else if (LimitRU == true) coverRYOffset = coverYOffset; + + //if (LimitLD == true) coverLYOffset = 20; + //else if (LimitLU == true) coverLYOffset = coverYOffset; + + var PtsCoverBack = new PointF[] { + new PointF( PtsBack[0].X+coverPadding, PtsBack[0].Y+coverLYOffset ), + new PointF( PtsBack[1].X-coverPadding, PtsBack[1].Y+coverLYOffset ), + new PointF( PtsBack[2].X-coverPadding, PtsBack[2].Y+coverLYOffset ), + new PointF( PtsBack[3].X+coverPadding, PtsBack[3].Y+coverLYOffset ) + }; + + var PtsCoverFront = new PointF[] { + new PointF( PtsFront[0].X+coverPadding, PtsFront[0].Y+coverRYOffset ), + new PointF( PtsFront[1].X-coverPadding, PtsFront[1].Y+coverRYOffset ), + new PointF( PtsFront[2].X-coverPadding, PtsFront[2].Y+coverRYOffset ), + new PointF( PtsFront[3].X+coverPadding, PtsFront[3].Y+coverRYOffset ) + }; + + //if (LimitLU == true) + //{ + // g.FillPolygon(new SolidBrush(Color.FromArgb(100, Color.Red)), PtsCoverBack); + // g.DrawPolygon(new Pen(Color.DarkRed, 2), PtsCoverBack); + //} + //else if (LimitLD == true) + //{ + // g.FillPolygon(new SolidBrush(Color.FromArgb(100, Color.Blue)), PtsCoverBack); + // g.DrawPolygon(new Pen(Color.DarkBlue, 2), PtsCoverBack); + //} + //else + { + g.FillPolygon(new SolidBrush(Color.FromArgb(100, Color.Gray)), PtsCoverBack); + g.DrawPolygon(Pens.DimGray, PtsCoverBack); + } + + //g.DrawPolygon(Pens.Orange, PtsCoverBack); + + g.FillPolygon(new SolidBrush(Color.FromArgb(50, Color.White)), PtsFront); + // g.DrawPolygon(Pens.Black, PtsFront); + + //if (LimitRU == true) + //{ + // g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.Red)), PtsCoverFront); + // g.DrawPolygon(new Pen(Color.DarkRed, 2), PtsCoverFront); + //} + //else if (LimitRD == true) + //{ + // g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.Blue)), PtsCoverFront); + // g.DrawPolygon(new Pen(Color.DarkBlue, 2), PtsCoverFront); + //} + //else + { + g.FillPolygon(new SolidBrush(Color.FromArgb(150, Color.Gray)), PtsCoverFront); + g.DrawPolygon(Pens.DimGray, PtsCoverFront); + } + + //중앙포인트 + g.FillEllipse(Brushes.White, pt.X - 2, pt.Y - 2, 4f, 4f); + + ////button - start + //var buttonSize = 15; + //var offset = 10; + //g.FillEllipse(Brushes.Red, offset * 2.7f + PtsTop[0].X - buttonSize / 2.0f, -offset + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); + //g.DrawEllipse(Pens.Black, offset * 2.7f + PtsTop[0].X - buttonSize / 2.0f, -offset + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); + + //g.FillEllipse(Brushes.Blue, offset * 4.2f + PtsTop[0].X - buttonSize / 2.0f, -offset*2.5f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); + //g.DrawEllipse(Pens.Black, offset * 4.2f + PtsTop[0].X - buttonSize / 2.0f, -offset * 2.5f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); + + //g.FillEllipse(Brushes.Green, offset * 5.5f + PtsTop[0].X - buttonSize / 2.0f, -offset * 4.0f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); + //g.DrawEllipse(Pens.Black, offset * 5.5f + PtsTop[0].X - buttonSize / 2.0f, -offset * 4.0f + PtsTop[0].Y - buttonSize / 2.0f, buttonSize, buttonSize); + + } + + //void DrawBattery(Graphics g) + //{ + // //우측 끝에 세로로 표시한다 + // int r = 10; + // int w = 25; + // int y = 10; + // Rectangle rect = new Rectangle(DisplayRectangle.Right - w - r, y, w, DisplayRectangle.Height - (y * 2)); + // var ph = (this.ChargeLevel / 100.0) * rect.Height; + // Rectangle rectp = new Rectangle(rect.Left, (int)(rect.Top + rect.Height - ph), rect.Width, (int)ph); + + // Color pColor = Color.Gold; + // if (ChargeLevel <= 40) pColor = Color.Tomato; + // else if (ChargeLevel >= 80) pColor = Color.Lime; + + + // if (rectp.Height > 1) + // { + // using (LinearGradientBrush b = new LinearGradientBrush(rectp, pColor, Color.FromArgb(150, 150, 150), LinearGradientMode.Vertical)) + // g.FillRectangle(b, rectp); + + // } + + + // //for (int i = 1; i < 10; i++) + // //{ + // // var ly = (int)( rect.Height * ((i*1.0) / 10.0) ); + // // g.DrawLine(Pens.Gray, rect.Left, rect.Top + ly, rect.Right, rect.Top + ly); + // // g.DrawString((10-i).ToString(), this.Font, Brushes.Gray, rect.Left+5, ly+5); + // //} + + + // //전체테두리 + // using (Pen p = new Pen(Color.FromArgb(100, Color.Black))) + // g.DrawRectangle(p, rect); + + + //} + + public class item + { + + public bool Enable_Direction { get; set; } + public Color BackColor1 { get; set; } + public Color BackColor2 { get; set; } + public Color ForeColor { get; set; } + public Color ShadowColor { get; set; } + public Color BorderColor { get; set; } + + public Color RightColor { get; set; } + public Color LeftColor { get; set; } + + [Browsable(false)] + public Rectangle fullrect { get; set; } + [Browsable(false)] + public Rectangle leftrect { get; set; } + [Browsable(false)] + public Rectangle rightrect { get; set; } + + public item() + { + BorderColor = Color.FromArgb(100, 100, 100); + fullrect = Rectangle.Empty; + leftrect = Rectangle.Empty; + rightrect = Rectangle.Empty; + BackColor1 = Color.White; + BackColor2 = Color.Transparent; + ForeColor = Color.DimGray; + ShadowColor = Color.Black; + Enable_Direction = true; + } + + + + public string Title { get; set; } + + public void Draw(Graphics g, Font font, StringFormat sf) + { + Pen pen_border = null; + LinearGradientBrush br_back = null; + SolidBrush br_text = null; + + //펜 + if (pen_border == null) pen_border = new Pen(this.BorderColor); + else pen_border.Color = this.BorderColor; + + //배경브러쉬 + if (br_back == null) br_back = new LinearGradientBrush(this.fullrect, this.BackColor1, this.BackColor2, LinearGradientMode.Vertical); + else + { + br_back.LinearColors[0] = this.BackColor1; + br_back.LinearColors[1] = this.BackColor2; + } + + //제목브러쉬 + if (br_text == null) br_text = new SolidBrush(this.ForeColor); + else br_text.Color = this.ForeColor; + + //배경표시 + g.FillRectangle(br_back, this.fullrect); + + //제목표시 + if (this.Title.isEmpty() == false) + { + if (this.ShadowColor != Color.Transparent && this.ShadowColor != this.ForeColor) + { + using (var brShadow = new SolidBrush(this.ShadowColor)) + g.DrawString( + this.Title, + font, brShadow, + new Rectangle( + this.fullrect.Left + 1, + this.fullrect.Top + 1, + this.fullrect.Width, + this.fullrect.Height), + sf); + } + + g.DrawString(this.Title, font, br_text, this.fullrect, sf); + g.DrawString(this.Title, font, br_text, this.fullrect, sf); + } + + //테두리표시 + g.DrawRectangle(pen_border, this.fullrect); + + if (Enable_Direction) + { + //좌측테두리 + if (this.leftrect.IsEmpty == false) + { + if (this.LeftColor != Color.Transparent) + { + using (SolidBrush sb = new SolidBrush(this.LeftColor)) + g.FillRectangle(sb, this.leftrect); + } + g.DrawRectangle(pen_border, this.leftrect); + } + //우측테두리 + if (this.rightrect.IsEmpty == false) + { + if (this.RightColor != Color.Transparent) + { + using (SolidBrush sb = new SolidBrush(this.RightColor)) + g.FillRectangle(sb, this.rightrect); + } + g.DrawRectangle(pen_border, this.rightrect); + } + + } + + if (pen_border != null) pen_border.Dispose(); + if (br_back != null) br_back.Dispose(); + if (br_text != null) br_text.Dispose(); + } + } + + public class ItemClickEventArgs : EventArgs + { + public item Item { get; set; } + public ItemClickEventArgs(item item) + { + this.Item = item; + } + } + + + + + + void arButton_MouseLeave(object sender, EventArgs e) + { + //isMouseOver = false; + this.Cursor = Cursors.Default; + Invalidate(); + } + + void arButton_MouseEnter(object sender, EventArgs e) + { + //isMouseOver = true; + //this.Cursor = Cursors.Hand; + Invalidate(); + } + + void arButton_MouseUp(object sender, MouseEventArgs e) + { + if (!Enabled) + { + return; + } + // isMouseDown = false; + Invalidate(); + } + + + void arButton_MouseDown(object sender, MouseEventArgs e) + { + if (Enabled == false || Enabled == false) return; + // isMouseDown = true; + + //item fullrect 에서 클릭위치를 찾아야함 + if (Items != null && Items.Length > 0) + { + //마우스위치가 아이템에 포함되어있다면 + var focusItem = Items.Where(t => t.fullrect.Contains(e.Location)).FirstOrDefault(); + if (focusItem != null) + { + ItemClick?.Invoke(this, new ItemClickEventArgs(focusItem)); + } + } + + if (Buttons.Any()) + { + //마우스위치가 아이템에 포함되어있다면 + var focusItem = Buttons.Where(t => t.rect.Contains(e.Location)).FirstOrDefault(); + if (focusItem != null) + { + //ItemClick?.Invoke(this, new ItemClickEventArgs(focusItem)); + ButtonClick?.Invoke(focusItem); + } + } + Invalidate(); + } + + + + } +} diff --git a/Cs_HMI/Project/CtlPos.Designer.cs b/HMI/Project/CtlPos.Designer.cs similarity index 96% rename from Cs_HMI/Project/CtlPos.Designer.cs rename to HMI/Project/CtlPos.Designer.cs index 18e8332..7968f59 100644 --- a/Cs_HMI/Project/CtlPos.Designer.cs +++ b/HMI/Project/CtlPos.Designer.cs @@ -1,36 +1,36 @@ -namespace Project -{ - partial class CtlPos - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region 구성 요소 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} +namespace Project +{ + partial class CtlPos + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Cs_HMI/Project/CtlPos.cs b/HMI/Project/CtlPos.cs similarity index 97% rename from Cs_HMI/Project/CtlPos.cs rename to HMI/Project/CtlPos.cs index a92cf2f..b7e0c27 100644 --- a/Cs_HMI/Project/CtlPos.cs +++ b/HMI/Project/CtlPos.cs @@ -1,586 +1,586 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Data; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Project -{ - /// - /// 2017-04-13 13:26:00 : 라벨이므로 커서 IN 시 Hand 에서 Default로 변경함 - /// - public partial class CtlPos : Control - { - #region "Enum & Structure" - public enum eColorTheme : byte - { - DaeHyun = 0, - eGrayBlue, - eDarkBlue, - TopMenu, - GrayButton, - GrayTitleBar, - IOStatus, - IOStatusDepp, - BlackButton, - RedButton, - GrayOmokButton, - Stepbar, - RobotStatus, - NewGray_Group, - NewGray_BG, - NewGray_Button, - NewBlue_Button, - Custom, - } - #endregion - - public string[] msg { get; set; } - public event EventHandler ItemClick; - - - - - //public new event EventHandler Click; - public CtlPos() - { - InitializeComponent(); - - // Set Optimized Double Buffer to reduce flickering - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); - - // Redraw when resized - this.SetStyle(ControlStyles.ResizeRedraw, true); - - this.MouseDown += arButton_MouseDown; - this.MouseUp += arButton_MouseUp; - this.MouseEnter += arButton_MouseEnter; - this.MouseLeave += arButton_MouseLeave; - this.Resize += arLabel_Resize; - - base.BackColor = Color.FromArgb(32, 32, 32); - ForeColor = Color.White; - } - - ~CtlPos() - { - this.MouseDown -= arButton_MouseDown; - this.MouseUp -= arButton_MouseUp; - this.MouseEnter -= arButton_MouseEnter; - this.MouseLeave -= arButton_MouseLeave; - this.Resize -= arLabel_Resize; - } - - public void ClearData() - { - foreach (var item in Items) - { - item.Direction = '0'; - item.Active = false; - item.Focus = false; - } - } - - public void PerformClick() - { - if (Enabled == false) return; //171126 - this.InvokeOnClick(this, new EventArgs()); - } - - void arLabel_Resize(object sender, EventArgs e) - { - if (this.MinimumSize.Width == 0 || this.MinimumSize.Height == 0) - this.MinimumSize = new Size(100, 30); - - bRemakeRect = true; - Invalidate(); - } - - public new Padding Padding - { - get - { - return base.Padding; - } - set - { - base.Padding = value; - this.Invalidate(); - } - } - - public Color BorderColor { get; set; } - private int _itemgap = 0; - public int ItemGap { get { return _itemgap; } set { _itemgap = value; Invalidate(); } } - Boolean bRemakeRect = true; - public item[] Items { get; set; } - protected override void OnPaint(PaintEventArgs e) - { - //Set Optimized Double Buffer to reduce flickering - e.Graphics.CompositingQuality = CompositingQuality.HighQuality; - e.Graphics.InterpolationMode = InterpolationMode.High; - e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; - - if (Items == null) e.Graphics.DrawString("No Item", this.Font, Brushes.Red, 10, 10); - else - { - //영역변경시새로한다 - if (bRemakeRect == true) makeRect(); - - //아이템그리기 - var sf = new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center - }; - foreach (var item in Items) - { - item.Draw(e.Graphics, this.Font, sf); - } - } - - - //전체테두리 - e.Graphics.DrawRectangle(new Pen(BorderColor), DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); - } - void makeRect() - { - var indiheight = (int)(DisplayRectangle.Height * 0.15); - var fullrect = new Rectangle( - DisplayRectangle.Left + Padding.Left, - DisplayRectangle.Top + Padding.Top, - DisplayRectangle.Width - Padding.Left - Padding.Right, - DisplayRectangle.Height - Padding.Top - Padding.Bottom - 1 - indiheight); - - var itemCountS = this.Items.Where(t => t.ItemType != itemtype.Hidden && t.ItemType != itemtype.Item).Count(); - var itemCountI = this.Items.Where(t => t.ItemType == itemtype.Item).Count(); - - var GapWidth = ItemGap * ((itemCountI + itemCountS) - 1); - var itemWidthS = (ItemGap * 2); //spacer width - var itemWidthI = (fullrect.Width - GapWidth - (itemWidthS * itemCountS)) / itemCountI; - var itemHeight = fullrect.Height; - - var i = 0; - var x = fullrect.Left; - foreach (var item in Items) - { - if (item.ItemType == itemtype.Hidden) continue; - if (item.ItemType == itemtype.Spacer) - { - var y = fullrect.Top; - var w = (int)itemWidthS; - var h = DisplayRectangle.Height - Padding.Top - Padding.Bottom + 3; - var rectf = new Rectangle(x, y, w, h); - item.fullrect = rectf; - item.leftrect = Rectangle.Empty; - item.rightrect = Rectangle.Empty; - x += w + ItemGap; - } - else if (item.ItemType == itemtype.NLimit || item.ItemType == itemtype.PLimit) - { - var y = fullrect.Top; - var w = (int)itemWidthS; - var h = DisplayRectangle.Height - Padding.Top - Padding.Bottom + 3; - var rectf = new Rectangle(x, y, w, h); - item.fullrect = rectf; - item.leftrect = Rectangle.Empty; - item.rightrect = Rectangle.Empty; - x += w + ItemGap; - } - else if (item.Enable_Direction) - { - //var x = (int)(fullrect.Left + i * itemWidth) + (i * ItemGap); - var y = fullrect.Top; - var w = (int)itemWidthI; - var h = itemHeight; - var rectf = new Rectangle(x, y, w, h); - item.fullrect = rectf; - var indiWidth = (int)((rectf.Width - 4) / 2.0); - item.leftrect = new Rectangle(rectf.Left, rectf.Bottom + 4, indiWidth, indiheight); - item.rightrect = new Rectangle(rectf.Left + indiWidth + 4, rectf.Bottom + 4, indiWidth, indiheight); - x += itemWidthI + ItemGap; - } - else - { - //var x = (int)(fullrect.Left + i * itemWidth) + (i * ItemGap); - var y = fullrect.Top; - var w = (int)itemWidthI; - var h = DisplayRectangle.Height - Padding.Top - Padding.Bottom + 3; - var rectf = new Rectangle(x, y, w, h); - item.fullrect = rectf; - item.leftrect = Rectangle.Empty; - item.rightrect = Rectangle.Empty; - x += itemWidthI + ItemGap; - } - i += 1; - } - bRemakeRect = false; - } - - // private int LastPosition = -1; - //private string LastDir = ""; - //public void SetPositionOut(Boolean value) - //{ - // if (LastPosition < 0 || LastPosition >= Items.Length) return; - - // if (value == true) - // { - // this.Items[LastPosition].BackColor1 = Color.SkyBlue; - // this.Items[LastPosition].BackColor2 = Color.DeepSkyBlue; - // } - - // this.Invalidate(); - //} - - /// - /// 지정한 개체를 선택합니다. - /// - /// - public void SetPosition(ePosition idx) - { - - foreach (var item in Items) - item.Focus = false; - if (idx == ePosition.NONE) return; - var pos = Items.Where(t => t.Position == idx).First(); - pos.Focus = true; - } - public bool GetPositionActive(ePosition idx) - { - if (idx == ePosition.NONE) return false; - var pos = Items.Where(t => t.Position == idx).First(); - return pos.Active; - } - public void SetPositionActive(ePosition idx) - { - - foreach (var item in Items) - item.Active = false; - if (idx == ePosition.NONE) return; - var pos = Items.Where(t => t.Position == idx).First(); - pos.Active = true; - } - - /// - /// 활성화된 위치를 모두 초기화 한다 - /// - public void SetPositionDeActive() - { - foreach (var item in Items) - item.Active = false; - } - public void SetTargetPosition(ePosition idx) - { - - foreach (var item in Items) - item.Target = false; - if (idx == ePosition.NONE) return; - var pos = Items.Where(t => t.Position == idx).First(); - pos.Target = true; - } - /// - /// 지정한 개체의 left,right 값을 바꿉니다 .rfid값이 변경되었을때 처리합니다. dir=0이면 왼쪽이 켜집니다) - /// - /// - /// - public void SetDirection(string dir) - { - //모든 위치값이 초기화 된다. - foreach (var item in Items) - item.Direction = '0'; - - var selectitem = this.Items.Where(t => t.Focus).FirstOrDefault(); - if (selectitem != null) - { - if (dir.isEmpty()) selectitem.Direction = '0'; - else selectitem.Direction = (dir == "0" ? '1' : '2'); - } - } - - public enum itemtype - { - Hidden, - NLimit, - PLimit, - Spacer, - Item, - } - - public class item - { - public ePosition Position { get; set; } - public itemtype ItemType { get; set; } - // public bool Hidden { get; set; } - public bool Enable_Direction { get; set; } - - #region Colorlist - public Color BackColor2 - { - get - { - if (Active) - { - if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) - return Color.Tomato; - else - return Color.Lime; - } - else if (Focus) - { - if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) - return Color.Tomato; - else - return Color.Yellow; - } - else return Color.FromArgb(82, 82, 82); - } - } - public Color BackColor1 - { - get - { - if (Active) - { - if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) - return Color.Red; - else - return Color.Green; - } - else if (Focus) - { - if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) - return Color.Red; - else - return Color.Gold; - } - else return Color.FromArgb(64, 64, 64); - } - } - public Color ForeColor - { - get - { - if (this.Target) return Color.DarkMagenta; - else return Color.Black; - } - } - public Color ShadowColor { get { return Color.DimGray; } } - public Color BorderColor { get { return Color.Black; } } - public Color RightColor - { - get - { - if (Direction == '2') - { - if (Active) return Color.Lime; - else return Color.Gold; - } - else return Color.Transparent; - } - } - public Color LeftColor - { - get - { - if (Direction == '1') - { - if (Active) return Color.Lime; - else return Color.Gold; - } - else return Color.Transparent; - } - } - #endregion - - [Browsable(false)] - public Rectangle fullrect { get; set; } - [Browsable(false)] - public Rectangle leftrect { get; set; } - [Browsable(false)] - public Rectangle rightrect { get; set; } - - public bool Active { get; set; } - public bool Focus { get; set; } - public char Direction { get; set; } - public bool Target { get; set; } - - public string Title { get; set; } - - // public bool Spacer { get; set; } - - public item() - { - Position = ePosition.NONE; - ItemType = itemtype.Item; - // Spacer = false; - fullrect = Rectangle.Empty; - leftrect = Rectangle.Empty; - rightrect = Rectangle.Empty; - Enable_Direction = true; - Active = false; - Focus = false; - Target = false; - Direction = '0'; - // Hidden = false; - } - - public override string ToString() - { - if (this.ItemType == itemtype.Hidden) - return $"{Title}(숨김)"; - else if (this.ItemType == itemtype.Spacer) - return $"(SPACER)"; - else if (this.ItemType == itemtype.NLimit) - return $"N-LIMIT"; - else if (this.ItemType == itemtype.PLimit) - return $"P-LIMIT"; - else - return $"{Title}"; - } - - public void Draw(Graphics g, Font font, StringFormat sf) - { - Pen pen_border = null; - LinearGradientBrush br_back = null; - SolidBrush br_text = null; - - //배경색 - - //펜 - if (pen_border == null) pen_border = new Pen(this.BorderColor); - else pen_border.Color = this.BorderColor; - - //배경브러쉬 - if (br_back == null) br_back = new LinearGradientBrush(this.fullrect, this.BackColor1, this.BackColor2, LinearGradientMode.Vertical); - else - { - br_back.LinearColors[0] = this.BackColor1; - br_back.LinearColors[1] = this.BackColor2; - } - - //제목브러쉬 - if (br_text == null) br_text = new SolidBrush(this.ForeColor); - else br_text.Color = this.ForeColor; - - //배경표시 - g.FillRectangle(br_back, this.fullrect); - - //제목표시 - if (this.Title.isEmpty() == false && this.ItemType == itemtype.Item) - { - if (this.ShadowColor != Color.Transparent && this.ShadowColor != this.ForeColor) - { - using (var brShadow = new SolidBrush(this.ShadowColor)) - g.DrawString( - this.Title, - font, brShadow, - new Rectangle( - this.fullrect.Left + 1, - this.fullrect.Top + 1, - this.fullrect.Width, - this.fullrect.Height), - sf); - } - - g.DrawString(this.Title, font, br_text, this.fullrect, sf); - g.DrawString(this.Title, font, br_text, this.fullrect, sf); - } - - //테두리표시 - g.DrawRectangle(pen_border, this.fullrect); - - if (Enable_Direction) - { - - //좌측테두리 - if (this.leftrect.IsEmpty == false) - { - if (this.LeftColor != Color.Transparent) - { - using (SolidBrush sb = new SolidBrush(this.LeftColor)) - g.FillRectangle(sb, this.leftrect); - } - g.DrawRectangle(pen_border, this.leftrect); - } - //우측테두리 - if (this.rightrect.IsEmpty == false) - { - if (this.RightColor != Color.Transparent) - { - using (SolidBrush sb = new SolidBrush(this.RightColor)) - g.FillRectangle(sb, this.rightrect); - } - g.DrawRectangle(pen_border, this.rightrect); - } - - } - - if (pen_border != null) pen_border.Dispose(); - if (br_back != null) br_back.Dispose(); - if (br_text != null) br_text.Dispose(); - } - } - - public class ItemClickEventArgs : EventArgs - { - public item Item { get; set; } - public ItemClickEventArgs(item item) - { - this.Item = item; - } - } - - void arButton_MouseLeave(object sender, EventArgs e) - { - //isMouseOver = false; - this.Cursor = Cursors.Default; - Invalidate(); - } - - void arButton_MouseEnter(object sender, EventArgs e) - { - //isMouseOver = true; - this.Cursor = Cursors.Hand; - Invalidate(); - } - - void arButton_MouseUp(object sender, MouseEventArgs e) - { - if (!Enabled) - { - return; - } - //isMouseDown = false; - Invalidate(); - } - - - void arButton_MouseDown(object sender, MouseEventArgs e) - { - if (Enabled == false || Enabled == false) return; - // isMouseDown = true; - - //item fullrect 에서 클릭위치를 찾아야함 - if (Items != null && Items.Length > 0) - { - //마우스위치가 아이템에 포함되어있다면 - var focusItem = Items.Where(t => t.fullrect.Contains(e.Location)).FirstOrDefault(); - if (focusItem != null) - { - ItemClick?.Invoke(this, new ItemClickEventArgs(focusItem)); - } - } - Invalidate(); - } - - - - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + /// + /// 2017-04-13 13:26:00 : 라벨이므로 커서 IN 시 Hand 에서 Default로 변경함 + /// + public partial class CtlPos : Control + { + #region "Enum & Structure" + public enum eColorTheme : byte + { + DaeHyun = 0, + eGrayBlue, + eDarkBlue, + TopMenu, + GrayButton, + GrayTitleBar, + IOStatus, + IOStatusDepp, + BlackButton, + RedButton, + GrayOmokButton, + Stepbar, + RobotStatus, + NewGray_Group, + NewGray_BG, + NewGray_Button, + NewBlue_Button, + Custom, + } + #endregion + + public string[] msg { get; set; } + public event EventHandler ItemClick; + + + + + //public new event EventHandler Click; + public CtlPos() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.MouseDown += arButton_MouseDown; + this.MouseUp += arButton_MouseUp; + this.MouseEnter += arButton_MouseEnter; + this.MouseLeave += arButton_MouseLeave; + this.Resize += arLabel_Resize; + + base.BackColor = Color.FromArgb(32, 32, 32); + ForeColor = Color.White; + } + + ~CtlPos() + { + this.MouseDown -= arButton_MouseDown; + this.MouseUp -= arButton_MouseUp; + this.MouseEnter -= arButton_MouseEnter; + this.MouseLeave -= arButton_MouseLeave; + this.Resize -= arLabel_Resize; + } + + public void ClearData() + { + foreach (var item in Items) + { + item.Direction = '0'; + item.Active = false; + item.Focus = false; + } + } + + public void PerformClick() + { + if (Enabled == false) return; //171126 + this.InvokeOnClick(this, new EventArgs()); + } + + void arLabel_Resize(object sender, EventArgs e) + { + if (this.MinimumSize.Width == 0 || this.MinimumSize.Height == 0) + this.MinimumSize = new Size(100, 30); + + bRemakeRect = true; + Invalidate(); + } + + public new Padding Padding + { + get + { + return base.Padding; + } + set + { + base.Padding = value; + this.Invalidate(); + } + } + + public Color BorderColor { get; set; } + private int _itemgap = 0; + public int ItemGap { get { return _itemgap; } set { _itemgap = value; Invalidate(); } } + Boolean bRemakeRect = true; + public item[] Items { get; set; } + protected override void OnPaint(PaintEventArgs e) + { + //Set Optimized Double Buffer to reduce flickering + e.Graphics.CompositingQuality = CompositingQuality.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.High; + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + if (Items == null) e.Graphics.DrawString("No Item", this.Font, Brushes.Red, 10, 10); + else + { + //영역변경시새로한다 + if (bRemakeRect == true) makeRect(); + + //아이템그리기 + var sf = new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }; + foreach (var item in Items) + { + item.Draw(e.Graphics, this.Font, sf); + } + } + + + //전체테두리 + e.Graphics.DrawRectangle(new Pen(BorderColor), DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + } + void makeRect() + { + var indiheight = (int)(DisplayRectangle.Height * 0.15); + var fullrect = new Rectangle( + DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom - 1 - indiheight); + + var itemCountS = this.Items.Where(t => t.ItemType != itemtype.Hidden && t.ItemType != itemtype.Item).Count(); + var itemCountI = this.Items.Where(t => t.ItemType == itemtype.Item).Count(); + + var GapWidth = ItemGap * ((itemCountI + itemCountS) - 1); + var itemWidthS = (ItemGap * 2); //spacer width + var itemWidthI = (fullrect.Width - GapWidth - (itemWidthS * itemCountS)) / itemCountI; + var itemHeight = fullrect.Height; + + var i = 0; + var x = fullrect.Left; + foreach (var item in Items) + { + if (item.ItemType == itemtype.Hidden) continue; + if (item.ItemType == itemtype.Spacer) + { + var y = fullrect.Top; + var w = (int)itemWidthS; + var h = DisplayRectangle.Height - Padding.Top - Padding.Bottom + 3; + var rectf = new Rectangle(x, y, w, h); + item.fullrect = rectf; + item.leftrect = Rectangle.Empty; + item.rightrect = Rectangle.Empty; + x += w + ItemGap; + } + else if (item.ItemType == itemtype.NLimit || item.ItemType == itemtype.PLimit) + { + var y = fullrect.Top; + var w = (int)itemWidthS; + var h = DisplayRectangle.Height - Padding.Top - Padding.Bottom + 3; + var rectf = new Rectangle(x, y, w, h); + item.fullrect = rectf; + item.leftrect = Rectangle.Empty; + item.rightrect = Rectangle.Empty; + x += w + ItemGap; + } + else if (item.Enable_Direction) + { + //var x = (int)(fullrect.Left + i * itemWidth) + (i * ItemGap); + var y = fullrect.Top; + var w = (int)itemWidthI; + var h = itemHeight; + var rectf = new Rectangle(x, y, w, h); + item.fullrect = rectf; + var indiWidth = (int)((rectf.Width - 4) / 2.0); + item.leftrect = new Rectangle(rectf.Left, rectf.Bottom + 4, indiWidth, indiheight); + item.rightrect = new Rectangle(rectf.Left + indiWidth + 4, rectf.Bottom + 4, indiWidth, indiheight); + x += itemWidthI + ItemGap; + } + else + { + //var x = (int)(fullrect.Left + i * itemWidth) + (i * ItemGap); + var y = fullrect.Top; + var w = (int)itemWidthI; + var h = DisplayRectangle.Height - Padding.Top - Padding.Bottom + 3; + var rectf = new Rectangle(x, y, w, h); + item.fullrect = rectf; + item.leftrect = Rectangle.Empty; + item.rightrect = Rectangle.Empty; + x += itemWidthI + ItemGap; + } + i += 1; + } + bRemakeRect = false; + } + + // private int LastPosition = -1; + //private string LastDir = ""; + //public void SetPositionOut(Boolean value) + //{ + // if (LastPosition < 0 || LastPosition >= Items.Length) return; + + // if (value == true) + // { + // this.Items[LastPosition].BackColor1 = Color.SkyBlue; + // this.Items[LastPosition].BackColor2 = Color.DeepSkyBlue; + // } + + // this.Invalidate(); + //} + + /// + /// 지정한 개체를 선택합니다. + /// + /// + public void SetPosition(ePosition idx) + { + + foreach (var item in Items) + item.Focus = false; + if (idx == ePosition.NONE) return; + var pos = Items.Where(t => t.Position == idx).First(); + pos.Focus = true; + } + public bool GetPositionActive(ePosition idx) + { + if (idx == ePosition.NONE) return false; + var pos = Items.Where(t => t.Position == idx).First(); + return pos.Active; + } + public void SetPositionActive(ePosition idx) + { + + foreach (var item in Items) + item.Active = false; + if (idx == ePosition.NONE) return; + var pos = Items.Where(t => t.Position == idx).First(); + pos.Active = true; + } + + /// + /// 활성화된 위치를 모두 초기화 한다 + /// + public void SetPositionDeActive() + { + foreach (var item in Items) + item.Active = false; + } + public void SetTargetPosition(ePosition idx) + { + + foreach (var item in Items) + item.Target = false; + if (idx == ePosition.NONE) return; + var pos = Items.Where(t => t.Position == idx).First(); + pos.Target = true; + } + /// + /// 지정한 개체의 left,right 값을 바꿉니다 .rfid값이 변경되었을때 처리합니다. dir=0이면 왼쪽이 켜집니다) + /// + /// + /// + public void SetDirection(string dir) + { + //모든 위치값이 초기화 된다. + foreach (var item in Items) + item.Direction = '0'; + + var selectitem = this.Items.Where(t => t.Focus).FirstOrDefault(); + if (selectitem != null) + { + if (dir.isEmpty()) selectitem.Direction = '0'; + else selectitem.Direction = (dir == "0" ? '1' : '2'); + } + } + + public enum itemtype + { + Hidden, + NLimit, + PLimit, + Spacer, + Item, + } + + public class item + { + public ePosition Position { get; set; } + public itemtype ItemType { get; set; } + // public bool Hidden { get; set; } + public bool Enable_Direction { get; set; } + + #region Colorlist + public Color BackColor2 + { + get + { + if (Active) + { + if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) + return Color.Tomato; + else + return Color.Lime; + } + else if (Focus) + { + if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) + return Color.Tomato; + else + return Color.Yellow; + } + else return Color.FromArgb(82, 82, 82); + } + } + public Color BackColor1 + { + get + { + if (Active) + { + if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) + return Color.Red; + else + return Color.Green; + } + else if (Focus) + { + if (ItemType == itemtype.NLimit || ItemType == itemtype.PLimit) + return Color.Red; + else + return Color.Gold; + } + else return Color.FromArgb(64, 64, 64); + } + } + public Color ForeColor + { + get + { + if (this.Target) return Color.DarkMagenta; + else return Color.Black; + } + } + public Color ShadowColor { get { return Color.DimGray; } } + public Color BorderColor { get { return Color.Black; } } + public Color RightColor + { + get + { + if (Direction == '2') + { + if (Active) return Color.Lime; + else return Color.Gold; + } + else return Color.Transparent; + } + } + public Color LeftColor + { + get + { + if (Direction == '1') + { + if (Active) return Color.Lime; + else return Color.Gold; + } + else return Color.Transparent; + } + } + #endregion + + [Browsable(false)] + public Rectangle fullrect { get; set; } + [Browsable(false)] + public Rectangle leftrect { get; set; } + [Browsable(false)] + public Rectangle rightrect { get; set; } + + public bool Active { get; set; } + public bool Focus { get; set; } + public char Direction { get; set; } + public bool Target { get; set; } + + public string Title { get; set; } + + // public bool Spacer { get; set; } + + public item() + { + Position = ePosition.NONE; + ItemType = itemtype.Item; + // Spacer = false; + fullrect = Rectangle.Empty; + leftrect = Rectangle.Empty; + rightrect = Rectangle.Empty; + Enable_Direction = true; + Active = false; + Focus = false; + Target = false; + Direction = '0'; + // Hidden = false; + } + + public override string ToString() + { + if (this.ItemType == itemtype.Hidden) + return $"{Title}(숨김)"; + else if (this.ItemType == itemtype.Spacer) + return $"(SPACER)"; + else if (this.ItemType == itemtype.NLimit) + return $"N-LIMIT"; + else if (this.ItemType == itemtype.PLimit) + return $"P-LIMIT"; + else + return $"{Title}"; + } + + public void Draw(Graphics g, Font font, StringFormat sf) + { + Pen pen_border = null; + LinearGradientBrush br_back = null; + SolidBrush br_text = null; + + //배경색 + + //펜 + if (pen_border == null) pen_border = new Pen(this.BorderColor); + else pen_border.Color = this.BorderColor; + + //배경브러쉬 + if (br_back == null) br_back = new LinearGradientBrush(this.fullrect, this.BackColor1, this.BackColor2, LinearGradientMode.Vertical); + else + { + br_back.LinearColors[0] = this.BackColor1; + br_back.LinearColors[1] = this.BackColor2; + } + + //제목브러쉬 + if (br_text == null) br_text = new SolidBrush(this.ForeColor); + else br_text.Color = this.ForeColor; + + //배경표시 + g.FillRectangle(br_back, this.fullrect); + + //제목표시 + if (this.Title.isEmpty() == false && this.ItemType == itemtype.Item) + { + if (this.ShadowColor != Color.Transparent && this.ShadowColor != this.ForeColor) + { + using (var brShadow = new SolidBrush(this.ShadowColor)) + g.DrawString( + this.Title, + font, brShadow, + new Rectangle( + this.fullrect.Left + 1, + this.fullrect.Top + 1, + this.fullrect.Width, + this.fullrect.Height), + sf); + } + + g.DrawString(this.Title, font, br_text, this.fullrect, sf); + g.DrawString(this.Title, font, br_text, this.fullrect, sf); + } + + //테두리표시 + g.DrawRectangle(pen_border, this.fullrect); + + if (Enable_Direction) + { + + //좌측테두리 + if (this.leftrect.IsEmpty == false) + { + if (this.LeftColor != Color.Transparent) + { + using (SolidBrush sb = new SolidBrush(this.LeftColor)) + g.FillRectangle(sb, this.leftrect); + } + g.DrawRectangle(pen_border, this.leftrect); + } + //우측테두리 + if (this.rightrect.IsEmpty == false) + { + if (this.RightColor != Color.Transparent) + { + using (SolidBrush sb = new SolidBrush(this.RightColor)) + g.FillRectangle(sb, this.rightrect); + } + g.DrawRectangle(pen_border, this.rightrect); + } + + } + + if (pen_border != null) pen_border.Dispose(); + if (br_back != null) br_back.Dispose(); + if (br_text != null) br_text.Dispose(); + } + } + + public class ItemClickEventArgs : EventArgs + { + public item Item { get; set; } + public ItemClickEventArgs(item item) + { + this.Item = item; + } + } + + void arButton_MouseLeave(object sender, EventArgs e) + { + //isMouseOver = false; + this.Cursor = Cursors.Default; + Invalidate(); + } + + void arButton_MouseEnter(object sender, EventArgs e) + { + //isMouseOver = true; + this.Cursor = Cursors.Hand; + Invalidate(); + } + + void arButton_MouseUp(object sender, MouseEventArgs e) + { + if (!Enabled) + { + return; + } + //isMouseDown = false; + Invalidate(); + } + + + void arButton_MouseDown(object sender, MouseEventArgs e) + { + if (Enabled == false || Enabled == false) return; + // isMouseDown = true; + + //item fullrect 에서 클릭위치를 찾아야함 + if (Items != null && Items.Length > 0) + { + //마우스위치가 아이템에 포함되어있다면 + var focusItem = Items.Where(t => t.fullrect.Contains(e.Location)).FirstOrDefault(); + if (focusItem != null) + { + ItemClick?.Invoke(this, new ItemClickEventArgs(focusItem)); + } + } + Invalidate(); + } + + + + } +} diff --git a/Cs_HMI/Project/DataSet1.Designer.cs b/HMI/Project/DataSet1.Designer.cs similarity index 98% rename from Cs_HMI/Project/DataSet1.Designer.cs rename to HMI/Project/DataSet1.Designer.cs index 2ea1bc8..a4e2df6 100644 --- a/Cs_HMI/Project/DataSet1.Designer.cs +++ b/HMI/Project/DataSet1.Designer.cs @@ -1,1390 +1,1390 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace Project { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("DataSet1")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class DataSet1 : global::System.Data.DataSet { - - private ResultDataDataTable tableResultData; - - private languageDataTable tablelanguage; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public DataSet1() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected DataSet1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["ResultData"] != null)) { - base.Tables.Add(new ResultDataDataTable(ds.Tables["ResultData"])); - } - if ((ds.Tables["language"] != null)) { - base.Tables.Add(new languageDataTable(ds.Tables["language"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ResultDataDataTable ResultData { - get { - return this.tableResultData; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public languageDataTable language { - get { - return this.tablelanguage; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public override global::System.Data.DataSet Clone() { - DataSet1 cln = ((DataSet1)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["ResultData"] != null)) { - base.Tables.Add(new ResultDataDataTable(ds.Tables["ResultData"])); - } - if ((ds.Tables["language"] != null)) { - base.Tables.Add(new languageDataTable(ds.Tables["language"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal void InitVars(bool initTable) { - this.tableResultData = ((ResultDataDataTable)(base.Tables["ResultData"])); - if ((initTable == true)) { - if ((this.tableResultData != null)) { - this.tableResultData.InitVars(); - } - } - this.tablelanguage = ((languageDataTable)(base.Tables["language"])); - if ((initTable == true)) { - if ((this.tablelanguage != null)) { - this.tablelanguage.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - private void InitClass() { - this.DataSetName = "DataSet1"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/DataSet1.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableResultData = new ResultDataDataTable(); - base.Tables.Add(this.tableResultData); - this.tablelanguage = new languageDataTable(); - base.Tables.Add(this.tablelanguage); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - private bool ShouldSerializeResultData() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - private bool ShouldSerializelanguage() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - DataSet1 ds = new DataSet1(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public delegate void ResultDataRowChangeEventHandler(object sender, ResultDataRowChangeEvent e); - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public delegate void languageRowChangeEventHandler(object sender, languageRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ResultDataDataTable : global::System.Data.TypedTableBase { - - private global::System.Data.DataColumn columnidx; - - private global::System.Data.DataColumn columninfo_job; - - private global::System.Data.DataColumn columninfo_start; - - private global::System.Data.DataColumn columninfo_end; - - private global::System.Data.DataColumn columninfo_result; - - private global::System.Data.DataColumn columninfo_iserror; - - private global::System.Data.DataColumn columninfo_resultcode; - - private global::System.Data.DataColumn columninfo_filename; - - private global::System.Data.DataColumn columntime_start; - - private global::System.Data.DataColumn columntime_end; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public ResultDataDataTable() { - this.TableName = "ResultData"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal ResultDataDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected ResultDataDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn idxColumn { - get { - return this.columnidx; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn info_jobColumn { - get { - return this.columninfo_job; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn info_startColumn { - get { - return this.columninfo_start; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn info_endColumn { - get { - return this.columninfo_end; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn info_resultColumn { - get { - return this.columninfo_result; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn info_iserrorColumn { - get { - return this.columninfo_iserror; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn info_resultcodeColumn { - get { - return this.columninfo_resultcode; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn info_filenameColumn { - get { - return this.columninfo_filename; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn time_startColumn { - get { - return this.columntime_start; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn time_endColumn { - get { - return this.columntime_end; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public ResultDataRow this[int index] { - get { - return ((ResultDataRow)(this.Rows[index])); - } - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event ResultDataRowChangeEventHandler ResultDataRowChanging; - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event ResultDataRowChangeEventHandler ResultDataRowChanged; - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event ResultDataRowChangeEventHandler ResultDataRowDeleting; - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event ResultDataRowChangeEventHandler ResultDataRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void AddResultDataRow(ResultDataRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public ResultDataRow AddResultDataRow(string info_job, string info_start, string info_end, string info_result, string info_iserror, string info_resultcode, string info_filename, System.DateTime time_start, System.DateTime time_end) { - ResultDataRow rowResultDataRow = ((ResultDataRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - null, - info_job, - info_start, - info_end, - info_result, - info_iserror, - info_resultcode, - info_filename, - time_start, - time_end}; - rowResultDataRow.ItemArray = columnValuesArray; - this.Rows.Add(rowResultDataRow); - return rowResultDataRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public override global::System.Data.DataTable Clone() { - ResultDataDataTable cln = ((ResultDataDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override global::System.Data.DataTable CreateInstance() { - return new ResultDataDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal void InitVars() { - this.columnidx = base.Columns["idx"]; - this.columninfo_job = base.Columns["info_job"]; - this.columninfo_start = base.Columns["info_start"]; - this.columninfo_end = base.Columns["info_end"]; - this.columninfo_result = base.Columns["info_result"]; - this.columninfo_iserror = base.Columns["info_iserror"]; - this.columninfo_resultcode = base.Columns["info_resultcode"]; - this.columninfo_filename = base.Columns["info_filename"]; - this.columntime_start = base.Columns["time_start"]; - this.columntime_end = base.Columns["time_end"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - private void InitClass() { - this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnidx); - this.columninfo_job = new global::System.Data.DataColumn("info_job", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columninfo_job); - this.columninfo_start = new global::System.Data.DataColumn("info_start", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columninfo_start); - this.columninfo_end = new global::System.Data.DataColumn("info_end", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columninfo_end); - this.columninfo_result = new global::System.Data.DataColumn("info_result", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columninfo_result); - this.columninfo_iserror = new global::System.Data.DataColumn("info_iserror", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columninfo_iserror); - this.columninfo_resultcode = new global::System.Data.DataColumn("info_resultcode", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columninfo_resultcode); - this.columninfo_filename = new global::System.Data.DataColumn("info_filename", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columninfo_filename); - this.columntime_start = new global::System.Data.DataColumn("time_start", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columntime_start); - this.columntime_end = new global::System.Data.DataColumn("time_end", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columntime_end); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint11", new global::System.Data.DataColumn[] { - this.columnidx}, false)); - this.columnidx.AutoIncrement = true; - this.columnidx.AutoIncrementSeed = 1; - this.columnidx.AllowDBNull = false; - this.columnidx.Unique = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public ResultDataRow NewResultDataRow() { - return ((ResultDataRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ResultDataRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override global::System.Type GetRowType() { - return typeof(ResultDataRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ResultDataRowChanged != null)) { - this.ResultDataRowChanged(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ResultDataRowChanging != null)) { - this.ResultDataRowChanging(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ResultDataRowDeleted != null)) { - this.ResultDataRowDeleted(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ResultDataRowDeleting != null)) { - this.ResultDataRowDeleting(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void RemoveResultDataRow(ResultDataRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - DataSet1 ds = new DataSet1(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ResultDataDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class languageDataTable : global::System.Data.TypedTableBase { - - private global::System.Data.DataColumn columnSection; - - private global::System.Data.DataColumn columnKey; - - private global::System.Data.DataColumn columnValue; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public languageDataTable() { - this.TableName = "language"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal languageDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected languageDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn SectionColumn { - get { - return this.columnSection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn KeyColumn { - get { - return this.columnKey; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public languageRow this[int index] { - get { - return ((languageRow)(this.Rows[index])); - } - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event languageRowChangeEventHandler languageRowChanging; - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event languageRowChangeEventHandler languageRowChanged; - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event languageRowChangeEventHandler languageRowDeleting; - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public event languageRowChangeEventHandler languageRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void AddlanguageRow(languageRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public languageRow AddlanguageRow(string Section, string Key, string Value) { - languageRow rowlanguageRow = ((languageRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Section, - Key, - Value}; - rowlanguageRow.ItemArray = columnValuesArray; - this.Rows.Add(rowlanguageRow); - return rowlanguageRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public languageRow FindByKeySection(string Key, string Section) { - return ((languageRow)(this.Rows.Find(new object[] { - Key, - Section}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public override global::System.Data.DataTable Clone() { - languageDataTable cln = ((languageDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override global::System.Data.DataTable CreateInstance() { - return new languageDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal void InitVars() { - this.columnSection = base.Columns["Section"]; - this.columnKey = base.Columns["Key"]; - this.columnValue = base.Columns["Value"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - private void InitClass() { - this.columnSection = new global::System.Data.DataColumn("Section", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSection); - this.columnKey = new global::System.Data.DataColumn("Key", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnKey); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnKey, - this.columnSection}, true)); - this.columnSection.AllowDBNull = false; - this.columnKey.AllowDBNull = false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public languageRow NewlanguageRow() { - return ((languageRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new languageRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override global::System.Type GetRowType() { - return typeof(languageRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.languageRowChanged != null)) { - this.languageRowChanged(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.languageRowChanging != null)) { - this.languageRowChanging(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.languageRowDeleted != null)) { - this.languageRowDeleted(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.languageRowDeleting != null)) { - this.languageRowDeleting(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void RemovelanguageRow(languageRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - DataSet1 ds = new DataSet1(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "languageDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - public partial class ResultDataRow : global::System.Data.DataRow { - - private ResultDataDataTable tableResultData; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal ResultDataRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableResultData = ((ResultDataDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public int idx { - get { - return ((int)(this[this.tableResultData.idxColumn])); - } - set { - this[this.tableResultData.idxColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string info_job { - get { - if (this.Isinfo_jobNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableResultData.info_jobColumn])); - } - } - set { - this[this.tableResultData.info_jobColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string info_start { - get { - if (this.Isinfo_startNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableResultData.info_startColumn])); - } - } - set { - this[this.tableResultData.info_startColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string info_end { - get { - if (this.Isinfo_endNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableResultData.info_endColumn])); - } - } - set { - this[this.tableResultData.info_endColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string info_result { - get { - if (this.Isinfo_resultNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableResultData.info_resultColumn])); - } - } - set { - this[this.tableResultData.info_resultColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string info_iserror { - get { - if (this.Isinfo_iserrorNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableResultData.info_iserrorColumn])); - } - } - set { - this[this.tableResultData.info_iserrorColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string info_resultcode { - get { - if (this.Isinfo_resultcodeNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableResultData.info_resultcodeColumn])); - } - } - set { - this[this.tableResultData.info_resultcodeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string info_filename { - get { - if (this.Isinfo_filenameNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableResultData.info_filenameColumn])); - } - } - set { - this[this.tableResultData.info_filenameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public System.DateTime time_start { - get { - try { - return ((global::System.DateTime)(this[this.tableResultData.time_startColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("\'ResultData\' 테이블의 \'time_start\' 열의 값이 DBNull입니다.", e); - } - } - set { - this[this.tableResultData.time_startColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public System.DateTime time_end { - get { - try { - return ((global::System.DateTime)(this[this.tableResultData.time_endColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("\'ResultData\' 테이블의 \'time_end\' 열의 값이 DBNull입니다.", e); - } - } - set { - this[this.tableResultData.time_endColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Isinfo_jobNull() { - return this.IsNull(this.tableResultData.info_jobColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Setinfo_jobNull() { - this[this.tableResultData.info_jobColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Isinfo_startNull() { - return this.IsNull(this.tableResultData.info_startColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Setinfo_startNull() { - this[this.tableResultData.info_startColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Isinfo_endNull() { - return this.IsNull(this.tableResultData.info_endColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Setinfo_endNull() { - this[this.tableResultData.info_endColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Isinfo_resultNull() { - return this.IsNull(this.tableResultData.info_resultColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Setinfo_resultNull() { - this[this.tableResultData.info_resultColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Isinfo_iserrorNull() { - return this.IsNull(this.tableResultData.info_iserrorColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Setinfo_iserrorNull() { - this[this.tableResultData.info_iserrorColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Isinfo_resultcodeNull() { - return this.IsNull(this.tableResultData.info_resultcodeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Setinfo_resultcodeNull() { - this[this.tableResultData.info_resultcodeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Isinfo_filenameNull() { - return this.IsNull(this.tableResultData.info_filenameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Setinfo_filenameNull() { - this[this.tableResultData.info_filenameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Istime_startNull() { - return this.IsNull(this.tableResultData.time_startColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Settime_startNull() { - this[this.tableResultData.time_startColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool Istime_endNull() { - return this.IsNull(this.tableResultData.time_endColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void Settime_endNull() { - this[this.tableResultData.time_endColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - public partial class languageRow : global::System.Data.DataRow { - - private languageDataTable tablelanguage; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - internal languageRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tablelanguage = ((languageDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string Section { - get { - return ((string)(this[this.tablelanguage.SectionColumn])); - } - set { - this[this.tablelanguage.SectionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string Key { - get { - return ((string)(this[this.tablelanguage.KeyColumn])); - } - set { - this[this.tablelanguage.KeyColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public string Value { - get { - if (this.IsValueNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tablelanguage.ValueColumn])); - } - } - set { - this[this.tablelanguage.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public bool IsValueNull() { - return this.IsNull(this.tablelanguage.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public void SetValueNull() { - this[this.tablelanguage.ValueColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public class ResultDataRowChangeEvent : global::System.EventArgs { - - private ResultDataRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public ResultDataRowChangeEvent(ResultDataRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public ResultDataRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public class languageRowChangeEvent : global::System.EventArgs { - - private languageRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public languageRowChangeEvent(languageRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public languageRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} - +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace Project { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DataSet1")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DataSet1 : global::System.Data.DataSet { + + private ResultDataDataTable tableResultData; + + private languageDataTable tablelanguage; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DataSet1() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DataSet1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["ResultData"] != null)) { + base.Tables.Add(new ResultDataDataTable(ds.Tables["ResultData"])); + } + if ((ds.Tables["language"] != null)) { + base.Tables.Add(new languageDataTable(ds.Tables["language"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ResultDataDataTable ResultData { + get { + return this.tableResultData; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public languageDataTable language { + get { + return this.tablelanguage; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataSet Clone() { + DataSet1 cln = ((DataSet1)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["ResultData"] != null)) { + base.Tables.Add(new ResultDataDataTable(ds.Tables["ResultData"])); + } + if ((ds.Tables["language"] != null)) { + base.Tables.Add(new languageDataTable(ds.Tables["language"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars(bool initTable) { + this.tableResultData = ((ResultDataDataTable)(base.Tables["ResultData"])); + if ((initTable == true)) { + if ((this.tableResultData != null)) { + this.tableResultData.InitVars(); + } + } + this.tablelanguage = ((languageDataTable)(base.Tables["language"])); + if ((initTable == true)) { + if ((this.tablelanguage != null)) { + this.tablelanguage.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.DataSetName = "DataSet1"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DataSet1.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableResultData = new ResultDataDataTable(); + base.Tables.Add(this.tableResultData); + this.tablelanguage = new languageDataTable(); + base.Tables.Add(this.tablelanguage); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeResultData() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializelanguage() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void ResultDataRowChangeEventHandler(object sender, ResultDataRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void languageRowChangeEventHandler(object sender, languageRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ResultDataDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columninfo_job; + + private global::System.Data.DataColumn columninfo_start; + + private global::System.Data.DataColumn columninfo_end; + + private global::System.Data.DataColumn columninfo_result; + + private global::System.Data.DataColumn columninfo_iserror; + + private global::System.Data.DataColumn columninfo_resultcode; + + private global::System.Data.DataColumn columninfo_filename; + + private global::System.Data.DataColumn columntime_start; + + private global::System.Data.DataColumn columntime_end; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultDataDataTable() { + this.TableName = "ResultData"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ResultDataDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected ResultDataDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn info_jobColumn { + get { + return this.columninfo_job; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn info_startColumn { + get { + return this.columninfo_start; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn info_endColumn { + get { + return this.columninfo_end; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn info_resultColumn { + get { + return this.columninfo_result; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn info_iserrorColumn { + get { + return this.columninfo_iserror; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn info_resultcodeColumn { + get { + return this.columninfo_resultcode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn info_filenameColumn { + get { + return this.columninfo_filename; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn time_startColumn { + get { + return this.columntime_start; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn time_endColumn { + get { + return this.columntime_end; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultDataRow this[int index] { + get { + return ((ResultDataRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultDataRowChangeEventHandler ResultDataRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultDataRowChangeEventHandler ResultDataRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultDataRowChangeEventHandler ResultDataRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultDataRowChangeEventHandler ResultDataRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddResultDataRow(ResultDataRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultDataRow AddResultDataRow(string info_job, string info_start, string info_end, string info_result, string info_iserror, string info_resultcode, string info_filename, System.DateTime time_start, System.DateTime time_end) { + ResultDataRow rowResultDataRow = ((ResultDataRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + info_job, + info_start, + info_end, + info_result, + info_iserror, + info_resultcode, + info_filename, + time_start, + time_end}; + rowResultDataRow.ItemArray = columnValuesArray; + this.Rows.Add(rowResultDataRow); + return rowResultDataRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + ResultDataDataTable cln = ((ResultDataDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new ResultDataDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columninfo_job = base.Columns["info_job"]; + this.columninfo_start = base.Columns["info_start"]; + this.columninfo_end = base.Columns["info_end"]; + this.columninfo_result = base.Columns["info_result"]; + this.columninfo_iserror = base.Columns["info_iserror"]; + this.columninfo_resultcode = base.Columns["info_resultcode"]; + this.columninfo_filename = base.Columns["info_filename"]; + this.columntime_start = base.Columns["time_start"]; + this.columntime_end = base.Columns["time_end"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columninfo_job = new global::System.Data.DataColumn("info_job", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columninfo_job); + this.columninfo_start = new global::System.Data.DataColumn("info_start", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columninfo_start); + this.columninfo_end = new global::System.Data.DataColumn("info_end", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columninfo_end); + this.columninfo_result = new global::System.Data.DataColumn("info_result", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columninfo_result); + this.columninfo_iserror = new global::System.Data.DataColumn("info_iserror", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columninfo_iserror); + this.columninfo_resultcode = new global::System.Data.DataColumn("info_resultcode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columninfo_resultcode); + this.columninfo_filename = new global::System.Data.DataColumn("info_filename", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columninfo_filename); + this.columntime_start = new global::System.Data.DataColumn("time_start", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columntime_start); + this.columntime_end = new global::System.Data.DataColumn("time_end", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columntime_end); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint11", new global::System.Data.DataColumn[] { + this.columnidx}, false)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultDataRow NewResultDataRow() { + return ((ResultDataRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new ResultDataRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(ResultDataRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ResultDataRowChanged != null)) { + this.ResultDataRowChanged(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ResultDataRowChanging != null)) { + this.ResultDataRowChanging(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ResultDataRowDeleted != null)) { + this.ResultDataRowDeleted(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ResultDataRowDeleting != null)) { + this.ResultDataRowDeleting(this, new ResultDataRowChangeEvent(((ResultDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveResultDataRow(ResultDataRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ResultDataDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class languageDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnSection; + + private global::System.Data.DataColumn columnKey; + + private global::System.Data.DataColumn columnValue; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageDataTable() { + this.TableName = "language"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal languageDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected languageDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SectionColumn { + get { + return this.columnSection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn KeyColumn { + get { + return this.columnKey; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ValueColumn { + get { + return this.columnValue; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow this[int index] { + get { + return ((languageRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddlanguageRow(languageRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow AddlanguageRow(string Section, string Key, string Value) { + languageRow rowlanguageRow = ((languageRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Section, + Key, + Value}; + rowlanguageRow.ItemArray = columnValuesArray; + this.Rows.Add(rowlanguageRow); + return rowlanguageRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow FindByKeySection(string Key, string Section) { + return ((languageRow)(this.Rows.Find(new object[] { + Key, + Section}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + languageDataTable cln = ((languageDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new languageDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnSection = base.Columns["Section"]; + this.columnKey = base.Columns["Key"]; + this.columnValue = base.Columns["Value"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnSection = new global::System.Data.DataColumn("Section", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSection); + this.columnKey = new global::System.Data.DataColumn("Key", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKey); + this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnValue); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnKey, + this.columnSection}, true)); + this.columnSection.AllowDBNull = false; + this.columnKey.AllowDBNull = false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow NewlanguageRow() { + return ((languageRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new languageRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(languageRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.languageRowChanged != null)) { + this.languageRowChanged(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.languageRowChanging != null)) { + this.languageRowChanging(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.languageRowDeleted != null)) { + this.languageRowDeleted(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.languageRowDeleting != null)) { + this.languageRowDeleting(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemovelanguageRow(languageRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "languageDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class ResultDataRow : global::System.Data.DataRow { + + private ResultDataDataTable tableResultData; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ResultDataRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableResultData = ((ResultDataDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableResultData.idxColumn])); + } + set { + this[this.tableResultData.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string info_job { + get { + if (this.Isinfo_jobNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableResultData.info_jobColumn])); + } + } + set { + this[this.tableResultData.info_jobColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string info_start { + get { + if (this.Isinfo_startNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableResultData.info_startColumn])); + } + } + set { + this[this.tableResultData.info_startColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string info_end { + get { + if (this.Isinfo_endNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableResultData.info_endColumn])); + } + } + set { + this[this.tableResultData.info_endColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string info_result { + get { + if (this.Isinfo_resultNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableResultData.info_resultColumn])); + } + } + set { + this[this.tableResultData.info_resultColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string info_iserror { + get { + if (this.Isinfo_iserrorNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableResultData.info_iserrorColumn])); + } + } + set { + this[this.tableResultData.info_iserrorColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string info_resultcode { + get { + if (this.Isinfo_resultcodeNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableResultData.info_resultcodeColumn])); + } + } + set { + this[this.tableResultData.info_resultcodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string info_filename { + get { + if (this.Isinfo_filenameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableResultData.info_filenameColumn])); + } + } + set { + this[this.tableResultData.info_filenameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime time_start { + get { + try { + return ((global::System.DateTime)(this[this.tableResultData.time_startColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'ResultData\' 테이블의 \'time_start\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableResultData.time_startColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime time_end { + get { + try { + return ((global::System.DateTime)(this[this.tableResultData.time_endColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'ResultData\' 테이블의 \'time_end\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableResultData.time_endColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isinfo_jobNull() { + return this.IsNull(this.tableResultData.info_jobColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setinfo_jobNull() { + this[this.tableResultData.info_jobColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isinfo_startNull() { + return this.IsNull(this.tableResultData.info_startColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setinfo_startNull() { + this[this.tableResultData.info_startColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isinfo_endNull() { + return this.IsNull(this.tableResultData.info_endColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setinfo_endNull() { + this[this.tableResultData.info_endColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isinfo_resultNull() { + return this.IsNull(this.tableResultData.info_resultColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setinfo_resultNull() { + this[this.tableResultData.info_resultColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isinfo_iserrorNull() { + return this.IsNull(this.tableResultData.info_iserrorColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setinfo_iserrorNull() { + this[this.tableResultData.info_iserrorColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isinfo_resultcodeNull() { + return this.IsNull(this.tableResultData.info_resultcodeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setinfo_resultcodeNull() { + this[this.tableResultData.info_resultcodeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Isinfo_filenameNull() { + return this.IsNull(this.tableResultData.info_filenameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Setinfo_filenameNull() { + this[this.tableResultData.info_filenameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Istime_startNull() { + return this.IsNull(this.tableResultData.time_startColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Settime_startNull() { + this[this.tableResultData.time_startColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Istime_endNull() { + return this.IsNull(this.tableResultData.time_endColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void Settime_endNull() { + this[this.tableResultData.time_endColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class languageRow : global::System.Data.DataRow { + + private languageDataTable tablelanguage; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal languageRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tablelanguage = ((languageDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Section { + get { + return ((string)(this[this.tablelanguage.SectionColumn])); + } + set { + this[this.tablelanguage.SectionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Key { + get { + return ((string)(this[this.tablelanguage.KeyColumn])); + } + set { + this[this.tablelanguage.KeyColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Value { + get { + if (this.IsValueNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tablelanguage.ValueColumn])); + } + } + set { + this[this.tablelanguage.ValueColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsValueNull() { + return this.IsNull(this.tablelanguage.ValueColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetValueNull() { + this[this.tablelanguage.ValueColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class ResultDataRowChangeEvent : global::System.EventArgs { + + private ResultDataRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultDataRowChangeEvent(ResultDataRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultDataRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class languageRowChangeEvent : global::System.EventArgs { + + private languageRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRowChangeEvent(languageRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} + #pragma warning restore 1591 \ No newline at end of file diff --git a/Cs_HMI/Project/DataSet1.cs b/HMI/Project/DataSet1.cs similarity index 92% rename from Cs_HMI/Project/DataSet1.cs rename to HMI/Project/DataSet1.cs index bdc2b60..fd55259 100644 --- a/Cs_HMI/Project/DataSet1.cs +++ b/HMI/Project/DataSet1.cs @@ -1,11 +1,11 @@ -namespace Project -{ - - - public partial class DataSet1 - { - partial class ModelDataTable - { - } - } -} +namespace Project +{ + + + public partial class DataSet1 + { + partial class ModelDataTable + { + } + } +} diff --git a/Cs_HMI/Project/DataSet1.xsc b/HMI/Project/DataSet1.xsc similarity index 97% rename from Cs_HMI/Project/DataSet1.xsc rename to HMI/Project/DataSet1.xsc index 551fc56..05b0199 100644 --- a/Cs_HMI/Project/DataSet1.xsc +++ b/HMI/Project/DataSet1.xsc @@ -1,9 +1,9 @@ - - - - + + + + \ No newline at end of file diff --git a/Cs_HMI/Project/DataSet1.xsd b/HMI/Project/DataSet1.xsd similarity index 99% rename from Cs_HMI/Project/DataSet1.xsd rename to HMI/Project/DataSet1.xsd index f91e15f..2436e55 100644 --- a/Cs_HMI/Project/DataSet1.xsd +++ b/HMI/Project/DataSet1.xsd @@ -1,52 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/Project/DataSet1.xss b/HMI/Project/DataSet1.xss similarity index 98% rename from Cs_HMI/Project/DataSet1.xss rename to HMI/Project/DataSet1.xss index 1827237..e2891f0 100644 --- a/Cs_HMI/Project/DataSet1.xss +++ b/HMI/Project/DataSet1.xss @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/Project/Device/BMS.cs b/HMI/Project/Device/BMS.cs similarity index 100% rename from Cs_HMI/Project/Device/BMS.cs rename to HMI/Project/Device/BMS.cs diff --git a/Cs_HMI/Project/Device/BMSInformationEventArgs.cs b/HMI/Project/Device/BMSInformationEventArgs.cs similarity index 100% rename from Cs_HMI/Project/Device/BMSInformationEventArgs.cs rename to HMI/Project/Device/BMSInformationEventArgs.cs diff --git a/Cs_HMI/Project/Device/BMSSerialComm.cs b/HMI/Project/Device/BMSSerialComm.cs similarity index 100% rename from Cs_HMI/Project/Device/BMSSerialComm.cs rename to HMI/Project/Device/BMSSerialComm.cs diff --git a/Cs_HMI/Project/Device/CFlag.cs b/HMI/Project/Device/CFlag.cs similarity index 95% rename from Cs_HMI/Project/Device/CFlag.cs rename to HMI/Project/Device/CFlag.cs index e9236c8..cc0ca41 100644 --- a/Cs_HMI/Project/Device/CFlag.cs +++ b/HMI/Project/Device/CFlag.cs @@ -1,37 +1,37 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Project.Device -{ - public class CFlag : COMM.Flag - { - public CFlag() : base(64) - { - - } - public bool get(EFlag flag) - { - return Get((int)flag); - } - public void set(EFlag flag, bool value) - { - var idx = (int)flag; - Set(idx, value); - } - public void Toggle(EFlag flag) - { - int idx = (int)flag; - var curValue = Get(idx); - Set(idx, !curValue); - } - - public void Toggle(int idx) - { - var curValue = Get(idx); - Set(idx, !curValue); - } - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Device +{ + public class CFlag : COMM.Flag + { + public CFlag() : base(64) + { + + } + public bool get(EFlag flag) + { + return Get((int)flag); + } + public void set(EFlag flag, bool value) + { + var idx = (int)flag; + Set(idx, value); + } + public void Toggle(EFlag flag) + { + int idx = (int)flag; + var curValue = Get(idx); + Set(idx, !curValue); + } + + public void Toggle(int idx) + { + var curValue = Get(idx); + Set(idx, !curValue); + } + + } +} diff --git a/Cs_HMI/Project/Device/Socket.cs b/HMI/Project/Device/Socket.cs similarity index 97% rename from Cs_HMI/Project/Device/Socket.cs rename to HMI/Project/Device/Socket.cs index abd5d04..86a12f8 100644 --- a/Cs_HMI/Project/Device/Socket.cs +++ b/HMI/Project/Device/Socket.cs @@ -1,427 +1,427 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Project.Device -{ - public class Socket - { - public enum eType - { - REQUEST, - REPLY, - } - public enum eSType - { - STATUS, - GEN, - SPL - } - - public struct Message - { - public Boolean isError; - public string ErrorMessage; - public string Asset; - public eType Type; - public eSType SType; - public string Body; - public string timeStamp; - } - - private Winsock_Orcas.Winsock wsListen; - private Winsock_Orcas.Winsock wsData; - private char sepMsg = (char)0x07; - private char sepBody = (char)0x09; - - public int ListenPort { get; set; } - public string errorMessage { get; set; } - public event EventHandler RecvMessage; - public event EventHandler SendMessage; - public event EventHandler GetMessage; - - private void RaiseMessage(string msg, Boolean isErr = false) - { - if (GetMessage != null) GetMessage(this, new MesasgeEventArgs(msg, isErr)); - } - private void RaiseSendMessage(Message msg, string raw) - { - if (SendMessage != null) - { - try - { - SendMessage(this, new SocketMessageEventArgs(msg, raw)); - } - catch (Exception ex) - { - this.errorMessage = ex.Message; - } - } - } - private void RaiseRecvMessage(Message msg, string raw) - { - if (RecvMessage != null) - { - try - { - RecvMessage(this, new SocketMessageEventArgs(msg, raw)); - } - catch (Exception ex) - { - this.errorMessage = ex.Message; - } - } - } - public Socket() - { - wsListen = new Winsock_Orcas.Winsock(); - wsData = new Winsock_Orcas.Winsock(); - wsListen.LegacySupport = true; - wsData.LegacySupport = true; - wsData.Connected += wsData_Connected; - wsData.Disconnected += wsData_Disconnected; - wsData.DataArrival += wsData_DataArrival; - wsData.ErrorReceived += wsData_ErrorReceived; - wsListen.ConnectionRequest += wsListen_ConnectionRequest; - wsListen.ErrorReceived += wsListen_ErrorReceived; - } - - void wsListen_ErrorReceived(object sender, Winsock_Orcas.WinsockErrorReceivedEventArgs e) - { - RaiseMessage("LTERR:" + e.Details, true); - } - - void wsData_ErrorReceived(object sender, Winsock_Orcas.WinsockErrorReceivedEventArgs e) - { - RaiseMessage("RXERR:"+e.Details, true); - } - - void wsData_Disconnected(object sender, EventArgs e) - { - RaiseMessage("Disconnected"); - } - - void wsData_Connected(object sender, Winsock_Orcas.WinsockConnectedEventArgs e) - { - RaiseMessage("Conncted"); - } - - void wsListen_ConnectionRequest(object sender, Winsock_Orcas.WinsockConnectionRequestEventArgs e) - { - if (wsData.State != Winsock_Orcas.WinsockStates.Closed) - { - wsData.Close(); - System.Threading.Thread.Sleep(500); - } - RaiseMessage("Connection Request " + e.ClientIP); - try - { - wsData.Accept(e.Client); - }catch (Exception ex) - { - RaiseMessage("Connection Request\n"+ex.Message, true); - } - - - } - - ~Socket() - { - if (wsData != null) - { - wsData.DataArrival -= wsData_DataArrival; - wsData.Connected += wsData_Connected; - wsData.Disconnected += wsData_Disconnected; - } - if (wsListen != null) - { - wsListen.ConnectionRequest += wsListen_ConnectionRequest; - } - - - - if (wsListen != null && wsListen.State != Winsock_Orcas.WinsockStates.Closed) - wsListen.Close(); - if (wsData != null && wsData.State != Winsock_Orcas.WinsockStates.Closed) - wsData.Close(); - wsData.Dispose(); - wsListen.Dispose(); - } - - public Boolean Listen(int port) - { - try - { - ListenPort = port; - wsListen.Listen(this.ListenPort); - this.errorMessage = string.Empty; - return true; - } - catch (Exception ex) - { - this.errorMessage = ex.Message; - return false; - } - } - public Boolean isListen - { - get - { - return wsListen.State == Winsock_Orcas.WinsockStates.Listening; - } - } - public Boolean isConn - { - get - { - return wsData.State == Winsock_Orcas.WinsockStates.Connected; - } - } - - public Message LastSendMessage = new Message(); - private Message makeMessage(string Asset, eType type, eSType subtype, string body) - { - Message retval = new Message(); - retval.Asset = Asset; - retval.Type = type; - retval.SType = subtype; - retval.Body = body; - retval.isError = true; - retval.ErrorMessage = string.Empty; - retval.timeStamp = DateTime.Now.ToString("yyyyMMddHHmmss"); - return retval; - } - - /// - /// Body문자열을 구분자를 기준으로 한 배열로 반환 함 - /// - /// - /// - public string[] getBodyArray(string bodyMessage) - { - return bodyMessage.Split(sepBody); - } - - /// - /// 패킷의 내용을 메세지로 분리한다. - /// - /// - /// - private Message ParseMessage(string PacketMessage) - { - Message retval = new Message(); - retval.isError = false; - retval.ErrorMessage = string.Empty; - - var buffer = PacketMessage.Split(sepMsg); - if (buffer.Length != 5) - { - retval.isError = true; - retval.ErrorMessage = "Packet Size Error : Expect 5 Array"; - return retval; - } - else - { - retval.Asset = buffer[0]; - if (!getType(buffer[1], out retval.Type)) - { - retval.isError = true; - retval.ErrorMessage = "지정된 Type 이 아닙니다(" + buffer[1] + ")"; - return retval; - } - if (!getSType(buffer[2], out retval.SType)) - { - retval.isError = true; - retval.ErrorMessage = "지정된 SubType 이 아닙니다(" + buffer[2] + ")"; - return retval; - } - retval.timeStamp = buffer[3]; - //DateTime timeStamp; - //if (!DateTime.TryParse(retval.timeStamp, out timeStamp)) - //{ - // retval.isError = true; - // retval.ErrorMessage = "timeStamp 해석 오류(" + retval.timeStamp + ")"; - // return retval; - //} - retval.Body = buffer[4]; - } - return retval; - } - - private Boolean getType(string strType, out eType type) - { - type = eType.REPLY; - var list = Enum.GetNames(typeof(eType)); - int value = -1; - for (int i = 0; i < list.Length; i++) - { - if (list[i].ToUpper() == strType.ToUpper()) - { - value = i; - break; - } - } - if (value == -1) return false; - type = (eType)value; - return true; - } - private Boolean getSType(string strSType, out eSType stype) - { - stype = eSType.GEN; - var list = Enum.GetNames(typeof(eSType)); - int value = -1; - for (int i = 0; i < list.Length; i++) - { - if (list[i].ToUpper() == strSType.ToUpper()) - { - value = i; - break; - } - } - if (value == -1) return false; - stype = (eSType)value; - return true; - } - - public string makePacket(Message msg) - { - //프레임구조 asset chr(7) + type + chr(7) + stype + char(7) + timeStamp + char(7) + body" - //timestamp = yyyymmddhhmmss - //sepChar = (char)0x07; - - System.Text.StringBuilder buffer = new StringBuilder(); - buffer.Append(msg.Asset); - buffer.Append(sepMsg); - buffer.Append(msg.Type.ToString()); - buffer.Append(sepMsg); - buffer.Append(msg.SType.ToString()); - buffer.Append(sepMsg); - buffer.Append(msg.timeStamp); - buffer.Append(sepMsg); - buffer.Append(msg.Body); - return buffer.ToString(); - } - - public string makeLotSplitPacket( string fcst, string tcst, string slot, string wafer) - { - System.Text.StringBuilder buffer = new StringBuilder(); - buffer.Append(fcst); - buffer.Append(sepBody); - buffer.Append(tcst); - buffer.Append(sepBody); - buffer.Append(slot); - buffer.Append(sepBody); - buffer.Append(wafer); - return buffer.ToString(); - } - public string makeLotGenPacket(string Lot, string cst, string slot, string wafer) - { - System.Text.StringBuilder buffer = new StringBuilder(); - buffer.Append(Lot); - buffer.Append(sepBody); - buffer.Append(cst); - buffer.Append(sepBody); - buffer.Append(slot); - buffer.Append(sepBody); - buffer.Append(wafer); - return buffer.ToString(); - } - public enum eStatus - { - RUN =0, - IDLE , - ALARM, - } - public string makeReplyStatus(eStatus Status) - { - System.Text.StringBuilder buffer = new StringBuilder(); - buffer.Append(((int)Status).ToString()); - return buffer.ToString(); - } - public Boolean Send(string Asset, eType type, eSType subtype, string body) - { - var msg = makeMessage(Asset, type, subtype, body); - var isStatus = subtype == eSType.STATUS; - return Send(msg, isStatus); - } - - public Boolean isReplyRecv = false; - public Boolean Send(Message msg,Boolean isStatus) - { - - var packet = makePacket(msg); - if (wsData.State != Winsock_Orcas.WinsockStates.Connected) - { - errorMessage = "Not Connected"; - return false; - } - try - { - if(isStatus==false) isReplyRecv = false; //190129 - wsData.Send(packet + "\r\n"); - errorMessage = string.Empty; - LastSendMessage = msg; - RaiseSendMessage(msg, packet); - return true; - } - catch (Exception ex) - { - errorMessage = ex.Message; - return false; - } - } - - public Message LastReplyMessage = new Message(); - public Message LastRecvMessage = new Message(); - void wsData_DataArrival(object sender, Winsock_Orcas.WinsockDataArrivalEventArgs e) - { - var sock = sender as Winsock_Orcas.Winsock; - var data = sock.Get(); - if(PUB.setting.LOg_SocketRecv) - { - if (data.IndexOf("REQUEST") != -1 && data.IndexOf("STATUS") != -1) - { - //핑 명령 - } - else PUB.log.AddE("Socket Recv : " + data); //190129 - } - - LastRecvMessage = ParseMessage(data); - if (LastRecvMessage.isError) PUB.log.AddE("Socket Message error" + LastRecvMessage.ErrorMessage); - else - { - //190129 - reply만 별도 처리함 - if (LastRecvMessage.Type == eType.REPLY) - { - LastReplyMessage = ParseMessage(data); - isReplyRecv = true; - } - } - RaiseRecvMessage(LastRecvMessage, data); - } - - - public class SocketMessageEventArgs : EventArgs - { - public string rawData { get; set; } - public Device.Socket.Message Message { get; set; } - public SocketMessageEventArgs(Device.Socket.Message msg, string raw) - { - this.Message = msg; - this.rawData = raw; - } - } - public class MesasgeEventArgs : EventArgs - { - public string Message { get; set; } - public Boolean isError { get; set; } - public MesasgeEventArgs(string msg, Boolean iserr) - { - this.Message = msg; - this.isError = iserr; - } - } - } - -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Device +{ + public class Socket + { + public enum eType + { + REQUEST, + REPLY, + } + public enum eSType + { + STATUS, + GEN, + SPL + } + + public struct Message + { + public Boolean isError; + public string ErrorMessage; + public string Asset; + public eType Type; + public eSType SType; + public string Body; + public string timeStamp; + } + + private Winsock_Orcas.Winsock wsListen; + private Winsock_Orcas.Winsock wsData; + private char sepMsg = (char)0x07; + private char sepBody = (char)0x09; + + public int ListenPort { get; set; } + public string errorMessage { get; set; } + public event EventHandler RecvMessage; + public event EventHandler SendMessage; + public event EventHandler GetMessage; + + private void RaiseMessage(string msg, Boolean isErr = false) + { + if (GetMessage != null) GetMessage(this, new MesasgeEventArgs(msg, isErr)); + } + private void RaiseSendMessage(Message msg, string raw) + { + if (SendMessage != null) + { + try + { + SendMessage(this, new SocketMessageEventArgs(msg, raw)); + } + catch (Exception ex) + { + this.errorMessage = ex.Message; + } + } + } + private void RaiseRecvMessage(Message msg, string raw) + { + if (RecvMessage != null) + { + try + { + RecvMessage(this, new SocketMessageEventArgs(msg, raw)); + } + catch (Exception ex) + { + this.errorMessage = ex.Message; + } + } + } + public Socket() + { + wsListen = new Winsock_Orcas.Winsock(); + wsData = new Winsock_Orcas.Winsock(); + wsListen.LegacySupport = true; + wsData.LegacySupport = true; + wsData.Connected += wsData_Connected; + wsData.Disconnected += wsData_Disconnected; + wsData.DataArrival += wsData_DataArrival; + wsData.ErrorReceived += wsData_ErrorReceived; + wsListen.ConnectionRequest += wsListen_ConnectionRequest; + wsListen.ErrorReceived += wsListen_ErrorReceived; + } + + void wsListen_ErrorReceived(object sender, Winsock_Orcas.WinsockErrorReceivedEventArgs e) + { + RaiseMessage("LTERR:" + e.Details, true); + } + + void wsData_ErrorReceived(object sender, Winsock_Orcas.WinsockErrorReceivedEventArgs e) + { + RaiseMessage("RXERR:"+e.Details, true); + } + + void wsData_Disconnected(object sender, EventArgs e) + { + RaiseMessage("Disconnected"); + } + + void wsData_Connected(object sender, Winsock_Orcas.WinsockConnectedEventArgs e) + { + RaiseMessage("Conncted"); + } + + void wsListen_ConnectionRequest(object sender, Winsock_Orcas.WinsockConnectionRequestEventArgs e) + { + if (wsData.State != Winsock_Orcas.WinsockStates.Closed) + { + wsData.Close(); + System.Threading.Thread.Sleep(500); + } + RaiseMessage("Connection Request " + e.ClientIP); + try + { + wsData.Accept(e.Client); + }catch (Exception ex) + { + RaiseMessage("Connection Request\n"+ex.Message, true); + } + + + } + + ~Socket() + { + if (wsData != null) + { + wsData.DataArrival -= wsData_DataArrival; + wsData.Connected += wsData_Connected; + wsData.Disconnected += wsData_Disconnected; + } + if (wsListen != null) + { + wsListen.ConnectionRequest += wsListen_ConnectionRequest; + } + + + + if (wsListen != null && wsListen.State != Winsock_Orcas.WinsockStates.Closed) + wsListen.Close(); + if (wsData != null && wsData.State != Winsock_Orcas.WinsockStates.Closed) + wsData.Close(); + wsData.Dispose(); + wsListen.Dispose(); + } + + public Boolean Listen(int port) + { + try + { + ListenPort = port; + wsListen.Listen(this.ListenPort); + this.errorMessage = string.Empty; + return true; + } + catch (Exception ex) + { + this.errorMessage = ex.Message; + return false; + } + } + public Boolean isListen + { + get + { + return wsListen.State == Winsock_Orcas.WinsockStates.Listening; + } + } + public Boolean isConn + { + get + { + return wsData.State == Winsock_Orcas.WinsockStates.Connected; + } + } + + public Message LastSendMessage = new Message(); + private Message makeMessage(string Asset, eType type, eSType subtype, string body) + { + Message retval = new Message(); + retval.Asset = Asset; + retval.Type = type; + retval.SType = subtype; + retval.Body = body; + retval.isError = true; + retval.ErrorMessage = string.Empty; + retval.timeStamp = DateTime.Now.ToString("yyyyMMddHHmmss"); + return retval; + } + + /// + /// Body문자열을 구분자를 기준으로 한 배열로 반환 함 + /// + /// + /// + public string[] getBodyArray(string bodyMessage) + { + return bodyMessage.Split(sepBody); + } + + /// + /// 패킷의 내용을 메세지로 분리한다. + /// + /// + /// + private Message ParseMessage(string PacketMessage) + { + Message retval = new Message(); + retval.isError = false; + retval.ErrorMessage = string.Empty; + + var buffer = PacketMessage.Split(sepMsg); + if (buffer.Length != 5) + { + retval.isError = true; + retval.ErrorMessage = "Packet Size Error : Expect 5 Array"; + return retval; + } + else + { + retval.Asset = buffer[0]; + if (!getType(buffer[1], out retval.Type)) + { + retval.isError = true; + retval.ErrorMessage = "지정된 Type 이 아닙니다(" + buffer[1] + ")"; + return retval; + } + if (!getSType(buffer[2], out retval.SType)) + { + retval.isError = true; + retval.ErrorMessage = "지정된 SubType 이 아닙니다(" + buffer[2] + ")"; + return retval; + } + retval.timeStamp = buffer[3]; + //DateTime timeStamp; + //if (!DateTime.TryParse(retval.timeStamp, out timeStamp)) + //{ + // retval.isError = true; + // retval.ErrorMessage = "timeStamp 해석 오류(" + retval.timeStamp + ")"; + // return retval; + //} + retval.Body = buffer[4]; + } + return retval; + } + + private Boolean getType(string strType, out eType type) + { + type = eType.REPLY; + var list = Enum.GetNames(typeof(eType)); + int value = -1; + for (int i = 0; i < list.Length; i++) + { + if (list[i].ToUpper() == strType.ToUpper()) + { + value = i; + break; + } + } + if (value == -1) return false; + type = (eType)value; + return true; + } + private Boolean getSType(string strSType, out eSType stype) + { + stype = eSType.GEN; + var list = Enum.GetNames(typeof(eSType)); + int value = -1; + for (int i = 0; i < list.Length; i++) + { + if (list[i].ToUpper() == strSType.ToUpper()) + { + value = i; + break; + } + } + if (value == -1) return false; + stype = (eSType)value; + return true; + } + + public string makePacket(Message msg) + { + //프레임구조 asset chr(7) + type + chr(7) + stype + char(7) + timeStamp + char(7) + body" + //timestamp = yyyymmddhhmmss + //sepChar = (char)0x07; + + System.Text.StringBuilder buffer = new StringBuilder(); + buffer.Append(msg.Asset); + buffer.Append(sepMsg); + buffer.Append(msg.Type.ToString()); + buffer.Append(sepMsg); + buffer.Append(msg.SType.ToString()); + buffer.Append(sepMsg); + buffer.Append(msg.timeStamp); + buffer.Append(sepMsg); + buffer.Append(msg.Body); + return buffer.ToString(); + } + + public string makeLotSplitPacket( string fcst, string tcst, string slot, string wafer) + { + System.Text.StringBuilder buffer = new StringBuilder(); + buffer.Append(fcst); + buffer.Append(sepBody); + buffer.Append(tcst); + buffer.Append(sepBody); + buffer.Append(slot); + buffer.Append(sepBody); + buffer.Append(wafer); + return buffer.ToString(); + } + public string makeLotGenPacket(string Lot, string cst, string slot, string wafer) + { + System.Text.StringBuilder buffer = new StringBuilder(); + buffer.Append(Lot); + buffer.Append(sepBody); + buffer.Append(cst); + buffer.Append(sepBody); + buffer.Append(slot); + buffer.Append(sepBody); + buffer.Append(wafer); + return buffer.ToString(); + } + public enum eStatus + { + RUN =0, + IDLE , + ALARM, + } + public string makeReplyStatus(eStatus Status) + { + System.Text.StringBuilder buffer = new StringBuilder(); + buffer.Append(((int)Status).ToString()); + return buffer.ToString(); + } + public Boolean Send(string Asset, eType type, eSType subtype, string body) + { + var msg = makeMessage(Asset, type, subtype, body); + var isStatus = subtype == eSType.STATUS; + return Send(msg, isStatus); + } + + public Boolean isReplyRecv = false; + public Boolean Send(Message msg,Boolean isStatus) + { + + var packet = makePacket(msg); + if (wsData.State != Winsock_Orcas.WinsockStates.Connected) + { + errorMessage = "Not Connected"; + return false; + } + try + { + if(isStatus==false) isReplyRecv = false; //190129 + wsData.Send(packet + "\r\n"); + errorMessage = string.Empty; + LastSendMessage = msg; + RaiseSendMessage(msg, packet); + return true; + } + catch (Exception ex) + { + errorMessage = ex.Message; + return false; + } + } + + public Message LastReplyMessage = new Message(); + public Message LastRecvMessage = new Message(); + void wsData_DataArrival(object sender, Winsock_Orcas.WinsockDataArrivalEventArgs e) + { + var sock = sender as Winsock_Orcas.Winsock; + var data = sock.Get(); + if(PUB.setting.LOg_SocketRecv) + { + if (data.IndexOf("REQUEST") != -1 && data.IndexOf("STATUS") != -1) + { + //핑 명령 + } + else PUB.log.AddE("Socket Recv : " + data); //190129 + } + + LastRecvMessage = ParseMessage(data); + if (LastRecvMessage.isError) PUB.log.AddE("Socket Message error" + LastRecvMessage.ErrorMessage); + else + { + //190129 - reply만 별도 처리함 + if (LastRecvMessage.Type == eType.REPLY) + { + LastReplyMessage = ParseMessage(data); + isReplyRecv = true; + } + } + RaiseRecvMessage(LastRecvMessage, data); + } + + + public class SocketMessageEventArgs : EventArgs + { + public string rawData { get; set; } + public Device.Socket.Message Message { get; set; } + public SocketMessageEventArgs(Device.Socket.Message msg, string raw) + { + this.Message = msg; + this.rawData = raw; + } + } + public class MesasgeEventArgs : EventArgs + { + public string Message { get; set; } + public Boolean isError { get; set; } + public MesasgeEventArgs(string msg, Boolean iserr) + { + this.Message = msg; + this.isError = iserr; + } + } + } + +} diff --git a/Cs_HMI/Project/Device/Xbee.cs b/HMI/Project/Device/Xbee.cs similarity index 97% rename from Cs_HMI/Project/Device/Xbee.cs rename to HMI/Project/Device/Xbee.cs index 45b4e9e..0b9c459 100644 --- a/Cs_HMI/Project/Device/Xbee.cs +++ b/HMI/Project/Device/Xbee.cs @@ -1,330 +1,330 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.ComponentModel; -using System.Threading; -using COMM; -using ENIG; -using System.Security.Cryptography; -using AR; -using System.IO.Ports; -using System.Security.Cryptography.X509Certificates; -using System.Windows.Forms; - -namespace Project.Device -{ - public enum eDocStep : byte - { - NotSet = 0, - - /// - /// 투입준비됨 - /// - ReadyForEnter = 10, - - /// - /// 투입완료 - /// - EnterComplete = 11, - - /// - /// 투입(진행중) - /// - EnterIng = 12, - - /// - /// 진출완료 - /// - ExitComplete = 21, - - /// - /// 진출중 - /// - ExitIng = 22, - } - - public class Xbee : SerialPort, arDev.ISerialComm - { - public string buffer = string.Empty; - public System.Text.StringBuilder newbuffer = new StringBuilder(); - public string ErrorMessage { get; set; } = string.Empty; - public DateTime LastStatusSendTime { get; set; } = DateTime.Now; - private EEProtocol proto; - - public class MessageArgs : EventArgs - { - public bool IsError { get; set; } - public string Message { get; set; } - public MessageArgs(bool iserr, string m) - { - this.IsError = iserr; - this.Message = m; - } - } - - public event EventHandler MessageReceived; - public event EventHandler ProtocReceived; - - public Xbee() - { - this.WriteTimeout = 500; - this.ReadTimeout = 500; - this.DataReceived += Xbee_DataReceived; - proto = new EEProtocol(); - proto.OnDataReceived += Proto_OnDataReceived; - proto.OnMessage += Proto_OnMessage; - } - ~Xbee() - { - this.DataReceived -= Xbee_DataReceived; - proto.OnDataReceived -= Proto_OnDataReceived; - proto.OnMessage -= Proto_OnMessage; - } - - - /// - /// 지그비장치에 데이터를 전송합니다 - /// - /// - /// - public bool Send(byte[] data) - { - try - { - this.Write(data, 0, data.Length); - return true; - } - catch (Exception ex) - { - ErrorMessage = ex.Message; - return false; - } - } - public new bool Close() - { - try - { - base.Close(); - return true; - } - catch - { - return false; - } - - } - public new bool Open() - { - try - { - base.Open(); - return IsOpen; - } - catch (Exception ex) - { - ErrorMessage = ex.Message; - PUB.logxbee.AddE(ErrorMessage); - return false; - } - } - - private void Proto_OnDataReceived(object sender, EEProtocol.DataEventArgs e) - { - var hexstrRaw = e.ReceivedPacket.RawData.HexString(); - var hexstr = e.ReceivedPacket.Data.HexString(); - var cmd = e.ReceivedPacket.Command.ToString("X2"); - var id = e.ReceivedPacket.ID.ToString("X2"); - PUB.logxbee.Add("RX", $"{hexstrRaw}\nID:{id},CMD:{cmd},DATA:{hexstr}"); - ProtocReceived?.Invoke(this, e); - } - - private void Proto_OnMessage(object sender, EEProtocol.MessageEventArgs e) - { - MessageReceived?.Invoke(this, new MessageArgs(e.IsError, e.Message)); - } - - private void Xbee_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) - { - var dev = sender as System.IO.Ports.SerialPort; - var buffer = new byte[dev.BytesToRead]; - dev.Read(buffer, 0, buffer.Length); - proto.ProcessReceivedData(buffer); - } - - /// - /// 이동완료 신호 전송 - /// - /// 목적지태그값 - public void SendMoveComplete(string tag) - { - var id = PUB.setting.XBE_ID; - byte cmd = (byte)ENIGProtocol.AGVCommandEH.Arrived; - var data = System.Text.Encoding.Default.GetBytes(tag); - var packet = proto.CreatePacket(id, cmd, data); - Send(packet); - } - - /// - /// 신규 RFID태그값이 읽혔다면 이명령을 통해서 전송한다 - /// - public void SendRFIDTag(string tag) - { - var id = PUB.setting.XBE_ID; - byte cmd = (byte)ENIGProtocol.AGVCommandEH.ReadRFID; - var data = System.Text.Encoding.Default.GetBytes(tag); - var packet = proto.CreatePacket(id, cmd, data); - Send(packet); - } - - /// - /// 오류코드를 호스트에 전송합니다 - /// - /// - public void SendError(ENIGProtocol.AGVErrorCode errcode, string errormessage) - { - // Update global error state so it persists in Status messages - PUB.Result.RunStepErrorCode = errcode; - PUB.Result.ResultMessage = errormessage; - - var id = PUB.setting.XBE_ID; - byte cmd = (byte)ENIGProtocol.AGVCommandEH.Error; - if (errormessage.Length > 30) errormessage = errormessage.Substring(0, 29); - - var data = new List(); - data.Add((byte)errcode); - var datamsg = System.Text.Encoding.Default.GetBytes(errormessage); - data.AddRange(datamsg); - - var packet = proto.CreatePacket(id, cmd, data.ToArray()); - Send(packet); - } - - public eDocStep StepMC { get; set; } = eDocStep.NotSet; - - ManualResetEvent sendlock = new ManualResetEvent(true); - - - /// - /// AGV상태를 Xbee 로 전송한다 - /// - public void SendStatus() - { - if (this.IsOpen == false) return; - if (sendlock.WaitOne() == false) return; - sendlock.Reset(); - - /* - Mode[1] : 0=manual, 1=auto - RunSt[1] : 0=stop, 1=run, 2=error - RunStep[1] : (byte)PUB.sm.RunStep - RunStepSeq[1] : (byte)StepMC - MotorDir[1] : 0=F(Forward), 1=B(Backward) - MagnetDir[1] : 0=S(Straight), 1=L(Left), 2=R(Right) - ChargeSt[1] : 0=off, 1=on - CartSt[1] : 0=off, 1=on, 2=unknown - LiftSt[1] : 0=down , 1=up, 2=unknown - ErrorCode[1] : (byte)PUB.Result.ResultErrorCode - LastTag[4] : "0000" - */ - try - { - List data = new List(); - byte value = 0; - // Autoron Mode - - value = (byte)(VAR.BOOL[eVarBool.FLAG_AUTORUN] ? 1 : 0); - data.Add(value); - - // RunSt - if (PUB.AGV.error.Emergency) - value = 2; // error - else if (PUB.AGV.system1.agv_run) - value = 1; // run - else - value = 0; // stop - data.Add(value); - - //runstep - value = (byte)PUB.sm.RunStep; - data.Add(value); - - //runstepseq - value = (byte)StepMC; - data.Add(value); - - // Motor Direction - if (PUB.AGV.data.Direction == 'F') - value = 0; - else if (PUB.AGV.data.Direction == 'B') - value = 1; - else - value = 0xff; //unknown - data.Add(value); - - // Magnet Direction - if (PUB.AGV.data.Sts == 'L') - value = 1; // left - else if (PUB.AGV.data.Sts == 'R') - value = 2; // right - else if (PUB.AGV.data.Sts == 'S') - value = 0; // straight - else - value = 0xFF; //unknown - data.Add(value); - - // ChargeSt - value = (byte)((VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) ? 1 : 0); - data.Add(value); - - // CartSt - if (PUB.AGV.signal2.cart_detect1 && PUB.AGV.signal2.cart_detect2) - value = 1; // 센서두개가 모두 감지되는 경우 - else if (PUB.AGV.signal2.cart_detect1 == false && PUB.AGV.signal2.cart_detect2 == false) - value = 0; // 센서두개가 모두 감지되지 않는 경우 - else - value = 2; // 센서하나만 감지되는 경우 - data.Add(value); - - // LiftSt - if (PUB.AGV.signal1.lift_up) - value = 1; // 위로 올라가는 경우 - else if (PUB.AGV.signal1.lift_down) - value = 0; // 아래로 내려가는 경우 - else - value = 2; // unknown (기본값) - data.Add(value); - - // ErrorCode [New RunStepErrorCode] - value = (byte)PUB.Result.RunStepErrorCode; - data.Add(value); - - // LastTag - string lastTag = PUB.AGV.data.TagNo.ToString("0000") ?? "0000"; - byte[] tagBytes = Encoding.ASCII.GetBytes(lastTag.PadRight(4, '0')); - data.AddRange(tagBytes); - - // 데이터 전송 - var cmd = (byte)ENIGProtocol.AGVCommandEH.Status; - var packet = proto.CreatePacket(PUB.setting.XBE_ID, cmd, data.ToArray()); - if (Send(packet)) - PUB.logxbee.AddI($"Send status [O] : {packet.Length} {packet.HexString()}"); - else - PUB.logxbee.AddE($"Send status [X] : {packet.Length} {packet.HexString()}"); - LastStatusSendTime = DateTime.Now; - } - catch (Exception ex) - { - ErrorMessage = ex.Message; - PUB.logxbee.AddE(ErrorMessage); - } - finally - { - sendlock.Set(); - } - - } - - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.Threading; +using COMM; +using ENIG; +using System.Security.Cryptography; +using AR; +using System.IO.Ports; +using System.Security.Cryptography.X509Certificates; +using System.Windows.Forms; + +namespace Project.Device +{ + public enum eDocStep : byte + { + NotSet = 0, + + /// + /// 투입준비됨 + /// + ReadyForEnter = 10, + + /// + /// 투입완료 + /// + EnterComplete = 11, + + /// + /// 투입(진행중) + /// + EnterIng = 12, + + /// + /// 진출완료 + /// + ExitComplete = 21, + + /// + /// 진출중 + /// + ExitIng = 22, + } + + public class Xbee : SerialPort, arDev.ISerialComm + { + public string buffer = string.Empty; + public System.Text.StringBuilder newbuffer = new StringBuilder(); + public string ErrorMessage { get; set; } = string.Empty; + public DateTime LastStatusSendTime { get; set; } = DateTime.Now; + private EEProtocol proto; + + public class MessageArgs : EventArgs + { + public bool IsError { get; set; } + public string Message { get; set; } + public MessageArgs(bool iserr, string m) + { + this.IsError = iserr; + this.Message = m; + } + } + + public event EventHandler MessageReceived; + public event EventHandler ProtocReceived; + + public Xbee() + { + this.WriteTimeout = 500; + this.ReadTimeout = 500; + this.DataReceived += Xbee_DataReceived; + proto = new EEProtocol(); + proto.OnDataReceived += Proto_OnDataReceived; + proto.OnMessage += Proto_OnMessage; + } + ~Xbee() + { + this.DataReceived -= Xbee_DataReceived; + proto.OnDataReceived -= Proto_OnDataReceived; + proto.OnMessage -= Proto_OnMessage; + } + + + /// + /// 지그비장치에 데이터를 전송합니다 + /// + /// + /// + public bool Send(byte[] data) + { + try + { + this.Write(data, 0, data.Length); + return true; + } + catch (Exception ex) + { + ErrorMessage = ex.Message; + return false; + } + } + public new bool Close() + { + try + { + base.Close(); + return true; + } + catch + { + return false; + } + + } + public new bool Open() + { + try + { + base.Open(); + return IsOpen; + } + catch (Exception ex) + { + ErrorMessage = ex.Message; + PUB.logxbee.AddE(ErrorMessage); + return false; + } + } + + private void Proto_OnDataReceived(object sender, EEProtocol.DataEventArgs e) + { + var hexstrRaw = e.ReceivedPacket.RawData.HexString(); + var hexstr = e.ReceivedPacket.Data.HexString(); + var cmd = e.ReceivedPacket.Command.ToString("X2"); + var id = e.ReceivedPacket.ID.ToString("X2"); + PUB.logxbee.Add("RX", $"{hexstrRaw}\nID:{id},CMD:{cmd},DATA:{hexstr}"); + ProtocReceived?.Invoke(this, e); + } + + private void Proto_OnMessage(object sender, EEProtocol.MessageEventArgs e) + { + MessageReceived?.Invoke(this, new MessageArgs(e.IsError, e.Message)); + } + + private void Xbee_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + var dev = sender as System.IO.Ports.SerialPort; + var buffer = new byte[dev.BytesToRead]; + dev.Read(buffer, 0, buffer.Length); + proto.ProcessReceivedData(buffer); + } + + /// + /// 이동완료 신호 전송 + /// + /// 목적지태그값 + public void SendMoveComplete(string tag) + { + var id = PUB.setting.XBE_ID; + byte cmd = (byte)ENIGProtocol.AGVCommandEH.Arrived; + var data = System.Text.Encoding.Default.GetBytes(tag); + var packet = proto.CreatePacket(id, cmd, data); + Send(packet); + } + + /// + /// 신규 RFID태그값이 읽혔다면 이명령을 통해서 전송한다 + /// + public void SendRFIDTag(string tag) + { + var id = PUB.setting.XBE_ID; + byte cmd = (byte)ENIGProtocol.AGVCommandEH.ReadRFID; + var data = System.Text.Encoding.Default.GetBytes(tag); + var packet = proto.CreatePacket(id, cmd, data); + Send(packet); + } + + /// + /// 오류코드를 호스트에 전송합니다 + /// + /// + public void SendError(ENIGProtocol.AGVErrorCode errcode, string errormessage) + { + // Update global error state so it persists in Status messages + PUB.Result.RunStepErrorCode = errcode; + PUB.Result.ResultMessage = errormessage; + + var id = PUB.setting.XBE_ID; + byte cmd = (byte)ENIGProtocol.AGVCommandEH.Error; + if (errormessage.Length > 30) errormessage = errormessage.Substring(0, 29); + + var data = new List(); + data.Add((byte)errcode); + var datamsg = System.Text.Encoding.Default.GetBytes(errormessage); + data.AddRange(datamsg); + + var packet = proto.CreatePacket(id, cmd, data.ToArray()); + Send(packet); + } + + public eDocStep StepMC { get; set; } = eDocStep.NotSet; + + ManualResetEvent sendlock = new ManualResetEvent(true); + + + /// + /// AGV상태를 Xbee 로 전송한다 + /// + public void SendStatus() + { + if (this.IsOpen == false) return; + if (sendlock.WaitOne() == false) return; + sendlock.Reset(); + + /* + Mode[1] : 0=manual, 1=auto + RunSt[1] : 0=stop, 1=run, 2=error + RunStep[1] : (byte)PUB.sm.RunStep + RunStepSeq[1] : (byte)StepMC + MotorDir[1] : 0=F(Forward), 1=B(Backward) + MagnetDir[1] : 0=S(Straight), 1=L(Left), 2=R(Right) + ChargeSt[1] : 0=off, 1=on + CartSt[1] : 0=off, 1=on, 2=unknown + LiftSt[1] : 0=down , 1=up, 2=unknown + ErrorCode[1] : (byte)PUB.Result.ResultErrorCode + LastTag[4] : "0000" + */ + try + { + List data = new List(); + byte value = 0; + // Autoron Mode + + value = (byte)(VAR.BOOL[eVarBool.FLAG_AUTORUN] ? 1 : 0); + data.Add(value); + + // RunSt + if (PUB.AGV.error.Emergency) + value = 2; // error + else if (PUB.AGV.system1.agv_run) + value = 1; // run + else + value = 0; // stop + data.Add(value); + + //runstep + value = (byte)PUB.sm.RunStep; + data.Add(value); + + //runstepseq + value = (byte)StepMC; + data.Add(value); + + // Motor Direction + if (PUB.AGV.data.Direction == 'F') + value = 0; + else if (PUB.AGV.data.Direction == 'B') + value = 1; + else + value = 0xff; //unknown + data.Add(value); + + // Magnet Direction + if (PUB.AGV.data.Sts == 'L') + value = 1; // left + else if (PUB.AGV.data.Sts == 'R') + value = 2; // right + else if (PUB.AGV.data.Sts == 'S') + value = 0; // straight + else + value = 0xFF; //unknown + data.Add(value); + + // ChargeSt + value = (byte)((VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) ? 1 : 0); + data.Add(value); + + // CartSt + if (PUB.AGV.signal2.cart_detect1 && PUB.AGV.signal2.cart_detect2) + value = 1; // 센서두개가 모두 감지되는 경우 + else if (PUB.AGV.signal2.cart_detect1 == false && PUB.AGV.signal2.cart_detect2 == false) + value = 0; // 센서두개가 모두 감지되지 않는 경우 + else + value = 2; // 센서하나만 감지되는 경우 + data.Add(value); + + // LiftSt + if (PUB.AGV.signal1.lift_up) + value = 1; // 위로 올라가는 경우 + else if (PUB.AGV.signal1.lift_down) + value = 0; // 아래로 내려가는 경우 + else + value = 2; // unknown (기본값) + data.Add(value); + + // ErrorCode [New RunStepErrorCode] + value = (byte)PUB.Result.RunStepErrorCode; + data.Add(value); + + // LastTag + string lastTag = PUB.AGV.data.TagNo.ToString("0000") ?? "0000"; + byte[] tagBytes = Encoding.ASCII.GetBytes(lastTag.PadRight(4, '0')); + data.AddRange(tagBytes); + + // 데이터 전송 + var cmd = (byte)ENIGProtocol.AGVCommandEH.Status; + var packet = proto.CreatePacket(PUB.setting.XBE_ID, cmd, data.ToArray()); + if (Send(packet)) + PUB.logxbee.AddI($"Send status [O] : {packet.Length} {packet.HexString()}"); + else + PUB.logxbee.AddE($"Send status [X] : {packet.Length} {packet.HexString()}"); + LastStatusSendTime = DateTime.Now; + } + catch (Exception ex) + { + ErrorMessage = ex.Message; + PUB.logxbee.AddE(ErrorMessage); + } + finally + { + sendlock.Set(); + } + + } + + + } +} diff --git a/Cs_HMI/Project/Dialog/fCounter.Designer.cs b/HMI/Project/Dialog/fCounter.Designer.cs similarity index 98% rename from Cs_HMI/Project/Dialog/fCounter.Designer.cs rename to HMI/Project/Dialog/fCounter.Designer.cs index d90b0ba..50596cc 100644 --- a/Cs_HMI/Project/Dialog/fCounter.Designer.cs +++ b/HMI/Project/Dialog/fCounter.Designer.cs @@ -1,687 +1,687 @@ -namespace Project.Dialog -{ - partial class fCounter - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.lbcnt1 = new arCtl.arLabel(); - this.lbcnt2 = new arCtl.arLabel(); - this.lbcnt3 = new arCtl.arLabel(); - this.lbcnt4 = new arCtl.arLabel(); - this.lbcnt5 = new arCtl.arLabel(); - this.lbcnta = new arCtl.arLabel(); - this.lbcntm = new arCtl.arLabel(); - this.lbcnte = new arCtl.arLabel(); - this.lbcntqa = new arCtl.arLabel(); - this.lbcntqc = new arCtl.arLabel(); - this.tableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; - this.tableLayoutPanel1.ColumnCount = 5; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.label2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.label3, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.label4, 3, 0); - this.tableLayoutPanel1.Controls.Add(this.label5, 4, 0); - this.tableLayoutPanel1.Controls.Add(this.label6, 4, 2); - this.tableLayoutPanel1.Controls.Add(this.label7, 3, 2); - this.tableLayoutPanel1.Controls.Add(this.label8, 2, 2); - this.tableLayoutPanel1.Controls.Add(this.label9, 1, 2); - this.tableLayoutPanel1.Controls.Add(this.label10, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.lbcnt1, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.lbcnt2, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.lbcnt3, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.lbcnt4, 3, 1); - this.tableLayoutPanel1.Controls.Add(this.lbcnt5, 4, 1); - this.tableLayoutPanel1.Controls.Add(this.lbcnta, 0, 3); - this.tableLayoutPanel1.Controls.Add(this.lbcntm, 1, 3); - this.tableLayoutPanel1.Controls.Add(this.lbcnte, 2, 3); - this.tableLayoutPanel1.Controls.Add(this.lbcntqa, 3, 3); - this.tableLayoutPanel1.Controls.Add(this.lbcntqc, 4, 3); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 4; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(392, 135); - this.tableLayoutPanel1.TabIndex = 0; - // - // label1 - // - this.label1.Dock = System.Windows.Forms.DockStyle.Fill; - this.label1.Location = new System.Drawing.Point(4, 1); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(71, 20); - this.label1.TabIndex = 0; - this.label1.Text = "FVI-1"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label2 - // - this.label2.Dock = System.Windows.Forms.DockStyle.Fill; - this.label2.Location = new System.Drawing.Point(82, 1); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(71, 20); - this.label2.TabIndex = 0; - this.label2.Text = "FVI-2"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label3 - // - this.label3.Dock = System.Windows.Forms.DockStyle.Fill; - this.label3.Location = new System.Drawing.Point(160, 1); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(71, 20); - this.label3.TabIndex = 0; - this.label3.Text = "FVI-3"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label4 - // - this.label4.Dock = System.Windows.Forms.DockStyle.Fill; - this.label4.Location = new System.Drawing.Point(238, 1); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(71, 20); - this.label4.TabIndex = 0; - this.label4.Text = "FVI-4"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label5 - // - this.label5.Dock = System.Windows.Forms.DockStyle.Fill; - this.label5.Location = new System.Drawing.Point(316, 1); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(72, 20); - this.label5.TabIndex = 0; - this.label5.Text = "--"; - this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label6 - // - this.label6.Dock = System.Windows.Forms.DockStyle.Fill; - this.label6.Location = new System.Drawing.Point(316, 68); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(72, 20); - this.label6.TabIndex = 0; - this.label6.Text = "QC"; - this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label7 - // - this.label7.Dock = System.Windows.Forms.DockStyle.Fill; - this.label7.Location = new System.Drawing.Point(238, 68); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(71, 20); - this.label7.TabIndex = 0; - this.label7.Text = "QA"; - this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label8 - // - this.label8.Dock = System.Windows.Forms.DockStyle.Fill; - this.label8.Location = new System.Drawing.Point(160, 68); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(71, 20); - this.label8.TabIndex = 0; - this.label8.Text = "충전실패"; - this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label9 - // - this.label9.Dock = System.Windows.Forms.DockStyle.Fill; - this.label9.Location = new System.Drawing.Point(82, 68); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(71, 20); - this.label9.TabIndex = 0; - this.label9.Text = "충전(수동)"; - this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label10 - // - this.label10.Dock = System.Windows.Forms.DockStyle.Fill; - this.label10.Location = new System.Drawing.Point(4, 68); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(71, 20); - this.label10.TabIndex = 0; - this.label10.Text = "충전(자동)"; - this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // lbcnt1 - // - this.lbcnt1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcnt1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcnt1.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcnt1.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcnt1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcnt1.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcnt1.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcnt1.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcnt1.ForeColor = System.Drawing.Color.White; - this.lbcnt1.GradientEnable = true; - this.lbcnt1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcnt1.GradientRepeatBG = false; - this.lbcnt1.isButton = false; - this.lbcnt1.Location = new System.Drawing.Point(1, 22); - this.lbcnt1.Margin = new System.Windows.Forms.Padding(0); - this.lbcnt1.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcnt1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcnt1.msg = null; - this.lbcnt1.Name = "lbcnt1"; - this.lbcnt1.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcnt1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcnt1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcnt1.ProgressEnable = false; - this.lbcnt1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcnt1.ProgressForeColor = System.Drawing.Color.Black; - this.lbcnt1.ProgressMax = 100F; - this.lbcnt1.ProgressMin = 0F; - this.lbcnt1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcnt1.ProgressValue = 0F; - this.lbcnt1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcnt1.Sign = ""; - this.lbcnt1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcnt1.SignColor = System.Drawing.Color.Yellow; - this.lbcnt1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcnt1.Size = new System.Drawing.Size(77, 45); - this.lbcnt1.TabIndex = 5; - this.lbcnt1.Text = "99"; - this.lbcnt1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcnt1.TextShadow = true; - this.lbcnt1.TextVisible = true; - // - // lbcnt2 - // - this.lbcnt2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcnt2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcnt2.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcnt2.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcnt2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcnt2.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcnt2.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcnt2.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcnt2.ForeColor = System.Drawing.Color.White; - this.lbcnt2.GradientEnable = true; - this.lbcnt2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcnt2.GradientRepeatBG = false; - this.lbcnt2.isButton = false; - this.lbcnt2.Location = new System.Drawing.Point(79, 22); - this.lbcnt2.Margin = new System.Windows.Forms.Padding(0); - this.lbcnt2.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcnt2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcnt2.msg = null; - this.lbcnt2.Name = "lbcnt2"; - this.lbcnt2.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcnt2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcnt2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcnt2.ProgressEnable = false; - this.lbcnt2.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcnt2.ProgressForeColor = System.Drawing.Color.Black; - this.lbcnt2.ProgressMax = 100F; - this.lbcnt2.ProgressMin = 0F; - this.lbcnt2.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcnt2.ProgressValue = 0F; - this.lbcnt2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcnt2.Sign = ""; - this.lbcnt2.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcnt2.SignColor = System.Drawing.Color.Yellow; - this.lbcnt2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcnt2.Size = new System.Drawing.Size(77, 45); - this.lbcnt2.TabIndex = 5; - this.lbcnt2.Text = "99"; - this.lbcnt2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcnt2.TextShadow = true; - this.lbcnt2.TextVisible = true; - // - // lbcnt3 - // - this.lbcnt3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcnt3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcnt3.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcnt3.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcnt3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcnt3.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcnt3.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcnt3.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcnt3.ForeColor = System.Drawing.Color.White; - this.lbcnt3.GradientEnable = true; - this.lbcnt3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcnt3.GradientRepeatBG = false; - this.lbcnt3.isButton = false; - this.lbcnt3.Location = new System.Drawing.Point(157, 22); - this.lbcnt3.Margin = new System.Windows.Forms.Padding(0); - this.lbcnt3.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcnt3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcnt3.msg = null; - this.lbcnt3.Name = "lbcnt3"; - this.lbcnt3.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcnt3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcnt3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcnt3.ProgressEnable = false; - this.lbcnt3.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcnt3.ProgressForeColor = System.Drawing.Color.Black; - this.lbcnt3.ProgressMax = 100F; - this.lbcnt3.ProgressMin = 0F; - this.lbcnt3.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcnt3.ProgressValue = 0F; - this.lbcnt3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcnt3.Sign = ""; - this.lbcnt3.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcnt3.SignColor = System.Drawing.Color.Yellow; - this.lbcnt3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcnt3.Size = new System.Drawing.Size(77, 45); - this.lbcnt3.TabIndex = 5; - this.lbcnt3.Text = "99"; - this.lbcnt3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcnt3.TextShadow = true; - this.lbcnt3.TextVisible = true; - // - // lbcnt4 - // - this.lbcnt4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcnt4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcnt4.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcnt4.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcnt4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcnt4.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcnt4.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcnt4.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcnt4.ForeColor = System.Drawing.Color.White; - this.lbcnt4.GradientEnable = true; - this.lbcnt4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcnt4.GradientRepeatBG = false; - this.lbcnt4.isButton = false; - this.lbcnt4.Location = new System.Drawing.Point(235, 22); - this.lbcnt4.Margin = new System.Windows.Forms.Padding(0); - this.lbcnt4.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcnt4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcnt4.msg = null; - this.lbcnt4.Name = "lbcnt4"; - this.lbcnt4.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcnt4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcnt4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcnt4.ProgressEnable = false; - this.lbcnt4.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcnt4.ProgressForeColor = System.Drawing.Color.Black; - this.lbcnt4.ProgressMax = 100F; - this.lbcnt4.ProgressMin = 0F; - this.lbcnt4.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcnt4.ProgressValue = 0F; - this.lbcnt4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcnt4.Sign = ""; - this.lbcnt4.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcnt4.SignColor = System.Drawing.Color.Yellow; - this.lbcnt4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcnt4.Size = new System.Drawing.Size(77, 45); - this.lbcnt4.TabIndex = 5; - this.lbcnt4.Text = "99"; - this.lbcnt4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcnt4.TextShadow = true; - this.lbcnt4.TextVisible = true; - // - // lbcnt5 - // - this.lbcnt5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnt5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcnt5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcnt5.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcnt5.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcnt5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcnt5.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcnt5.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcnt5.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcnt5.ForeColor = System.Drawing.Color.White; - this.lbcnt5.GradientEnable = true; - this.lbcnt5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcnt5.GradientRepeatBG = false; - this.lbcnt5.isButton = false; - this.lbcnt5.Location = new System.Drawing.Point(313, 22); - this.lbcnt5.Margin = new System.Windows.Forms.Padding(0); - this.lbcnt5.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcnt5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcnt5.msg = null; - this.lbcnt5.Name = "lbcnt5"; - this.lbcnt5.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcnt5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcnt5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcnt5.ProgressEnable = false; - this.lbcnt5.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcnt5.ProgressForeColor = System.Drawing.Color.Black; - this.lbcnt5.ProgressMax = 100F; - this.lbcnt5.ProgressMin = 0F; - this.lbcnt5.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcnt5.ProgressValue = 0F; - this.lbcnt5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcnt5.Sign = ""; - this.lbcnt5.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcnt5.SignColor = System.Drawing.Color.Yellow; - this.lbcnt5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcnt5.Size = new System.Drawing.Size(78, 45); - this.lbcnt5.TabIndex = 5; - this.lbcnt5.Text = "--"; - this.lbcnt5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcnt5.TextShadow = true; - this.lbcnt5.TextVisible = true; - // - // lbcnta - // - this.lbcnta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnta.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnta.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcnta.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcnta.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcnta.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcnta.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcnta.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcnta.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcnta.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcnta.ForeColor = System.Drawing.Color.White; - this.lbcnta.GradientEnable = true; - this.lbcnta.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcnta.GradientRepeatBG = false; - this.lbcnta.isButton = false; - this.lbcnta.Location = new System.Drawing.Point(1, 89); - this.lbcnta.Margin = new System.Windows.Forms.Padding(0); - this.lbcnta.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcnta.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcnta.msg = null; - this.lbcnta.Name = "lbcnta"; - this.lbcnta.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcnta.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcnta.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcnta.ProgressEnable = false; - this.lbcnta.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcnta.ProgressForeColor = System.Drawing.Color.Black; - this.lbcnta.ProgressMax = 100F; - this.lbcnta.ProgressMin = 0F; - this.lbcnta.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcnta.ProgressValue = 0F; - this.lbcnta.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcnta.Sign = ""; - this.lbcnta.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcnta.SignColor = System.Drawing.Color.Yellow; - this.lbcnta.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcnta.Size = new System.Drawing.Size(77, 45); - this.lbcnta.TabIndex = 5; - this.lbcnta.Text = "99"; - this.lbcnta.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcnta.TextShadow = true; - this.lbcnta.TextVisible = true; - // - // lbcntm - // - this.lbcntm.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcntm.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcntm.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcntm.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcntm.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcntm.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcntm.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcntm.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcntm.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcntm.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcntm.ForeColor = System.Drawing.Color.White; - this.lbcntm.GradientEnable = true; - this.lbcntm.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcntm.GradientRepeatBG = false; - this.lbcntm.isButton = false; - this.lbcntm.Location = new System.Drawing.Point(79, 89); - this.lbcntm.Margin = new System.Windows.Forms.Padding(0); - this.lbcntm.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcntm.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcntm.msg = null; - this.lbcntm.Name = "lbcntm"; - this.lbcntm.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcntm.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcntm.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcntm.ProgressEnable = false; - this.lbcntm.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcntm.ProgressForeColor = System.Drawing.Color.Black; - this.lbcntm.ProgressMax = 100F; - this.lbcntm.ProgressMin = 0F; - this.lbcntm.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcntm.ProgressValue = 0F; - this.lbcntm.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcntm.Sign = ""; - this.lbcntm.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcntm.SignColor = System.Drawing.Color.Yellow; - this.lbcntm.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcntm.Size = new System.Drawing.Size(77, 45); - this.lbcntm.TabIndex = 5; - this.lbcntm.Text = "99"; - this.lbcntm.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcntm.TextShadow = true; - this.lbcntm.TextVisible = true; - // - // lbcnte - // - this.lbcnte.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnte.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcnte.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcnte.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcnte.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcnte.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcnte.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcnte.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcnte.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcnte.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcnte.ForeColor = System.Drawing.Color.White; - this.lbcnte.GradientEnable = true; - this.lbcnte.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcnte.GradientRepeatBG = false; - this.lbcnte.isButton = false; - this.lbcnte.Location = new System.Drawing.Point(157, 89); - this.lbcnte.Margin = new System.Windows.Forms.Padding(0); - this.lbcnte.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcnte.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcnte.msg = null; - this.lbcnte.Name = "lbcnte"; - this.lbcnte.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcnte.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcnte.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcnte.ProgressEnable = false; - this.lbcnte.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcnte.ProgressForeColor = System.Drawing.Color.Black; - this.lbcnte.ProgressMax = 100F; - this.lbcnte.ProgressMin = 0F; - this.lbcnte.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcnte.ProgressValue = 0F; - this.lbcnte.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcnte.Sign = ""; - this.lbcnte.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcnte.SignColor = System.Drawing.Color.Yellow; - this.lbcnte.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcnte.Size = new System.Drawing.Size(77, 45); - this.lbcnte.TabIndex = 5; - this.lbcnte.Text = "99"; - this.lbcnte.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcnte.TextShadow = true; - this.lbcnte.TextVisible = true; - // - // lbcntqa - // - this.lbcntqa.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcntqa.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcntqa.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcntqa.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcntqa.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcntqa.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcntqa.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcntqa.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcntqa.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcntqa.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcntqa.ForeColor = System.Drawing.Color.White; - this.lbcntqa.GradientEnable = true; - this.lbcntqa.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcntqa.GradientRepeatBG = false; - this.lbcntqa.isButton = false; - this.lbcntqa.Location = new System.Drawing.Point(235, 89); - this.lbcntqa.Margin = new System.Windows.Forms.Padding(0); - this.lbcntqa.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcntqa.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcntqa.msg = null; - this.lbcntqa.Name = "lbcntqa"; - this.lbcntqa.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcntqa.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcntqa.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcntqa.ProgressEnable = false; - this.lbcntqa.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcntqa.ProgressForeColor = System.Drawing.Color.Black; - this.lbcntqa.ProgressMax = 100F; - this.lbcntqa.ProgressMin = 0F; - this.lbcntqa.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcntqa.ProgressValue = 0F; - this.lbcntqa.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcntqa.Sign = ""; - this.lbcntqa.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcntqa.SignColor = System.Drawing.Color.Yellow; - this.lbcntqa.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcntqa.Size = new System.Drawing.Size(77, 45); - this.lbcntqa.TabIndex = 5; - this.lbcntqa.Text = "99"; - this.lbcntqa.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcntqa.TextShadow = true; - this.lbcntqa.TextVisible = true; - // - // lbcntqc - // - this.lbcntqc.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcntqc.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbcntqc.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbcntqc.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbcntqc.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbcntqc.BorderSize = new System.Windows.Forms.Padding(0); - this.lbcntqc.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbcntqc.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbcntqc.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbcntqc.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbcntqc.ForeColor = System.Drawing.Color.White; - this.lbcntqc.GradientEnable = true; - this.lbcntqc.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbcntqc.GradientRepeatBG = false; - this.lbcntqc.isButton = false; - this.lbcntqc.Location = new System.Drawing.Point(313, 89); - this.lbcntqc.Margin = new System.Windows.Forms.Padding(0); - this.lbcntqc.MouseDownColor = System.Drawing.Color.Yellow; - this.lbcntqc.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbcntqc.msg = null; - this.lbcntqc.Name = "lbcntqc"; - this.lbcntqc.ProgressBorderColor = System.Drawing.Color.Black; - this.lbcntqc.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbcntqc.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbcntqc.ProgressEnable = false; - this.lbcntqc.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbcntqc.ProgressForeColor = System.Drawing.Color.Black; - this.lbcntqc.ProgressMax = 100F; - this.lbcntqc.ProgressMin = 0F; - this.lbcntqc.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbcntqc.ProgressValue = 0F; - this.lbcntqc.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbcntqc.Sign = ""; - this.lbcntqc.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbcntqc.SignColor = System.Drawing.Color.Yellow; - this.lbcntqc.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbcntqc.Size = new System.Drawing.Size(78, 45); - this.lbcntqc.TabIndex = 5; - this.lbcntqc.Text = "99"; - this.lbcntqc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbcntqc.TextShadow = true; - this.lbcntqc.TextVisible = true; - this.lbcntqc.Click += new System.EventHandler(this.lbcntpk_Click); - // - // fCounter - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(392, 135); - this.Controls.Add(this.tableLayoutPanel1); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "fCounter"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "fCounter"; - this.Load += new System.EventHandler(this.fCounter_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Label label10; - private arCtl.arLabel lbcnt1; - private arCtl.arLabel lbcnt2; - private arCtl.arLabel lbcnt3; - private arCtl.arLabel lbcnt4; - private arCtl.arLabel lbcnt5; - private arCtl.arLabel lbcnta; - private arCtl.arLabel lbcntm; - private arCtl.arLabel lbcnte; - private arCtl.arLabel lbcntqa; - private System.Windows.Forms.Label label6; - private arCtl.arLabel lbcntqc; - } +namespace Project.Dialog +{ + partial class fCounter + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.lbcnt1 = new arCtl.arLabel(); + this.lbcnt2 = new arCtl.arLabel(); + this.lbcnt3 = new arCtl.arLabel(); + this.lbcnt4 = new arCtl.arLabel(); + this.lbcnt5 = new arCtl.arLabel(); + this.lbcnta = new arCtl.arLabel(); + this.lbcntm = new arCtl.arLabel(); + this.lbcnte = new arCtl.arLabel(); + this.lbcntqa = new arCtl.arLabel(); + this.lbcntqc = new arCtl.arLabel(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel1.ColumnCount = 5; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label2, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.label3, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.label4, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.label5, 4, 0); + this.tableLayoutPanel1.Controls.Add(this.label6, 4, 2); + this.tableLayoutPanel1.Controls.Add(this.label7, 3, 2); + this.tableLayoutPanel1.Controls.Add(this.label8, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.label9, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.label10, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.lbcnt1, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.lbcnt2, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.lbcnt3, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.lbcnt4, 3, 1); + this.tableLayoutPanel1.Controls.Add(this.lbcnt5, 4, 1); + this.tableLayoutPanel1.Controls.Add(this.lbcnta, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.lbcntm, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.lbcnte, 2, 3); + this.tableLayoutPanel1.Controls.Add(this.lbcntqa, 3, 3); + this.tableLayoutPanel1.Controls.Add(this.lbcntqc, 4, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(392, 135); + this.tableLayoutPanel1.TabIndex = 0; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Location = new System.Drawing.Point(4, 1); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(71, 20); + this.label1.TabIndex = 0; + this.label1.Text = "FVI-1"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Location = new System.Drawing.Point(82, 1); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(71, 20); + this.label2.TabIndex = 0; + this.label2.Text = "FVI-2"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Location = new System.Drawing.Point(160, 1); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(71, 20); + this.label3.TabIndex = 0; + this.label3.Text = "FVI-3"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.Dock = System.Windows.Forms.DockStyle.Fill; + this.label4.Location = new System.Drawing.Point(238, 1); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(71, 20); + this.label4.TabIndex = 0; + this.label4.Text = "FVI-4"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label5 + // + this.label5.Dock = System.Windows.Forms.DockStyle.Fill; + this.label5.Location = new System.Drawing.Point(316, 1); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(72, 20); + this.label5.TabIndex = 0; + this.label5.Text = "--"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label6 + // + this.label6.Dock = System.Windows.Forms.DockStyle.Fill; + this.label6.Location = new System.Drawing.Point(316, 68); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(72, 20); + this.label6.TabIndex = 0; + this.label6.Text = "QC"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.Dock = System.Windows.Forms.DockStyle.Fill; + this.label7.Location = new System.Drawing.Point(238, 68); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(71, 20); + this.label7.TabIndex = 0; + this.label7.Text = "QA"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label8 + // + this.label8.Dock = System.Windows.Forms.DockStyle.Fill; + this.label8.Location = new System.Drawing.Point(160, 68); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(71, 20); + this.label8.TabIndex = 0; + this.label8.Text = "충전실패"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.Dock = System.Windows.Forms.DockStyle.Fill; + this.label9.Location = new System.Drawing.Point(82, 68); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(71, 20); + this.label9.TabIndex = 0; + this.label9.Text = "충전(수동)"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label10 + // + this.label10.Dock = System.Windows.Forms.DockStyle.Fill; + this.label10.Location = new System.Drawing.Point(4, 68); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(71, 20); + this.label10.TabIndex = 0; + this.label10.Text = "충전(자동)"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbcnt1 + // + this.lbcnt1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcnt1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcnt1.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcnt1.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcnt1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcnt1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcnt1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcnt1.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcnt1.ForeColor = System.Drawing.Color.White; + this.lbcnt1.GradientEnable = true; + this.lbcnt1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcnt1.GradientRepeatBG = false; + this.lbcnt1.isButton = false; + this.lbcnt1.Location = new System.Drawing.Point(1, 22); + this.lbcnt1.Margin = new System.Windows.Forms.Padding(0); + this.lbcnt1.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcnt1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcnt1.msg = null; + this.lbcnt1.Name = "lbcnt1"; + this.lbcnt1.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcnt1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcnt1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcnt1.ProgressEnable = false; + this.lbcnt1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcnt1.ProgressForeColor = System.Drawing.Color.Black; + this.lbcnt1.ProgressMax = 100F; + this.lbcnt1.ProgressMin = 0F; + this.lbcnt1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcnt1.ProgressValue = 0F; + this.lbcnt1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcnt1.Sign = ""; + this.lbcnt1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcnt1.SignColor = System.Drawing.Color.Yellow; + this.lbcnt1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcnt1.Size = new System.Drawing.Size(77, 45); + this.lbcnt1.TabIndex = 5; + this.lbcnt1.Text = "99"; + this.lbcnt1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcnt1.TextShadow = true; + this.lbcnt1.TextVisible = true; + // + // lbcnt2 + // + this.lbcnt2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcnt2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcnt2.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcnt2.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcnt2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcnt2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcnt2.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcnt2.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcnt2.ForeColor = System.Drawing.Color.White; + this.lbcnt2.GradientEnable = true; + this.lbcnt2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcnt2.GradientRepeatBG = false; + this.lbcnt2.isButton = false; + this.lbcnt2.Location = new System.Drawing.Point(79, 22); + this.lbcnt2.Margin = new System.Windows.Forms.Padding(0); + this.lbcnt2.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcnt2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcnt2.msg = null; + this.lbcnt2.Name = "lbcnt2"; + this.lbcnt2.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcnt2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcnt2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcnt2.ProgressEnable = false; + this.lbcnt2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcnt2.ProgressForeColor = System.Drawing.Color.Black; + this.lbcnt2.ProgressMax = 100F; + this.lbcnt2.ProgressMin = 0F; + this.lbcnt2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcnt2.ProgressValue = 0F; + this.lbcnt2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcnt2.Sign = ""; + this.lbcnt2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcnt2.SignColor = System.Drawing.Color.Yellow; + this.lbcnt2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcnt2.Size = new System.Drawing.Size(77, 45); + this.lbcnt2.TabIndex = 5; + this.lbcnt2.Text = "99"; + this.lbcnt2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcnt2.TextShadow = true; + this.lbcnt2.TextVisible = true; + // + // lbcnt3 + // + this.lbcnt3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcnt3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcnt3.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcnt3.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcnt3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcnt3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcnt3.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcnt3.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcnt3.ForeColor = System.Drawing.Color.White; + this.lbcnt3.GradientEnable = true; + this.lbcnt3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcnt3.GradientRepeatBG = false; + this.lbcnt3.isButton = false; + this.lbcnt3.Location = new System.Drawing.Point(157, 22); + this.lbcnt3.Margin = new System.Windows.Forms.Padding(0); + this.lbcnt3.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcnt3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcnt3.msg = null; + this.lbcnt3.Name = "lbcnt3"; + this.lbcnt3.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcnt3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcnt3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcnt3.ProgressEnable = false; + this.lbcnt3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcnt3.ProgressForeColor = System.Drawing.Color.Black; + this.lbcnt3.ProgressMax = 100F; + this.lbcnt3.ProgressMin = 0F; + this.lbcnt3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcnt3.ProgressValue = 0F; + this.lbcnt3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcnt3.Sign = ""; + this.lbcnt3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcnt3.SignColor = System.Drawing.Color.Yellow; + this.lbcnt3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcnt3.Size = new System.Drawing.Size(77, 45); + this.lbcnt3.TabIndex = 5; + this.lbcnt3.Text = "99"; + this.lbcnt3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcnt3.TextShadow = true; + this.lbcnt3.TextVisible = true; + // + // lbcnt4 + // + this.lbcnt4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcnt4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcnt4.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcnt4.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcnt4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcnt4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcnt4.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcnt4.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcnt4.ForeColor = System.Drawing.Color.White; + this.lbcnt4.GradientEnable = true; + this.lbcnt4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcnt4.GradientRepeatBG = false; + this.lbcnt4.isButton = false; + this.lbcnt4.Location = new System.Drawing.Point(235, 22); + this.lbcnt4.Margin = new System.Windows.Forms.Padding(0); + this.lbcnt4.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcnt4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcnt4.msg = null; + this.lbcnt4.Name = "lbcnt4"; + this.lbcnt4.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcnt4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcnt4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcnt4.ProgressEnable = false; + this.lbcnt4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcnt4.ProgressForeColor = System.Drawing.Color.Black; + this.lbcnt4.ProgressMax = 100F; + this.lbcnt4.ProgressMin = 0F; + this.lbcnt4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcnt4.ProgressValue = 0F; + this.lbcnt4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcnt4.Sign = ""; + this.lbcnt4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcnt4.SignColor = System.Drawing.Color.Yellow; + this.lbcnt4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcnt4.Size = new System.Drawing.Size(77, 45); + this.lbcnt4.TabIndex = 5; + this.lbcnt4.Text = "99"; + this.lbcnt4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcnt4.TextShadow = true; + this.lbcnt4.TextVisible = true; + // + // lbcnt5 + // + this.lbcnt5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnt5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcnt5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcnt5.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcnt5.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcnt5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcnt5.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcnt5.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcnt5.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcnt5.ForeColor = System.Drawing.Color.White; + this.lbcnt5.GradientEnable = true; + this.lbcnt5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcnt5.GradientRepeatBG = false; + this.lbcnt5.isButton = false; + this.lbcnt5.Location = new System.Drawing.Point(313, 22); + this.lbcnt5.Margin = new System.Windows.Forms.Padding(0); + this.lbcnt5.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcnt5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcnt5.msg = null; + this.lbcnt5.Name = "lbcnt5"; + this.lbcnt5.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcnt5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcnt5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcnt5.ProgressEnable = false; + this.lbcnt5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcnt5.ProgressForeColor = System.Drawing.Color.Black; + this.lbcnt5.ProgressMax = 100F; + this.lbcnt5.ProgressMin = 0F; + this.lbcnt5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcnt5.ProgressValue = 0F; + this.lbcnt5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcnt5.Sign = ""; + this.lbcnt5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcnt5.SignColor = System.Drawing.Color.Yellow; + this.lbcnt5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcnt5.Size = new System.Drawing.Size(78, 45); + this.lbcnt5.TabIndex = 5; + this.lbcnt5.Text = "--"; + this.lbcnt5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcnt5.TextShadow = true; + this.lbcnt5.TextVisible = true; + // + // lbcnta + // + this.lbcnta.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnta.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnta.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcnta.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcnta.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcnta.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcnta.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcnta.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcnta.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcnta.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcnta.ForeColor = System.Drawing.Color.White; + this.lbcnta.GradientEnable = true; + this.lbcnta.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcnta.GradientRepeatBG = false; + this.lbcnta.isButton = false; + this.lbcnta.Location = new System.Drawing.Point(1, 89); + this.lbcnta.Margin = new System.Windows.Forms.Padding(0); + this.lbcnta.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcnta.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcnta.msg = null; + this.lbcnta.Name = "lbcnta"; + this.lbcnta.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcnta.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcnta.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcnta.ProgressEnable = false; + this.lbcnta.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcnta.ProgressForeColor = System.Drawing.Color.Black; + this.lbcnta.ProgressMax = 100F; + this.lbcnta.ProgressMin = 0F; + this.lbcnta.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcnta.ProgressValue = 0F; + this.lbcnta.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcnta.Sign = ""; + this.lbcnta.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcnta.SignColor = System.Drawing.Color.Yellow; + this.lbcnta.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcnta.Size = new System.Drawing.Size(77, 45); + this.lbcnta.TabIndex = 5; + this.lbcnta.Text = "99"; + this.lbcnta.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcnta.TextShadow = true; + this.lbcnta.TextVisible = true; + // + // lbcntm + // + this.lbcntm.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcntm.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcntm.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcntm.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcntm.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcntm.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcntm.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcntm.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcntm.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcntm.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcntm.ForeColor = System.Drawing.Color.White; + this.lbcntm.GradientEnable = true; + this.lbcntm.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcntm.GradientRepeatBG = false; + this.lbcntm.isButton = false; + this.lbcntm.Location = new System.Drawing.Point(79, 89); + this.lbcntm.Margin = new System.Windows.Forms.Padding(0); + this.lbcntm.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcntm.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcntm.msg = null; + this.lbcntm.Name = "lbcntm"; + this.lbcntm.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcntm.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcntm.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcntm.ProgressEnable = false; + this.lbcntm.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcntm.ProgressForeColor = System.Drawing.Color.Black; + this.lbcntm.ProgressMax = 100F; + this.lbcntm.ProgressMin = 0F; + this.lbcntm.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcntm.ProgressValue = 0F; + this.lbcntm.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcntm.Sign = ""; + this.lbcntm.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcntm.SignColor = System.Drawing.Color.Yellow; + this.lbcntm.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcntm.Size = new System.Drawing.Size(77, 45); + this.lbcntm.TabIndex = 5; + this.lbcntm.Text = "99"; + this.lbcntm.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcntm.TextShadow = true; + this.lbcntm.TextVisible = true; + // + // lbcnte + // + this.lbcnte.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnte.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcnte.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcnte.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcnte.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcnte.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcnte.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcnte.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcnte.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcnte.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcnte.ForeColor = System.Drawing.Color.White; + this.lbcnte.GradientEnable = true; + this.lbcnte.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcnte.GradientRepeatBG = false; + this.lbcnte.isButton = false; + this.lbcnte.Location = new System.Drawing.Point(157, 89); + this.lbcnte.Margin = new System.Windows.Forms.Padding(0); + this.lbcnte.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcnte.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcnte.msg = null; + this.lbcnte.Name = "lbcnte"; + this.lbcnte.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcnte.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcnte.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcnte.ProgressEnable = false; + this.lbcnte.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcnte.ProgressForeColor = System.Drawing.Color.Black; + this.lbcnte.ProgressMax = 100F; + this.lbcnte.ProgressMin = 0F; + this.lbcnte.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcnte.ProgressValue = 0F; + this.lbcnte.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcnte.Sign = ""; + this.lbcnte.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcnte.SignColor = System.Drawing.Color.Yellow; + this.lbcnte.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcnte.Size = new System.Drawing.Size(77, 45); + this.lbcnte.TabIndex = 5; + this.lbcnte.Text = "99"; + this.lbcnte.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcnte.TextShadow = true; + this.lbcnte.TextVisible = true; + // + // lbcntqa + // + this.lbcntqa.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcntqa.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcntqa.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcntqa.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcntqa.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcntqa.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcntqa.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcntqa.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcntqa.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcntqa.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcntqa.ForeColor = System.Drawing.Color.White; + this.lbcntqa.GradientEnable = true; + this.lbcntqa.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcntqa.GradientRepeatBG = false; + this.lbcntqa.isButton = false; + this.lbcntqa.Location = new System.Drawing.Point(235, 89); + this.lbcntqa.Margin = new System.Windows.Forms.Padding(0); + this.lbcntqa.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcntqa.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcntqa.msg = null; + this.lbcntqa.Name = "lbcntqa"; + this.lbcntqa.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcntqa.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcntqa.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcntqa.ProgressEnable = false; + this.lbcntqa.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcntqa.ProgressForeColor = System.Drawing.Color.Black; + this.lbcntqa.ProgressMax = 100F; + this.lbcntqa.ProgressMin = 0F; + this.lbcntqa.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcntqa.ProgressValue = 0F; + this.lbcntqa.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcntqa.Sign = ""; + this.lbcntqa.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcntqa.SignColor = System.Drawing.Color.Yellow; + this.lbcntqa.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcntqa.Size = new System.Drawing.Size(77, 45); + this.lbcntqa.TabIndex = 5; + this.lbcntqa.Text = "99"; + this.lbcntqa.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcntqa.TextShadow = true; + this.lbcntqa.TextVisible = true; + // + // lbcntqc + // + this.lbcntqc.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcntqc.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbcntqc.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbcntqc.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbcntqc.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbcntqc.BorderSize = new System.Windows.Forms.Padding(0); + this.lbcntqc.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbcntqc.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbcntqc.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbcntqc.Font = new System.Drawing.Font("Consolas", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbcntqc.ForeColor = System.Drawing.Color.White; + this.lbcntqc.GradientEnable = true; + this.lbcntqc.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbcntqc.GradientRepeatBG = false; + this.lbcntqc.isButton = false; + this.lbcntqc.Location = new System.Drawing.Point(313, 89); + this.lbcntqc.Margin = new System.Windows.Forms.Padding(0); + this.lbcntqc.MouseDownColor = System.Drawing.Color.Yellow; + this.lbcntqc.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbcntqc.msg = null; + this.lbcntqc.Name = "lbcntqc"; + this.lbcntqc.ProgressBorderColor = System.Drawing.Color.Black; + this.lbcntqc.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbcntqc.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbcntqc.ProgressEnable = false; + this.lbcntqc.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbcntqc.ProgressForeColor = System.Drawing.Color.Black; + this.lbcntqc.ProgressMax = 100F; + this.lbcntqc.ProgressMin = 0F; + this.lbcntqc.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbcntqc.ProgressValue = 0F; + this.lbcntqc.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbcntqc.Sign = ""; + this.lbcntqc.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbcntqc.SignColor = System.Drawing.Color.Yellow; + this.lbcntqc.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbcntqc.Size = new System.Drawing.Size(78, 45); + this.lbcntqc.TabIndex = 5; + this.lbcntqc.Text = "99"; + this.lbcntqc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbcntqc.TextShadow = true; + this.lbcntqc.TextVisible = true; + this.lbcntqc.Click += new System.EventHandler(this.lbcntpk_Click); + // + // fCounter + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(392, 135); + this.Controls.Add(this.tableLayoutPanel1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fCounter"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fCounter"; + this.Load += new System.EventHandler(this.fCounter_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private arCtl.arLabel lbcnt1; + private arCtl.arLabel lbcnt2; + private arCtl.arLabel lbcnt3; + private arCtl.arLabel lbcnt4; + private arCtl.arLabel lbcnt5; + private arCtl.arLabel lbcnta; + private arCtl.arLabel lbcntm; + private arCtl.arLabel lbcnte; + private arCtl.arLabel lbcntqa; + private System.Windows.Forms.Label label6; + private arCtl.arLabel lbcntqc; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fCounter.cs b/HMI/Project/Dialog/fCounter.cs similarity index 96% rename from Cs_HMI/Project/Dialog/fCounter.cs rename to HMI/Project/Dialog/fCounter.cs index 3c8e552..32eaeac 100644 --- a/Cs_HMI/Project/Dialog/fCounter.cs +++ b/HMI/Project/Dialog/fCounter.cs @@ -1,39 +1,39 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Project.Dialog -{ - public partial class fCounter : Form - { - public fCounter() - { - InitializeComponent(); - } - - private void fCounter_Load(object sender, EventArgs e) - { - lbcnt1.Text = PUB.counter.CountUp1.ToString(); - lbcnt2.Text = PUB.counter.CountUp2.ToString(); - lbcnt3.Text = PUB.counter.CountUp3.ToString(); - lbcnt4.Text = PUB.counter.CountUp4.ToString(); - //lbcnt5.Text = PUB.counter.CountUp5.ToString(); - lbcnta.Text = PUB.counter.CountChargeA.ToString(); - lbcntm.Text = PUB.counter.CountChargeM.ToString(); - lbcnte.Text = PUB.counter.CountChargeE.ToString(); - lbcntqa.Text = PUB.counter.CountQA.ToString(); - lbcntqc.Text = PUB.counter.CountQC.ToString(); - } - - private void lbcntpk_Click(object sender, EventArgs e) - { - - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fCounter : Form + { + public fCounter() + { + InitializeComponent(); + } + + private void fCounter_Load(object sender, EventArgs e) + { + lbcnt1.Text = PUB.counter.CountUp1.ToString(); + lbcnt2.Text = PUB.counter.CountUp2.ToString(); + lbcnt3.Text = PUB.counter.CountUp3.ToString(); + lbcnt4.Text = PUB.counter.CountUp4.ToString(); + //lbcnt5.Text = PUB.counter.CountUp5.ToString(); + lbcnta.Text = PUB.counter.CountChargeA.ToString(); + lbcntm.Text = PUB.counter.CountChargeM.ToString(); + lbcnte.Text = PUB.counter.CountChargeE.ToString(); + lbcntqa.Text = PUB.counter.CountQA.ToString(); + lbcntqc.Text = PUB.counter.CountQC.ToString(); + } + + private void lbcntpk_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Cs_HMI/Project/Dialog/fCounter.resx b/HMI/Project/Dialog/fCounter.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fCounter.resx rename to HMI/Project/Dialog/fCounter.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/Project/Dialog/fCounter.resx +++ b/HMI/Project/Dialog/fCounter.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fErrorException.Designer.cs b/HMI/Project/Dialog/fErrorException.Designer.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fErrorException.Designer.cs rename to HMI/Project/Dialog/fErrorException.Designer.cs diff --git a/Cs_HMI/Project/Dialog/fErrorException.cs b/HMI/Project/Dialog/fErrorException.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fErrorException.cs rename to HMI/Project/Dialog/fErrorException.cs diff --git a/Cs_HMI/Project/Dialog/fErrorException.resx b/HMI/Project/Dialog/fErrorException.resx similarity index 100% rename from Cs_HMI/Project/Dialog/fErrorException.resx rename to HMI/Project/Dialog/fErrorException.resx diff --git a/Cs_HMI/Project/Dialog/fJobSelect.Designer.cs b/HMI/Project/Dialog/fJobSelect.Designer.cs similarity index 98% rename from Cs_HMI/Project/Dialog/fJobSelect.Designer.cs rename to HMI/Project/Dialog/fJobSelect.Designer.cs index 942048f..6457f97 100644 --- a/Cs_HMI/Project/Dialog/fJobSelect.Designer.cs +++ b/HMI/Project/Dialog/fJobSelect.Designer.cs @@ -1,558 +1,558 @@ -namespace Project.Dialog -{ - partial class fJobSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.tmBlink = new System.Windows.Forms.Timer(this.components); - this.arPanel1 = new arCtl.arPanel(); - this.panButton = new System.Windows.Forms.Panel(); - this.btYes = new arCtl.arLabel(); - this.btNo = new arCtl.arLabel(); - this.panel7 = new System.Windows.Forms.Panel(); - this.lb5 = new arCtl.arLabel(); - this.panel3 = new System.Windows.Forms.Panel(); - this.lb4 = new arCtl.arLabel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.lb3 = new arCtl.arLabel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.lb2 = new arCtl.arLabel(); - this.panel4 = new System.Windows.Forms.Panel(); - this.lb1 = new arCtl.arLabel(); - this.panel8 = new System.Windows.Forms.Panel(); - this.lbTitle = new arCtl.arLabel(); - this.arPanel1.SuspendLayout(); - this.panButton.SuspendLayout(); - this.SuspendLayout(); - // - // tmBlink - // - this.tmBlink.Enabled = true; - this.tmBlink.Interval = 300; - this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); - // - // arPanel1 - // - this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arPanel1.BorderColor = System.Drawing.Color.DimGray; - this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); - this.arPanel1.Controls.Add(this.panButton); - this.arPanel1.Controls.Add(this.panel7); - this.arPanel1.Controls.Add(this.lb5); - this.arPanel1.Controls.Add(this.panel3); - this.arPanel1.Controls.Add(this.lb4); - this.arPanel1.Controls.Add(this.panel2); - this.arPanel1.Controls.Add(this.lb3); - this.arPanel1.Controls.Add(this.panel1); - this.arPanel1.Controls.Add(this.lb2); - this.arPanel1.Controls.Add(this.panel4); - this.arPanel1.Controls.Add(this.lb1); - this.arPanel1.Controls.Add(this.panel8); - this.arPanel1.Controls.Add(this.lbTitle); - this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); - this.arPanel1.ForeColor = System.Drawing.Color.Khaki; - this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.arPanel1.GradientRepeatBG = false; - this.arPanel1.Location = new System.Drawing.Point(5, 5); - this.arPanel1.Name = "arPanel1"; - this.arPanel1.Padding = new System.Windows.Forms.Padding(6); - this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arPanel1.ProgressMax = 100F; - this.arPanel1.ProgressMin = 0F; - this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arPanel1.ProgressValue = 0F; - this.arPanel1.ShadowColor = System.Drawing.Color.Black; - this.arPanel1.ShowBorder = true; - this.arPanel1.Size = new System.Drawing.Size(508, 405); - this.arPanel1.TabIndex = 0; - this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.arPanel1.TextShadow = false; - this.arPanel1.UseProgressBar = false; - // - // panButton - // - this.panButton.Controls.Add(this.btYes); - this.panButton.Controls.Add(this.btNo); - this.panButton.Dock = System.Windows.Forms.DockStyle.Fill; - this.panButton.Location = new System.Drawing.Point(6, 353); - this.panButton.Name = "panButton"; - this.panButton.Size = new System.Drawing.Size(496, 46); - this.panButton.TabIndex = 10; - // - // btYes - // - this.btYes.BackColor = System.Drawing.Color.SeaGreen; - this.btYes.BackColor2 = System.Drawing.Color.SeaGreen; - this.btYes.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btYes.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btYes.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btYes.BorderSize = new System.Windows.Forms.Padding(1); - this.btYes.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btYes.Cursor = System.Windows.Forms.Cursors.Hand; - this.btYes.Dock = System.Windows.Forms.DockStyle.Fill; - this.btYes.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btYes.ForeColor = System.Drawing.Color.Black; - this.btYes.GradientEnable = true; - this.btYes.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btYes.GradientRepeatBG = false; - this.btYes.isButton = true; - this.btYes.Location = new System.Drawing.Point(0, 0); - this.btYes.MouseDownColor = System.Drawing.Color.Yellow; - this.btYes.MouseOverColor = System.Drawing.Color.Yellow; - this.btYes.msg = null; - this.btYes.Name = "btYes"; - this.btYes.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btYes.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btYes.ProgressEnable = false; - this.btYes.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btYes.ProgressForeColor = System.Drawing.Color.Black; - this.btYes.ProgressMax = 100F; - this.btYes.ProgressMin = 0F; - this.btYes.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btYes.ProgressValue = 0F; - this.btYes.ShadowColor = System.Drawing.Color.Gray; - this.btYes.Sign = ""; - this.btYes.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btYes.SignColor = System.Drawing.Color.Yellow; - this.btYes.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btYes.Size = new System.Drawing.Size(267, 46); - this.btYes.TabIndex = 0; - this.btYes.Text = "예(F5)"; - this.btYes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btYes.TextShadow = true; - this.btYes.TextVisible = true; - this.btYes.Click += new System.EventHandler(this.btYes_Click); - // - // btNo - // - this.btNo.BackColor = System.Drawing.Color.Goldenrod; - this.btNo.BackColor2 = System.Drawing.Color.Goldenrod; - this.btNo.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btNo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btNo.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btNo.BorderSize = new System.Windows.Forms.Padding(1); - this.btNo.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btNo.Cursor = System.Windows.Forms.Cursors.Hand; - this.btNo.Dock = System.Windows.Forms.DockStyle.Right; - this.btNo.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btNo.ForeColor = System.Drawing.Color.Black; - this.btNo.GradientEnable = true; - this.btNo.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btNo.GradientRepeatBG = false; - this.btNo.isButton = true; - this.btNo.Location = new System.Drawing.Point(267, 0); - this.btNo.MouseDownColor = System.Drawing.Color.Yellow; - this.btNo.MouseOverColor = System.Drawing.Color.Yellow; - this.btNo.msg = null; - this.btNo.Name = "btNo"; - this.btNo.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btNo.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btNo.ProgressEnable = false; - this.btNo.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btNo.ProgressForeColor = System.Drawing.Color.Black; - this.btNo.ProgressMax = 100F; - this.btNo.ProgressMin = 0F; - this.btNo.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btNo.ProgressValue = 0F; - this.btNo.ShadowColor = System.Drawing.Color.Gray; - this.btNo.Sign = ""; - this.btNo.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btNo.SignColor = System.Drawing.Color.Yellow; - this.btNo.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btNo.Size = new System.Drawing.Size(229, 46); - this.btNo.TabIndex = 1; - this.btNo.Text = "아니오(ESC)"; - this.btNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btNo.TextShadow = true; - this.btNo.TextVisible = true; - this.btNo.Click += new System.EventHandler(this.btNo_Click); - // - // panel7 - // - this.panel7.Dock = System.Windows.Forms.DockStyle.Top; - this.panel7.Location = new System.Drawing.Point(6, 348); - this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(496, 5); - this.panel7.TabIndex = 0; - // - // lb5 - // - this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb5.BackColor2 = System.Drawing.Color.Gray; - this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb5.BorderSize = new System.Windows.Forms.Padding(1); - this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb5.Dock = System.Windows.Forms.DockStyle.Top; - this.lb5.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb5.ForeColor = System.Drawing.Color.White; - this.lb5.GradientEnable = true; - this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb5.GradientRepeatBG = false; - this.lb5.isButton = false; - this.lb5.Location = new System.Drawing.Point(6, 298); - this.lb5.MouseDownColor = System.Drawing.Color.Yellow; - this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb5.msg = null; - this.lb5.Name = "lb5"; - this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb5.ProgressEnable = false; - this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb5.ProgressForeColor = System.Drawing.Color.Black; - this.lb5.ProgressMax = 100F; - this.lb5.ProgressMin = 0F; - this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb5.ProgressValue = 0F; - this.lb5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb5.Sign = ""; - this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb5.SignColor = System.Drawing.Color.Yellow; - this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb5.Size = new System.Drawing.Size(496, 50); - this.lb5.TabIndex = 7; - this.lb5.Text = "*"; - this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb5.TextShadow = true; - this.lb5.TextVisible = true; - // - // panel3 - // - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(6, 293); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(496, 5); - this.panel3.TabIndex = 13; - // - // lb4 - // - this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb4.BackColor2 = System.Drawing.Color.Gray; - this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb4.BorderSize = new System.Windows.Forms.Padding(1); - this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb4.Dock = System.Windows.Forms.DockStyle.Top; - this.lb4.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb4.ForeColor = System.Drawing.Color.White; - this.lb4.GradientEnable = true; - this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb4.GradientRepeatBG = false; - this.lb4.isButton = false; - this.lb4.Location = new System.Drawing.Point(6, 243); - this.lb4.MouseDownColor = System.Drawing.Color.Yellow; - this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb4.msg = null; - this.lb4.Name = "lb4"; - this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb4.ProgressEnable = false; - this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb4.ProgressForeColor = System.Drawing.Color.Black; - this.lb4.ProgressMax = 100F; - this.lb4.ProgressMin = 0F; - this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb4.ProgressValue = 0F; - this.lb4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb4.Sign = ""; - this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb4.SignColor = System.Drawing.Color.Yellow; - this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb4.Size = new System.Drawing.Size(496, 50); - this.lb4.TabIndex = 6; - this.lb4.Text = "*"; - this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb4.TextShadow = true; - this.lb4.TextVisible = true; - // - // panel2 - // - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(6, 238); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(496, 5); - this.panel2.TabIndex = 12; - // - // lb3 - // - this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb3.BackColor2 = System.Drawing.Color.Gray; - this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb3.BorderSize = new System.Windows.Forms.Padding(1); - this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb3.Dock = System.Windows.Forms.DockStyle.Top; - this.lb3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb3.ForeColor = System.Drawing.Color.White; - this.lb3.GradientEnable = true; - this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb3.GradientRepeatBG = false; - this.lb3.isButton = false; - this.lb3.Location = new System.Drawing.Point(6, 188); - this.lb3.MouseDownColor = System.Drawing.Color.Yellow; - this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb3.msg = null; - this.lb3.Name = "lb3"; - this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb3.ProgressEnable = false; - this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb3.ProgressForeColor = System.Drawing.Color.Black; - this.lb3.ProgressMax = 100F; - this.lb3.ProgressMin = 0F; - this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb3.ProgressValue = 0F; - this.lb3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb3.Sign = ""; - this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb3.SignColor = System.Drawing.Color.Yellow; - this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb3.Size = new System.Drawing.Size(496, 50); - this.lb3.TabIndex = 5; - this.lb3.Text = "* 현재 위치 : "; - this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb3.TextShadow = true; - this.lb3.TextVisible = true; - // - // panel1 - // - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(6, 183); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(496, 5); - this.panel1.TabIndex = 11; - // - // lb2 - // - this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb2.BackColor2 = System.Drawing.Color.Gray; - this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb2.BorderSize = new System.Windows.Forms.Padding(1); - this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb2.Dock = System.Windows.Forms.DockStyle.Top; - this.lb2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb2.ForeColor = System.Drawing.Color.White; - this.lb2.GradientEnable = true; - this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb2.GradientRepeatBG = false; - this.lb2.isButton = false; - this.lb2.Location = new System.Drawing.Point(6, 133); - this.lb2.MouseDownColor = System.Drawing.Color.Yellow; - this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb2.msg = null; - this.lb2.Name = "lb2"; - this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb2.ProgressEnable = false; - this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb2.ProgressForeColor = System.Drawing.Color.Black; - this.lb2.ProgressMax = 100F; - this.lb2.ProgressMin = 0F; - this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb2.ProgressValue = 0F; - this.lb2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb2.Sign = ""; - this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb2.SignColor = System.Drawing.Color.Yellow; - this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb2.Size = new System.Drawing.Size(496, 50); - this.lb2.TabIndex = 4; - this.lb2.Text = "* 호출 위치 : F1"; - this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb2.TextShadow = true; - this.lb2.TextVisible = true; - // - // panel4 - // - this.panel4.Dock = System.Windows.Forms.DockStyle.Top; - this.panel4.Location = new System.Drawing.Point(6, 128); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(496, 5); - this.panel4.TabIndex = 14; - // - // lb1 - // - this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb1.BackColor2 = System.Drawing.Color.Gray; - this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb1.BorderSize = new System.Windows.Forms.Padding(1); - this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb1.Dock = System.Windows.Forms.DockStyle.Top; - this.lb1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb1.ForeColor = System.Drawing.Color.White; - this.lb1.GradientEnable = true; - this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb1.GradientRepeatBG = false; - this.lb1.isButton = false; - this.lb1.Location = new System.Drawing.Point(6, 78); - this.lb1.MouseDownColor = System.Drawing.Color.Yellow; - this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb1.msg = null; - this.lb1.Name = "lb1"; - this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb1.ProgressEnable = false; - this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb1.ProgressForeColor = System.Drawing.Color.Black; - this.lb1.ProgressMax = 100F; - this.lb1.ProgressMin = 0F; - this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb1.ProgressValue = 0F; - this.lb1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb1.Sign = ""; - this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb1.SignColor = System.Drawing.Color.Yellow; - this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb1.Size = new System.Drawing.Size(496, 50); - this.lb1.TabIndex = 2; - this.lb1.Text = "* 작업 : 상차"; - this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb1.TextShadow = true; - this.lb1.TextVisible = true; - // - // panel8 - // - this.panel8.Dock = System.Windows.Forms.DockStyle.Top; - this.panel8.Location = new System.Drawing.Point(6, 73); - this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(496, 5); - this.panel8.TabIndex = 18; - // - // lbTitle - // - this.lbTitle.BackColor = System.Drawing.Color.Brown; - this.lbTitle.BackColor2 = System.Drawing.Color.Tomato; - this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbTitle.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); - this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbTitle.Cursor = System.Windows.Forms.Cursors.Hand; - this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; - this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 22F, System.Drawing.FontStyle.Bold); - this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; - this.lbTitle.GradientEnable = true; - this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Horizontal; - this.lbTitle.GradientRepeatBG = false; - this.lbTitle.isButton = true; - this.lbTitle.Location = new System.Drawing.Point(6, 6); - this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; - this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbTitle.msg = null; - this.lbTitle.Name = "lbTitle"; - this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbTitle.ProgressEnable = false; - this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; - this.lbTitle.ProgressMax = 100F; - this.lbTitle.ProgressMin = 0F; - this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbTitle.ProgressValue = 0F; - this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.lbTitle.Sign = ""; - this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbTitle.SignColor = System.Drawing.Color.Yellow; - this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbTitle.Size = new System.Drawing.Size(496, 67); - this.lbTitle.TabIndex = 3; - this.lbTitle.Text = "작업 설정"; - this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbTitle.TextShadow = true; - this.lbTitle.TextVisible = true; - this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); - // - // fJobSelect - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); - this.ClientSize = new System.Drawing.Size(518, 415); - this.Controls.Add(this.arPanel1); - this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.KeyPreview = true; - this.MaximizeBox = false; - this.Name = "fJobSelect"; - this.Padding = new System.Windows.Forms.Padding(5); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Message Window"; - this.TopMost = true; - this.Load += new System.EventHandler(this.fMsg_Load); - this.arPanel1.ResumeLayout(false); - this.panButton.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - public arCtl.arLabel lb1; - private arCtl.arPanel arPanel1; - public arCtl.arLabel lbTitle; - public arCtl.arLabel lb5; - public arCtl.arLabel lb4; - public arCtl.arLabel lb3; - public arCtl.arLabel lb2; - private System.Windows.Forms.Timer tmBlink; - public arCtl.arLabel btYes; - public arCtl.arLabel btNo; - private System.Windows.Forms.Panel panButton; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel7; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Panel panel8; - } +namespace Project.Dialog +{ + partial class fJobSelect + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tmBlink = new System.Windows.Forms.Timer(this.components); + this.arPanel1 = new arCtl.arPanel(); + this.panButton = new System.Windows.Forms.Panel(); + this.btYes = new arCtl.arLabel(); + this.btNo = new arCtl.arLabel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.lb5 = new arCtl.arLabel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.lb4 = new arCtl.arLabel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.lb3 = new arCtl.arLabel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.lb2 = new arCtl.arLabel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.lb1 = new arCtl.arLabel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + this.arPanel1.SuspendLayout(); + this.panButton.SuspendLayout(); + this.SuspendLayout(); + // + // tmBlink + // + this.tmBlink.Enabled = true; + this.tmBlink.Interval = 300; + this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); + // + // arPanel1 + // + this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arPanel1.BorderColor = System.Drawing.Color.DimGray; + this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); + this.arPanel1.Controls.Add(this.panButton); + this.arPanel1.Controls.Add(this.panel7); + this.arPanel1.Controls.Add(this.lb5); + this.arPanel1.Controls.Add(this.panel3); + this.arPanel1.Controls.Add(this.lb4); + this.arPanel1.Controls.Add(this.panel2); + this.arPanel1.Controls.Add(this.lb3); + this.arPanel1.Controls.Add(this.panel1); + this.arPanel1.Controls.Add(this.lb2); + this.arPanel1.Controls.Add(this.panel4); + this.arPanel1.Controls.Add(this.lb1); + this.arPanel1.Controls.Add(this.panel8); + this.arPanel1.Controls.Add(this.lbTitle); + this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel1.ForeColor = System.Drawing.Color.Khaki; + this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel1.GradientRepeatBG = false; + this.arPanel1.Location = new System.Drawing.Point(5, 5); + this.arPanel1.Name = "arPanel1"; + this.arPanel1.Padding = new System.Windows.Forms.Padding(6); + this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel1.ProgressMax = 100F; + this.arPanel1.ProgressMin = 0F; + this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel1.ProgressValue = 0F; + this.arPanel1.ShadowColor = System.Drawing.Color.Black; + this.arPanel1.ShowBorder = true; + this.arPanel1.Size = new System.Drawing.Size(508, 405); + this.arPanel1.TabIndex = 0; + this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel1.TextShadow = false; + this.arPanel1.UseProgressBar = false; + // + // panButton + // + this.panButton.Controls.Add(this.btYes); + this.panButton.Controls.Add(this.btNo); + this.panButton.Dock = System.Windows.Forms.DockStyle.Fill; + this.panButton.Location = new System.Drawing.Point(6, 353); + this.panButton.Name = "panButton"; + this.panButton.Size = new System.Drawing.Size(496, 46); + this.panButton.TabIndex = 10; + // + // btYes + // + this.btYes.BackColor = System.Drawing.Color.SeaGreen; + this.btYes.BackColor2 = System.Drawing.Color.SeaGreen; + this.btYes.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btYes.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btYes.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btYes.BorderSize = new System.Windows.Forms.Padding(1); + this.btYes.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btYes.Cursor = System.Windows.Forms.Cursors.Hand; + this.btYes.Dock = System.Windows.Forms.DockStyle.Fill; + this.btYes.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btYes.ForeColor = System.Drawing.Color.Black; + this.btYes.GradientEnable = true; + this.btYes.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btYes.GradientRepeatBG = false; + this.btYes.isButton = true; + this.btYes.Location = new System.Drawing.Point(0, 0); + this.btYes.MouseDownColor = System.Drawing.Color.Yellow; + this.btYes.MouseOverColor = System.Drawing.Color.Yellow; + this.btYes.msg = null; + this.btYes.Name = "btYes"; + this.btYes.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btYes.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btYes.ProgressEnable = false; + this.btYes.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btYes.ProgressForeColor = System.Drawing.Color.Black; + this.btYes.ProgressMax = 100F; + this.btYes.ProgressMin = 0F; + this.btYes.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btYes.ProgressValue = 0F; + this.btYes.ShadowColor = System.Drawing.Color.Gray; + this.btYes.Sign = ""; + this.btYes.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btYes.SignColor = System.Drawing.Color.Yellow; + this.btYes.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btYes.Size = new System.Drawing.Size(267, 46); + this.btYes.TabIndex = 0; + this.btYes.Text = "예(F5)"; + this.btYes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btYes.TextShadow = true; + this.btYes.TextVisible = true; + this.btYes.Click += new System.EventHandler(this.btYes_Click); + // + // btNo + // + this.btNo.BackColor = System.Drawing.Color.Goldenrod; + this.btNo.BackColor2 = System.Drawing.Color.Goldenrod; + this.btNo.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btNo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btNo.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btNo.BorderSize = new System.Windows.Forms.Padding(1); + this.btNo.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btNo.Cursor = System.Windows.Forms.Cursors.Hand; + this.btNo.Dock = System.Windows.Forms.DockStyle.Right; + this.btNo.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btNo.ForeColor = System.Drawing.Color.Black; + this.btNo.GradientEnable = true; + this.btNo.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btNo.GradientRepeatBG = false; + this.btNo.isButton = true; + this.btNo.Location = new System.Drawing.Point(267, 0); + this.btNo.MouseDownColor = System.Drawing.Color.Yellow; + this.btNo.MouseOverColor = System.Drawing.Color.Yellow; + this.btNo.msg = null; + this.btNo.Name = "btNo"; + this.btNo.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btNo.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btNo.ProgressEnable = false; + this.btNo.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btNo.ProgressForeColor = System.Drawing.Color.Black; + this.btNo.ProgressMax = 100F; + this.btNo.ProgressMin = 0F; + this.btNo.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btNo.ProgressValue = 0F; + this.btNo.ShadowColor = System.Drawing.Color.Gray; + this.btNo.Sign = ""; + this.btNo.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btNo.SignColor = System.Drawing.Color.Yellow; + this.btNo.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btNo.Size = new System.Drawing.Size(229, 46); + this.btNo.TabIndex = 1; + this.btNo.Text = "아니오(ESC)"; + this.btNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btNo.TextShadow = true; + this.btNo.TextVisible = true; + this.btNo.Click += new System.EventHandler(this.btNo_Click); + // + // panel7 + // + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(6, 348); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(496, 5); + this.panel7.TabIndex = 0; + // + // lb5 + // + this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb5.BackColor2 = System.Drawing.Color.Gray; + this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb5.BorderSize = new System.Windows.Forms.Padding(1); + this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb5.Dock = System.Windows.Forms.DockStyle.Top; + this.lb5.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb5.ForeColor = System.Drawing.Color.White; + this.lb5.GradientEnable = true; + this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb5.GradientRepeatBG = false; + this.lb5.isButton = false; + this.lb5.Location = new System.Drawing.Point(6, 298); + this.lb5.MouseDownColor = System.Drawing.Color.Yellow; + this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb5.msg = null; + this.lb5.Name = "lb5"; + this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb5.ProgressEnable = false; + this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb5.ProgressForeColor = System.Drawing.Color.Black; + this.lb5.ProgressMax = 100F; + this.lb5.ProgressMin = 0F; + this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb5.ProgressValue = 0F; + this.lb5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb5.Sign = ""; + this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb5.SignColor = System.Drawing.Color.Yellow; + this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb5.Size = new System.Drawing.Size(496, 50); + this.lb5.TabIndex = 7; + this.lb5.Text = "*"; + this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb5.TextShadow = true; + this.lb5.TextVisible = true; + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(6, 293); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(496, 5); + this.panel3.TabIndex = 13; + // + // lb4 + // + this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb4.BackColor2 = System.Drawing.Color.Gray; + this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb4.BorderSize = new System.Windows.Forms.Padding(1); + this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb4.Dock = System.Windows.Forms.DockStyle.Top; + this.lb4.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb4.ForeColor = System.Drawing.Color.White; + this.lb4.GradientEnable = true; + this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb4.GradientRepeatBG = false; + this.lb4.isButton = false; + this.lb4.Location = new System.Drawing.Point(6, 243); + this.lb4.MouseDownColor = System.Drawing.Color.Yellow; + this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb4.msg = null; + this.lb4.Name = "lb4"; + this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb4.ProgressEnable = false; + this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb4.ProgressForeColor = System.Drawing.Color.Black; + this.lb4.ProgressMax = 100F; + this.lb4.ProgressMin = 0F; + this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb4.ProgressValue = 0F; + this.lb4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb4.Sign = ""; + this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb4.SignColor = System.Drawing.Color.Yellow; + this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb4.Size = new System.Drawing.Size(496, 50); + this.lb4.TabIndex = 6; + this.lb4.Text = "*"; + this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb4.TextShadow = true; + this.lb4.TextVisible = true; + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(6, 238); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(496, 5); + this.panel2.TabIndex = 12; + // + // lb3 + // + this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb3.BackColor2 = System.Drawing.Color.Gray; + this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb3.BorderSize = new System.Windows.Forms.Padding(1); + this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb3.Dock = System.Windows.Forms.DockStyle.Top; + this.lb3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb3.ForeColor = System.Drawing.Color.White; + this.lb3.GradientEnable = true; + this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb3.GradientRepeatBG = false; + this.lb3.isButton = false; + this.lb3.Location = new System.Drawing.Point(6, 188); + this.lb3.MouseDownColor = System.Drawing.Color.Yellow; + this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb3.msg = null; + this.lb3.Name = "lb3"; + this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb3.ProgressEnable = false; + this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb3.ProgressForeColor = System.Drawing.Color.Black; + this.lb3.ProgressMax = 100F; + this.lb3.ProgressMin = 0F; + this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb3.ProgressValue = 0F; + this.lb3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb3.Sign = ""; + this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb3.SignColor = System.Drawing.Color.Yellow; + this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb3.Size = new System.Drawing.Size(496, 50); + this.lb3.TabIndex = 5; + this.lb3.Text = "* 현재 위치 : "; + this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb3.TextShadow = true; + this.lb3.TextVisible = true; + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(6, 183); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(496, 5); + this.panel1.TabIndex = 11; + // + // lb2 + // + this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb2.BackColor2 = System.Drawing.Color.Gray; + this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb2.BorderSize = new System.Windows.Forms.Padding(1); + this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb2.Dock = System.Windows.Forms.DockStyle.Top; + this.lb2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb2.ForeColor = System.Drawing.Color.White; + this.lb2.GradientEnable = true; + this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb2.GradientRepeatBG = false; + this.lb2.isButton = false; + this.lb2.Location = new System.Drawing.Point(6, 133); + this.lb2.MouseDownColor = System.Drawing.Color.Yellow; + this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb2.msg = null; + this.lb2.Name = "lb2"; + this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb2.ProgressEnable = false; + this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb2.ProgressForeColor = System.Drawing.Color.Black; + this.lb2.ProgressMax = 100F; + this.lb2.ProgressMin = 0F; + this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb2.ProgressValue = 0F; + this.lb2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb2.Sign = ""; + this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb2.SignColor = System.Drawing.Color.Yellow; + this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb2.Size = new System.Drawing.Size(496, 50); + this.lb2.TabIndex = 4; + this.lb2.Text = "* 호출 위치 : F1"; + this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb2.TextShadow = true; + this.lb2.TextVisible = true; + // + // panel4 + // + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(6, 128); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(496, 5); + this.panel4.TabIndex = 14; + // + // lb1 + // + this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb1.BackColor2 = System.Drawing.Color.Gray; + this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb1.BorderSize = new System.Windows.Forms.Padding(1); + this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb1.Dock = System.Windows.Forms.DockStyle.Top; + this.lb1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb1.ForeColor = System.Drawing.Color.White; + this.lb1.GradientEnable = true; + this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb1.GradientRepeatBG = false; + this.lb1.isButton = false; + this.lb1.Location = new System.Drawing.Point(6, 78); + this.lb1.MouseDownColor = System.Drawing.Color.Yellow; + this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb1.msg = null; + this.lb1.Name = "lb1"; + this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb1.ProgressEnable = false; + this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb1.ProgressForeColor = System.Drawing.Color.Black; + this.lb1.ProgressMax = 100F; + this.lb1.ProgressMin = 0F; + this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb1.ProgressValue = 0F; + this.lb1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb1.Sign = ""; + this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb1.SignColor = System.Drawing.Color.Yellow; + this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb1.Size = new System.Drawing.Size(496, 50); + this.lb1.TabIndex = 2; + this.lb1.Text = "* 작업 : 상차"; + this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb1.TextShadow = true; + this.lb1.TextVisible = true; + // + // panel8 + // + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(6, 73); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(496, 5); + this.panel8.TabIndex = 18; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Brown; + this.lbTitle.BackColor2 = System.Drawing.Color.Tomato; + this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 22F, System.Drawing.FontStyle.Bold); + this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Horizontal; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = true; + this.lbTitle.Location = new System.Drawing.Point(6, 6); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(496, 67); + this.lbTitle.TabIndex = 3; + this.lbTitle.Text = "작업 설정"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + // + // fJobSelect + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.ClientSize = new System.Drawing.Size(518, 415); + this.Controls.Add(this.arPanel1); + this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "fJobSelect"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Message Window"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fMsg_Load); + this.arPanel1.ResumeLayout(false); + this.panButton.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + public arCtl.arLabel lb1; + private arCtl.arPanel arPanel1; + public arCtl.arLabel lbTitle; + public arCtl.arLabel lb5; + public arCtl.arLabel lb4; + public arCtl.arLabel lb3; + public arCtl.arLabel lb2; + private System.Windows.Forms.Timer tmBlink; + public arCtl.arLabel btYes; + public arCtl.arLabel btNo; + private System.Windows.Forms.Panel panButton; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panel8; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fJobSelect.cs b/HMI/Project/Dialog/fJobSelect.cs similarity index 96% rename from Cs_HMI/Project/Dialog/fJobSelect.cs rename to HMI/Project/Dialog/fJobSelect.cs index f5d22d3..a69d441 100644 --- a/Cs_HMI/Project/Dialog/fJobSelect.cs +++ b/HMI/Project/Dialog/fJobSelect.cs @@ -1,170 +1,170 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Project.Dialog -{ - public partial class fJobSelect : Form - { - private Boolean fMove = false; - private Point MDownPos; - private string _msg = string.Empty; - - public fJobSelect() - { - InitializeComponent(); - } - - public fJobSelect(string msg) - { - InitializeComponent(); - this.FormClosing += fMsgWindow_FormClosing; - this.KeyDown += FJobSelect_KeyDown; - this._msg = msg; - setMessage(msg); - this.lbTitle.MouseMove += label1_MouseMove; - lbTitle.MouseUp += label1_MouseUp; - lbTitle.MouseDown += label1_MouseDown; - lbTitle.MouseDoubleClick += label1_MouseDoubleClick; - } - - void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) - { - - } - - private void fMsg_Load(object sender, EventArgs e) - { - - } - private void FJobSelect_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Escape) - { - e.Handled = true; - e.SuppressKeyPress = false; - DialogResult = DialogResult.Cancel; - this.Close(); - } - else if (e.KeyCode == Keys.F5) - btYes.PerformClick(); - } - - public void setMessage(string msg) - { - //msg를 분리해서 표시를 한다. - var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5 }; - var lineBuf = msg.Replace("\r", "").Split('\n'); - int maxLine = Math.Min(lbs.Length, lineBuf.Length); - - for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 - { - if (i >= lineBuf.Length) - { - lbs[i].Text = string.Empty; - } - else - { - if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); - else lbs[i].Text = lineBuf[i]; - } - - } - } - - - - private void label1_MouseMove(object sender, MouseEventArgs e) - { - if (fMove) - { - Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); - this.Left += offset.X; - this.Top += offset.Y; - offset = new Point(0, 0); - } - } - - private void label1_MouseUp(object sender, MouseEventArgs e) - { - fMove = false; - } - - private void label1_MouseDown(object sender, MouseEventArgs e) - { - MDownPos = new Point(e.X, e.Y); - fMove = true; - } - - private void label1_MouseDoubleClick(object sender, MouseEventArgs e) - { - - - } - public enum EWinColor - { - Attention = 0, - Error, - Information - } - - public void SetWindowColor(EWinColor wincolor) - { - switch (wincolor) - { - case EWinColor.Attention: - lbTitle.BackColor = Color.Gold; - lbTitle.BackColor2 = Color.Orange; - lbTitle.ShadowColor = Color.FromArgb(150, 150, 150); - lbTitle.ForeColor = Color.FromArgb(50, 50, 50); - break; - case EWinColor.Error: - lbTitle.BackColor = Color.Brown; - lbTitle.BackColor2 = Color.Tomato; - lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); - lbTitle.ForeColor = Color.WhiteSmoke; - break; - default: - lbTitle.BackColor = Color.DarkTurquoise; - lbTitle.BackColor2 = Color.LightSkyBlue; - lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); - lbTitle.ForeColor = Color.WhiteSmoke; - break; - } - } - - private void lbTitle_Click(object sender, EventArgs e) - { - this.DialogResult = DialogResult.Cancel; - this.Close(); - } - - private void tmBlink_Tick(object sender, EventArgs e) - { - var bg1 = lbTitle.BackColor; - var bg2 = lbTitle.BackColor2; - if (bg1 != null) lbTitle.BackColor2 = (Color)bg1; - if (bg2 != null) lbTitle.BackColor = (Color)bg2; - - } - - private void btYes_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.Yes; - this.Close(); - } - - private void btNo_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.Cancel; - this.Close(); - - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fJobSelect : Form + { + private Boolean fMove = false; + private Point MDownPos; + private string _msg = string.Empty; + + public fJobSelect() + { + InitializeComponent(); + } + + public fJobSelect(string msg) + { + InitializeComponent(); + this.FormClosing += fMsgWindow_FormClosing; + this.KeyDown += FJobSelect_KeyDown; + this._msg = msg; + setMessage(msg); + this.lbTitle.MouseMove += label1_MouseMove; + lbTitle.MouseUp += label1_MouseUp; + lbTitle.MouseDown += label1_MouseDown; + lbTitle.MouseDoubleClick += label1_MouseDoubleClick; + } + + void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) + { + + } + + private void fMsg_Load(object sender, EventArgs e) + { + + } + private void FJobSelect_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) + { + e.Handled = true; + e.SuppressKeyPress = false; + DialogResult = DialogResult.Cancel; + this.Close(); + } + else if (e.KeyCode == Keys.F5) + btYes.PerformClick(); + } + + public void setMessage(string msg) + { + //msg를 분리해서 표시를 한다. + var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5 }; + var lineBuf = msg.Replace("\r", "").Split('\n'); + int maxLine = Math.Min(lbs.Length, lineBuf.Length); + + for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 + { + if (i >= lineBuf.Length) + { + lbs[i].Text = string.Empty; + } + else + { + if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); + else lbs[i].Text = lineBuf[i]; + } + + } + } + + + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + private void label1_MouseDoubleClick(object sender, MouseEventArgs e) + { + + + } + public enum EWinColor + { + Attention = 0, + Error, + Information + } + + public void SetWindowColor(EWinColor wincolor) + { + switch (wincolor) + { + case EWinColor.Attention: + lbTitle.BackColor = Color.Gold; + lbTitle.BackColor2 = Color.Orange; + lbTitle.ShadowColor = Color.FromArgb(150, 150, 150); + lbTitle.ForeColor = Color.FromArgb(50, 50, 50); + break; + case EWinColor.Error: + lbTitle.BackColor = Color.Brown; + lbTitle.BackColor2 = Color.Tomato; + lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + lbTitle.ForeColor = Color.WhiteSmoke; + break; + default: + lbTitle.BackColor = Color.DarkTurquoise; + lbTitle.BackColor2 = Color.LightSkyBlue; + lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + lbTitle.ForeColor = Color.WhiteSmoke; + break; + } + } + + private void lbTitle_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void tmBlink_Tick(object sender, EventArgs e) + { + var bg1 = lbTitle.BackColor; + var bg2 = lbTitle.BackColor2; + if (bg1 != null) lbTitle.BackColor2 = (Color)bg1; + if (bg2 != null) lbTitle.BackColor = (Color)bg2; + + } + + private void btYes_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Yes; + this.Close(); + } + + private void btNo_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + this.Close(); + + } + } +} diff --git a/Cs_HMI/Project/Dialog/fJobSelect.resx b/HMI/Project/Dialog/fJobSelect.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fJobSelect.resx rename to HMI/Project/Dialog/fJobSelect.resx index fcee611..eedca23 100644 --- a/Cs_HMI/Project/Dialog/fJobSelect.resx +++ b/HMI/Project/Dialog/fJobSelect.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fLog.Designer.cs b/HMI/Project/Dialog/fLog.Designer.cs similarity index 98% rename from Cs_HMI/Project/Dialog/fLog.Designer.cs rename to HMI/Project/Dialog/fLog.Designer.cs index 3864b61..eac3fb9 100644 --- a/Cs_HMI/Project/Dialog/fLog.Designer.cs +++ b/HMI/Project/Dialog/fLog.Designer.cs @@ -1,267 +1,267 @@ -namespace Project.Dialog -{ - partial class fLog - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.rtsys = new arCtl.LogTextBox(); - this.rtTx = new arCtl.LogTextBox(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.rtXbee = new arCtl.LogTextBox(); - this.titleXBEE = new System.Windows.Forms.Label(); - this.panel2 = new System.Windows.Forms.Panel(); - this.rtBMS = new arCtl.LogTextBox(); - this.titleBMS = new System.Windows.Forms.Label(); - this.panel4 = new System.Windows.Forms.Panel(); - this.rtAGV = new arCtl.LogTextBox(); - this.titleAGV = new System.Windows.Forms.Label(); - this.tableLayoutPanel1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.panel4.SuspendLayout(); - this.SuspendLayout(); - // - // rtsys - // - this.rtsys.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.rtsys.ColorList = new arCtl.sLogMessageColor[0]; - this.tableLayoutPanel1.SetColumnSpan(this.rtsys, 2); - this.rtsys.DateFormat = "mm:ss.fff"; - this.rtsys.DefaultColor = System.Drawing.Color.LightGray; - this.rtsys.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtsys.EnableDisplayTimer = false; - this.rtsys.EnableGubunColor = true; - this.rtsys.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtsys.ListFormat = "[{0}] {1}"; - this.rtsys.Location = new System.Drawing.Point(3, 3); - this.rtsys.MaxListCount = ((ushort)(1000)); - this.rtsys.MaxTextLength = ((uint)(400000u)); - this.rtsys.MessageInterval = 50; - this.rtsys.Name = "rtsys"; - this.rtsys.Size = new System.Drawing.Size(334, 340); - this.rtsys.TabIndex = 0; - this.rtsys.Text = ""; - // - // rtTx - // - this.rtTx.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.rtTx.ColorList = new arCtl.sLogMessageColor[0]; - this.tableLayoutPanel1.SetColumnSpan(this.rtTx, 2); - this.rtTx.DateFormat = "mm:ss.fff"; - this.rtTx.DefaultColor = System.Drawing.Color.LightGray; - this.rtTx.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtTx.EnableDisplayTimer = false; - this.rtTx.EnableGubunColor = true; - this.rtTx.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtTx.ListFormat = "[{0}] {1}"; - this.rtTx.Location = new System.Drawing.Point(343, 3); - this.rtTx.MaxListCount = ((ushort)(1000)); - this.rtTx.MaxTextLength = ((uint)(400000u)); - this.rtTx.MessageInterval = 50; - this.rtTx.Name = "rtTx"; - this.rtTx.Size = new System.Drawing.Size(335, 340); - this.rtTx.TabIndex = 1; - this.rtTx.Text = ""; - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 4; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.Controls.Add(this.rtsys, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.rtTx, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.panel2, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.panel4, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(681, 495); - this.tableLayoutPanel1.TabIndex = 2; - // - // panel1 - // - this.panel1.Controls.Add(this.rtXbee); - this.panel1.Controls.Add(this.titleXBEE); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(173, 349); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(164, 143); - this.panel1.TabIndex = 3; - // - // rtXbee - // - this.rtXbee.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.rtXbee.ColorList = new arCtl.sLogMessageColor[0]; - this.rtXbee.DateFormat = "mm:ss.fff"; - this.rtXbee.DefaultColor = System.Drawing.Color.LightGray; - this.rtXbee.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtXbee.EnableDisplayTimer = false; - this.rtXbee.EnableGubunColor = true; - this.rtXbee.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtXbee.ListFormat = "[{0}] {1}"; - this.rtXbee.Location = new System.Drawing.Point(0, 14); - this.rtXbee.MaxListCount = ((ushort)(1000)); - this.rtXbee.MaxTextLength = ((uint)(400000u)); - this.rtXbee.MessageInterval = 50; - this.rtXbee.Name = "rtXbee"; - this.rtXbee.Size = new System.Drawing.Size(164, 129); - this.rtXbee.TabIndex = 2; - this.rtXbee.Text = ""; - // - // titleXBEE - // - this.titleXBEE.Dock = System.Windows.Forms.DockStyle.Top; - this.titleXBEE.Location = new System.Drawing.Point(0, 0); - this.titleXBEE.Name = "titleXBEE"; - this.titleXBEE.Size = new System.Drawing.Size(164, 14); - this.titleXBEE.TabIndex = 0; - this.titleXBEE.Text = "MC ID"; - this.titleXBEE.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel2 - // - this.tableLayoutPanel1.SetColumnSpan(this.panel2, 2); - this.panel2.Controls.Add(this.rtBMS); - this.panel2.Controls.Add(this.titleBMS); - this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel2.Location = new System.Drawing.Point(343, 349); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(335, 143); - this.panel2.TabIndex = 4; - // - // rtBMS - // - this.rtBMS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.rtBMS.ColorList = new arCtl.sLogMessageColor[0]; - this.rtBMS.DateFormat = "mm:ss.fff"; - this.rtBMS.DefaultColor = System.Drawing.Color.LightGray; - this.rtBMS.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtBMS.EnableDisplayTimer = false; - this.rtBMS.EnableGubunColor = true; - this.rtBMS.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtBMS.ListFormat = "[{0}] {1}"; - this.rtBMS.Location = new System.Drawing.Point(0, 14); - this.rtBMS.MaxListCount = ((ushort)(1000)); - this.rtBMS.MaxTextLength = ((uint)(400000u)); - this.rtBMS.MessageInterval = 50; - this.rtBMS.Name = "rtBMS"; - this.rtBMS.Size = new System.Drawing.Size(335, 129); - this.rtBMS.TabIndex = 2; - this.rtBMS.Text = ""; - // - // titleBMS - // - this.titleBMS.Dock = System.Windows.Forms.DockStyle.Top; - this.titleBMS.Location = new System.Drawing.Point(0, 0); - this.titleBMS.Name = "titleBMS"; - this.titleBMS.Size = new System.Drawing.Size(335, 14); - this.titleBMS.TabIndex = 3; - this.titleBMS.Text = "BMS"; - this.titleBMS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel4 - // - this.panel4.Controls.Add(this.rtAGV); - this.panel4.Controls.Add(this.titleAGV); - this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel4.Location = new System.Drawing.Point(3, 349); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(164, 143); - this.panel4.TabIndex = 6; - // - // rtAGV - // - this.rtAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.rtAGV.ColorList = new arCtl.sLogMessageColor[0]; - this.rtAGV.DateFormat = "mm:ss.fff"; - this.rtAGV.DefaultColor = System.Drawing.Color.LightGray; - this.rtAGV.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtAGV.EnableDisplayTimer = false; - this.rtAGV.EnableGubunColor = true; - this.rtAGV.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtAGV.ListFormat = "[{0}] {1}"; - this.rtAGV.Location = new System.Drawing.Point(0, 14); - this.rtAGV.MaxListCount = ((ushort)(1000)); - this.rtAGV.MaxTextLength = ((uint)(400000u)); - this.rtAGV.MessageInterval = 50; - this.rtAGV.Name = "rtAGV"; - this.rtAGV.Size = new System.Drawing.Size(164, 129); - this.rtAGV.TabIndex = 2; - this.rtAGV.Text = ""; - // - // titleAGV - // - this.titleAGV.Dock = System.Windows.Forms.DockStyle.Top; - this.titleAGV.Location = new System.Drawing.Point(0, 0); - this.titleAGV.Name = "titleAGV"; - this.titleAGV.Size = new System.Drawing.Size(164, 14); - this.titleAGV.TabIndex = 3; - this.titleAGV.Text = "AGV"; - this.titleAGV.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // fLog - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(681, 495); - this.Controls.Add(this.tableLayoutPanel1); - this.Name = "fLog"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "fLog"; - this.TopMost = true; - this.Load += new System.EventHandler(this.fLog_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.panel4.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private arCtl.LogTextBox rtsys; - private arCtl.LogTextBox rtTx; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private arCtl.LogTextBox rtAGV; - private arCtl.LogTextBox rtBMS; - private arCtl.LogTextBox rtXbee; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Label titleXBEE; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Label titleBMS; - private System.Windows.Forms.Label titleAGV; - } +namespace Project.Dialog +{ + partial class fLog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.rtsys = new arCtl.LogTextBox(); + this.rtTx = new arCtl.LogTextBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.rtXbee = new arCtl.LogTextBox(); + this.titleXBEE = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.rtBMS = new arCtl.LogTextBox(); + this.titleBMS = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.rtAGV = new arCtl.LogTextBox(); + this.titleAGV = new System.Windows.Forms.Label(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel4.SuspendLayout(); + this.SuspendLayout(); + // + // rtsys + // + this.rtsys.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.rtsys.ColorList = new arCtl.sLogMessageColor[0]; + this.tableLayoutPanel1.SetColumnSpan(this.rtsys, 2); + this.rtsys.DateFormat = "mm:ss.fff"; + this.rtsys.DefaultColor = System.Drawing.Color.LightGray; + this.rtsys.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtsys.EnableDisplayTimer = false; + this.rtsys.EnableGubunColor = true; + this.rtsys.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rtsys.ListFormat = "[{0}] {1}"; + this.rtsys.Location = new System.Drawing.Point(3, 3); + this.rtsys.MaxListCount = ((ushort)(1000)); + this.rtsys.MaxTextLength = ((uint)(400000u)); + this.rtsys.MessageInterval = 50; + this.rtsys.Name = "rtsys"; + this.rtsys.Size = new System.Drawing.Size(334, 340); + this.rtsys.TabIndex = 0; + this.rtsys.Text = ""; + // + // rtTx + // + this.rtTx.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.rtTx.ColorList = new arCtl.sLogMessageColor[0]; + this.tableLayoutPanel1.SetColumnSpan(this.rtTx, 2); + this.rtTx.DateFormat = "mm:ss.fff"; + this.rtTx.DefaultColor = System.Drawing.Color.LightGray; + this.rtTx.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtTx.EnableDisplayTimer = false; + this.rtTx.EnableGubunColor = true; + this.rtTx.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rtTx.ListFormat = "[{0}] {1}"; + this.rtTx.Location = new System.Drawing.Point(343, 3); + this.rtTx.MaxListCount = ((ushort)(1000)); + this.rtTx.MaxTextLength = ((uint)(400000u)); + this.rtTx.MessageInterval = 50; + this.rtTx.Name = "rtTx"; + this.rtTx.Size = new System.Drawing.Size(335, 340); + this.rtTx.TabIndex = 1; + this.rtTx.Text = ""; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Controls.Add(this.rtsys, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.rtTx, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.panel2, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.panel4, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(681, 495); + this.tableLayoutPanel1.TabIndex = 2; + // + // panel1 + // + this.panel1.Controls.Add(this.rtXbee); + this.panel1.Controls.Add(this.titleXBEE); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(173, 349); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(164, 143); + this.panel1.TabIndex = 3; + // + // rtXbee + // + this.rtXbee.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.rtXbee.ColorList = new arCtl.sLogMessageColor[0]; + this.rtXbee.DateFormat = "mm:ss.fff"; + this.rtXbee.DefaultColor = System.Drawing.Color.LightGray; + this.rtXbee.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtXbee.EnableDisplayTimer = false; + this.rtXbee.EnableGubunColor = true; + this.rtXbee.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rtXbee.ListFormat = "[{0}] {1}"; + this.rtXbee.Location = new System.Drawing.Point(0, 14); + this.rtXbee.MaxListCount = ((ushort)(1000)); + this.rtXbee.MaxTextLength = ((uint)(400000u)); + this.rtXbee.MessageInterval = 50; + this.rtXbee.Name = "rtXbee"; + this.rtXbee.Size = new System.Drawing.Size(164, 129); + this.rtXbee.TabIndex = 2; + this.rtXbee.Text = ""; + // + // titleXBEE + // + this.titleXBEE.Dock = System.Windows.Forms.DockStyle.Top; + this.titleXBEE.Location = new System.Drawing.Point(0, 0); + this.titleXBEE.Name = "titleXBEE"; + this.titleXBEE.Size = new System.Drawing.Size(164, 14); + this.titleXBEE.TabIndex = 0; + this.titleXBEE.Text = "MC ID"; + this.titleXBEE.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.tableLayoutPanel1.SetColumnSpan(this.panel2, 2); + this.panel2.Controls.Add(this.rtBMS); + this.panel2.Controls.Add(this.titleBMS); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(343, 349); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(335, 143); + this.panel2.TabIndex = 4; + // + // rtBMS + // + this.rtBMS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.rtBMS.ColorList = new arCtl.sLogMessageColor[0]; + this.rtBMS.DateFormat = "mm:ss.fff"; + this.rtBMS.DefaultColor = System.Drawing.Color.LightGray; + this.rtBMS.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtBMS.EnableDisplayTimer = false; + this.rtBMS.EnableGubunColor = true; + this.rtBMS.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rtBMS.ListFormat = "[{0}] {1}"; + this.rtBMS.Location = new System.Drawing.Point(0, 14); + this.rtBMS.MaxListCount = ((ushort)(1000)); + this.rtBMS.MaxTextLength = ((uint)(400000u)); + this.rtBMS.MessageInterval = 50; + this.rtBMS.Name = "rtBMS"; + this.rtBMS.Size = new System.Drawing.Size(335, 129); + this.rtBMS.TabIndex = 2; + this.rtBMS.Text = ""; + // + // titleBMS + // + this.titleBMS.Dock = System.Windows.Forms.DockStyle.Top; + this.titleBMS.Location = new System.Drawing.Point(0, 0); + this.titleBMS.Name = "titleBMS"; + this.titleBMS.Size = new System.Drawing.Size(335, 14); + this.titleBMS.TabIndex = 3; + this.titleBMS.Text = "BMS"; + this.titleBMS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel4 + // + this.panel4.Controls.Add(this.rtAGV); + this.panel4.Controls.Add(this.titleAGV); + this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel4.Location = new System.Drawing.Point(3, 349); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(164, 143); + this.panel4.TabIndex = 6; + // + // rtAGV + // + this.rtAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.rtAGV.ColorList = new arCtl.sLogMessageColor[0]; + this.rtAGV.DateFormat = "mm:ss.fff"; + this.rtAGV.DefaultColor = System.Drawing.Color.LightGray; + this.rtAGV.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtAGV.EnableDisplayTimer = false; + this.rtAGV.EnableGubunColor = true; + this.rtAGV.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.rtAGV.ListFormat = "[{0}] {1}"; + this.rtAGV.Location = new System.Drawing.Point(0, 14); + this.rtAGV.MaxListCount = ((ushort)(1000)); + this.rtAGV.MaxTextLength = ((uint)(400000u)); + this.rtAGV.MessageInterval = 50; + this.rtAGV.Name = "rtAGV"; + this.rtAGV.Size = new System.Drawing.Size(164, 129); + this.rtAGV.TabIndex = 2; + this.rtAGV.Text = ""; + // + // titleAGV + // + this.titleAGV.Dock = System.Windows.Forms.DockStyle.Top; + this.titleAGV.Location = new System.Drawing.Point(0, 0); + this.titleAGV.Name = "titleAGV"; + this.titleAGV.Size = new System.Drawing.Size(164, 14); + this.titleAGV.TabIndex = 3; + this.titleAGV.Text = "AGV"; + this.titleAGV.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // fLog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(681, 495); + this.Controls.Add(this.tableLayoutPanel1); + this.Name = "fLog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fLog"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fLog_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private arCtl.LogTextBox rtsys; + private arCtl.LogTextBox rtTx; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private arCtl.LogTextBox rtAGV; + private arCtl.LogTextBox rtBMS; + private arCtl.LogTextBox rtXbee; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label titleXBEE; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Label titleBMS; + private System.Windows.Forms.Label titleAGV; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fLog.cs b/HMI/Project/Dialog/fLog.cs similarity index 97% rename from Cs_HMI/Project/Dialog/fLog.cs rename to HMI/Project/Dialog/fLog.cs index 6f37812..f836198 100644 --- a/Cs_HMI/Project/Dialog/fLog.cs +++ b/HMI/Project/Dialog/fLog.cs @@ -1,85 +1,85 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Project.Dialog -{ - public partial class fLog : Form - { - public fLog() - { - InitializeComponent(); - this.FormClosed += FLog_FormClosed; - } - - private void FLog_FormClosed(object sender, FormClosedEventArgs e) - { - PUB.log.RaiseMsg -= Log_RaiseMsg; - PUB.logagv.RaiseMsg -= Log_RaiseMsgagv; - PUB.logplc.RaiseMsg -= Log_RaiseMsgplc; - PUB.logbms.RaiseMsg -= Log_RaiseMsgbms; - PUB.logxbee.RaiseMsg -= Log_RaiseMsgcal; - } - - private void fLog_Load(object sender, EventArgs e) - { - this.titleXBEE.Text = $"XBEE({PUB.setting.Port_XBE},ID:{PUB.setting.XBE_ID})"; - this.titleAGV.Text = $"AGV({PUB.setting.Port_AGV}:{PUB.setting.Baud_AGV})"; - this.titleBMS.Text = $"BMS({PUB.setting.Port_BAT}:{PUB.setting.Baud_BAT})"; - var colorlist = new arCtl.sLogMessageColor[] - { - new arCtl.sLogMessageColor("NOR",Color.Black), - new arCtl.sLogMessageColor("NORM",Color.Black), - new arCtl.sLogMessageColor("NORMAL",Color.Black), - new arCtl.sLogMessageColor("ERR",Color.Red), - new arCtl.sLogMessageColor("FLAG",Color.Magenta), - new arCtl.sLogMessageColor("TX",Color.SkyBlue), - new arCtl.sLogMessageColor("SETUP",Color.Gold), - new arCtl.sLogMessageColor("MFLAG",Color.BlueViolet), - }; - this.rtsys.ColorList = colorlist; - this.rtTx.ColorList = colorlist; - this.rtAGV.ColorList = colorlist; - - PUB.log.RaiseMsg += Log_RaiseMsg; - PUB.logagv.RaiseMsg += Log_RaiseMsgagv; - PUB.logplc.RaiseMsg += Log_RaiseMsgplc; - PUB.logbms.RaiseMsg += Log_RaiseMsgbms; - PUB.logxbee.RaiseMsg += Log_RaiseMsgcal; - } - - private void Log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) - { - showlog(rtsys,LogTime, TypeStr, Message); - } - private void Log_RaiseMsgagv(DateTime LogTime, string TypeStr, string Message) - { - showlog(rtAGV, LogTime, TypeStr, Message); - } - private void Log_RaiseMsgplc(DateTime LogTime, string TypeStr, string Message) - { - //showlog(rtPLC, LogTime, TypeStr, Message); - } - private void Log_RaiseMsgbms(DateTime LogTime, string TypeStr, string Message) - { - showlog(rtBMS, LogTime, TypeStr, Message); - } - private void Log_RaiseMsgcal(DateTime LogTime, string TypeStr, string Message) - { - showlog(rtXbee, LogTime, TypeStr, Message); - } - void showlog(arCtl.LogTextBox rtRx, DateTime LogTime, string TypeStr, string Message) - { - if (rtRx.Visible) - { - rtRx.AddMsg(LogTime, TypeStr, Message); - } - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fLog : Form + { + public fLog() + { + InitializeComponent(); + this.FormClosed += FLog_FormClosed; + } + + private void FLog_FormClosed(object sender, FormClosedEventArgs e) + { + PUB.log.RaiseMsg -= Log_RaiseMsg; + PUB.logagv.RaiseMsg -= Log_RaiseMsgagv; + PUB.logplc.RaiseMsg -= Log_RaiseMsgplc; + PUB.logbms.RaiseMsg -= Log_RaiseMsgbms; + PUB.logxbee.RaiseMsg -= Log_RaiseMsgcal; + } + + private void fLog_Load(object sender, EventArgs e) + { + this.titleXBEE.Text = $"XBEE({PUB.setting.Port_XBE},ID:{PUB.setting.XBE_ID})"; + this.titleAGV.Text = $"AGV({PUB.setting.Port_AGV}:{PUB.setting.Baud_AGV})"; + this.titleBMS.Text = $"BMS({PUB.setting.Port_BAT}:{PUB.setting.Baud_BAT})"; + var colorlist = new arCtl.sLogMessageColor[] + { + new arCtl.sLogMessageColor("NOR",Color.Black), + new arCtl.sLogMessageColor("NORM",Color.Black), + new arCtl.sLogMessageColor("NORMAL",Color.Black), + new arCtl.sLogMessageColor("ERR",Color.Red), + new arCtl.sLogMessageColor("FLAG",Color.Magenta), + new arCtl.sLogMessageColor("TX",Color.SkyBlue), + new arCtl.sLogMessageColor("SETUP",Color.Gold), + new arCtl.sLogMessageColor("MFLAG",Color.BlueViolet), + }; + this.rtsys.ColorList = colorlist; + this.rtTx.ColorList = colorlist; + this.rtAGV.ColorList = colorlist; + + PUB.log.RaiseMsg += Log_RaiseMsg; + PUB.logagv.RaiseMsg += Log_RaiseMsgagv; + PUB.logplc.RaiseMsg += Log_RaiseMsgplc; + PUB.logbms.RaiseMsg += Log_RaiseMsgbms; + PUB.logxbee.RaiseMsg += Log_RaiseMsgcal; + } + + private void Log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + showlog(rtsys,LogTime, TypeStr, Message); + } + private void Log_RaiseMsgagv(DateTime LogTime, string TypeStr, string Message) + { + showlog(rtAGV, LogTime, TypeStr, Message); + } + private void Log_RaiseMsgplc(DateTime LogTime, string TypeStr, string Message) + { + //showlog(rtPLC, LogTime, TypeStr, Message); + } + private void Log_RaiseMsgbms(DateTime LogTime, string TypeStr, string Message) + { + showlog(rtBMS, LogTime, TypeStr, Message); + } + private void Log_RaiseMsgcal(DateTime LogTime, string TypeStr, string Message) + { + showlog(rtXbee, LogTime, TypeStr, Message); + } + void showlog(arCtl.LogTextBox rtRx, DateTime LogTime, string TypeStr, string Message) + { + if (rtRx.Visible) + { + rtRx.AddMsg(LogTime, TypeStr, Message); + } + } + } +} diff --git a/Cs_HMI/Project/Dialog/fLog.resx b/HMI/Project/Dialog/fLog.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fLog.resx rename to HMI/Project/Dialog/fLog.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/Project/Dialog/fLog.resx +++ b/HMI/Project/Dialog/fLog.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fPassword.Designer.cs b/HMI/Project/Dialog/fPassword.Designer.cs similarity index 98% rename from Cs_HMI/Project/Dialog/fPassword.Designer.cs rename to HMI/Project/Dialog/fPassword.Designer.cs index 53ec8a5..3cc7e1e 100644 --- a/Cs_HMI/Project/Dialog/fPassword.Designer.cs +++ b/HMI/Project/Dialog/fPassword.Designer.cs @@ -28,66 +28,66 @@ /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fPassword)); - this.tbInput = new System.Windows.Forms.TextBox(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.touchKey1 = new arCtl.TouchKey(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // tbInput - // - this.tbInput.Font = new System.Drawing.Font("Calibri", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbInput.Location = new System.Drawing.Point(26, 140); - this.tbInput.Name = "tbInput"; - this.tbInput.PasswordChar = '●'; - this.tbInput.Size = new System.Drawing.Size(235, 40); - this.tbInput.TabIndex = 1; - this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // pictureBox1 - // - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(91, 23); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(96, 96); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 3; - this.pictureBox1.TabStop = false; - // - // touchKey1 - // - this.touchKey1.Location = new System.Drawing.Point(26, 194); - this.touchKey1.Margin = new System.Windows.Forms.Padding(6, 11, 6, 11); - this.touchKey1.Name = "touchKey1"; - this.touchKey1.Size = new System.Drawing.Size(235, 260); - this.touchKey1.TabIndex = 5; - this.touchKey1.keyClick += new arCtl.TouchKey.KeyClickHandler(this.touchKey1_keyClick); - // - // fPassword - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.ClientSize = new System.Drawing.Size(284, 470); - this.Controls.Add(this.touchKey1); - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.tbInput); - this.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.KeyPreview = true; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "fPassword"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Enter Password"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fPassword)); + this.tbInput = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.touchKey1 = new arCtl.TouchKey(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // tbInput + // + this.tbInput.Font = new System.Drawing.Font("Calibri", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbInput.Location = new System.Drawing.Point(26, 140); + this.tbInput.Name = "tbInput"; + this.tbInput.PasswordChar = '●'; + this.tbInput.Size = new System.Drawing.Size(235, 40); + this.tbInput.TabIndex = 1; + this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(91, 23); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(96, 96); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + // + // touchKey1 + // + this.touchKey1.Location = new System.Drawing.Point(26, 194); + this.touchKey1.Margin = new System.Windows.Forms.Padding(6, 11, 6, 11); + this.touchKey1.Name = "touchKey1"; + this.touchKey1.Size = new System.Drawing.Size(235, 260); + this.touchKey1.TabIndex = 5; + this.touchKey1.keyClick += new arCtl.TouchKey.KeyClickHandler(this.touchKey1_keyClick); + // + // fPassword + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(284, 470); + this.Controls.Add(this.touchKey1); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.tbInput); + this.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fPassword"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Enter Password"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + } - #endregion - + #endregion + private System.Windows.Forms.PictureBox pictureBox1; - public System.Windows.Forms.TextBox tbInput; + public System.Windows.Forms.TextBox tbInput; private arCtl.TouchKey touchKey1; } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fPassword.cs b/HMI/Project/Dialog/fPassword.cs similarity index 96% rename from Cs_HMI/Project/Dialog/fPassword.cs rename to HMI/Project/Dialog/fPassword.cs index 8f26597..0ced34e 100644 --- a/Cs_HMI/Project/Dialog/fPassword.cs +++ b/HMI/Project/Dialog/fPassword.cs @@ -1,74 +1,74 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Project.Dialog -{ - public partial class fPassword : Form - { - public fPassword() - { - InitializeComponent(); - this.tbInput.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) Confirm(); }; - this.KeyPreview = true; - this.KeyDown += (s1, e1) => { - if (e1.KeyCode == Keys.Escape) this.Close(); - }; - } - - private void Confirm() - { - string id = tbInput.Text.Trim(); - if (id.isEmpty()) - { - tbInput.Focus(); - return; - } - DialogResult = DialogResult.OK; - } - - private void touchKey1_keyClick(string key) - { - if (key == "BACK" || key == "◁") - { - if (!tbInput.Text.isEmpty()) - { - if (tbInput.Text.Length == 1) tbInput.Text = ""; - else tbInput.Text = tbInput.Text.Substring(0, tbInput.Text.Length - 1); - } - //if (tbInput.Text == "") tbInput.Text = "0"; - } - else if (key == "CLEAR" || key == "RESET" || key == "◀") - { - tbInput.Text = "0"; - } - else if (key == "ENTER" || key == "ENT") - { - Confirm(); - } - else - { - if (tbInput.SelectionLength > 0 && tbInput.Text.Length == tbInput.SelectionLength) - { - tbInput.Text = key; - } - else if (tbInput.SelectionLength > 0) - { - //선택된 영역을 대체해준다. - tbInput.SelectedText = key; - } - else tbInput.Text += key; - - } - - tbInput.SelectionLength = 0; - if (!tbInput.Text.isEmpty()) - tbInput.SelectionStart = tbInput.Text.Length; - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fPassword : Form + { + public fPassword() + { + InitializeComponent(); + this.tbInput.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) Confirm(); }; + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + } + + private void Confirm() + { + string id = tbInput.Text.Trim(); + if (id.isEmpty()) + { + tbInput.Focus(); + return; + } + DialogResult = DialogResult.OK; + } + + private void touchKey1_keyClick(string key) + { + if (key == "BACK" || key == "◁") + { + if (!tbInput.Text.isEmpty()) + { + if (tbInput.Text.Length == 1) tbInput.Text = ""; + else tbInput.Text = tbInput.Text.Substring(0, tbInput.Text.Length - 1); + } + //if (tbInput.Text == "") tbInput.Text = "0"; + } + else if (key == "CLEAR" || key == "RESET" || key == "◀") + { + tbInput.Text = "0"; + } + else if (key == "ENTER" || key == "ENT") + { + Confirm(); + } + else + { + if (tbInput.SelectionLength > 0 && tbInput.Text.Length == tbInput.SelectionLength) + { + tbInput.Text = key; + } + else if (tbInput.SelectionLength > 0) + { + //선택된 영역을 대체해준다. + tbInput.SelectedText = key; + } + else tbInput.Text += key; + + } + + tbInput.SelectionLength = 0; + if (!tbInput.Text.isEmpty()) + tbInput.SelectionStart = tbInput.Text.Length; + } + } +} diff --git a/Cs_HMI/Project/Dialog/fPassword.resx b/HMI/Project/Dialog/fPassword.resx similarity index 98% rename from Cs_HMI/Project/Dialog/fPassword.resx rename to HMI/Project/Dialog/fPassword.resx index f165537..76d5ac7 100644 --- a/Cs_HMI/Project/Dialog/fPassword.resx +++ b/HMI/Project/Dialog/fPassword.resx @@ -1,160 +1,160 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAb - rwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAeoSURBVHhe7Z1r - bBRVFMfr+xHf8RUTHx/UoHwpLDMLLdHtzBSosWoijSZCq9GCRAN+I+oXwgfBqIgYXzF+gMT4KIoRgloM - RhOQLbRSQSyoLZYIhEcpnZ3u0u7u9Zzd0wDT41Z2753O7s4/+aWb3TvnnvPf2bkzd6YzFYECBQoUKFCg - QIECBQrkJ/VPn36tbYZrHFOfHzP1N4ANMUvfAX+7gAPwui8Dvsb3sp9tiJnh1x0rPM+2pkYwBoULNJaO - VldfCYbPdgx9FRjZCaQAUSAYYyd8KW/ZVvjRI5HIFdRdIJSIRC60Db0BTFoPJMg0lSQcS//cMbR67JvS - KD+JhokXw5r+DBiy12WQl3TB5u1pzIXSKn2JadMuixnhF6B43G5zpowHvbapLcTcKM3SFAySjVDsQVfx - PkL7B3OkdEtHcaPqdijw69EF+xPb1NcNztBupfSLW7D3sQiKGnQXWQQMwC9iDpVRfMLdPfg5r2EKKy6g - hqLbdbVnVN1IB0V8UUVHODoQCV1P5flbA6Z+NyTdM7qIoqf7ZG34LirTn4Kj2HszexJ8AaXAAduaeg+V - 6y/h2hEz9CNM0qXGwXhk6h1Utj8E28ib4IjyTybZksSx9D+wZip/fCXq7rwE9pu3cImWOD/5YgoDzH+f - Sa4scMzwO2TD+AgPVLjEygvtCbLDW+FABAn0j06ozLD0vrgVuo1s8U7wzbeyCZUn35It3sg2tceYJMoa - PNtG9qhVZo7H1HvdCXiB83i9OPXBKpFs2yrSfcdFemAgC7zG9/AzbMMt6wH7RX3ocrJJnRxDf5npXC0z - q8RQy8dCDA+LMQVtsC0uw8ZSiaEvJpvUiNb+Y6M6VojzkCGSne3k7v9Xcmd7ZlkupkIOKz2rRnP7XMdq - sMIi2bGdLD13JTvaMjHY2IqwzfBzZJdciSUV50MH3e4OVZJ4cxlZeVrpQwdFYuVyMdg0WziPmBnwNb6H - n7mVWPEKG1sVOE0hKirOI9vkKWZpFtehMmZNF+n+E2RjVqk9uzKGs+0B/Cy1Zze1zird3wfjQTXbXhV4 - QRjZJk8QeLW7I5Uklr5EFmaVjtmwh/Mg2/ZMsE3aidFSWSWWvsi2VchHZJsc0eAbc3WilOFNG8m+rIY+ - Wc224xj6dA0tldVw60a2nUJOSt0ldazww0wnSkn19pB9WcUXNrPtOOKLmmmprFJ/97DtVOLUhB8g+woX - XavJdqSK9OAg2ZeVU1/DtuPA3c8zlXYctp1SDH0F2Ve4INguthOFuMW1yYVbXBvF7CT7ChNeDQDB0q7g - ynGLa5MLt7g2ikmdnDntOrIxf8VMbRYTXCrx+Y0i2dIi0lujQrT/qpT0lmimr3jzXDYXuYRrycb8pfro - N77gKSF2dLJmKQX6jM9vYnOShW3oz5ON+QsG4He54LJIrfuKN8gDkl98yeYkCzgqfptszF8wAH/PBZeF - 2NbOmuMJ23awOUnD0r8jG/MXBNo9KrBEWGM8hMtJIp1kY/6CIPtdQaXCmeIlXE4S6SYb8xcEOe4KKhXO - FC/hcpLIUbIxf0GQU66gUuFM8RIuJ4kkyMb8BUGGXEGlwpkyFonWzaJrbpNo07QMXXMaRXxjK9t2LLic - JCLlC/DVJgjNbwuFxNYJE84C3zu16Qd2mVxwOUlEyibIV4Mwrvlu80fY2/Qku0wuuJwkImEQVjwRx5mS - i2jlJNZ8JDp5MrtMLricJFL4hJzyAzHGlFxEKytZ85HoJJ99ATIOxPBwmg0uCc6UXHTNmcuaj/hvE6St - JBvzF04o8cHlwJmSi8H13/zHIDzFd4OwbWkLyMb8hVOqXHBZcKaMxchuKI4HuNnZ29iUl/kIl5MsYOU1 - yMb8pfqEDGeKl3A5SULOCRkUBPvFFVwanClewuUkie1kX+HCE8xMB1LgTPESLidJvEr2FS6Vl6VwpngJ - l5MMpF6WIiKRSyHoCXcnMsCTIpwxnvDzdjYnCRyT/h+Utql/yHRUMHhakDXHA5Ita9mcCsW29PfINnmy - De0+rrNCic9rHL+T8oqujBgwtCqyTZ7w8nT4FfzFdVgomctS8JfQ1sGbJRPoA/tSZb6yy9NRjqE/y3Ua - cBrH0prJLvkSodBF0InS6ekipxs9IrvUSPXcUDGDWwiySZ3wn9BUjQVFzj68cQnZpFaqJ+iKklrNJHu8 - kWNqa9lEyhFD/4xs8U7BzTqI8bpZBwrnOyAJz/93wEekHGNKHdkxPopZ2mtMYuWBpS8nG8ZPwS3LfKDj - deGrICFlJ218SAc+bILK94ec2upbILFSvGGrm3123aQbqGx/KXvjVl89F0A2vb69ceuIYhHt5piptTPJ - FzeZe2H75F6hYwmfXARJ/ziqiOJlc58VuprKKw6JhoYLbEtfAsnLeBLSeJGEo9zFyub3vRBenASFHHYV - VgwcwmeYURnFreARJj4R3sgICvzNXbCP2G3XavdTuqWp4DFWPpEvHuRmhH8vuwe5cbJrtIk4sQWmePGM - sR7cO8M+qftAI8I1MXO2LftltAHJM4zLF4gRjsLavgxvPFj2a/u56ESk8hrcFTzrcbbZo+xuPBFCBmdO - imTey3521uNsMQaFCxQoUKBAgQIFChQoUCAfqKLiXwYEOVtR8EleAAAAAElFTkSuQmCC - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAb + rwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAeoSURBVHhe7Z1r + bBRVFMfr+xHf8RUTHx/UoHwpLDMLLdHtzBSosWoijSZCq9GCRAN+I+oXwgfBqIgYXzF+gMT4KIoRgloM + RhOQLbRSQSyoLZYIhEcpnZ3u0u7u9Zzd0wDT41Z2753O7s4/+aWb3TvnnvPf2bkzd6YzFYECBQoUKFCg + QIECBQrkJ/VPn36tbYZrHFOfHzP1N4ANMUvfAX+7gAPwui8Dvsb3sp9tiJnh1x0rPM+2pkYwBoULNJaO + VldfCYbPdgx9FRjZCaQAUSAYYyd8KW/ZVvjRI5HIFdRdIJSIRC60Db0BTFoPJMg0lSQcS//cMbR67JvS + KD+JhokXw5r+DBiy12WQl3TB5u1pzIXSKn2JadMuixnhF6B43G5zpowHvbapLcTcKM3SFAySjVDsQVfx + PkL7B3OkdEtHcaPqdijw69EF+xPb1NcNztBupfSLW7D3sQiKGnQXWQQMwC9iDpVRfMLdPfg5r2EKKy6g + hqLbdbVnVN1IB0V8UUVHODoQCV1P5flbA6Z+NyTdM7qIoqf7ZG34LirTn4Kj2HszexJ8AaXAAduaeg+V + 6y/h2hEz9CNM0qXGwXhk6h1Utj8E28ib4IjyTybZksSx9D+wZip/fCXq7rwE9pu3cImWOD/5YgoDzH+f + Sa4scMzwO2TD+AgPVLjEygvtCbLDW+FABAn0j06ozLD0vrgVuo1s8U7wzbeyCZUn35It3sg2tceYJMoa + PNtG9qhVZo7H1HvdCXiB83i9OPXBKpFs2yrSfcdFemAgC7zG9/AzbMMt6wH7RX3ocrJJnRxDf5npXC0z + q8RQy8dCDA+LMQVtsC0uw8ZSiaEvJpvUiNb+Y6M6VojzkCGSne3k7v9Xcmd7ZlkupkIOKz2rRnP7XMdq + sMIi2bGdLD13JTvaMjHY2IqwzfBzZJdciSUV50MH3e4OVZJ4cxlZeVrpQwdFYuVyMdg0WziPmBnwNb6H + n7mVWPEKG1sVOE0hKirOI9vkKWZpFtehMmZNF+n+E2RjVqk9uzKGs+0B/Cy1Zze1zird3wfjQTXbXhV4 + QRjZJk8QeLW7I5Uklr5EFmaVjtmwh/Mg2/ZMsE3aidFSWSWWvsi2VchHZJsc0eAbc3WilOFNG8m+rIY+ + Wc224xj6dA0tldVw60a2nUJOSt0ldazww0wnSkn19pB9WcUXNrPtOOKLmmmprFJ/97DtVOLUhB8g+woX + XavJdqSK9OAg2ZeVU1/DtuPA3c8zlXYctp1SDH0F2Ve4INguthOFuMW1yYVbXBvF7CT7ChNeDQDB0q7g + ynGLa5MLt7g2ikmdnDntOrIxf8VMbRYTXCrx+Y0i2dIi0lujQrT/qpT0lmimr3jzXDYXuYRrycb8pfro + N77gKSF2dLJmKQX6jM9vYnOShW3oz5ON+QsG4He54LJIrfuKN8gDkl98yeYkCzgqfptszF8wAH/PBZeF + 2NbOmuMJ23awOUnD0r8jG/MXBNo9KrBEWGM8hMtJIp1kY/6CIPtdQaXCmeIlXE4S6SYb8xcEOe4KKhXO + FC/hcpLIUbIxf0GQU66gUuFM8RIuJ4kkyMb8BUGGXEGlwpkyFonWzaJrbpNo07QMXXMaRXxjK9t2LLic + JCLlC/DVJgjNbwuFxNYJE84C3zu16Qd2mVxwOUlEyibIV4Mwrvlu80fY2/Qku0wuuJwkImEQVjwRx5mS + i2jlJNZ8JDp5MrtMLricJFL4hJzyAzHGlFxEKytZ85HoJJ99ATIOxPBwmg0uCc6UXHTNmcuaj/hvE6St + JBvzF04o8cHlwJmSi8H13/zHIDzFd4OwbWkLyMb8hVOqXHBZcKaMxchuKI4HuNnZ29iUl/kIl5MsYOU1 + yMb8pfqEDGeKl3A5SULOCRkUBPvFFVwanClewuUkie1kX+HCE8xMB1LgTPESLidJvEr2FS6Vl6VwpngJ + l5MMpF6WIiKRSyHoCXcnMsCTIpwxnvDzdjYnCRyT/h+Utql/yHRUMHhakDXHA5Ita9mcCsW29PfINnmy + De0+rrNCic9rHL+T8oqujBgwtCqyTZ7w8nT4FfzFdVgomctS8JfQ1sGbJRPoA/tSZb6yy9NRjqE/y3Ua + cBrH0prJLvkSodBF0InS6ekipxs9IrvUSPXcUDGDWwiySZ3wn9BUjQVFzj68cQnZpFaqJ+iKklrNJHu8 + kWNqa9lEyhFD/4xs8U7BzTqI8bpZBwrnOyAJz/93wEekHGNKHdkxPopZ2mtMYuWBpS8nG8ZPwS3LfKDj + deGrICFlJ218SAc+bILK94ec2upbILFSvGGrm3123aQbqGx/KXvjVl89F0A2vb69ceuIYhHt5piptTPJ + FzeZe2H75F6hYwmfXARJ/ziqiOJlc58VuprKKw6JhoYLbEtfAsnLeBLSeJGEo9zFyub3vRBenASFHHYV + VgwcwmeYURnFreARJj4R3sgICvzNXbCP2G3XavdTuqWp4DFWPpEvHuRmhH8vuwe5cbJrtIk4sQWmePGM + sR7cO8M+qftAI8I1MXO2LftltAHJM4zLF4gRjsLavgxvPFj2a/u56ESk8hrcFTzrcbbZo+xuPBFCBmdO + imTey3521uNsMQaFCxQoUKBAgQIFChQoUCAfqKLiXwYEOVtR8EleAAAAAElFTkSuQmCC + + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fStateMachineDebug.Designer.cs b/HMI/Project/Dialog/fStateMachineDebug.Designer.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fStateMachineDebug.Designer.cs rename to HMI/Project/Dialog/fStateMachineDebug.Designer.cs diff --git a/Cs_HMI/Project/Dialog/fStateMachineDebug.cs b/HMI/Project/Dialog/fStateMachineDebug.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fStateMachineDebug.cs rename to HMI/Project/Dialog/fStateMachineDebug.cs diff --git a/Cs_HMI/Project/Dialog/fSystem.Designer.cs b/HMI/Project/Dialog/fSystem.Designer.cs similarity index 98% rename from Cs_HMI/Project/Dialog/fSystem.Designer.cs rename to HMI/Project/Dialog/fSystem.Designer.cs index e5a365f..d036e9a 100644 --- a/Cs_HMI/Project/Dialog/fSystem.Designer.cs +++ b/HMI/Project/Dialog/fSystem.Designer.cs @@ -1,334 +1,334 @@ -namespace Project.Dialog -{ - partial class fSystem - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btOpenDir = new System.Windows.Forms.Button(); - this.arLabel4 = new System.Windows.Forms.Button(); - this.btShutdown = new System.Windows.Forms.Button(); - this.btRestart = new System.Windows.Forms.Button(); - this.btStartMenu = new System.Windows.Forms.Button(); - this.btTaskMgr = new System.Windows.Forms.Button(); - this.btProcessList = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.btEmulator = new System.Windows.Forms.Button(); - this.btMakePatch = new System.Windows.Forms.Button(); - this.btAutoRestart = new System.Windows.Forms.Button(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.button3 = new System.Windows.Forms.Button(); - this.tableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // btOpenDir - // - this.btOpenDir.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btOpenDir.Cursor = System.Windows.Forms.Cursors.Hand; - this.btOpenDir.Dock = System.Windows.Forms.DockStyle.Fill; - this.btOpenDir.Font = new System.Drawing.Font("Consolas", 12F); - this.btOpenDir.ForeColor = System.Drawing.Color.White; - this.btOpenDir.Location = new System.Drawing.Point(5, 5); - this.btOpenDir.Margin = new System.Windows.Forms.Padding(5); - this.btOpenDir.Name = "btOpenDir"; - this.btOpenDir.Size = new System.Drawing.Size(201, 79); - this.btOpenDir.TabIndex = 2; - this.btOpenDir.Text = "폴더열기"; - this.btOpenDir.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btOpenDir.Click += new System.EventHandler(this.lbMsg_Click); - // - // arLabel4 - // - this.arLabel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.arLabel4.Cursor = System.Windows.Forms.Cursors.Hand; - this.arLabel4.Dock = System.Windows.Forms.DockStyle.Bottom; - this.arLabel4.Font = new System.Drawing.Font("Consolas", 12F); - this.arLabel4.ForeColor = System.Drawing.Color.White; - this.arLabel4.Location = new System.Drawing.Point(10, 412); - this.arLabel4.Margin = new System.Windows.Forms.Padding(5); - this.arLabel4.Name = "arLabel4"; - this.arLabel4.Size = new System.Drawing.Size(633, 51); - this.arLabel4.TabIndex = 2; - this.arLabel4.Text = "닫기"; - this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel4.Click += new System.EventHandler(this.arLabel4_Click); - // - // btShutdown - // - this.btShutdown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btShutdown.Cursor = System.Windows.Forms.Cursors.Hand; - this.btShutdown.Dock = System.Windows.Forms.DockStyle.Fill; - this.btShutdown.Font = new System.Drawing.Font("Consolas", 12F); - this.btShutdown.ForeColor = System.Drawing.Color.White; - this.btShutdown.Location = new System.Drawing.Point(5, 94); - this.btShutdown.Margin = new System.Windows.Forms.Padding(5); - this.btShutdown.Name = "btShutdown"; - this.btShutdown.Size = new System.Drawing.Size(201, 79); - this.btShutdown.TabIndex = 2; - this.btShutdown.Text = "시스템 종료"; - this.btShutdown.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btShutdown.Click += new System.EventHandler(this.arLabel9_Click); - // - // btRestart - // - this.btRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btRestart.Cursor = System.Windows.Forms.Cursors.Hand; - this.btRestart.Dock = System.Windows.Forms.DockStyle.Fill; - this.btRestart.Font = new System.Drawing.Font("Consolas", 12F); - this.btRestart.ForeColor = System.Drawing.Color.White; - this.btRestart.Location = new System.Drawing.Point(216, 94); - this.btRestart.Margin = new System.Windows.Forms.Padding(5); - this.btRestart.Name = "btRestart"; - this.btRestart.Size = new System.Drawing.Size(201, 79); - this.btRestart.TabIndex = 2; - this.btRestart.Text = "시스템 재시작"; - this.btRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btRestart.Click += new System.EventHandler(this.arLabel10_Click); - // - // btStartMenu - // - this.btStartMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btStartMenu.Cursor = System.Windows.Forms.Cursors.Hand; - this.btStartMenu.Dock = System.Windows.Forms.DockStyle.Fill; - this.btStartMenu.Font = new System.Drawing.Font("Consolas", 12F); - this.btStartMenu.ForeColor = System.Drawing.Color.White; - this.btStartMenu.Location = new System.Drawing.Point(427, 5); - this.btStartMenu.Margin = new System.Windows.Forms.Padding(5); - this.btStartMenu.Name = "btStartMenu"; - this.btStartMenu.Size = new System.Drawing.Size(201, 79); - this.btStartMenu.TabIndex = 2; - this.btStartMenu.Text = "시작메뉴"; - this.btStartMenu.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btStartMenu.Click += new System.EventHandler(this.arLabel1_Click); - // - // btTaskMgr - // - this.btTaskMgr.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btTaskMgr.Cursor = System.Windows.Forms.Cursors.Hand; - this.btTaskMgr.Dock = System.Windows.Forms.DockStyle.Fill; - this.btTaskMgr.Font = new System.Drawing.Font("Consolas", 12F); - this.btTaskMgr.ForeColor = System.Drawing.Color.White; - this.btTaskMgr.Location = new System.Drawing.Point(216, 5); - this.btTaskMgr.Margin = new System.Windows.Forms.Padding(5); - this.btTaskMgr.Name = "btTaskMgr"; - this.btTaskMgr.Size = new System.Drawing.Size(201, 79); - this.btTaskMgr.TabIndex = 2; - this.btTaskMgr.Text = "작업관리자"; - this.btTaskMgr.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btTaskMgr.Click += new System.EventHandler(this.arLabel6_Click); - // - // btProcessList - // - this.btProcessList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btProcessList.Cursor = System.Windows.Forms.Cursors.Hand; - this.btProcessList.Dock = System.Windows.Forms.DockStyle.Fill; - this.btProcessList.Font = new System.Drawing.Font("Consolas", 12F); - this.btProcessList.ForeColor = System.Drawing.Color.White; - this.btProcessList.Location = new System.Drawing.Point(427, 94); - this.btProcessList.Margin = new System.Windows.Forms.Padding(5); - this.btProcessList.Name = "btProcessList"; - this.btProcessList.Size = new System.Drawing.Size(201, 79); - this.btProcessList.TabIndex = 2; - this.btProcessList.Text = "Process List"; - this.btProcessList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btProcessList.Click += new System.EventHandler(this.arLabel2_Click); - // - // label1 - // - this.label1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.label1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(10, 389); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(633, 23); - this.label1.TabIndex = 3; - this.label1.Text = "label1"; - // - // label2 - // - this.label2.Dock = System.Windows.Forms.DockStyle.Bottom; - this.label2.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label2.ForeColor = System.Drawing.Color.White; - this.label2.Location = new System.Drawing.Point(10, 366); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(633, 23); - this.label2.TabIndex = 3; - this.label2.Text = "label1"; - // - // btEmulator - // - this.btEmulator.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btEmulator.Cursor = System.Windows.Forms.Cursors.Hand; - this.btEmulator.Dock = System.Windows.Forms.DockStyle.Fill; - this.btEmulator.Font = new System.Drawing.Font("Consolas", 12F); - this.btEmulator.ForeColor = System.Drawing.Color.White; - this.btEmulator.Location = new System.Drawing.Point(5, 183); - this.btEmulator.Margin = new System.Windows.Forms.Padding(5); - this.btEmulator.Name = "btEmulator"; - this.btEmulator.Size = new System.Drawing.Size(201, 79); - this.btEmulator.TabIndex = 4; - this.btEmulator.Text = "Emulator"; - this.btEmulator.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btEmulator.Click += new System.EventHandler(this.arLabel3_Click); - // - // btMakePatch - // - this.btMakePatch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btMakePatch.Cursor = System.Windows.Forms.Cursors.Hand; - this.btMakePatch.Dock = System.Windows.Forms.DockStyle.Fill; - this.btMakePatch.Font = new System.Drawing.Font("Consolas", 12F); - this.btMakePatch.ForeColor = System.Drawing.Color.White; - this.btMakePatch.Location = new System.Drawing.Point(216, 183); - this.btMakePatch.Margin = new System.Windows.Forms.Padding(5); - this.btMakePatch.Name = "btMakePatch"; - this.btMakePatch.Size = new System.Drawing.Size(201, 79); - this.btMakePatch.TabIndex = 5; - this.btMakePatch.Text = "패치파일 생성"; - this.btMakePatch.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btMakePatch.Click += new System.EventHandler(this.arLabel5_Click); - // - // btAutoRestart - // - this.btAutoRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); - this.btAutoRestart.Cursor = System.Windows.Forms.Cursors.Hand; - this.btAutoRestart.Dock = System.Windows.Forms.DockStyle.Fill; - this.btAutoRestart.Font = new System.Drawing.Font("Consolas", 12F); - this.btAutoRestart.ForeColor = System.Drawing.Color.White; - this.btAutoRestart.Location = new System.Drawing.Point(427, 183); - this.btAutoRestart.Margin = new System.Windows.Forms.Padding(5); - this.btAutoRestart.Name = "btAutoRestart"; - this.btAutoRestart.Size = new System.Drawing.Size(201, 79); - this.btAutoRestart.TabIndex = 6; - this.btAutoRestart.Text = "자동 재시작"; - this.btAutoRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btAutoRestart.Click += new System.EventHandler(this.arLabel7_Click); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 3; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.Controls.Add(this.btOpenDir, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.btAutoRestart, 2, 2); - this.tableLayoutPanel1.Controls.Add(this.btTaskMgr, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.btMakePatch, 1, 2); - this.tableLayoutPanel1.Controls.Add(this.btStartMenu, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.btEmulator, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.btShutdown, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.btRestart, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.btProcessList, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.button1, 0, 3); - this.tableLayoutPanel1.Controls.Add(this.button2, 1, 3); - this.tableLayoutPanel1.Controls.Add(this.button3, 2, 3); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 10); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 4; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(633, 356); - this.tableLayoutPanel1.TabIndex = 7; - // - // button1 - // - this.button1.Dock = System.Windows.Forms.DockStyle.Fill; - this.button1.Location = new System.Drawing.Point(3, 270); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(205, 83); - this.button1.TabIndex = 7; - this.button1.Text = "Map Editor"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click_1); - // - // button2 - // - this.button2.Dock = System.Windows.Forms.DockStyle.Fill; - this.button2.Enabled = false; - this.button2.Location = new System.Drawing.Point(214, 270); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(205, 83); - this.button2.TabIndex = 7; - this.button2.Text = "---"; - this.button2.UseVisualStyleBackColor = true; - // - // button3 - // - this.button3.Dock = System.Windows.Forms.DockStyle.Fill; - this.button3.Enabled = false; - this.button3.Location = new System.Drawing.Point(425, 270); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(205, 83); - this.button3.TabIndex = 7; - this.button3.Text = "---"; - this.button3.UseVisualStyleBackColor = true; - // - // fSystem - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.ClientSize = new System.Drawing.Size(653, 473); - this.Controls.Add(this.tableLayoutPanel1); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.arLabel4); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "fSystem"; - this.Padding = new System.Windows.Forms.Padding(10); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "fSystem"; - this.Load += new System.EventHandler(this.fSystem_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.Button btOpenDir; - private System.Windows.Forms.Button arLabel4; - private System.Windows.Forms.Button btTaskMgr; - private System.Windows.Forms.Button btShutdown; - private System.Windows.Forms.Button btRestart; - private System.Windows.Forms.Button btStartMenu; - private System.Windows.Forms.Button btProcessList; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button btEmulator; - private System.Windows.Forms.Button btMakePatch; - private System.Windows.Forms.Button btAutoRestart; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button3; - } +namespace Project.Dialog +{ + partial class fSystem + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btOpenDir = new System.Windows.Forms.Button(); + this.arLabel4 = new System.Windows.Forms.Button(); + this.btShutdown = new System.Windows.Forms.Button(); + this.btRestart = new System.Windows.Forms.Button(); + this.btStartMenu = new System.Windows.Forms.Button(); + this.btTaskMgr = new System.Windows.Forms.Button(); + this.btProcessList = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.btEmulator = new System.Windows.Forms.Button(); + this.btMakePatch = new System.Windows.Forms.Button(); + this.btAutoRestart = new System.Windows.Forms.Button(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // btOpenDir + // + this.btOpenDir.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btOpenDir.Cursor = System.Windows.Forms.Cursors.Hand; + this.btOpenDir.Dock = System.Windows.Forms.DockStyle.Fill; + this.btOpenDir.Font = new System.Drawing.Font("Consolas", 12F); + this.btOpenDir.ForeColor = System.Drawing.Color.White; + this.btOpenDir.Location = new System.Drawing.Point(5, 5); + this.btOpenDir.Margin = new System.Windows.Forms.Padding(5); + this.btOpenDir.Name = "btOpenDir"; + this.btOpenDir.Size = new System.Drawing.Size(201, 79); + this.btOpenDir.TabIndex = 2; + this.btOpenDir.Text = "폴더열기"; + this.btOpenDir.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btOpenDir.Click += new System.EventHandler(this.lbMsg_Click); + // + // arLabel4 + // + this.arLabel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.arLabel4.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel4.Dock = System.Windows.Forms.DockStyle.Bottom; + this.arLabel4.Font = new System.Drawing.Font("Consolas", 12F); + this.arLabel4.ForeColor = System.Drawing.Color.White; + this.arLabel4.Location = new System.Drawing.Point(10, 412); + this.arLabel4.Margin = new System.Windows.Forms.Padding(5); + this.arLabel4.Name = "arLabel4"; + this.arLabel4.Size = new System.Drawing.Size(633, 51); + this.arLabel4.TabIndex = 2; + this.arLabel4.Text = "닫기"; + this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel4.Click += new System.EventHandler(this.arLabel4_Click); + // + // btShutdown + // + this.btShutdown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btShutdown.Cursor = System.Windows.Forms.Cursors.Hand; + this.btShutdown.Dock = System.Windows.Forms.DockStyle.Fill; + this.btShutdown.Font = new System.Drawing.Font("Consolas", 12F); + this.btShutdown.ForeColor = System.Drawing.Color.White; + this.btShutdown.Location = new System.Drawing.Point(5, 94); + this.btShutdown.Margin = new System.Windows.Forms.Padding(5); + this.btShutdown.Name = "btShutdown"; + this.btShutdown.Size = new System.Drawing.Size(201, 79); + this.btShutdown.TabIndex = 2; + this.btShutdown.Text = "시스템 종료"; + this.btShutdown.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btShutdown.Click += new System.EventHandler(this.arLabel9_Click); + // + // btRestart + // + this.btRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btRestart.Cursor = System.Windows.Forms.Cursors.Hand; + this.btRestart.Dock = System.Windows.Forms.DockStyle.Fill; + this.btRestart.Font = new System.Drawing.Font("Consolas", 12F); + this.btRestart.ForeColor = System.Drawing.Color.White; + this.btRestart.Location = new System.Drawing.Point(216, 94); + this.btRestart.Margin = new System.Windows.Forms.Padding(5); + this.btRestart.Name = "btRestart"; + this.btRestart.Size = new System.Drawing.Size(201, 79); + this.btRestart.TabIndex = 2; + this.btRestart.Text = "시스템 재시작"; + this.btRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btRestart.Click += new System.EventHandler(this.arLabel10_Click); + // + // btStartMenu + // + this.btStartMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btStartMenu.Cursor = System.Windows.Forms.Cursors.Hand; + this.btStartMenu.Dock = System.Windows.Forms.DockStyle.Fill; + this.btStartMenu.Font = new System.Drawing.Font("Consolas", 12F); + this.btStartMenu.ForeColor = System.Drawing.Color.White; + this.btStartMenu.Location = new System.Drawing.Point(427, 5); + this.btStartMenu.Margin = new System.Windows.Forms.Padding(5); + this.btStartMenu.Name = "btStartMenu"; + this.btStartMenu.Size = new System.Drawing.Size(201, 79); + this.btStartMenu.TabIndex = 2; + this.btStartMenu.Text = "시작메뉴"; + this.btStartMenu.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btStartMenu.Click += new System.EventHandler(this.arLabel1_Click); + // + // btTaskMgr + // + this.btTaskMgr.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btTaskMgr.Cursor = System.Windows.Forms.Cursors.Hand; + this.btTaskMgr.Dock = System.Windows.Forms.DockStyle.Fill; + this.btTaskMgr.Font = new System.Drawing.Font("Consolas", 12F); + this.btTaskMgr.ForeColor = System.Drawing.Color.White; + this.btTaskMgr.Location = new System.Drawing.Point(216, 5); + this.btTaskMgr.Margin = new System.Windows.Forms.Padding(5); + this.btTaskMgr.Name = "btTaskMgr"; + this.btTaskMgr.Size = new System.Drawing.Size(201, 79); + this.btTaskMgr.TabIndex = 2; + this.btTaskMgr.Text = "작업관리자"; + this.btTaskMgr.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btTaskMgr.Click += new System.EventHandler(this.arLabel6_Click); + // + // btProcessList + // + this.btProcessList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btProcessList.Cursor = System.Windows.Forms.Cursors.Hand; + this.btProcessList.Dock = System.Windows.Forms.DockStyle.Fill; + this.btProcessList.Font = new System.Drawing.Font("Consolas", 12F); + this.btProcessList.ForeColor = System.Drawing.Color.White; + this.btProcessList.Location = new System.Drawing.Point(427, 94); + this.btProcessList.Margin = new System.Windows.Forms.Padding(5); + this.btProcessList.Name = "btProcessList"; + this.btProcessList.Size = new System.Drawing.Size(201, 79); + this.btProcessList.TabIndex = 2; + this.btProcessList.Text = "Process List"; + this.btProcessList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btProcessList.Click += new System.EventHandler(this.arLabel2_Click); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(10, 389); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(633, 23); + this.label1.TabIndex = 3; + this.label1.Text = "label1"; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Location = new System.Drawing.Point(10, 366); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(633, 23); + this.label2.TabIndex = 3; + this.label2.Text = "label1"; + // + // btEmulator + // + this.btEmulator.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btEmulator.Cursor = System.Windows.Forms.Cursors.Hand; + this.btEmulator.Dock = System.Windows.Forms.DockStyle.Fill; + this.btEmulator.Font = new System.Drawing.Font("Consolas", 12F); + this.btEmulator.ForeColor = System.Drawing.Color.White; + this.btEmulator.Location = new System.Drawing.Point(5, 183); + this.btEmulator.Margin = new System.Windows.Forms.Padding(5); + this.btEmulator.Name = "btEmulator"; + this.btEmulator.Size = new System.Drawing.Size(201, 79); + this.btEmulator.TabIndex = 4; + this.btEmulator.Text = "Emulator"; + this.btEmulator.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btEmulator.Click += new System.EventHandler(this.arLabel3_Click); + // + // btMakePatch + // + this.btMakePatch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btMakePatch.Cursor = System.Windows.Forms.Cursors.Hand; + this.btMakePatch.Dock = System.Windows.Forms.DockStyle.Fill; + this.btMakePatch.Font = new System.Drawing.Font("Consolas", 12F); + this.btMakePatch.ForeColor = System.Drawing.Color.White; + this.btMakePatch.Location = new System.Drawing.Point(216, 183); + this.btMakePatch.Margin = new System.Windows.Forms.Padding(5); + this.btMakePatch.Name = "btMakePatch"; + this.btMakePatch.Size = new System.Drawing.Size(201, 79); + this.btMakePatch.TabIndex = 5; + this.btMakePatch.Text = "패치파일 생성"; + this.btMakePatch.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btMakePatch.Click += new System.EventHandler(this.arLabel5_Click); + // + // btAutoRestart + // + this.btAutoRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72))))); + this.btAutoRestart.Cursor = System.Windows.Forms.Cursors.Hand; + this.btAutoRestart.Dock = System.Windows.Forms.DockStyle.Fill; + this.btAutoRestart.Font = new System.Drawing.Font("Consolas", 12F); + this.btAutoRestart.ForeColor = System.Drawing.Color.White; + this.btAutoRestart.Location = new System.Drawing.Point(427, 183); + this.btAutoRestart.Margin = new System.Windows.Forms.Padding(5); + this.btAutoRestart.Name = "btAutoRestart"; + this.btAutoRestart.Size = new System.Drawing.Size(201, 79); + this.btAutoRestart.TabIndex = 6; + this.btAutoRestart.Text = "자동 재시작"; + this.btAutoRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btAutoRestart.Click += new System.EventHandler(this.arLabel7_Click); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Controls.Add(this.btOpenDir, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btAutoRestart, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.btTaskMgr, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.btMakePatch, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.btStartMenu, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.btEmulator, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.btShutdown, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.btRestart, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btProcessList, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.button1, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.button2, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.button3, 2, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 10); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(633, 356); + this.tableLayoutPanel1.TabIndex = 7; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Location = new System.Drawing.Point(3, 270); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(205, 83); + this.button1.TabIndex = 7; + this.button1.Text = "Map Editor"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Enabled = false; + this.button2.Location = new System.Drawing.Point(214, 270); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(205, 83); + this.button2.TabIndex = 7; + this.button2.Text = "---"; + this.button2.UseVisualStyleBackColor = true; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Enabled = false; + this.button3.Location = new System.Drawing.Point(425, 270); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(205, 83); + this.button3.TabIndex = 7; + this.button3.Text = "---"; + this.button3.UseVisualStyleBackColor = true; + // + // fSystem + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.ClientSize = new System.Drawing.Size(653, 473); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.arLabel4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSystem"; + this.Padding = new System.Windows.Forms.Padding(10); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fSystem"; + this.Load += new System.EventHandler(this.fSystem_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button btOpenDir; + private System.Windows.Forms.Button arLabel4; + private System.Windows.Forms.Button btTaskMgr; + private System.Windows.Forms.Button btShutdown; + private System.Windows.Forms.Button btRestart; + private System.Windows.Forms.Button btStartMenu; + private System.Windows.Forms.Button btProcessList; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button btEmulator; + private System.Windows.Forms.Button btMakePatch; + private System.Windows.Forms.Button btAutoRestart; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fSystem.cs b/HMI/Project/Dialog/fSystem.cs similarity index 96% rename from Cs_HMI/Project/Dialog/fSystem.cs rename to HMI/Project/Dialog/fSystem.cs index 588860e..7a2fa01 100644 --- a/Cs_HMI/Project/Dialog/fSystem.cs +++ b/HMI/Project/Dialog/fSystem.cs @@ -1,166 +1,166 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using AR; -using System.IO.Compression; - -namespace Project.Dialog -{ - public partial class fSystem : Form - { - public bool shutdown = false; - public fSystem() - { - InitializeComponent(); - } - - private void button1_Click(object sender, EventArgs e) - { - UTIL.RunProcess(@"c:\windows\system32\shutdown.exe", "-r -t 5"); - } - - private void button2_Click(object sender, EventArgs e) - { - UTIL.RunProcess(@"c:\windows\system32\shutdown.exe", "-s -t 5"); - } - - private void button3_Click(object sender, EventArgs e) - { - - } - - private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) - { - - } - - private void lbMsg_Click(object sender, EventArgs e) - { - string path = AppDomain.CurrentDomain.BaseDirectory; - System.Diagnostics.Process prc = new System.Diagnostics.Process(); - System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo("explorer") - { - Arguments = path - }; - prc.StartInfo = si; - prc.Start(); - } - - private void arLabel1_Click(object sender, EventArgs e) - { - SendKeys.Send("^{ESC}"); - } - - private void arLabel6_Click(object sender, EventArgs e) - { - SendKeys.Send("^+{ESC}"); - } - - private void arLabel9_Click(object sender, EventArgs e) - { - shutdown = true; - PUB.SystemShutdown(10); - this.Close(); - - } - - private void arLabel10_Click(object sender, EventArgs e) - { - shutdown = true; - PUB.SystemReboot(10); - this.Close(); - } - - private void arLabel4_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void arLabel2_Click(object sender, EventArgs e) - { - System.Text.StringBuilder sb = new StringBuilder(); - - sb.AppendLine("Current : " + System.Diagnostics.Process.GetCurrentProcess().ProcessName); - - foreach (var prc in System.Diagnostics.Process.GetProcesses()) - { - if (prc.ProcessName.StartsWith("svchost")) continue; - sb.Append(" " + prc.ProcessName); - } - UTIL.MsgI(sb.ToString(),true); - } - - private void fSystem_Load(object sender, EventArgs e) - { - this.label1.Text = "Patch Version " + PUB.PatchVersion; - this.label2.Text = "HMI Version " + Application.ProductVersion.ToString(); - } - - private void arLabel3_Click(object sender, EventArgs e) - { - var file = System.IO.Path.Combine(UTIL.CurrentPath, "Emulator.exe"); - if(System.IO.File.Exists(file)==false) - { - UTIL.MsgE("에물레이터 실행 파일이 없습니다", true); - return; - } - - UTIL.RunProcess(file); - } - - private void arLabel5_Click(object sender, EventArgs e) - { - //현재 폴더에서 dll 과, amkor.exe 파일을 압축한다 - var path = new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory); - var files_dll = path.GetFiles("*.dll"); - var file_exe = System.IO.Path.Combine(path.FullName, "amkor.exe"); - if(System.IO.File.Exists(file_exe)==false) - { - UTIL.MsgE("실행파일 amkor.exe 가 없습니다."); - return; - } - - var veri = Application.ProductVersion.Split('.'); - var newfilename = "Patch_AGV_" + veri[0] + veri[1] + veri[2] + "_" + veri[3] + ".zip"; - - // 임시 폴더 생성 - var tempDir = Path.Combine(Path.GetTempPath(), "PatchTemp"); - if (Directory.Exists(tempDir)) - Directory.Delete(tempDir, true); - Directory.CreateDirectory(tempDir); - - // 파일 복사 - File.Copy(file_exe, Path.Combine(tempDir, "amkor.exe")); - foreach (var filedll in files_dll) - File.Copy(filedll.FullName, Path.Combine(tempDir, filedll.Name)); - - // 압축 파일 생성 - ZipFile.CreateFromDirectory(tempDir, newfilename); - - // 임시 폴더 삭제 - Directory.Delete(tempDir, true); - - UTIL.MsgI("다음 패치 파일이 생성됨\n" + newfilename); - } - - private void arLabel7_Click(object sender, EventArgs e) - { - PUB.SystemReboot(5,true); - } - - private void button1_Click_1(object sender, EventArgs e) - { - //mapeditor - var fn = new System.IO.FileInfo(@".\test\AGVMapEditor.exe"); - if (fn.Exists == false) return; - UTIL.RunExplorer(fn.FullName); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.IO; +using AR; +using System.IO.Compression; + +namespace Project.Dialog +{ + public partial class fSystem : Form + { + public bool shutdown = false; + public fSystem() + { + InitializeComponent(); + } + + private void button1_Click(object sender, EventArgs e) + { + UTIL.RunProcess(@"c:\windows\system32\shutdown.exe", "-r -t 5"); + } + + private void button2_Click(object sender, EventArgs e) + { + UTIL.RunProcess(@"c:\windows\system32\shutdown.exe", "-s -t 5"); + } + + private void button3_Click(object sender, EventArgs e) + { + + } + + private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e) + { + + } + + private void lbMsg_Click(object sender, EventArgs e) + { + string path = AppDomain.CurrentDomain.BaseDirectory; + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo("explorer") + { + Arguments = path + }; + prc.StartInfo = si; + prc.Start(); + } + + private void arLabel1_Click(object sender, EventArgs e) + { + SendKeys.Send("^{ESC}"); + } + + private void arLabel6_Click(object sender, EventArgs e) + { + SendKeys.Send("^+{ESC}"); + } + + private void arLabel9_Click(object sender, EventArgs e) + { + shutdown = true; + PUB.SystemShutdown(10); + this.Close(); + + } + + private void arLabel10_Click(object sender, EventArgs e) + { + shutdown = true; + PUB.SystemReboot(10); + this.Close(); + } + + private void arLabel4_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void arLabel2_Click(object sender, EventArgs e) + { + System.Text.StringBuilder sb = new StringBuilder(); + + sb.AppendLine("Current : " + System.Diagnostics.Process.GetCurrentProcess().ProcessName); + + foreach (var prc in System.Diagnostics.Process.GetProcesses()) + { + if (prc.ProcessName.StartsWith("svchost")) continue; + sb.Append(" " + prc.ProcessName); + } + UTIL.MsgI(sb.ToString(),true); + } + + private void fSystem_Load(object sender, EventArgs e) + { + this.label1.Text = "Patch Version " + PUB.PatchVersion; + this.label2.Text = "HMI Version " + Application.ProductVersion.ToString(); + } + + private void arLabel3_Click(object sender, EventArgs e) + { + var file = System.IO.Path.Combine(UTIL.CurrentPath, "Emulator.exe"); + if(System.IO.File.Exists(file)==false) + { + UTIL.MsgE("에물레이터 실행 파일이 없습니다", true); + return; + } + + UTIL.RunProcess(file); + } + + private void arLabel5_Click(object sender, EventArgs e) + { + //현재 폴더에서 dll 과, amkor.exe 파일을 압축한다 + var path = new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory); + var files_dll = path.GetFiles("*.dll"); + var file_exe = System.IO.Path.Combine(path.FullName, "amkor.exe"); + if(System.IO.File.Exists(file_exe)==false) + { + UTIL.MsgE("실행파일 amkor.exe 가 없습니다."); + return; + } + + var veri = Application.ProductVersion.Split('.'); + var newfilename = "Patch_AGV_" + veri[0] + veri[1] + veri[2] + "_" + veri[3] + ".zip"; + + // 임시 폴더 생성 + var tempDir = Path.Combine(Path.GetTempPath(), "PatchTemp"); + if (Directory.Exists(tempDir)) + Directory.Delete(tempDir, true); + Directory.CreateDirectory(tempDir); + + // 파일 복사 + File.Copy(file_exe, Path.Combine(tempDir, "amkor.exe")); + foreach (var filedll in files_dll) + File.Copy(filedll.FullName, Path.Combine(tempDir, filedll.Name)); + + // 압축 파일 생성 + ZipFile.CreateFromDirectory(tempDir, newfilename); + + // 임시 폴더 삭제 + Directory.Delete(tempDir, true); + + UTIL.MsgI("다음 패치 파일이 생성됨\n" + newfilename); + } + + private void arLabel7_Click(object sender, EventArgs e) + { + PUB.SystemReboot(5,true); + } + + private void button1_Click_1(object sender, EventArgs e) + { + //mapeditor + var fn = new System.IO.FileInfo(@".\test\AGVMapEditor.exe"); + if (fn.Exists == false) return; + UTIL.RunExplorer(fn.FullName); + } + } +} diff --git a/Cs_HMI/Project/Dialog/fSystem.resx b/HMI/Project/Dialog/fSystem.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fSystem.resx rename to HMI/Project/Dialog/fSystem.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/Project/Dialog/fSystem.resx +++ b/HMI/Project/Dialog/fSystem.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fTouchKey.Designer.cs b/HMI/Project/Dialog/fTouchKey.Designer.cs similarity index 97% rename from Cs_HMI/Project/Dialog/fTouchKey.Designer.cs rename to HMI/Project/Dialog/fTouchKey.Designer.cs index bc8a913..7ddf9cd 100644 --- a/Cs_HMI/Project/Dialog/fTouchKey.Designer.cs +++ b/HMI/Project/Dialog/fTouchKey.Designer.cs @@ -1,60 +1,60 @@ -namespace Project.Dialog -{ - partial class fTouchKey - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.touchKeyCalc1 = new arCtl.TouchKeyCalc(); - this.SuspendLayout(); - // - // touchKeyCalc1 - // - this.touchKeyCalc1.Dock = System.Windows.Forms.DockStyle.Fill; - this.touchKeyCalc1.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.touchKeyCalc1.Location = new System.Drawing.Point(0, 0); - this.touchKeyCalc1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); - this.touchKeyCalc1.Name = "touchKeyCalc1"; - this.touchKeyCalc1.Size = new System.Drawing.Size(374, 330); - this.touchKeyCalc1.TabIndex = 0; - // - // fTouchKey - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(374, 330); - this.Controls.Add(this.touchKeyCalc1); - this.Name = "fTouchKey"; - this.Text = "fTouchKey"; - this.ResumeLayout(false); - - } - - #endregion - - private arCtl.TouchKeyCalc touchKeyCalc1; - } +namespace Project.Dialog +{ + partial class fTouchKey + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.touchKeyCalc1 = new arCtl.TouchKeyCalc(); + this.SuspendLayout(); + // + // touchKeyCalc1 + // + this.touchKeyCalc1.Dock = System.Windows.Forms.DockStyle.Fill; + this.touchKeyCalc1.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.touchKeyCalc1.Location = new System.Drawing.Point(0, 0); + this.touchKeyCalc1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.touchKeyCalc1.Name = "touchKeyCalc1"; + this.touchKeyCalc1.Size = new System.Drawing.Size(374, 330); + this.touchKeyCalc1.TabIndex = 0; + // + // fTouchKey + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(374, 330); + this.Controls.Add(this.touchKeyCalc1); + this.Name = "fTouchKey"; + this.Text = "fTouchKey"; + this.ResumeLayout(false); + + } + + #endregion + + private arCtl.TouchKeyCalc touchKeyCalc1; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fTouchKey.cs b/HMI/Project/Dialog/fTouchKey.cs similarity index 94% rename from Cs_HMI/Project/Dialog/fTouchKey.cs rename to HMI/Project/Dialog/fTouchKey.cs index 050b630..8a79acd 100644 --- a/Cs_HMI/Project/Dialog/fTouchKey.cs +++ b/HMI/Project/Dialog/fTouchKey.cs @@ -1,19 +1,19 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Project.Dialog -{ - public partial class fTouchKey : Form - { - public fTouchKey() - { - InitializeComponent(); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fTouchKey : Form + { + public fTouchKey() + { + InitializeComponent(); + } + } +} diff --git a/Cs_HMI/Project/Dialog/fTouchKey.resx b/HMI/Project/Dialog/fTouchKey.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fTouchKey.resx rename to HMI/Project/Dialog/fTouchKey.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/Project/Dialog/fTouchKey.resx +++ b/HMI/Project/Dialog/fTouchKey.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fTouchKeyFull.Designer.cs b/HMI/Project/Dialog/fTouchKeyFull.Designer.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fTouchKeyFull.Designer.cs rename to HMI/Project/Dialog/fTouchKeyFull.Designer.cs diff --git a/Cs_HMI/Project/Dialog/fTouchKeyFull.cs b/HMI/Project/Dialog/fTouchKeyFull.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fTouchKeyFull.cs rename to HMI/Project/Dialog/fTouchKeyFull.cs diff --git a/Cs_HMI/Project/Dialog/fTouchKeyFull.resx b/HMI/Project/Dialog/fTouchKeyFull.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fTouchKeyFull.resx rename to HMI/Project/Dialog/fTouchKeyFull.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/Project/Dialog/fTouchKeyFull.resx +++ b/HMI/Project/Dialog/fTouchKeyFull.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fTouchNumDot.Designer.cs b/HMI/Project/Dialog/fTouchNumDot.Designer.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fTouchNumDot.Designer.cs rename to HMI/Project/Dialog/fTouchNumDot.Designer.cs diff --git a/Cs_HMI/Project/Dialog/fTouchNumDot.cs b/HMI/Project/Dialog/fTouchNumDot.cs similarity index 96% rename from Cs_HMI/Project/Dialog/fTouchNumDot.cs rename to HMI/Project/Dialog/fTouchNumDot.cs index 4c85a42..6dbf1e6 100644 --- a/Cs_HMI/Project/Dialog/fTouchNumDot.cs +++ b/HMI/Project/Dialog/fTouchNumDot.cs @@ -1,85 +1,85 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Project.Dialog -{ - public partial class fTouchNumDot : Form - { - public fTouchNumDot(string value) - { - InitializeComponent(); - this.tbInput.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) Confirm(); }; - this.KeyPreview = true; - this.tbInput.Text = value; - this.KeyDown += (s1, e1) => - { - if (e1.KeyCode == Keys.Escape) this.Close(); - }; - } - - private void fTouchNumDot_Load(object sender, EventArgs e) - { - this.tbInput.SelectAll(); - this.tbInput.Focus(); - } - private void Confirm() - { - string id = tbInput.Text.Trim(); - if (id.isEmpty()) - { - tbInput.Focus(); - return; - } - DialogResult = DialogResult.OK; - } - - - public void ProcessKey(ref TextBox cmb_rfid, string key) - { - if (key == "B") - { - if (cmb_rfid.Text != "") - cmb_rfid.Text = cmb_rfid.Text.Substring(0, cmb_rfid.Text.Length - 1); - } - else if (key == "C") - { - cmb_rfid.Text = ""; - } - else if (key == "E") - { - Confirm(); - } - else - { - if (cmb_rfid.SelectionLength > 0 && cmb_rfid.TextLength == cmb_rfid.SelectionLength) - { - cmb_rfid.Text = key; - } - else if (cmb_rfid.SelectionLength > 0) - { - //선택된 영역을 대체해준다. - cmb_rfid.SelectedText = key; - } - else cmb_rfid.Text += key; - } - - cmb_rfid.SelectionLength = 0; - if (cmb_rfid.Text != "") - cmb_rfid.SelectionStart = cmb_rfid.Text.Length; - - } - - private void arLabel1_Click(object sender, EventArgs e) - { - var ctl = sender as arCtl.arLabel; - ProcessKey(ref tbInput, ctl.Tag.ToString()); - } - - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fTouchNumDot : Form + { + public fTouchNumDot(string value) + { + InitializeComponent(); + this.tbInput.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) Confirm(); }; + this.KeyPreview = true; + this.tbInput.Text = value; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + } + + private void fTouchNumDot_Load(object sender, EventArgs e) + { + this.tbInput.SelectAll(); + this.tbInput.Focus(); + } + private void Confirm() + { + string id = tbInput.Text.Trim(); + if (id.isEmpty()) + { + tbInput.Focus(); + return; + } + DialogResult = DialogResult.OK; + } + + + public void ProcessKey(ref TextBox cmb_rfid, string key) + { + if (key == "B") + { + if (cmb_rfid.Text != "") + cmb_rfid.Text = cmb_rfid.Text.Substring(0, cmb_rfid.Text.Length - 1); + } + else if (key == "C") + { + cmb_rfid.Text = ""; + } + else if (key == "E") + { + Confirm(); + } + else + { + if (cmb_rfid.SelectionLength > 0 && cmb_rfid.TextLength == cmb_rfid.SelectionLength) + { + cmb_rfid.Text = key; + } + else if (cmb_rfid.SelectionLength > 0) + { + //선택된 영역을 대체해준다. + cmb_rfid.SelectedText = key; + } + else cmb_rfid.Text += key; + } + + cmb_rfid.SelectionLength = 0; + if (cmb_rfid.Text != "") + cmb_rfid.SelectionStart = cmb_rfid.Text.Length; + + } + + private void arLabel1_Click(object sender, EventArgs e) + { + var ctl = sender as arCtl.arLabel; + ProcessKey(ref tbInput, ctl.Tag.ToString()); + } + + } +} diff --git a/Cs_HMI/Project/Dialog/fTouchNumDot.resx b/HMI/Project/Dialog/fTouchNumDot.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fTouchNumDot.resx rename to HMI/Project/Dialog/fTouchNumDot.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/Project/Dialog/fTouchNumDot.resx +++ b/HMI/Project/Dialog/fTouchNumDot.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fUpdateForm.Designer.cs b/HMI/Project/Dialog/fUpdateForm.Designer.cs similarity index 98% rename from Cs_HMI/Project/Dialog/fUpdateForm.Designer.cs rename to HMI/Project/Dialog/fUpdateForm.Designer.cs index 995dbaf..871318d 100644 --- a/Cs_HMI/Project/Dialog/fUpdateForm.Designer.cs +++ b/HMI/Project/Dialog/fUpdateForm.Designer.cs @@ -1,500 +1,500 @@ -namespace Project.Dialog -{ - partial class fUpdateForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.tmBlink = new System.Windows.Forms.Timer(this.components); - this.arPanel1 = new arCtl.arPanel(); - this.panButton = new System.Windows.Forms.Panel(); - this.btYes = new arCtl.arLabel(); - this.btNo = new arCtl.arLabel(); - this.panel7 = new System.Windows.Forms.Panel(); - this.lb3 = new arCtl.arLabel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.lb2 = new arCtl.arLabel(); - this.panel4 = new System.Windows.Forms.Panel(); - this.lb1 = new arCtl.arLabel(); - this.panel8 = new System.Windows.Forms.Panel(); - this.lbTitle = new arCtl.arLabel(); - this.arLabel1 = new arCtl.arLabel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.arPanel1.SuspendLayout(); - this.panButton.SuspendLayout(); - this.SuspendLayout(); - // - // tmBlink - // - this.tmBlink.Enabled = true; - this.tmBlink.Interval = 300; - this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); - // - // arPanel1 - // - this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arPanel1.BorderColor = System.Drawing.Color.DimGray; - this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); - this.arPanel1.Controls.Add(this.panButton); - this.arPanel1.Controls.Add(this.panel7); - this.arPanel1.Controls.Add(this.lb3); - this.arPanel1.Controls.Add(this.panel2); - this.arPanel1.Controls.Add(this.arLabel1); - this.arPanel1.Controls.Add(this.panel1); - this.arPanel1.Controls.Add(this.lb2); - this.arPanel1.Controls.Add(this.panel4); - this.arPanel1.Controls.Add(this.lb1); - this.arPanel1.Controls.Add(this.panel8); - this.arPanel1.Controls.Add(this.lbTitle); - this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); - this.arPanel1.ForeColor = System.Drawing.Color.Khaki; - this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.arPanel1.GradientRepeatBG = false; - this.arPanel1.Location = new System.Drawing.Point(5, 5); - this.arPanel1.Name = "arPanel1"; - this.arPanel1.Padding = new System.Windows.Forms.Padding(6); - this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arPanel1.ProgressMax = 100F; - this.arPanel1.ProgressMin = 0F; - this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arPanel1.ProgressValue = 0F; - this.arPanel1.ShadowColor = System.Drawing.Color.Black; - this.arPanel1.ShowBorder = true; - this.arPanel1.Size = new System.Drawing.Size(508, 358); - this.arPanel1.TabIndex = 0; - this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.arPanel1.TextShadow = false; - this.arPanel1.UseProgressBar = false; - // - // panButton - // - this.panButton.Controls.Add(this.btYes); - this.panButton.Controls.Add(this.btNo); - this.panButton.Dock = System.Windows.Forms.DockStyle.Fill; - this.panButton.Location = new System.Drawing.Point(6, 298); - this.panButton.Name = "panButton"; - this.panButton.Size = new System.Drawing.Size(496, 54); - this.panButton.TabIndex = 10; - // - // btYes - // - this.btYes.BackColor = System.Drawing.Color.SeaGreen; - this.btYes.BackColor2 = System.Drawing.Color.SeaGreen; - this.btYes.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btYes.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btYes.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btYes.BorderSize = new System.Windows.Forms.Padding(1); - this.btYes.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btYes.Cursor = System.Windows.Forms.Cursors.Hand; - this.btYes.Dock = System.Windows.Forms.DockStyle.Fill; - this.btYes.Enabled = false; - this.btYes.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btYes.ForeColor = System.Drawing.Color.Black; - this.btYes.GradientEnable = true; - this.btYes.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btYes.GradientRepeatBG = false; - this.btYes.isButton = true; - this.btYes.Location = new System.Drawing.Point(0, 0); - this.btYes.MouseDownColor = System.Drawing.Color.Yellow; - this.btYes.MouseOverColor = System.Drawing.Color.Yellow; - this.btYes.msg = null; - this.btYes.Name = "btYes"; - this.btYes.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btYes.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btYes.ProgressEnable = false; - this.btYes.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btYes.ProgressForeColor = System.Drawing.Color.Black; - this.btYes.ProgressMax = 100F; - this.btYes.ProgressMin = 0F; - this.btYes.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btYes.ProgressValue = 0F; - this.btYes.ShadowColor = System.Drawing.Color.Gray; - this.btYes.Sign = ""; - this.btYes.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btYes.SignColor = System.Drawing.Color.Yellow; - this.btYes.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btYes.Size = new System.Drawing.Size(267, 54); - this.btYes.TabIndex = 0; - this.btYes.Text = "예(F5)"; - this.btYes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btYes.TextShadow = true; - this.btYes.TextVisible = true; - this.btYes.Click += new System.EventHandler(this.btYes_Click); - // - // btNo - // - this.btNo.BackColor = System.Drawing.Color.Goldenrod; - this.btNo.BackColor2 = System.Drawing.Color.Goldenrod; - this.btNo.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btNo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btNo.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btNo.BorderSize = new System.Windows.Forms.Padding(1); - this.btNo.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btNo.Cursor = System.Windows.Forms.Cursors.Hand; - this.btNo.Dock = System.Windows.Forms.DockStyle.Right; - this.btNo.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btNo.ForeColor = System.Drawing.Color.Black; - this.btNo.GradientEnable = true; - this.btNo.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btNo.GradientRepeatBG = false; - this.btNo.isButton = true; - this.btNo.Location = new System.Drawing.Point(267, 0); - this.btNo.MouseDownColor = System.Drawing.Color.Yellow; - this.btNo.MouseOverColor = System.Drawing.Color.Yellow; - this.btNo.msg = null; - this.btNo.Name = "btNo"; - this.btNo.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btNo.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btNo.ProgressEnable = false; - this.btNo.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btNo.ProgressForeColor = System.Drawing.Color.Black; - this.btNo.ProgressMax = 100F; - this.btNo.ProgressMin = 0F; - this.btNo.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btNo.ProgressValue = 0F; - this.btNo.ShadowColor = System.Drawing.Color.Gray; - this.btNo.Sign = ""; - this.btNo.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btNo.SignColor = System.Drawing.Color.Yellow; - this.btNo.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btNo.Size = new System.Drawing.Size(229, 54); - this.btNo.TabIndex = 1; - this.btNo.Text = "아니오(ESC)"; - this.btNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btNo.TextShadow = true; - this.btNo.TextVisible = true; - this.btNo.Click += new System.EventHandler(this.btNo_Click); - // - // panel7 - // - this.panel7.Dock = System.Windows.Forms.DockStyle.Top; - this.panel7.Location = new System.Drawing.Point(6, 293); - this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(496, 5); - this.panel7.TabIndex = 0; - // - // lb3 - // - this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb3.BackColor2 = System.Drawing.Color.Gray; - this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb3.BorderSize = new System.Windows.Forms.Padding(1); - this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb3.Dock = System.Windows.Forms.DockStyle.Top; - this.lb3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb3.ForeColor = System.Drawing.Color.White; - this.lb3.GradientEnable = true; - this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb3.GradientRepeatBG = false; - this.lb3.isButton = false; - this.lb3.Location = new System.Drawing.Point(6, 243); - this.lb3.MouseDownColor = System.Drawing.Color.Yellow; - this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb3.msg = null; - this.lb3.Name = "lb3"; - this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb3.ProgressEnable = true; - this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 20F); - this.lb3.ProgressForeColor = System.Drawing.Color.Black; - this.lb3.ProgressMax = 100F; - this.lb3.ProgressMin = 0F; - this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb3.ProgressValue = 50F; - this.lb3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb3.Sign = ""; - this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb3.SignColor = System.Drawing.Color.Yellow; - this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb3.Size = new System.Drawing.Size(496, 50); - this.lb3.TabIndex = 5; - this.lb3.Text = "0%"; - this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lb3.TextShadow = true; - this.lb3.TextVisible = true; - // - // panel1 - // - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(6, 183); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(496, 5); - this.panel1.TabIndex = 11; - // - // lb2 - // - this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb2.BackColor2 = System.Drawing.Color.Gray; - this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb2.BorderSize = new System.Windows.Forms.Padding(1); - this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb2.Dock = System.Windows.Forms.DockStyle.Top; - this.lb2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb2.ForeColor = System.Drawing.Color.White; - this.lb2.GradientEnable = true; - this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb2.GradientRepeatBG = false; - this.lb2.isButton = false; - this.lb2.Location = new System.Drawing.Point(6, 133); - this.lb2.MouseDownColor = System.Drawing.Color.Yellow; - this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb2.msg = null; - this.lb2.Name = "lb2"; - this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb2.ProgressEnable = false; - this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb2.ProgressForeColor = System.Drawing.Color.Black; - this.lb2.ProgressMax = 100F; - this.lb2.ProgressMin = 0F; - this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb2.ProgressValue = 0F; - this.lb2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb2.Sign = ""; - this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb2.SignColor = System.Drawing.Color.Yellow; - this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb2.Size = new System.Drawing.Size(496, 50); - this.lb2.TabIndex = 4; - this.lb2.Text = "현재버젼 : {0}"; - this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb2.TextShadow = true; - this.lb2.TextVisible = true; - // - // panel4 - // - this.panel4.Dock = System.Windows.Forms.DockStyle.Top; - this.panel4.Location = new System.Drawing.Point(6, 128); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(496, 5); - this.panel4.TabIndex = 14; - // - // lb1 - // - this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb1.BackColor2 = System.Drawing.Color.Gray; - this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb1.BorderSize = new System.Windows.Forms.Padding(1); - this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb1.Dock = System.Windows.Forms.DockStyle.Top; - this.lb1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.lb1.ForeColor = System.Drawing.Color.White; - this.lb1.GradientEnable = true; - this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb1.GradientRepeatBG = false; - this.lb1.isButton = false; - this.lb1.Location = new System.Drawing.Point(6, 78); - this.lb1.MouseDownColor = System.Drawing.Color.Yellow; - this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb1.msg = null; - this.lb1.Name = "lb1"; - this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb1.ProgressEnable = false; - this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb1.ProgressForeColor = System.Drawing.Color.Black; - this.lb1.ProgressMax = 100F; - this.lb1.ProgressMin = 0F; - this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb1.ProgressValue = 0F; - this.lb1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb1.Sign = ""; - this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb1.SignColor = System.Drawing.Color.Yellow; - this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb1.Size = new System.Drawing.Size(496, 50); - this.lb1.TabIndex = 2; - this.lb1.Text = "드라이브 : {0}"; - this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb1.TextShadow = true; - this.lb1.TextVisible = true; - // - // panel8 - // - this.panel8.Dock = System.Windows.Forms.DockStyle.Top; - this.panel8.Location = new System.Drawing.Point(6, 73); - this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(496, 5); - this.panel8.TabIndex = 18; - // - // lbTitle - // - this.lbTitle.BackColor = System.Drawing.Color.Brown; - this.lbTitle.BackColor2 = System.Drawing.Color.Tomato; - this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbTitle.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); - this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbTitle.Cursor = System.Windows.Forms.Cursors.Hand; - this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; - this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 22F, System.Drawing.FontStyle.Bold); - this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; - this.lbTitle.GradientEnable = true; - this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Horizontal; - this.lbTitle.GradientRepeatBG = false; - this.lbTitle.isButton = true; - this.lbTitle.Location = new System.Drawing.Point(6, 6); - this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; - this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbTitle.msg = null; - this.lbTitle.Name = "lbTitle"; - this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbTitle.ProgressEnable = false; - this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; - this.lbTitle.ProgressMax = 100F; - this.lbTitle.ProgressMin = 0F; - this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbTitle.ProgressValue = 0F; - this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.lbTitle.Sign = ""; - this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbTitle.SignColor = System.Drawing.Color.Yellow; - this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbTitle.Size = new System.Drawing.Size(496, 67); - this.lbTitle.TabIndex = 3; - this.lbTitle.Text = "프로그램 업데이트"; - this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbTitle.TextShadow = true; - this.lbTitle.TextVisible = true; - this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); - // - // arLabel1 - // - this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arLabel1.BackColor2 = System.Drawing.Color.Gray; - this.arLabel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.arLabel1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.arLabel1.BorderSize = new System.Windows.Forms.Padding(1); - this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel1.Cursor = System.Windows.Forms.Cursors.Arrow; - this.arLabel1.Dock = System.Windows.Forms.DockStyle.Top; - this.arLabel1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); - this.arLabel1.ForeColor = System.Drawing.Color.White; - this.arLabel1.GradientEnable = true; - this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.arLabel1.GradientRepeatBG = false; - this.arLabel1.isButton = false; - this.arLabel1.Location = new System.Drawing.Point(6, 188); - this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel1.msg = null; - this.arLabel1.Name = "arLabel1"; - this.arLabel1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel1.ProgressEnable = false; - this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel1.ProgressMax = 100F; - this.arLabel1.ProgressMin = 0F; - this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel1.ProgressValue = 0F; - this.arLabel1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arLabel1.Sign = ""; - this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel1.SignColor = System.Drawing.Color.Yellow; - this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.arLabel1.Size = new System.Drawing.Size(496, 50); - this.arLabel1.TabIndex = 19; - this.arLabel1.Text = "패치버젼 : {0}"; - this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.arLabel1.TextShadow = true; - this.arLabel1.TextVisible = true; - // - // panel2 - // - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(6, 238); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(496, 5); - this.panel2.TabIndex = 20; - // - // fUpdateForm - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); - this.ClientSize = new System.Drawing.Size(518, 368); - this.Controls.Add(this.arPanel1); - this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.KeyPreview = true; - this.MaximizeBox = false; - this.Name = "fUpdateForm"; - this.Padding = new System.Windows.Forms.Padding(5); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Message Window"; - this.TopMost = true; - this.Load += new System.EventHandler(this.fMsg_Load); - this.arPanel1.ResumeLayout(false); - this.panButton.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - public arCtl.arLabel lb1; - private arCtl.arPanel arPanel1; - public arCtl.arLabel lbTitle; - public arCtl.arLabel lb3; - public arCtl.arLabel lb2; - private System.Windows.Forms.Timer tmBlink; - public arCtl.arLabel btYes; - public arCtl.arLabel btNo; - private System.Windows.Forms.Panel panButton; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel7; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Panel panel8; - private System.Windows.Forms.Panel panel2; - public arCtl.arLabel arLabel1; - } +namespace Project.Dialog +{ + partial class fUpdateForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tmBlink = new System.Windows.Forms.Timer(this.components); + this.arPanel1 = new arCtl.arPanel(); + this.panButton = new System.Windows.Forms.Panel(); + this.btYes = new arCtl.arLabel(); + this.btNo = new arCtl.arLabel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.lb3 = new arCtl.arLabel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.lb2 = new arCtl.arLabel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.lb1 = new arCtl.arLabel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + this.arLabel1 = new arCtl.arLabel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.arPanel1.SuspendLayout(); + this.panButton.SuspendLayout(); + this.SuspendLayout(); + // + // tmBlink + // + this.tmBlink.Enabled = true; + this.tmBlink.Interval = 300; + this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); + // + // arPanel1 + // + this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arPanel1.BorderColor = System.Drawing.Color.DimGray; + this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); + this.arPanel1.Controls.Add(this.panButton); + this.arPanel1.Controls.Add(this.panel7); + this.arPanel1.Controls.Add(this.lb3); + this.arPanel1.Controls.Add(this.panel2); + this.arPanel1.Controls.Add(this.arLabel1); + this.arPanel1.Controls.Add(this.panel1); + this.arPanel1.Controls.Add(this.lb2); + this.arPanel1.Controls.Add(this.panel4); + this.arPanel1.Controls.Add(this.lb1); + this.arPanel1.Controls.Add(this.panel8); + this.arPanel1.Controls.Add(this.lbTitle); + this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel1.ForeColor = System.Drawing.Color.Khaki; + this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel1.GradientRepeatBG = false; + this.arPanel1.Location = new System.Drawing.Point(5, 5); + this.arPanel1.Name = "arPanel1"; + this.arPanel1.Padding = new System.Windows.Forms.Padding(6); + this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel1.ProgressMax = 100F; + this.arPanel1.ProgressMin = 0F; + this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel1.ProgressValue = 0F; + this.arPanel1.ShadowColor = System.Drawing.Color.Black; + this.arPanel1.ShowBorder = true; + this.arPanel1.Size = new System.Drawing.Size(508, 358); + this.arPanel1.TabIndex = 0; + this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel1.TextShadow = false; + this.arPanel1.UseProgressBar = false; + // + // panButton + // + this.panButton.Controls.Add(this.btYes); + this.panButton.Controls.Add(this.btNo); + this.panButton.Dock = System.Windows.Forms.DockStyle.Fill; + this.panButton.Location = new System.Drawing.Point(6, 298); + this.panButton.Name = "panButton"; + this.panButton.Size = new System.Drawing.Size(496, 54); + this.panButton.TabIndex = 10; + // + // btYes + // + this.btYes.BackColor = System.Drawing.Color.SeaGreen; + this.btYes.BackColor2 = System.Drawing.Color.SeaGreen; + this.btYes.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btYes.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btYes.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btYes.BorderSize = new System.Windows.Forms.Padding(1); + this.btYes.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btYes.Cursor = System.Windows.Forms.Cursors.Hand; + this.btYes.Dock = System.Windows.Forms.DockStyle.Fill; + this.btYes.Enabled = false; + this.btYes.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btYes.ForeColor = System.Drawing.Color.Black; + this.btYes.GradientEnable = true; + this.btYes.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btYes.GradientRepeatBG = false; + this.btYes.isButton = true; + this.btYes.Location = new System.Drawing.Point(0, 0); + this.btYes.MouseDownColor = System.Drawing.Color.Yellow; + this.btYes.MouseOverColor = System.Drawing.Color.Yellow; + this.btYes.msg = null; + this.btYes.Name = "btYes"; + this.btYes.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btYes.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btYes.ProgressEnable = false; + this.btYes.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btYes.ProgressForeColor = System.Drawing.Color.Black; + this.btYes.ProgressMax = 100F; + this.btYes.ProgressMin = 0F; + this.btYes.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btYes.ProgressValue = 0F; + this.btYes.ShadowColor = System.Drawing.Color.Gray; + this.btYes.Sign = ""; + this.btYes.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btYes.SignColor = System.Drawing.Color.Yellow; + this.btYes.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btYes.Size = new System.Drawing.Size(267, 54); + this.btYes.TabIndex = 0; + this.btYes.Text = "예(F5)"; + this.btYes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btYes.TextShadow = true; + this.btYes.TextVisible = true; + this.btYes.Click += new System.EventHandler(this.btYes_Click); + // + // btNo + // + this.btNo.BackColor = System.Drawing.Color.Goldenrod; + this.btNo.BackColor2 = System.Drawing.Color.Goldenrod; + this.btNo.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btNo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btNo.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btNo.BorderSize = new System.Windows.Forms.Padding(1); + this.btNo.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btNo.Cursor = System.Windows.Forms.Cursors.Hand; + this.btNo.Dock = System.Windows.Forms.DockStyle.Right; + this.btNo.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btNo.ForeColor = System.Drawing.Color.Black; + this.btNo.GradientEnable = true; + this.btNo.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btNo.GradientRepeatBG = false; + this.btNo.isButton = true; + this.btNo.Location = new System.Drawing.Point(267, 0); + this.btNo.MouseDownColor = System.Drawing.Color.Yellow; + this.btNo.MouseOverColor = System.Drawing.Color.Yellow; + this.btNo.msg = null; + this.btNo.Name = "btNo"; + this.btNo.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btNo.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btNo.ProgressEnable = false; + this.btNo.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btNo.ProgressForeColor = System.Drawing.Color.Black; + this.btNo.ProgressMax = 100F; + this.btNo.ProgressMin = 0F; + this.btNo.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btNo.ProgressValue = 0F; + this.btNo.ShadowColor = System.Drawing.Color.Gray; + this.btNo.Sign = ""; + this.btNo.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btNo.SignColor = System.Drawing.Color.Yellow; + this.btNo.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btNo.Size = new System.Drawing.Size(229, 54); + this.btNo.TabIndex = 1; + this.btNo.Text = "아니오(ESC)"; + this.btNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btNo.TextShadow = true; + this.btNo.TextVisible = true; + this.btNo.Click += new System.EventHandler(this.btNo_Click); + // + // panel7 + // + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(6, 293); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(496, 5); + this.panel7.TabIndex = 0; + // + // lb3 + // + this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb3.BackColor2 = System.Drawing.Color.Gray; + this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb3.BorderSize = new System.Windows.Forms.Padding(1); + this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb3.Dock = System.Windows.Forms.DockStyle.Top; + this.lb3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb3.ForeColor = System.Drawing.Color.White; + this.lb3.GradientEnable = true; + this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb3.GradientRepeatBG = false; + this.lb3.isButton = false; + this.lb3.Location = new System.Drawing.Point(6, 243); + this.lb3.MouseDownColor = System.Drawing.Color.Yellow; + this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb3.msg = null; + this.lb3.Name = "lb3"; + this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb3.ProgressEnable = true; + this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 20F); + this.lb3.ProgressForeColor = System.Drawing.Color.Black; + this.lb3.ProgressMax = 100F; + this.lb3.ProgressMin = 0F; + this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb3.ProgressValue = 50F; + this.lb3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb3.Sign = ""; + this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb3.SignColor = System.Drawing.Color.Yellow; + this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb3.Size = new System.Drawing.Size(496, 50); + this.lb3.TabIndex = 5; + this.lb3.Text = "0%"; + this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lb3.TextShadow = true; + this.lb3.TextVisible = true; + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(6, 183); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(496, 5); + this.panel1.TabIndex = 11; + // + // lb2 + // + this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb2.BackColor2 = System.Drawing.Color.Gray; + this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb2.BorderSize = new System.Windows.Forms.Padding(1); + this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb2.Dock = System.Windows.Forms.DockStyle.Top; + this.lb2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb2.ForeColor = System.Drawing.Color.White; + this.lb2.GradientEnable = true; + this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb2.GradientRepeatBG = false; + this.lb2.isButton = false; + this.lb2.Location = new System.Drawing.Point(6, 133); + this.lb2.MouseDownColor = System.Drawing.Color.Yellow; + this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb2.msg = null; + this.lb2.Name = "lb2"; + this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb2.ProgressEnable = false; + this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb2.ProgressForeColor = System.Drawing.Color.Black; + this.lb2.ProgressMax = 100F; + this.lb2.ProgressMin = 0F; + this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb2.ProgressValue = 0F; + this.lb2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb2.Sign = ""; + this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb2.SignColor = System.Drawing.Color.Yellow; + this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb2.Size = new System.Drawing.Size(496, 50); + this.lb2.TabIndex = 4; + this.lb2.Text = "현재버젼 : {0}"; + this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb2.TextShadow = true; + this.lb2.TextVisible = true; + // + // panel4 + // + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(6, 128); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(496, 5); + this.panel4.TabIndex = 14; + // + // lb1 + // + this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb1.BackColor2 = System.Drawing.Color.Gray; + this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb1.BorderSize = new System.Windows.Forms.Padding(1); + this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb1.Dock = System.Windows.Forms.DockStyle.Top; + this.lb1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.lb1.ForeColor = System.Drawing.Color.White; + this.lb1.GradientEnable = true; + this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb1.GradientRepeatBG = false; + this.lb1.isButton = false; + this.lb1.Location = new System.Drawing.Point(6, 78); + this.lb1.MouseDownColor = System.Drawing.Color.Yellow; + this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb1.msg = null; + this.lb1.Name = "lb1"; + this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb1.ProgressEnable = false; + this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb1.ProgressForeColor = System.Drawing.Color.Black; + this.lb1.ProgressMax = 100F; + this.lb1.ProgressMin = 0F; + this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb1.ProgressValue = 0F; + this.lb1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb1.Sign = ""; + this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb1.SignColor = System.Drawing.Color.Yellow; + this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb1.Size = new System.Drawing.Size(496, 50); + this.lb1.TabIndex = 2; + this.lb1.Text = "드라이브 : {0}"; + this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb1.TextShadow = true; + this.lb1.TextVisible = true; + // + // panel8 + // + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(6, 73); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(496, 5); + this.panel8.TabIndex = 18; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Brown; + this.lbTitle.BackColor2 = System.Drawing.Color.Tomato; + this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 22F, System.Drawing.FontStyle.Bold); + this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Horizontal; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = true; + this.lbTitle.Location = new System.Drawing.Point(6, 6); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(496, 67); + this.lbTitle.TabIndex = 3; + this.lbTitle.Text = "프로그램 업데이트"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + // + // arLabel1 + // + this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arLabel1.BackColor2 = System.Drawing.Color.Gray; + this.arLabel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel1.BorderSize = new System.Windows.Forms.Padding(1); + this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel1.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold); + this.arLabel1.ForeColor = System.Drawing.Color.White; + this.arLabel1.GradientEnable = true; + this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel1.GradientRepeatBG = false; + this.arLabel1.isButton = false; + this.arLabel1.Location = new System.Drawing.Point(6, 188); + this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel1.msg = null; + this.arLabel1.Name = "arLabel1"; + this.arLabel1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel1.ProgressEnable = false; + this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel1.ProgressMax = 100F; + this.arLabel1.ProgressMin = 0F; + this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel1.ProgressValue = 0F; + this.arLabel1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel1.Sign = ""; + this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel1.SignColor = System.Drawing.Color.Yellow; + this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel1.Size = new System.Drawing.Size(496, 50); + this.arLabel1.TabIndex = 19; + this.arLabel1.Text = "패치버젼 : {0}"; + this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.arLabel1.TextShadow = true; + this.arLabel1.TextVisible = true; + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(6, 238); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(496, 5); + this.panel2.TabIndex = 20; + // + // fUpdateForm + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.ClientSize = new System.Drawing.Size(518, 368); + this.Controls.Add(this.arPanel1); + this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "fUpdateForm"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Message Window"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fMsg_Load); + this.arPanel1.ResumeLayout(false); + this.panButton.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + public arCtl.arLabel lb1; + private arCtl.arPanel arPanel1; + public arCtl.arLabel lbTitle; + public arCtl.arLabel lb3; + public arCtl.arLabel lb2; + private System.Windows.Forms.Timer tmBlink; + public arCtl.arLabel btYes; + public arCtl.arLabel btNo; + private System.Windows.Forms.Panel panButton; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panel2; + public arCtl.arLabel arLabel1; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fUpdateForm.cs b/HMI/Project/Dialog/fUpdateForm.cs similarity index 97% rename from Cs_HMI/Project/Dialog/fUpdateForm.cs rename to HMI/Project/Dialog/fUpdateForm.cs index f4a59f4..58d944e 100644 --- a/Cs_HMI/Project/Dialog/fUpdateForm.cs +++ b/HMI/Project/Dialog/fUpdateForm.cs @@ -1,247 +1,247 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.IO.Compression; -using AR; - -namespace Project.Dialog -{ - public partial class fUpdateForm : Form - { - private Boolean fMove = false; - private Point MDownPos; - private string _drive = string.Empty; - - public fUpdateForm() - { - InitializeComponent(); - } - - public fUpdateForm(string drvName) - { - InitializeComponent(); - _drive = drvName; - this.FormClosing += fMsgWindow_FormClosing; - this.KeyDown += FJobSelect_KeyDown; - this.lbTitle.MouseMove += label1_MouseMove; - lbTitle.MouseUp += label1_MouseUp; - lbTitle.MouseDown += label1_MouseDown; - lbTitle.MouseDoubleClick += label1_MouseDoubleClick; - - - } - - void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) - { - - } - - private void fMsg_Load(object sender, EventArgs e) - { - //해당드라이브에서 패치를 체크한다. - // AGV폴더 아래에 Patch_AGV_20200407.zip 식으로 파일을 처리한다 - - lb3.ProgressValue = 0; - lb3.Text = "--"; - lb1.Text = string.Format("드라이브 : {0}", _drive); - lb2.Text = "현재버젼 : " + PUB.PatchVersion; - var dir = System.IO.Path.Combine(this._drive, "AGV"); - if(System.IO.Directory.Exists(dir)) - { - //폴더는 있다 - var files = System.IO.Directory.GetFiles(dir, "Patch_AGV_*.zip"); - if(files == null || files.Length == 0) - { - arLabel1.Text = "패치파일이 없습니다"; - } - else - { - var LastFile = files.OrderByDescending(t => t).FirstOrDefault(); - var splbuf = LastFile.Split('_'); - - patchversion = splbuf[2] + splbuf[3].ToUpper().Replace(".ZIP", ""); - arLabel1.Text = "패치버젼 : " + patchversion; - arLabel1.Tag = LastFile; - btYes.Enabled = true; - } - } - else - { - arLabel1.Text = "패치폴더("+dir +")가 없습니다"; - - } - } - string patchversion = ""; - private void FJobSelect_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Escape) - { - e.Handled = true; - e.SuppressKeyPress = false; - DialogResult = DialogResult.Cancel; - this.Close(); - } - else if (e.KeyCode == Keys.F5) - btYes.PerformClick(); - } - - //public void setMessage(string msg) - //{ - // //msg를 분리해서 표시를 한다. - // var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3 }; - // var lineBuf = msg.Replace("\r", "").Split('\n'); - // int maxLine = Math.Min(lbs.Length, lineBuf.Length); - - // for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 - // { - // if (i >= lineBuf.Length) - // { - // lbs[i].Text = string.Empty; - // } - // else - // { - // if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); - // else lbs[i].Text = lineBuf[i]; - // } - - // } - //} - - - - private void label1_MouseMove(object sender, MouseEventArgs e) - { - if (fMove) - { - Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); - this.Left += offset.X; - this.Top += offset.Y; - offset = new Point(0, 0); - } - } - - private void label1_MouseUp(object sender, MouseEventArgs e) - { - fMove = false; - } - - private void label1_MouseDown(object sender, MouseEventArgs e) - { - MDownPos = new Point(e.X, e.Y); - fMove = true; - } - - private void label1_MouseDoubleClick(object sender, MouseEventArgs e) - { - - - } - public enum EWinColor - { - Attention = 0, - Error, - Information - } - - public void SetWindowColor(EWinColor wincolor) - { - switch (wincolor) - { - case EWinColor.Attention: - lbTitle.BackColor = Color.Gold; - lbTitle.BackColor2 = Color.Orange; - lbTitle.ShadowColor = Color.FromArgb(150, 150, 150); - lbTitle.ForeColor = Color.FromArgb(50, 50, 50); - break; - case EWinColor.Error: - lbTitle.BackColor = Color.Brown; - lbTitle.BackColor2 = Color.Tomato; - lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); - lbTitle.ForeColor = Color.WhiteSmoke; - break; - default: - lbTitle.BackColor = Color.DarkTurquoise; - lbTitle.BackColor2 = Color.LightSkyBlue; - lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); - lbTitle.ForeColor = Color.WhiteSmoke; - break; - } - } - - private void lbTitle_Click(object sender, EventArgs e) - { - this.DialogResult = DialogResult.Cancel; - this.Close(); - } - - private void tmBlink_Tick(object sender, EventArgs e) - { - var bg1 = lbTitle.BackColor; - var bg2 = lbTitle.BackColor2; - lbTitle.BackColor = (Color)bg2; - lbTitle.BackColor2 = (Color)bg1; - } - - private void btYes_Click(object sender, EventArgs e) - { - //파일 - var file = arLabel1.Tag.ToString(); - if(System.IO.File.Exists(file)) - { - //이 파일을 _patch 폴더에 압축해제한다. - var dir_path = new System.IO.DirectoryInfo(System.IO.Path.Combine(UTIL.CurrentPath ,"_patch")); - if (dir_path.Exists == true) - { - try - { - dir_path.Delete(true); - } catch (Exception ex) - { - UTIL.MsgE(ex.Message); - return; - } - } - else - { - dir_path.Create(); //폴더를 생성해준다. - } - - //해당폴더에 압축을 해제해준다. - ZipFile.ExtractToDirectory(file, dir_path.FullName); - - //패치정보파일 추가 - var infofile = System.IO.Path.Combine(dir_path.FullName, "version.txt"); - System.IO.File.WriteAllText(infofile, patchversion, System.Text.Encoding.UTF8); - - DialogResult = DialogResult.Yes; - this.Close(); - } - else - { - UTIL.MsgE("패치파일이 없습니다\n" + file); - return; - } - - } - - private void F_ExtractProgress(object sender, EventArgs e) - { - // System.IO.Compression은 진행률 이벤트를 제공하지 않으므로 - // 필요한 경우 별도의 진행률 계산 로직을 구현해야 합니다. - } - - private void btNo_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.Cancel; - this.Close(); - - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.IO; +using System.IO.Compression; +using AR; + +namespace Project.Dialog +{ + public partial class fUpdateForm : Form + { + private Boolean fMove = false; + private Point MDownPos; + private string _drive = string.Empty; + + public fUpdateForm() + { + InitializeComponent(); + } + + public fUpdateForm(string drvName) + { + InitializeComponent(); + _drive = drvName; + this.FormClosing += fMsgWindow_FormClosing; + this.KeyDown += FJobSelect_KeyDown; + this.lbTitle.MouseMove += label1_MouseMove; + lbTitle.MouseUp += label1_MouseUp; + lbTitle.MouseDown += label1_MouseDown; + lbTitle.MouseDoubleClick += label1_MouseDoubleClick; + + + } + + void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) + { + + } + + private void fMsg_Load(object sender, EventArgs e) + { + //해당드라이브에서 패치를 체크한다. + // AGV폴더 아래에 Patch_AGV_20200407.zip 식으로 파일을 처리한다 + + lb3.ProgressValue = 0; + lb3.Text = "--"; + lb1.Text = string.Format("드라이브 : {0}", _drive); + lb2.Text = "현재버젼 : " + PUB.PatchVersion; + var dir = System.IO.Path.Combine(this._drive, "AGV"); + if(System.IO.Directory.Exists(dir)) + { + //폴더는 있다 + var files = System.IO.Directory.GetFiles(dir, "Patch_AGV_*.zip"); + if(files == null || files.Length == 0) + { + arLabel1.Text = "패치파일이 없습니다"; + } + else + { + var LastFile = files.OrderByDescending(t => t).FirstOrDefault(); + var splbuf = LastFile.Split('_'); + + patchversion = splbuf[2] + splbuf[3].ToUpper().Replace(".ZIP", ""); + arLabel1.Text = "패치버젼 : " + patchversion; + arLabel1.Tag = LastFile; + btYes.Enabled = true; + } + } + else + { + arLabel1.Text = "패치폴더("+dir +")가 없습니다"; + + } + } + string patchversion = ""; + private void FJobSelect_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) + { + e.Handled = true; + e.SuppressKeyPress = false; + DialogResult = DialogResult.Cancel; + this.Close(); + } + else if (e.KeyCode == Keys.F5) + btYes.PerformClick(); + } + + //public void setMessage(string msg) + //{ + // //msg를 분리해서 표시를 한다. + // var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3 }; + // var lineBuf = msg.Replace("\r", "").Split('\n'); + // int maxLine = Math.Min(lbs.Length, lineBuf.Length); + + // for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 + // { + // if (i >= lineBuf.Length) + // { + // lbs[i].Text = string.Empty; + // } + // else + // { + // if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); + // else lbs[i].Text = lineBuf[i]; + // } + + // } + //} + + + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + private void label1_MouseDoubleClick(object sender, MouseEventArgs e) + { + + + } + public enum EWinColor + { + Attention = 0, + Error, + Information + } + + public void SetWindowColor(EWinColor wincolor) + { + switch (wincolor) + { + case EWinColor.Attention: + lbTitle.BackColor = Color.Gold; + lbTitle.BackColor2 = Color.Orange; + lbTitle.ShadowColor = Color.FromArgb(150, 150, 150); + lbTitle.ForeColor = Color.FromArgb(50, 50, 50); + break; + case EWinColor.Error: + lbTitle.BackColor = Color.Brown; + lbTitle.BackColor2 = Color.Tomato; + lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + lbTitle.ForeColor = Color.WhiteSmoke; + break; + default: + lbTitle.BackColor = Color.DarkTurquoise; + lbTitle.BackColor2 = Color.LightSkyBlue; + lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + lbTitle.ForeColor = Color.WhiteSmoke; + break; + } + } + + private void lbTitle_Click(object sender, EventArgs e) + { + this.DialogResult = DialogResult.Cancel; + this.Close(); + } + + private void tmBlink_Tick(object sender, EventArgs e) + { + var bg1 = lbTitle.BackColor; + var bg2 = lbTitle.BackColor2; + lbTitle.BackColor = (Color)bg2; + lbTitle.BackColor2 = (Color)bg1; + } + + private void btYes_Click(object sender, EventArgs e) + { + //파일 + var file = arLabel1.Tag.ToString(); + if(System.IO.File.Exists(file)) + { + //이 파일을 _patch 폴더에 압축해제한다. + var dir_path = new System.IO.DirectoryInfo(System.IO.Path.Combine(UTIL.CurrentPath ,"_patch")); + if (dir_path.Exists == true) + { + try + { + dir_path.Delete(true); + } catch (Exception ex) + { + UTIL.MsgE(ex.Message); + return; + } + } + else + { + dir_path.Create(); //폴더를 생성해준다. + } + + //해당폴더에 압축을 해제해준다. + ZipFile.ExtractToDirectory(file, dir_path.FullName); + + //패치정보파일 추가 + var infofile = System.IO.Path.Combine(dir_path.FullName, "version.txt"); + System.IO.File.WriteAllText(infofile, patchversion, System.Text.Encoding.UTF8); + + DialogResult = DialogResult.Yes; + this.Close(); + } + else + { + UTIL.MsgE("패치파일이 없습니다\n" + file); + return; + } + + } + + private void F_ExtractProgress(object sender, EventArgs e) + { + // System.IO.Compression은 진행률 이벤트를 제공하지 않으므로 + // 필요한 경우 별도의 진행률 계산 로직을 구현해야 합니다. + } + + private void btNo_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Cancel; + this.Close(); + + } + } +} diff --git a/Cs_HMI/Project/Dialog/fUpdateForm.resx b/HMI/Project/Dialog/fUpdateForm.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fUpdateForm.resx rename to HMI/Project/Dialog/fUpdateForm.resx index fcee611..eedca23 100644 --- a/Cs_HMI/Project/Dialog/fUpdateForm.resx +++ b/HMI/Project/Dialog/fUpdateForm.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fVolume.Designer.cs b/HMI/Project/Dialog/fVolume.Designer.cs similarity index 97% rename from Cs_HMI/Project/Dialog/fVolume.Designer.cs rename to HMI/Project/Dialog/fVolume.Designer.cs index ac34e42..4999ae1 100644 --- a/Cs_HMI/Project/Dialog/fVolume.Designer.cs +++ b/HMI/Project/Dialog/fVolume.Designer.cs @@ -1,168 +1,168 @@ -namespace Project.Dialog -{ - partial class fVolume - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.button3 = new System.Windows.Forms.Button(); - this.button4 = new System.Windows.Forms.Button(); - this.button5 = new System.Windows.Forms.Button(); - this.button6 = new System.Windows.Forms.Button(); - this.button7 = new System.Windows.Forms.Button(); - this.button8 = new System.Windows.Forms.Button(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Location = new System.Drawing.Point(10, 9); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(169, 103); - this.button1.TabIndex = 0; - this.button1.Text = "up"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button2 - // - this.button2.Location = new System.Drawing.Point(185, 9); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(169, 103); - this.button2.TabIndex = 1; - this.button2.Text = "down"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // button3 - // - this.button3.Location = new System.Drawing.Point(360, 9); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(169, 103); - this.button3.TabIndex = 2; - this.button3.Text = "mute"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); - // - // button4 - // - this.button4.Location = new System.Drawing.Point(185, 118); - this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(169, 103); - this.button4.TabIndex = 4; - this.button4.Text = "music down"; - this.button4.UseVisualStyleBackColor = true; - this.button4.Click += new System.EventHandler(this.button4_Click); - // - // button5 - // - this.button5.Location = new System.Drawing.Point(10, 118); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(169, 103); - this.button5.TabIndex = 3; - this.button5.Text = "music up"; - this.button5.UseVisualStyleBackColor = true; - this.button5.Click += new System.EventHandler(this.button5_Click); - // - // button6 - // - this.button6.Location = new System.Drawing.Point(359, 118); - this.button6.Name = "button6"; - this.button6.Size = new System.Drawing.Size(169, 46); - this.button6.TabIndex = 5; - this.button6.Text = "play"; - this.button6.UseVisualStyleBackColor = true; - this.button6.Click += new System.EventHandler(this.button6_Click); - // - // button7 - // - this.button7.Location = new System.Drawing.Point(359, 175); - this.button7.Name = "button7"; - this.button7.Size = new System.Drawing.Size(169, 46); - this.button7.TabIndex = 5; - this.button7.Text = "stop"; - this.button7.UseVisualStyleBackColor = true; - this.button7.Click += new System.EventHandler(this.button7_Click); - // - // button8 - // - this.button8.Location = new System.Drawing.Point(10, 227); - this.button8.Name = "button8"; - this.button8.Size = new System.Drawing.Size(169, 46); - this.button8.TabIndex = 6; - this.button8.Text = "Speak"; - this.button8.UseVisualStyleBackColor = true; - this.button8.Click += new System.EventHandler(this.button8_Click); - // - // textBox1 - // - this.textBox1.Font = new System.Drawing.Font("굴림", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.textBox1.Location = new System.Drawing.Point(185, 234); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(343, 32); - this.textBox1.TabIndex = 7; - this.textBox1.Text = "음성 테스트 메세지 입니다"; - // - // fVolume - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(540, 282); - this.Controls.Add(this.textBox1); - this.Controls.Add(this.button8); - this.Controls.Add(this.button7); - this.Controls.Add(this.button6); - this.Controls.Add(this.button4); - this.Controls.Add(this.button5); - this.Controls.Add(this.button3); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "fVolume"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "fVolume"; - this.Load += new System.EventHandler(this.fVolume_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button3; - private System.Windows.Forms.Button button4; - private System.Windows.Forms.Button button5; - private System.Windows.Forms.Button button6; - private System.Windows.Forms.Button button7; - private System.Windows.Forms.Button button8; - private System.Windows.Forms.TextBox textBox1; - } +namespace Project.Dialog +{ + partial class fVolume + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(10, 9); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(169, 103); + this.button1.TabIndex = 0; + this.button1.Text = "up"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(185, 9); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(169, 103); + this.button2.TabIndex = 1; + this.button2.Text = "down"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(360, 9); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(169, 103); + this.button3.TabIndex = 2; + this.button3.Text = "mute"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button4 + // + this.button4.Location = new System.Drawing.Point(185, 118); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(169, 103); + this.button4.TabIndex = 4; + this.button4.Text = "music down"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(10, 118); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(169, 103); + this.button5.TabIndex = 3; + this.button5.Text = "music up"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.button6.Location = new System.Drawing.Point(359, 118); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(169, 46); + this.button6.TabIndex = 5; + this.button6.Text = "play"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button7 + // + this.button7.Location = new System.Drawing.Point(359, 175); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(169, 46); + this.button7.TabIndex = 5; + this.button7.Text = "stop"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button8 + // + this.button8.Location = new System.Drawing.Point(10, 227); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(169, 46); + this.button8.TabIndex = 6; + this.button8.Text = "Speak"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("굴림", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.textBox1.Location = new System.Drawing.Point(185, 234); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(343, 32); + this.textBox1.TabIndex = 7; + this.textBox1.Text = "음성 테스트 메세지 입니다"; + // + // fVolume + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(540, 282); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.button8); + this.Controls.Add(this.button7); + this.Controls.Add(this.button6); + this.Controls.Add(this.button4); + this.Controls.Add(this.button5); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fVolume"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fVolume"; + this.Load += new System.EventHandler(this.fVolume_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.TextBox textBox1; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fVolume.cs b/HMI/Project/Dialog/fVolume.cs similarity index 96% rename from Cs_HMI/Project/Dialog/fVolume.cs rename to HMI/Project/Dialog/fVolume.cs index 90b49a1..545d414 100644 --- a/Cs_HMI/Project/Dialog/fVolume.cs +++ b/HMI/Project/Dialog/fVolume.cs @@ -1,128 +1,128 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Project.Dialog -{ - public partial class fVolume : Form - { - //AudioSwitcher.AudioApi.CoreAudio.CoreAudioController ac; - //AudioSwitcher.AudioApi.CoreAudio.CoreAudioDevice dev; - System.Media.SoundPlayer snd; - - private const int APPCOMMAND_VOLUME_MUTE = 0x80000; - private const int APPCOMMAND_VOLUME_UP = 0xA0000; - private const int APPCOMMAND_VOLUME_DOWN = 0x90000; - private const int WM_APPCOMMAND = 0x319; - - [DllImport("user32.dll")] - public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, - IntPtr wParam, IntPtr lParam); - - private void Mute() - { - SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, - (IntPtr)APPCOMMAND_VOLUME_MUTE); - } - - private void VolDown() - { - SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, - (IntPtr)APPCOMMAND_VOLUME_DOWN); - } - - private void VolUp() - { - SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, - (IntPtr)APPCOMMAND_VOLUME_UP); - } - - public fVolume() - { - InitializeComponent(); - } - - private void trackBar1_Scroll(object sender, EventArgs e) - { - //if(dev != null) - //{ - // dev.Volume = this.trackBar1.Value; - // System.Media.SystemSounds.Beep.Play(); - //} - } - - private void fVolume_Load(object sender, EventArgs e) - { - snd = new System.Media.SoundPlayer(); - //var dev = new AudioSwitcher.AudioApi.CoreAudio.CoreAudioController().GetPlaybackDevices(); - //if (dev == null) - //{ - // trackBar1.Enabled = false; - // UTIL.MsgE("사운드 장치가 없습니다", true); - //} - //else - //{ - // this.trackBar1.Value = (int)dev.Volume; - // System.Media.SystemSounds.Beep.Play(); - //} - } - - private void button1_Click(object sender, EventArgs e) - { - //up - VolUp(); - System.Media.SystemSounds.Beep.Play(); - } - - private void button2_Click(object sender, EventArgs e) - { - VolDown(); - System.Media.SystemSounds.Beep.Play(); - } - - private void button3_Click(object sender, EventArgs e) - { - Mute(); - } - - private void button5_Click(object sender, EventArgs e) - { - var newvol = PUB.setting.musicvol + 10; - if (newvol > 100) newvol = 100; - if (newvol < 0) newvol = 0; - PUB.SetVolume(newvol); - } - - private void button4_Click(object sender, EventArgs e) - { - var newvol = PUB.setting.musicvol - 10; - if (newvol > 100) newvol = 100; - if (newvol < 0) newvol = 0; - PUB.SetVolume(newvol); - } - - private void button7_Click(object sender, EventArgs e) - { - PUB.mplayer.Stop(); - } - - private void button6_Click(object sender, EventArgs e) - { - PUB.mplayer.Play(); - } - - private void button8_Click(object sender, EventArgs e) - { - var s = "고수석님, 그 에러는 못고쳐요. 포기 하면 편해요"; - var s1 = $"현재시간은 {DateTime.Now.Hour}시 입니다"; - PUB.Speak(this.textBox1.Text); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fVolume : Form + { + //AudioSwitcher.AudioApi.CoreAudio.CoreAudioController ac; + //AudioSwitcher.AudioApi.CoreAudio.CoreAudioDevice dev; + System.Media.SoundPlayer snd; + + private const int APPCOMMAND_VOLUME_MUTE = 0x80000; + private const int APPCOMMAND_VOLUME_UP = 0xA0000; + private const int APPCOMMAND_VOLUME_DOWN = 0x90000; + private const int WM_APPCOMMAND = 0x319; + + [DllImport("user32.dll")] + public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, + IntPtr wParam, IntPtr lParam); + + private void Mute() + { + SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, + (IntPtr)APPCOMMAND_VOLUME_MUTE); + } + + private void VolDown() + { + SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, + (IntPtr)APPCOMMAND_VOLUME_DOWN); + } + + private void VolUp() + { + SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, + (IntPtr)APPCOMMAND_VOLUME_UP); + } + + public fVolume() + { + InitializeComponent(); + } + + private void trackBar1_Scroll(object sender, EventArgs e) + { + //if(dev != null) + //{ + // dev.Volume = this.trackBar1.Value; + // System.Media.SystemSounds.Beep.Play(); + //} + } + + private void fVolume_Load(object sender, EventArgs e) + { + snd = new System.Media.SoundPlayer(); + //var dev = new AudioSwitcher.AudioApi.CoreAudio.CoreAudioController().GetPlaybackDevices(); + //if (dev == null) + //{ + // trackBar1.Enabled = false; + // UTIL.MsgE("사운드 장치가 없습니다", true); + //} + //else + //{ + // this.trackBar1.Value = (int)dev.Volume; + // System.Media.SystemSounds.Beep.Play(); + //} + } + + private void button1_Click(object sender, EventArgs e) + { + //up + VolUp(); + System.Media.SystemSounds.Beep.Play(); + } + + private void button2_Click(object sender, EventArgs e) + { + VolDown(); + System.Media.SystemSounds.Beep.Play(); + } + + private void button3_Click(object sender, EventArgs e) + { + Mute(); + } + + private void button5_Click(object sender, EventArgs e) + { + var newvol = PUB.setting.musicvol + 10; + if (newvol > 100) newvol = 100; + if (newvol < 0) newvol = 0; + PUB.SetVolume(newvol); + } + + private void button4_Click(object sender, EventArgs e) + { + var newvol = PUB.setting.musicvol - 10; + if (newvol > 100) newvol = 100; + if (newvol < 0) newvol = 0; + PUB.SetVolume(newvol); + } + + private void button7_Click(object sender, EventArgs e) + { + PUB.mplayer.Stop(); + } + + private void button6_Click(object sender, EventArgs e) + { + PUB.mplayer.Play(); + } + + private void button8_Click(object sender, EventArgs e) + { + var s = "고수석님, 그 에러는 못고쳐요. 포기 하면 편해요"; + var s1 = $"현재시간은 {DateTime.Now.Hour}시 입니다"; + PUB.Speak(this.textBox1.Text); + } + } +} diff --git a/Cs_HMI/Project/Dialog/fVolume.resx b/HMI/Project/Dialog/fVolume.resx similarity index 97% rename from Cs_HMI/Project/Dialog/fVolume.resx rename to HMI/Project/Dialog/fVolume.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/Project/Dialog/fVolume.resx +++ b/HMI/Project/Dialog/fVolume.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/Project/Dialog/fXbeeSetting.Designer.cs b/HMI/Project/Dialog/fXbeeSetting.Designer.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fXbeeSetting.Designer.cs rename to HMI/Project/Dialog/fXbeeSetting.Designer.cs diff --git a/Cs_HMI/Project/Dialog/fXbeeSetting.cs b/HMI/Project/Dialog/fXbeeSetting.cs similarity index 100% rename from Cs_HMI/Project/Dialog/fXbeeSetting.cs rename to HMI/Project/Dialog/fXbeeSetting.cs diff --git a/Cs_HMI/Project/Dialog/fXbeeSetting.resx b/HMI/Project/Dialog/fXbeeSetting.resx similarity index 100% rename from Cs_HMI/Project/Dialog/fXbeeSetting.resx rename to HMI/Project/Dialog/fXbeeSetting.resx diff --git a/Cs_HMI/Project/Manager/DataBaseManager.cs b/HMI/Project/Manager/DataBaseManager.cs similarity index 97% rename from Cs_HMI/Project/Manager/DataBaseManager.cs rename to HMI/Project/Manager/DataBaseManager.cs index 38a13ac..08db08b 100644 --- a/Cs_HMI/Project/Manager/DataBaseManager.cs +++ b/HMI/Project/Manager/DataBaseManager.cs @@ -1,418 +1,418 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using AR; - -namespace Project.Manager -{ - public class DatabaseManager - { - /// - /// 파일검색방법 - /// - public enum eFileSearchMode - { - Normal, - Project, - Model, - MCCode, - Barcode, - All, - } - - public enum eStripSearchResult - { - None, - OK, - NG, - } - - /// - /// 버퍼갯수(지정 갯수가 차면 실제파일에 기록을 한다) - /// - private int MaxBufferCount = 1; - - /// - /// 최종파일 - /// - private String LastFileName; - - - private string[] dataPath = new string[] { }; - private DataSet1.ResultDataDataTable dt; - // private string _subDirName = string.Empty; - - /// - /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) - /// - public DatabaseManager(string[] dataPath_, int _MaxBufferCount = 100) - { - LastFileName = string.Empty; - dt = new DataSet1.ResultDataDataTable(); - - this.dataPath = dataPath_; - if (dataPath_.Length == 0) dataPath = new string[]{ System.IO.Path.Combine(UTIL.CurrentPath, "Data")}; - - //최대버퍼갯수(이 갯수를 넘어가면 실제 파일에 기록한다) - MaxBufferCount = _MaxBufferCount; - //_subDirName = subDirName; - } - - //해당 결과를 버퍼에 추가한다. - public void Add(DataSet1.ResultDataRow dataRow, Boolean autoFlush = false) - { - //입력된 자료를 복사해서 버퍼에 넣는다. - var newdr = this.dt.NewResultDataRow(); - foreach (string col in getDataColumnList()) - { - newdr[col] = dataRow[col]; - } - this.dt.AddResultDataRow(newdr); - - //만약자료가 일정데이터수를 넘었다면 flush 한다 - if (autoFlush || dt.Rows.Count >= MaxBufferCount) - { - Flush(); //파일에 실제저장한다. - } - } - - /// - /// 신규파일을 생성합니다. - /// - /// - void MakeFile(string filename) - { - //파일이없다면 헤더를 만들어준다. - AR.XMLHelper xml = new AR.XMLHelper(filename); - xml.CreateFile(); - } - - /// - /// 저장해야할 컬럼명을 반환한다.(idx는 제외한다) - /// - /// - public string[] getDataColumnList() - { - //저장하고자하는 순서를 미리 지정한다.(지정안된 자료는 알아서 저장된다) - string[] reserveCols = new string[] { }; - List cols = new List(); - cols.AddRange(reserveCols); - - for (int i = 0; i < this.dt.Columns.Count; i++) - { - string colname = dt.Columns[i].ColumnName; - if (reserveCols.Contains(colname)) continue; - cols.Add(colname); - } - return cols.ToArray(); - } - - public void Flush() - { - //데이터가없다면 처리하지 않음 - if (this.dt.Rows.Count < 1) return; - - //쓸데이터를 모두 버퍼에 밀어넣는다. - - foreach (DataSet1.ResultDataRow dr in dt.Rows) - { - if (dr.RowState == System.Data.DataRowState.Deleted || dr.RowState == System.Data.DataRowState.Detached) continue; - - //lot date check - if (dr.time_start.Year == 1982) dr.time_start = DateTime.Now; - if (dr.time_end.Year == 1982) dr.time_end = DateTime.Now; - - //작업이 종료된 시간을 기준으로 파일을 생성한다. - // if (dr.info_lot.isEmpty()) dr.info_lot = "NoLot"; - //if (dr.info_stripid.isEmpty()) dr.info_stripid = "S" + dr.time_pcbstart.ToString("yyyyMMddHHmmss"); - - //string curdatestr = string.Format("{0:0000}\\{1:00}\\{2:00}\\{3}\\{4}", - // dr.time_lotstart.Year, dr.time_lotstart.Month, dr.time_lotstart.Day, dr.info_lot,dr.info_stripid); - - //저장할 파일 체크 - System.IO.FileInfo fi =new System.IO.FileInfo( dr.info_filename+".xml"); - - //폴더새엇ㅇ - if (!fi.Directory.Exists) fi.Directory.Create(); - - //파일없는경우 헤더생성 - if (!fi.Exists) MakeFile(fi.FullName); - - //파일에기록 - try - { - //general info - var xml = new AR.XMLHelper(fi.FullName); - foreach(System.Data.DataColumn dc in this.dt.Columns) - { - if (dc.ColumnName.ToLower() == "idx") continue; - if (dc.ColumnName.ToLower() == "filename") continue; - var colname = dc.ColumnName.Split('_'); - var data = dr[dc.ColumnName]; - if(colname[0].ToLower()=="time") - { - string date_value = ""; - if (data != null && data != DBNull.Value) - date_value = ((DateTime)data).ToString("yyyy-MM-dd HH:mm:ss"); - xml.set_Data(colname[0], colname[1], date_value); - - } else - { - if(data != null && data != DBNull.Value) - xml.set_Data(colname[0], colname[1], data.ToString()); - else - xml.set_Data(colname[0], colname[1], ""); - } - } - string savemsg; - xml.Save(out savemsg); - } - catch (Exception ex) - { - PUB.log.AddE("DBMAN:FLUSH:" + ex.Message); - return; - } - - PUB.log.Add("DATABASE", string.Format("◆ Data Saved : {0}", fi.Name)); - } - - dt.Clear(); - dt.AcceptChanges(); - } - - /// - /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. - /// - /// - /// - public DataSet1.ResultDataDataTable GetDatas(List files) - { - DataSet1.ResultDataDataTable retval = new DataSet1.ResultDataDataTable(); - //모든파일을 대상으로한다. - - foreach(var file in files) - { - var newdr = retval.NewResultDataRow(); - newdr.info_filename = file.FullName; - var xml = new AR.XMLHelper(file.FullName); - foreach (System.Data.DataColumn col in retval.Columns) - { - if (col.ColumnName.ToLower() == "idx") continue; - if (col.ColumnName.ToLower() == "filename") continue; - var colbuf = col.ColumnName.Split('_'); - - var readstr = xml.get_Data(colbuf[0], colbuf[1]); - if(col.DataType == typeof(DateTime)) - { - if(readstr != "") - { - DateTime dt; - if (DateTime.TryParse(readstr, out dt)) - newdr[col.ColumnName] = dt; - } - } - else - { - newdr[col.ColumnName] =readstr; - } - - - } - retval.AddResultDataRow(newdr); - } - - - retval.AcceptChanges(); - return retval; - } - - - public eStripSearchResult FindStrip(List pathlist, string strip) - { - //지정된 경로내에 스트립파일이 존재하는가? - foreach(var path in pathlist) - { - var filese = System.IO.Directory.GetFiles( path , strip + ".xml"); - if(filese .Length == 1) - { - var xml = new AR.XMLHelper(filese[0]); - var upload = xml.get_Data("info", "upload"); - if (upload == "O") return eStripSearchResult.OK; - } - } - return eStripSearchResult.None; - } - /// - /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. - /// - /// - /// - public eStripSearchResult FindStrip(List files, string strip) - { - eStripSearchResult retval = eStripSearchResult.None; - System.Text.StringBuilder sbError = new StringBuilder(); - if (files.Count < 1) return eStripSearchResult.None; - - //가장최신의데이터를 찾아야한다. - DateTime MaxDate = DateTime.Parse("1982-11-23"); - string MaxResult = string.Empty; - - foreach (var fi in files.OrderByDescending(t => t.FullName)) - { - Boolean DataFind = false; - List cols = new List(); - System.IO.FileStream fs = new System.IO.FileStream(fi.FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite); - System.IO.StreamReader sr = new System.IO.StreamReader(fs, System.Text.Encoding.ASCII); - int LineCount = 0; - while (sr.Peek() > 0) - { - string buffer = sr.ReadLine(); - LineCount += 1; - if (buffer.isEmpty() || buffer.StartsWith(";")) continue; - var databuffer = buffer.Split(','); - if (cols.Count < 1) - { - //줄로처리한다. - foreach (string colname in databuffer) - cols.Add(colname); - } - else - { - //지정한 바코드 자료만 처리한다. - if (databuffer[2] != strip) continue; - - DateTime endtime; - if (DateTime.TryParse(databuffer[4], out endtime)) - { - MaxResult = databuffer[5]; - if (MaxResult.ToUpper() != "FAIL") - { - if (endtime > MaxDate) - { - MaxDate = endtime; - if (MaxResult == "OK") - retval = eStripSearchResult.OK; - else if (MaxResult == "NG") - retval = eStripSearchResult.NG; - } - DataFind = true; //다른파일은 작동하지 않게한다. - } - } - } - } - - sr.Close(); - sr.Dispose(); - fs.Close(); - fs.Dispose(); - if (DataFind) break; - } - return retval; - } - - public List GetPathListbyLot(DateTime sdate, DateTime edate, string lot) - { - List retfiles = new List(); - //날짜사이의 모든 파일을 대상으로해야함 - - string sd = sdate.ToShortDateString(); - string ed = edate.ToShortDateString(); - - int sy = sdate.Year; - int ey = edate.Year; - int sm = sdate.Month; - int em = edate.Month; - int sday = sdate.Day; - int eday = edate.Day; - - Boolean endtast = false; - for (int y = sy; y <= ey; y++) - { - for (int m = 1; m <= 12; m++) - { - for (int d = 1; d <= 31; d++) - { - string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); - if (ed == daystr) endtast = true; //마지막 날짜이다. - - if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. - else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. - - foreach (var data in this.dataPath) - { - var path = new System.IO.DirectoryInfo(System.IO.Path.Combine(data, daystr.Replace("-", "\\"), lot)); - if (path.Exists == false) continue; - else retfiles.Add(path.FullName); - } - - if (endtast) - break; // TODO: might not be correct. Was : Exit For - } - if (endtast) - break; // TODO: might not be correct. Was : Exit For - } - if (endtast) - break; // TODO: might not be correct. Was : Exit For - } - return retfiles; - } - - /// - /// 지정된 기간사이의 파일명을 반환합니다. - /// - /// 검색시작일(시간은 적용안함) - /// 검색종료일(시간은 적용안함) - /// 검색필터 - /// 장치번호 - /// 검색바코드 - /// - public List Getfiles(DateTime sdate, DateTime edate) - { - List retfiles = new List(); - //날짜사이의 모든 파일을 대상으로해야함 - - string sd = sdate.ToShortDateString(); - string ed = edate.ToShortDateString(); - - int sy = sdate.Year; - int ey = edate.Year; - int sm = sdate.Month; - int em = edate.Month; - int sday = sdate.Day; - int eday = edate.Day; - - Boolean endtast = false; - for (int y = sy; y <= ey; y++) - { - for (int m = 1; m <= 12; m++) - { - for (int d = 1; d <= 31; d++) - { - string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); - if (ed == daystr) endtast = true; //마지막 날짜이다. - - if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. - else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. - - foreach(var data in this.dataPath) - { - var path = new System.IO.DirectoryInfo(System.IO.Path.Combine(data, daystr.Replace("-", "\\"))); - if (path.Exists == false) continue; - var files = path.GetFiles("*.xml", System.IO.SearchOption.AllDirectories); - if (files != null && files.Length > 0) retfiles.AddRange(files); - } - - if (endtast) - break; // TODO: might not be correct. Was : Exit For - } - if (endtast) - break; // TODO: might not be correct. Was : Exit For - } - if (endtast) - break; // TODO: might not be correct. Was : Exit For - } - return retfiles; - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using AR; + +namespace Project.Manager +{ + public class DatabaseManager + { + /// + /// 파일검색방법 + /// + public enum eFileSearchMode + { + Normal, + Project, + Model, + MCCode, + Barcode, + All, + } + + public enum eStripSearchResult + { + None, + OK, + NG, + } + + /// + /// 버퍼갯수(지정 갯수가 차면 실제파일에 기록을 한다) + /// + private int MaxBufferCount = 1; + + /// + /// 최종파일 + /// + private String LastFileName; + + + private string[] dataPath = new string[] { }; + private DataSet1.ResultDataDataTable dt; + // private string _subDirName = string.Empty; + + /// + /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) + /// + public DatabaseManager(string[] dataPath_, int _MaxBufferCount = 100) + { + LastFileName = string.Empty; + dt = new DataSet1.ResultDataDataTable(); + + this.dataPath = dataPath_; + if (dataPath_.Length == 0) dataPath = new string[]{ System.IO.Path.Combine(UTIL.CurrentPath, "Data")}; + + //최대버퍼갯수(이 갯수를 넘어가면 실제 파일에 기록한다) + MaxBufferCount = _MaxBufferCount; + //_subDirName = subDirName; + } + + //해당 결과를 버퍼에 추가한다. + public void Add(DataSet1.ResultDataRow dataRow, Boolean autoFlush = false) + { + //입력된 자료를 복사해서 버퍼에 넣는다. + var newdr = this.dt.NewResultDataRow(); + foreach (string col in getDataColumnList()) + { + newdr[col] = dataRow[col]; + } + this.dt.AddResultDataRow(newdr); + + //만약자료가 일정데이터수를 넘었다면 flush 한다 + if (autoFlush || dt.Rows.Count >= MaxBufferCount) + { + Flush(); //파일에 실제저장한다. + } + } + + /// + /// 신규파일을 생성합니다. + /// + /// + void MakeFile(string filename) + { + //파일이없다면 헤더를 만들어준다. + AR.XMLHelper xml = new AR.XMLHelper(filename); + xml.CreateFile(); + } + + /// + /// 저장해야할 컬럼명을 반환한다.(idx는 제외한다) + /// + /// + public string[] getDataColumnList() + { + //저장하고자하는 순서를 미리 지정한다.(지정안된 자료는 알아서 저장된다) + string[] reserveCols = new string[] { }; + List cols = new List(); + cols.AddRange(reserveCols); + + for (int i = 0; i < this.dt.Columns.Count; i++) + { + string colname = dt.Columns[i].ColumnName; + if (reserveCols.Contains(colname)) continue; + cols.Add(colname); + } + return cols.ToArray(); + } + + public void Flush() + { + //데이터가없다면 처리하지 않음 + if (this.dt.Rows.Count < 1) return; + + //쓸데이터를 모두 버퍼에 밀어넣는다. + + foreach (DataSet1.ResultDataRow dr in dt.Rows) + { + if (dr.RowState == System.Data.DataRowState.Deleted || dr.RowState == System.Data.DataRowState.Detached) continue; + + //lot date check + if (dr.time_start.Year == 1982) dr.time_start = DateTime.Now; + if (dr.time_end.Year == 1982) dr.time_end = DateTime.Now; + + //작업이 종료된 시간을 기준으로 파일을 생성한다. + // if (dr.info_lot.isEmpty()) dr.info_lot = "NoLot"; + //if (dr.info_stripid.isEmpty()) dr.info_stripid = "S" + dr.time_pcbstart.ToString("yyyyMMddHHmmss"); + + //string curdatestr = string.Format("{0:0000}\\{1:00}\\{2:00}\\{3}\\{4}", + // dr.time_lotstart.Year, dr.time_lotstart.Month, dr.time_lotstart.Day, dr.info_lot,dr.info_stripid); + + //저장할 파일 체크 + System.IO.FileInfo fi =new System.IO.FileInfo( dr.info_filename+".xml"); + + //폴더새엇ㅇ + if (!fi.Directory.Exists) fi.Directory.Create(); + + //파일없는경우 헤더생성 + if (!fi.Exists) MakeFile(fi.FullName); + + //파일에기록 + try + { + //general info + var xml = new AR.XMLHelper(fi.FullName); + foreach(System.Data.DataColumn dc in this.dt.Columns) + { + if (dc.ColumnName.ToLower() == "idx") continue; + if (dc.ColumnName.ToLower() == "filename") continue; + var colname = dc.ColumnName.Split('_'); + var data = dr[dc.ColumnName]; + if(colname[0].ToLower()=="time") + { + string date_value = ""; + if (data != null && data != DBNull.Value) + date_value = ((DateTime)data).ToString("yyyy-MM-dd HH:mm:ss"); + xml.set_Data(colname[0], colname[1], date_value); + + } else + { + if(data != null && data != DBNull.Value) + xml.set_Data(colname[0], colname[1], data.ToString()); + else + xml.set_Data(colname[0], colname[1], ""); + } + } + string savemsg; + xml.Save(out savemsg); + } + catch (Exception ex) + { + PUB.log.AddE("DBMAN:FLUSH:" + ex.Message); + return; + } + + PUB.log.Add("DATABASE", string.Format("◆ Data Saved : {0}", fi.Name)); + } + + dt.Clear(); + dt.AcceptChanges(); + } + + /// + /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + /// + /// + /// + public DataSet1.ResultDataDataTable GetDatas(List files) + { + DataSet1.ResultDataDataTable retval = new DataSet1.ResultDataDataTable(); + //모든파일을 대상으로한다. + + foreach(var file in files) + { + var newdr = retval.NewResultDataRow(); + newdr.info_filename = file.FullName; + var xml = new AR.XMLHelper(file.FullName); + foreach (System.Data.DataColumn col in retval.Columns) + { + if (col.ColumnName.ToLower() == "idx") continue; + if (col.ColumnName.ToLower() == "filename") continue; + var colbuf = col.ColumnName.Split('_'); + + var readstr = xml.get_Data(colbuf[0], colbuf[1]); + if(col.DataType == typeof(DateTime)) + { + if(readstr != "") + { + DateTime dt; + if (DateTime.TryParse(readstr, out dt)) + newdr[col.ColumnName] = dt; + } + } + else + { + newdr[col.ColumnName] =readstr; + } + + + } + retval.AddResultDataRow(newdr); + } + + + retval.AcceptChanges(); + return retval; + } + + + public eStripSearchResult FindStrip(List pathlist, string strip) + { + //지정된 경로내에 스트립파일이 존재하는가? + foreach(var path in pathlist) + { + var filese = System.IO.Directory.GetFiles( path , strip + ".xml"); + if(filese .Length == 1) + { + var xml = new AR.XMLHelper(filese[0]); + var upload = xml.get_Data("info", "upload"); + if (upload == "O") return eStripSearchResult.OK; + } + } + return eStripSearchResult.None; + } + /// + /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + /// + /// + /// + public eStripSearchResult FindStrip(List files, string strip) + { + eStripSearchResult retval = eStripSearchResult.None; + System.Text.StringBuilder sbError = new StringBuilder(); + if (files.Count < 1) return eStripSearchResult.None; + + //가장최신의데이터를 찾아야한다. + DateTime MaxDate = DateTime.Parse("1982-11-23"); + string MaxResult = string.Empty; + + foreach (var fi in files.OrderByDescending(t => t.FullName)) + { + Boolean DataFind = false; + List cols = new List(); + System.IO.FileStream fs = new System.IO.FileStream(fi.FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite); + System.IO.StreamReader sr = new System.IO.StreamReader(fs, System.Text.Encoding.ASCII); + int LineCount = 0; + while (sr.Peek() > 0) + { + string buffer = sr.ReadLine(); + LineCount += 1; + if (buffer.isEmpty() || buffer.StartsWith(";")) continue; + var databuffer = buffer.Split(','); + if (cols.Count < 1) + { + //줄로처리한다. + foreach (string colname in databuffer) + cols.Add(colname); + } + else + { + //지정한 바코드 자료만 처리한다. + if (databuffer[2] != strip) continue; + + DateTime endtime; + if (DateTime.TryParse(databuffer[4], out endtime)) + { + MaxResult = databuffer[5]; + if (MaxResult.ToUpper() != "FAIL") + { + if (endtime > MaxDate) + { + MaxDate = endtime; + if (MaxResult == "OK") + retval = eStripSearchResult.OK; + else if (MaxResult == "NG") + retval = eStripSearchResult.NG; + } + DataFind = true; //다른파일은 작동하지 않게한다. + } + } + } + } + + sr.Close(); + sr.Dispose(); + fs.Close(); + fs.Dispose(); + if (DataFind) break; + } + return retval; + } + + public List GetPathListbyLot(DateTime sdate, DateTime edate, string lot) + { + List retfiles = new List(); + //날짜사이의 모든 파일을 대상으로해야함 + + string sd = sdate.ToShortDateString(); + string ed = edate.ToShortDateString(); + + int sy = sdate.Year; + int ey = edate.Year; + int sm = sdate.Month; + int em = edate.Month; + int sday = sdate.Day; + int eday = edate.Day; + + Boolean endtast = false; + for (int y = sy; y <= ey; y++) + { + for (int m = 1; m <= 12; m++) + { + for (int d = 1; d <= 31; d++) + { + string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); + if (ed == daystr) endtast = true; //마지막 날짜이다. + + if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. + else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. + + foreach (var data in this.dataPath) + { + var path = new System.IO.DirectoryInfo(System.IO.Path.Combine(data, daystr.Replace("-", "\\"), lot)); + if (path.Exists == false) continue; + else retfiles.Add(path.FullName); + } + + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + return retfiles; + } + + /// + /// 지정된 기간사이의 파일명을 반환합니다. + /// + /// 검색시작일(시간은 적용안함) + /// 검색종료일(시간은 적용안함) + /// 검색필터 + /// 장치번호 + /// 검색바코드 + /// + public List Getfiles(DateTime sdate, DateTime edate) + { + List retfiles = new List(); + //날짜사이의 모든 파일을 대상으로해야함 + + string sd = sdate.ToShortDateString(); + string ed = edate.ToShortDateString(); + + int sy = sdate.Year; + int ey = edate.Year; + int sm = sdate.Month; + int em = edate.Month; + int sday = sdate.Day; + int eday = edate.Day; + + Boolean endtast = false; + for (int y = sy; y <= ey; y++) + { + for (int m = 1; m <= 12; m++) + { + for (int d = 1; d <= 31; d++) + { + string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); + if (ed == daystr) endtast = true; //마지막 날짜이다. + + if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. + else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. + + foreach(var data in this.dataPath) + { + var path = new System.IO.DirectoryInfo(System.IO.Path.Combine(data, daystr.Replace("-", "\\"))); + if (path.Exists == false) continue; + var files = path.GetFiles("*.xml", System.IO.SearchOption.AllDirectories); + if (files != null && files.Length > 0) retfiles.AddRange(files); + } + + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + return retfiles; + } + } +} diff --git a/Cs_HMI/Project/MessageWindow/CMessageData.cs b/HMI/Project/MessageWindow/CMessageData.cs similarity index 96% rename from Cs_HMI/Project/MessageWindow/CMessageData.cs rename to HMI/Project/MessageWindow/CMessageData.cs index 8f69860..6f8e7a0 100644 --- a/Cs_HMI/Project/MessageWindow/CMessageData.cs +++ b/HMI/Project/MessageWindow/CMessageData.cs @@ -1,37 +1,37 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Project -{ - public partial class MessageWindow - { - public class CMessageData - { - public string Message { get; set; } - public eWindowType WindowType { get; set; } - public System.Drawing.Size WindowSize { get; set; } - public Boolean EnableClose { get; set; } - public System.Drawing.Font FontTitle { get; set; } - public System.Drawing.Font FontContent { get; set; } - public System.Windows.Forms.Form msgForm { get; set; } - public CMessageData() - { - WindowType = eWindowType.information; - WindowSize = new System.Drawing.Size(900, 500); - EnableClose = true; - FontContent = null; - FontTitle = null; - msgForm = null; - } - ~CMessageData() - { - if (msgForm != null) msgForm.Dispose(); - if (FontTitle != null) FontTitle.Dispose(); - if (FontContent != null) FontContent.Dispose(); - } - } - } - -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class MessageWindow + { + public class CMessageData + { + public string Message { get; set; } + public eWindowType WindowType { get; set; } + public System.Drawing.Size WindowSize { get; set; } + public Boolean EnableClose { get; set; } + public System.Drawing.Font FontTitle { get; set; } + public System.Drawing.Font FontContent { get; set; } + public System.Windows.Forms.Form msgForm { get; set; } + public CMessageData() + { + WindowType = eWindowType.information; + WindowSize = new System.Drawing.Size(900, 500); + EnableClose = true; + FontContent = null; + FontTitle = null; + msgForm = null; + } + ~CMessageData() + { + if (msgForm != null) msgForm.Dispose(); + if (FontTitle != null) FontTitle.Dispose(); + if (FontContent != null) FontContent.Dispose(); + } + } + } + +} diff --git a/Cs_HMI/Project/MessageWindow/MessageWindow.cs b/HMI/Project/MessageWindow/MessageWindow.cs similarity index 96% rename from Cs_HMI/Project/MessageWindow/MessageWindow.cs rename to HMI/Project/MessageWindow/MessageWindow.cs index ee7c346..3589457 100644 --- a/Cs_HMI/Project/MessageWindow/MessageWindow.cs +++ b/HMI/Project/MessageWindow/MessageWindow.cs @@ -1,164 +1,164 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Drawing; -using System.Windows.Forms; - -namespace Project -{ - public partial class MessageWindow - { - public enum eWindowPosition - { - center = 0, - top = 1, - bottom = 2 - } - - public enum eWindowType - { - information, - error, - attention, - } - - - private bool _needclose = false; - public bool needClose - { - get { return _needclose; } - set - { - if (Visible) //현재 화면이 열러잇다면? - _needclose = value; - } - } - public Boolean needShow = false; - private CMessageData msgBuffer = new CMessageData(); - - public void setMessage(CMessageData msgData) - { - //마지막데잍와 동일하고 버퍼에 데이터가 있다면 처리하지 않는다. - if (msgBuffer == msgData) return; - - //신규 메세지를 추가 - msgBuffer = msgData; - - //화면이 표시되어야하므로 플래그 설정 - needShow = true; - } - - public void setMessage(string msg, - eWindowType winType = eWindowType.error, - int width = 900, int height = 500, - Boolean enbClose = true, - Font fontTitle = null, - Font fontBody = null) - { - setMessage(new CMessageData() - { - EnableClose = enbClose, - FontContent = fontBody, - FontTitle = fontTitle, - Message = msg, - WindowSize = new Size(width, height), - WindowType = winType - }); - - } - - - fMessageWindow msgwin;// = new fMsgWindow(""); - - /// - /// 메세지 버퍼의 내용을 폼으로 표시합니다. - /// UI 쓰레드를 사용하므로 invoke 를 이용해 호출 하거나 - /// UI 쓰레드내에서 실행 하시기 바랍니다. - /// - public void showMessage() - { - //등록된 메세지 버퍼의 내용을 화면에 표시한다. - if (msgwin == null) msgwin = new fMessageWindow(""); - msgwin.TopMost = true; - // msgwin.Disposed += (s1, e1) => { CloseMsg(item.Key); }; - //msgwin.Width = this.msgBuffer.WindowSize.Width; - //msgwin.Height = msgBuffer.WindowSize.Height; - //msgwin.BackColor = Color.FromArgb(200, 200, 200); - msgwin.StartPosition = FormStartPosition.CenterScreen; - msgwin.btNo.Visible = false; - msgwin.btYes.Visible = false; - msgwin.Height = 474; - msgwin.setMessage(msgBuffer.Message); - //set font - if (msgBuffer.FontTitle != null) msgwin.lbTitle.Font = msgBuffer.FontTitle; - if (msgBuffer.FontContent != null) - { - msgwin.lb1.Font = msgBuffer.FontContent; - msgwin.lb2.Font = msgBuffer.FontContent; - msgwin.lb3.Font = msgBuffer.FontContent; - msgwin.lb4.Font = msgBuffer.FontContent; - msgwin.lb5.Font = msgBuffer.FontContent; - msgwin.lb6.Font = msgBuffer.FontContent; - msgwin.lb7.Font = msgBuffer.FontContent; - } - - switch (msgBuffer.WindowType) - { - case eWindowType.attention: - msgwin.SetWindowColor(fMessageWindow.EWinColor.Attention); - break; - case eWindowType.error: - msgwin.SetWindowColor(fMessageWindow.EWinColor.Error); - break; - default: - msgwin.SetWindowColor(fMessageWindow.EWinColor.Information); - break; - } - - if (!msgBuffer.EnableClose) msgwin.EnableUserClose = false; - if (msgwin.Visible == false) msgwin.Show(); - else - { - msgwin.Visible = true; - msgwin.Activate(); - } - - needShow = false; - } - - - public Boolean Visible - { - get - { - if (msgwin == null) return false; - return msgwin.Visible; - } - set - { - if (value == true) - { - if (msgwin.Visible == false) - { - msgwin.Show(); - msgwin.Activate(); - } - else - { - msgwin.Activate(); - } - needShow = false; - } - else - { - if (msgwin != null) - msgwin.Visible = false; - needClose = false; - } - - } - } - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.Windows.Forms; + +namespace Project +{ + public partial class MessageWindow + { + public enum eWindowPosition + { + center = 0, + top = 1, + bottom = 2 + } + + public enum eWindowType + { + information, + error, + attention, + } + + + private bool _needclose = false; + public bool needClose + { + get { return _needclose; } + set + { + if (Visible) //현재 화면이 열러잇다면? + _needclose = value; + } + } + public Boolean needShow = false; + private CMessageData msgBuffer = new CMessageData(); + + public void setMessage(CMessageData msgData) + { + //마지막데잍와 동일하고 버퍼에 데이터가 있다면 처리하지 않는다. + if (msgBuffer == msgData) return; + + //신규 메세지를 추가 + msgBuffer = msgData; + + //화면이 표시되어야하므로 플래그 설정 + needShow = true; + } + + public void setMessage(string msg, + eWindowType winType = eWindowType.error, + int width = 900, int height = 500, + Boolean enbClose = true, + Font fontTitle = null, + Font fontBody = null) + { + setMessage(new CMessageData() + { + EnableClose = enbClose, + FontContent = fontBody, + FontTitle = fontTitle, + Message = msg, + WindowSize = new Size(width, height), + WindowType = winType + }); + + } + + + fMessageWindow msgwin;// = new fMsgWindow(""); + + /// + /// 메세지 버퍼의 내용을 폼으로 표시합니다. + /// UI 쓰레드를 사용하므로 invoke 를 이용해 호출 하거나 + /// UI 쓰레드내에서 실행 하시기 바랍니다. + /// + public void showMessage() + { + //등록된 메세지 버퍼의 내용을 화면에 표시한다. + if (msgwin == null) msgwin = new fMessageWindow(""); + msgwin.TopMost = true; + // msgwin.Disposed += (s1, e1) => { CloseMsg(item.Key); }; + //msgwin.Width = this.msgBuffer.WindowSize.Width; + //msgwin.Height = msgBuffer.WindowSize.Height; + //msgwin.BackColor = Color.FromArgb(200, 200, 200); + msgwin.StartPosition = FormStartPosition.CenterScreen; + msgwin.btNo.Visible = false; + msgwin.btYes.Visible = false; + msgwin.Height = 474; + msgwin.setMessage(msgBuffer.Message); + //set font + if (msgBuffer.FontTitle != null) msgwin.lbTitle.Font = msgBuffer.FontTitle; + if (msgBuffer.FontContent != null) + { + msgwin.lb1.Font = msgBuffer.FontContent; + msgwin.lb2.Font = msgBuffer.FontContent; + msgwin.lb3.Font = msgBuffer.FontContent; + msgwin.lb4.Font = msgBuffer.FontContent; + msgwin.lb5.Font = msgBuffer.FontContent; + msgwin.lb6.Font = msgBuffer.FontContent; + msgwin.lb7.Font = msgBuffer.FontContent; + } + + switch (msgBuffer.WindowType) + { + case eWindowType.attention: + msgwin.SetWindowColor(fMessageWindow.EWinColor.Attention); + break; + case eWindowType.error: + msgwin.SetWindowColor(fMessageWindow.EWinColor.Error); + break; + default: + msgwin.SetWindowColor(fMessageWindow.EWinColor.Information); + break; + } + + if (!msgBuffer.EnableClose) msgwin.EnableUserClose = false; + if (msgwin.Visible == false) msgwin.Show(); + else + { + msgwin.Visible = true; + msgwin.Activate(); + } + + needShow = false; + } + + + public Boolean Visible + { + get + { + if (msgwin == null) return false; + return msgwin.Visible; + } + set + { + if (value == true) + { + if (msgwin.Visible == false) + { + msgwin.Show(); + msgwin.Activate(); + } + else + { + msgwin.Activate(); + } + needShow = false; + } + else + { + if (msgwin != null) + msgwin.Visible = false; + needClose = false; + } + + } + } + + } +} diff --git a/Cs_HMI/Project/MessageWindow/fMessageWindow.Designer.cs b/HMI/Project/MessageWindow/fMessageWindow.Designer.cs similarity index 98% rename from Cs_HMI/Project/MessageWindow/fMessageWindow.Designer.cs rename to HMI/Project/MessageWindow/fMessageWindow.Designer.cs index 4fce6d4..70f6a02 100644 --- a/Cs_HMI/Project/MessageWindow/fMessageWindow.Designer.cs +++ b/HMI/Project/MessageWindow/fMessageWindow.Designer.cs @@ -1,5 +1,5 @@ namespace Project -{ +{ partial class fMessageWindow { /// @@ -28,649 +28,649 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.tmBlink = new System.Windows.Forms.Timer(this.components); - this.arPanel1 = new arCtl.arPanel(); - this.panButton = new System.Windows.Forms.Panel(); - this.btYes = new arCtl.arLabel(); - this.btNo = new arCtl.arLabel(); - this.panel7 = new System.Windows.Forms.Panel(); - this.lb7 = new arCtl.arLabel(); - this.panel6 = new System.Windows.Forms.Panel(); - this.lb6 = new arCtl.arLabel(); - this.panel5 = new System.Windows.Forms.Panel(); - this.lb5 = new arCtl.arLabel(); - this.panel3 = new System.Windows.Forms.Panel(); - this.lb4 = new arCtl.arLabel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.lb3 = new arCtl.arLabel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.lb2 = new arCtl.arLabel(); - this.panel4 = new System.Windows.Forms.Panel(); - this.lb1 = new arCtl.arLabel(); - this.panel8 = new System.Windows.Forms.Panel(); - this.lbTitle = new arCtl.arLabel(); - this.arPanel1.SuspendLayout(); - this.panButton.SuspendLayout(); - this.SuspendLayout(); - // - // tmBlink - // - this.tmBlink.Enabled = true; - this.tmBlink.Interval = 300; - this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); - // - // arPanel1 - // - this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arPanel1.BorderColor = System.Drawing.Color.DimGray; - this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); - this.arPanel1.Controls.Add(this.panButton); - this.arPanel1.Controls.Add(this.panel7); - this.arPanel1.Controls.Add(this.lb7); - this.arPanel1.Controls.Add(this.panel6); - this.arPanel1.Controls.Add(this.lb6); - this.arPanel1.Controls.Add(this.panel5); - this.arPanel1.Controls.Add(this.lb5); - this.arPanel1.Controls.Add(this.panel3); - this.arPanel1.Controls.Add(this.lb4); - this.arPanel1.Controls.Add(this.panel2); - this.arPanel1.Controls.Add(this.lb3); - this.arPanel1.Controls.Add(this.panel1); - this.arPanel1.Controls.Add(this.lb2); - this.arPanel1.Controls.Add(this.panel4); - this.arPanel1.Controls.Add(this.lb1); - this.arPanel1.Controls.Add(this.panel8); - this.arPanel1.Controls.Add(this.lbTitle); - this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); - this.arPanel1.ForeColor = System.Drawing.Color.Khaki; - this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.arPanel1.GradientRepeatBG = false; - this.arPanel1.Location = new System.Drawing.Point(5, 5); - this.arPanel1.Name = "arPanel1"; - this.arPanel1.Padding = new System.Windows.Forms.Padding(6); - this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arPanel1.ProgressMax = 100F; - this.arPanel1.ProgressMin = 0F; - this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arPanel1.ProgressValue = 0F; - this.arPanel1.ShadowColor = System.Drawing.Color.Black; - this.arPanel1.ShowBorder = true; - this.arPanel1.Size = new System.Drawing.Size(719, 530); - this.arPanel1.TabIndex = 4; - this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.arPanel1.TextShadow = false; - this.arPanel1.UseProgressBar = false; - // - // panButton - // - this.panButton.Controls.Add(this.btYes); - this.panButton.Controls.Add(this.btNo); - this.panButton.Dock = System.Windows.Forms.DockStyle.Fill; - this.panButton.Location = new System.Drawing.Point(6, 463); - this.panButton.Name = "panButton"; - this.panButton.Size = new System.Drawing.Size(707, 61); - this.panButton.TabIndex = 10; - // - // btYes - // - this.btYes.BackColor = System.Drawing.Color.SeaGreen; - this.btYes.BackColor2 = System.Drawing.Color.SeaGreen; - this.btYes.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btYes.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btYes.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btYes.BorderSize = new System.Windows.Forms.Padding(1); - this.btYes.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btYes.Cursor = System.Windows.Forms.Cursors.Hand; - this.btYes.Dock = System.Windows.Forms.DockStyle.Fill; - this.btYes.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btYes.ForeColor = System.Drawing.Color.Black; - this.btYes.GradientEnable = true; - this.btYes.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btYes.GradientRepeatBG = false; - this.btYes.isButton = true; - this.btYes.Location = new System.Drawing.Point(0, 0); - this.btYes.MouseDownColor = System.Drawing.Color.Yellow; - this.btYes.MouseOverColor = System.Drawing.Color.Yellow; - this.btYes.msg = null; - this.btYes.Name = "btYes"; - this.btYes.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btYes.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btYes.ProgressEnable = false; - this.btYes.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btYes.ProgressForeColor = System.Drawing.Color.Black; - this.btYes.ProgressMax = 100F; - this.btYes.ProgressMin = 0F; - this.btYes.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btYes.ProgressValue = 0F; - this.btYes.ShadowColor = System.Drawing.Color.Gray; - this.btYes.Sign = ""; - this.btYes.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btYes.SignColor = System.Drawing.Color.Yellow; - this.btYes.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btYes.Size = new System.Drawing.Size(478, 61); - this.btYes.TabIndex = 0; - this.btYes.Text = "예"; - this.btYes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btYes.TextShadow = true; - this.btYes.TextVisible = true; - this.btYes.Click += new System.EventHandler(this.btYes_Click); - // - // btNo - // - this.btNo.BackColor = System.Drawing.Color.Goldenrod; - this.btNo.BackColor2 = System.Drawing.Color.Goldenrod; - this.btNo.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btNo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btNo.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btNo.BorderSize = new System.Windows.Forms.Padding(1); - this.btNo.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btNo.Cursor = System.Windows.Forms.Cursors.Hand; - this.btNo.Dock = System.Windows.Forms.DockStyle.Right; - this.btNo.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btNo.ForeColor = System.Drawing.Color.Black; - this.btNo.GradientEnable = true; - this.btNo.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btNo.GradientRepeatBG = false; - this.btNo.isButton = true; - this.btNo.Location = new System.Drawing.Point(478, 0); - this.btNo.MouseDownColor = System.Drawing.Color.Yellow; - this.btNo.MouseOverColor = System.Drawing.Color.Yellow; - this.btNo.msg = null; - this.btNo.Name = "btNo"; - this.btNo.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btNo.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btNo.ProgressEnable = false; - this.btNo.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btNo.ProgressForeColor = System.Drawing.Color.Black; - this.btNo.ProgressMax = 100F; - this.btNo.ProgressMin = 0F; - this.btNo.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btNo.ProgressValue = 0F; - this.btNo.ShadowColor = System.Drawing.Color.Gray; - this.btNo.Sign = ""; - this.btNo.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btNo.SignColor = System.Drawing.Color.Yellow; - this.btNo.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btNo.Size = new System.Drawing.Size(229, 61); - this.btNo.TabIndex = 0; - this.btNo.Text = "아니오"; - this.btNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btNo.TextShadow = true; - this.btNo.TextVisible = true; - this.btNo.Click += new System.EventHandler(this.btNo_Click); - // - // panel7 - // - this.panel7.Dock = System.Windows.Forms.DockStyle.Top; - this.panel7.Location = new System.Drawing.Point(6, 458); - this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(707, 5); - this.panel7.TabIndex = 17; - // - // lb7 - // - this.lb7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb7.BackColor2 = System.Drawing.Color.Gray; - this.lb7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb7.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb7.BorderSize = new System.Windows.Forms.Padding(1); - this.lb7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb7.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb7.Dock = System.Windows.Forms.DockStyle.Top; - this.lb7.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.lb7.ForeColor = System.Drawing.Color.White; - this.lb7.GradientEnable = true; - this.lb7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb7.GradientRepeatBG = false; - this.lb7.isButton = false; - this.lb7.Location = new System.Drawing.Point(6, 408); - this.lb7.MouseDownColor = System.Drawing.Color.Yellow; - this.lb7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb7.msg = null; - this.lb7.Name = "lb7"; - this.lb7.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb7.ProgressEnable = false; - this.lb7.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb7.ProgressForeColor = System.Drawing.Color.Black; - this.lb7.ProgressMax = 100F; - this.lb7.ProgressMin = 0F; - this.lb7.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb7.ProgressValue = 0F; - this.lb7.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb7.Sign = ""; - this.lb7.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb7.SignColor = System.Drawing.Color.Yellow; - this.lb7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb7.Size = new System.Drawing.Size(707, 50); - this.lb7.TabIndex = 9; - this.lb7.Text = "*"; - this.lb7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb7.TextShadow = true; - this.lb7.TextVisible = true; - // - // panel6 - // - this.panel6.Dock = System.Windows.Forms.DockStyle.Top; - this.panel6.Location = new System.Drawing.Point(6, 403); - this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(707, 5); - this.panel6.TabIndex = 16; - // - // lb6 - // - this.lb6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb6.BackColor2 = System.Drawing.Color.Gray; - this.lb6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb6.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb6.BorderSize = new System.Windows.Forms.Padding(1); - this.lb6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb6.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb6.Dock = System.Windows.Forms.DockStyle.Top; - this.lb6.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.lb6.ForeColor = System.Drawing.Color.White; - this.lb6.GradientEnable = true; - this.lb6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb6.GradientRepeatBG = false; - this.lb6.isButton = false; - this.lb6.Location = new System.Drawing.Point(6, 353); - this.lb6.MouseDownColor = System.Drawing.Color.Yellow; - this.lb6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb6.msg = null; - this.lb6.Name = "lb6"; - this.lb6.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb6.ProgressEnable = false; - this.lb6.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb6.ProgressForeColor = System.Drawing.Color.Black; - this.lb6.ProgressMax = 100F; - this.lb6.ProgressMin = 0F; - this.lb6.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb6.ProgressValue = 0F; - this.lb6.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb6.Sign = ""; - this.lb6.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb6.SignColor = System.Drawing.Color.Yellow; - this.lb6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb6.Size = new System.Drawing.Size(707, 50); - this.lb6.TabIndex = 8; - this.lb6.Text = "*"; - this.lb6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb6.TextShadow = true; - this.lb6.TextVisible = true; - // - // panel5 - // - this.panel5.Dock = System.Windows.Forms.DockStyle.Top; - this.panel5.Location = new System.Drawing.Point(6, 348); - this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(707, 5); - this.panel5.TabIndex = 15; - // - // lb5 - // - this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb5.BackColor2 = System.Drawing.Color.Gray; - this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb5.BorderSize = new System.Windows.Forms.Padding(1); - this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb5.Dock = System.Windows.Forms.DockStyle.Top; - this.lb5.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.lb5.ForeColor = System.Drawing.Color.White; - this.lb5.GradientEnable = true; - this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb5.GradientRepeatBG = false; - this.lb5.isButton = false; - this.lb5.Location = new System.Drawing.Point(6, 298); - this.lb5.MouseDownColor = System.Drawing.Color.Yellow; - this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb5.msg = null; - this.lb5.Name = "lb5"; - this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb5.ProgressEnable = false; - this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb5.ProgressForeColor = System.Drawing.Color.Black; - this.lb5.ProgressMax = 100F; - this.lb5.ProgressMin = 0F; - this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb5.ProgressValue = 0F; - this.lb5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb5.Sign = ""; - this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb5.SignColor = System.Drawing.Color.Yellow; - this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb5.Size = new System.Drawing.Size(707, 50); - this.lb5.TabIndex = 7; - this.lb5.Text = "*"; - this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb5.TextShadow = true; - this.lb5.TextVisible = true; - // - // panel3 - // - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(6, 293); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(707, 5); - this.panel3.TabIndex = 13; - // - // lb4 - // - this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb4.BackColor2 = System.Drawing.Color.Gray; - this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb4.BorderSize = new System.Windows.Forms.Padding(1); - this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb4.Dock = System.Windows.Forms.DockStyle.Top; - this.lb4.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.lb4.ForeColor = System.Drawing.Color.White; - this.lb4.GradientEnable = true; - this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb4.GradientRepeatBG = false; - this.lb4.isButton = false; - this.lb4.Location = new System.Drawing.Point(6, 243); - this.lb4.MouseDownColor = System.Drawing.Color.Yellow; - this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb4.msg = null; - this.lb4.Name = "lb4"; - this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb4.ProgressEnable = false; - this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb4.ProgressForeColor = System.Drawing.Color.Black; - this.lb4.ProgressMax = 100F; - this.lb4.ProgressMin = 0F; - this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb4.ProgressValue = 0F; - this.lb4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb4.Sign = ""; - this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb4.SignColor = System.Drawing.Color.Yellow; - this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb4.Size = new System.Drawing.Size(707, 50); - this.lb4.TabIndex = 6; - this.lb4.Text = "*"; - this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb4.TextShadow = true; - this.lb4.TextVisible = true; - // - // panel2 - // - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(6, 238); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(707, 5); - this.panel2.TabIndex = 12; - // - // lb3 - // - this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb3.BackColor2 = System.Drawing.Color.Gray; - this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb3.BorderSize = new System.Windows.Forms.Padding(1); - this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb3.Dock = System.Windows.Forms.DockStyle.Top; - this.lb3.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.lb3.ForeColor = System.Drawing.Color.White; - this.lb3.GradientEnable = true; - this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb3.GradientRepeatBG = false; - this.lb3.isButton = false; - this.lb3.Location = new System.Drawing.Point(6, 188); - this.lb3.MouseDownColor = System.Drawing.Color.Yellow; - this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb3.msg = null; - this.lb3.Name = "lb3"; - this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb3.ProgressEnable = false; - this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb3.ProgressForeColor = System.Drawing.Color.Black; - this.lb3.ProgressMax = 100F; - this.lb3.ProgressMin = 0F; - this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb3.ProgressValue = 0F; - this.lb3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb3.Sign = ""; - this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb3.SignColor = System.Drawing.Color.Yellow; - this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb3.Size = new System.Drawing.Size(707, 50); - this.lb3.TabIndex = 5; - this.lb3.Text = "*"; - this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb3.TextShadow = true; - this.lb3.TextVisible = true; - // - // panel1 - // - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(6, 183); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(707, 5); - this.panel1.TabIndex = 11; - // - // lb2 - // - this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb2.BackColor2 = System.Drawing.Color.Gray; - this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb2.BorderSize = new System.Windows.Forms.Padding(1); - this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb2.Dock = System.Windows.Forms.DockStyle.Top; - this.lb2.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.lb2.ForeColor = System.Drawing.Color.White; - this.lb2.GradientEnable = true; - this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb2.GradientRepeatBG = false; - this.lb2.isButton = false; - this.lb2.Location = new System.Drawing.Point(6, 133); - this.lb2.MouseDownColor = System.Drawing.Color.Yellow; - this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb2.msg = null; - this.lb2.Name = "lb2"; - this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb2.ProgressEnable = false; - this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb2.ProgressForeColor = System.Drawing.Color.Black; - this.lb2.ProgressMax = 100F; - this.lb2.ProgressMin = 0F; - this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb2.ProgressValue = 0F; - this.lb2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb2.Sign = ""; - this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb2.SignColor = System.Drawing.Color.Yellow; - this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb2.Size = new System.Drawing.Size(707, 50); - this.lb2.TabIndex = 4; - this.lb2.Text = "*"; - this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb2.TextShadow = true; - this.lb2.TextVisible = true; - // - // panel4 - // - this.panel4.Dock = System.Windows.Forms.DockStyle.Top; - this.panel4.Location = new System.Drawing.Point(6, 128); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(707, 5); - this.panel4.TabIndex = 14; - // - // lb1 - // - this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb1.BackColor2 = System.Drawing.Color.Gray; - this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lb1.BorderSize = new System.Windows.Forms.Padding(1); - this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb1.Dock = System.Windows.Forms.DockStyle.Top; - this.lb1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.lb1.ForeColor = System.Drawing.Color.White; - this.lb1.GradientEnable = true; - this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lb1.GradientRepeatBG = false; - this.lb1.isButton = false; - this.lb1.Location = new System.Drawing.Point(6, 78); - this.lb1.MouseDownColor = System.Drawing.Color.Yellow; - this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb1.msg = null; - this.lb1.Name = "lb1"; - this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb1.ProgressEnable = false; - this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb1.ProgressForeColor = System.Drawing.Color.Black; - this.lb1.ProgressMax = 100F; - this.lb1.ProgressMin = 0F; - this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb1.ProgressValue = 0F; - this.lb1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lb1.Sign = ""; - this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb1.SignColor = System.Drawing.Color.Yellow; - this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb1.Size = new System.Drawing.Size(707, 50); - this.lb1.TabIndex = 2; - this.lb1.Text = "*"; - this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb1.TextShadow = true; - this.lb1.TextVisible = true; - // - // panel8 - // - this.panel8.Dock = System.Windows.Forms.DockStyle.Top; - this.panel8.Location = new System.Drawing.Point(6, 73); - this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(707, 5); - this.panel8.TabIndex = 18; - // - // lbTitle - // - this.lbTitle.BackColor = System.Drawing.Color.Brown; - this.lbTitle.BackColor2 = System.Drawing.Color.Tomato; - this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbTitle.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); - this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbTitle.Cursor = System.Windows.Forms.Cursors.Hand; - this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; - this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 28F, System.Drawing.FontStyle.Bold); - this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; - this.lbTitle.GradientEnable = true; - this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Horizontal; - this.lbTitle.GradientRepeatBG = false; - this.lbTitle.isButton = true; - this.lbTitle.Location = new System.Drawing.Point(6, 6); - this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; - this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbTitle.msg = null; - this.lbTitle.Name = "lbTitle"; - this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbTitle.ProgressEnable = false; - this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; - this.lbTitle.ProgressMax = 100F; - this.lbTitle.ProgressMin = 0F; - this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbTitle.ProgressValue = 0F; - this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.lbTitle.Sign = ""; - this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbTitle.SignColor = System.Drawing.Color.Yellow; - this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbTitle.Size = new System.Drawing.Size(707, 67); - this.lbTitle.TabIndex = 3; - this.lbTitle.Text = "TITLE"; - this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbTitle.TextShadow = true; - this.lbTitle.TextVisible = true; - this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); - // - // fMessageWindow - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); - this.ClientSize = new System.Drawing.Size(729, 540); - this.Controls.Add(this.arPanel1); - this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.KeyPreview = true; - this.MaximizeBox = false; - this.Name = "fMessageWindow"; - this.Padding = new System.Windows.Forms.Padding(5); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Message Window"; - this.TopMost = true; - this.Load += new System.EventHandler(this.fMsg_Load); - this.arPanel1.ResumeLayout(false); - this.panButton.ResumeLayout(false); - this.ResumeLayout(false); - + this.components = new System.ComponentModel.Container(); + this.tmBlink = new System.Windows.Forms.Timer(this.components); + this.arPanel1 = new arCtl.arPanel(); + this.panButton = new System.Windows.Forms.Panel(); + this.btYes = new arCtl.arLabel(); + this.btNo = new arCtl.arLabel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.lb7 = new arCtl.arLabel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.lb6 = new arCtl.arLabel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.lb5 = new arCtl.arLabel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.lb4 = new arCtl.arLabel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.lb3 = new arCtl.arLabel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.lb2 = new arCtl.arLabel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.lb1 = new arCtl.arLabel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + this.arPanel1.SuspendLayout(); + this.panButton.SuspendLayout(); + this.SuspendLayout(); + // + // tmBlink + // + this.tmBlink.Enabled = true; + this.tmBlink.Interval = 300; + this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); + // + // arPanel1 + // + this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arPanel1.BorderColor = System.Drawing.Color.DimGray; + this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); + this.arPanel1.Controls.Add(this.panButton); + this.arPanel1.Controls.Add(this.panel7); + this.arPanel1.Controls.Add(this.lb7); + this.arPanel1.Controls.Add(this.panel6); + this.arPanel1.Controls.Add(this.lb6); + this.arPanel1.Controls.Add(this.panel5); + this.arPanel1.Controls.Add(this.lb5); + this.arPanel1.Controls.Add(this.panel3); + this.arPanel1.Controls.Add(this.lb4); + this.arPanel1.Controls.Add(this.panel2); + this.arPanel1.Controls.Add(this.lb3); + this.arPanel1.Controls.Add(this.panel1); + this.arPanel1.Controls.Add(this.lb2); + this.arPanel1.Controls.Add(this.panel4); + this.arPanel1.Controls.Add(this.lb1); + this.arPanel1.Controls.Add(this.panel8); + this.arPanel1.Controls.Add(this.lbTitle); + this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel1.ForeColor = System.Drawing.Color.Khaki; + this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel1.GradientRepeatBG = false; + this.arPanel1.Location = new System.Drawing.Point(5, 5); + this.arPanel1.Name = "arPanel1"; + this.arPanel1.Padding = new System.Windows.Forms.Padding(6); + this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel1.ProgressMax = 100F; + this.arPanel1.ProgressMin = 0F; + this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel1.ProgressValue = 0F; + this.arPanel1.ShadowColor = System.Drawing.Color.Black; + this.arPanel1.ShowBorder = true; + this.arPanel1.Size = new System.Drawing.Size(719, 530); + this.arPanel1.TabIndex = 4; + this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel1.TextShadow = false; + this.arPanel1.UseProgressBar = false; + // + // panButton + // + this.panButton.Controls.Add(this.btYes); + this.panButton.Controls.Add(this.btNo); + this.panButton.Dock = System.Windows.Forms.DockStyle.Fill; + this.panButton.Location = new System.Drawing.Point(6, 463); + this.panButton.Name = "panButton"; + this.panButton.Size = new System.Drawing.Size(707, 61); + this.panButton.TabIndex = 10; + // + // btYes + // + this.btYes.BackColor = System.Drawing.Color.SeaGreen; + this.btYes.BackColor2 = System.Drawing.Color.SeaGreen; + this.btYes.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btYes.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btYes.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btYes.BorderSize = new System.Windows.Forms.Padding(1); + this.btYes.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btYes.Cursor = System.Windows.Forms.Cursors.Hand; + this.btYes.Dock = System.Windows.Forms.DockStyle.Fill; + this.btYes.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btYes.ForeColor = System.Drawing.Color.Black; + this.btYes.GradientEnable = true; + this.btYes.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btYes.GradientRepeatBG = false; + this.btYes.isButton = true; + this.btYes.Location = new System.Drawing.Point(0, 0); + this.btYes.MouseDownColor = System.Drawing.Color.Yellow; + this.btYes.MouseOverColor = System.Drawing.Color.Yellow; + this.btYes.msg = null; + this.btYes.Name = "btYes"; + this.btYes.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btYes.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btYes.ProgressEnable = false; + this.btYes.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btYes.ProgressForeColor = System.Drawing.Color.Black; + this.btYes.ProgressMax = 100F; + this.btYes.ProgressMin = 0F; + this.btYes.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btYes.ProgressValue = 0F; + this.btYes.ShadowColor = System.Drawing.Color.Gray; + this.btYes.Sign = ""; + this.btYes.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btYes.SignColor = System.Drawing.Color.Yellow; + this.btYes.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btYes.Size = new System.Drawing.Size(478, 61); + this.btYes.TabIndex = 0; + this.btYes.Text = "예"; + this.btYes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btYes.TextShadow = true; + this.btYes.TextVisible = true; + this.btYes.Click += new System.EventHandler(this.btYes_Click); + // + // btNo + // + this.btNo.BackColor = System.Drawing.Color.Goldenrod; + this.btNo.BackColor2 = System.Drawing.Color.Goldenrod; + this.btNo.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btNo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btNo.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btNo.BorderSize = new System.Windows.Forms.Padding(1); + this.btNo.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btNo.Cursor = System.Windows.Forms.Cursors.Hand; + this.btNo.Dock = System.Windows.Forms.DockStyle.Right; + this.btNo.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btNo.ForeColor = System.Drawing.Color.Black; + this.btNo.GradientEnable = true; + this.btNo.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btNo.GradientRepeatBG = false; + this.btNo.isButton = true; + this.btNo.Location = new System.Drawing.Point(478, 0); + this.btNo.MouseDownColor = System.Drawing.Color.Yellow; + this.btNo.MouseOverColor = System.Drawing.Color.Yellow; + this.btNo.msg = null; + this.btNo.Name = "btNo"; + this.btNo.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btNo.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btNo.ProgressEnable = false; + this.btNo.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btNo.ProgressForeColor = System.Drawing.Color.Black; + this.btNo.ProgressMax = 100F; + this.btNo.ProgressMin = 0F; + this.btNo.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btNo.ProgressValue = 0F; + this.btNo.ShadowColor = System.Drawing.Color.Gray; + this.btNo.Sign = ""; + this.btNo.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btNo.SignColor = System.Drawing.Color.Yellow; + this.btNo.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btNo.Size = new System.Drawing.Size(229, 61); + this.btNo.TabIndex = 0; + this.btNo.Text = "아니오"; + this.btNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btNo.TextShadow = true; + this.btNo.TextVisible = true; + this.btNo.Click += new System.EventHandler(this.btNo_Click); + // + // panel7 + // + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(6, 458); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(707, 5); + this.panel7.TabIndex = 17; + // + // lb7 + // + this.lb7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb7.BackColor2 = System.Drawing.Color.Gray; + this.lb7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb7.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb7.BorderSize = new System.Windows.Forms.Padding(1); + this.lb7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb7.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb7.Dock = System.Windows.Forms.DockStyle.Top; + this.lb7.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb7.ForeColor = System.Drawing.Color.White; + this.lb7.GradientEnable = true; + this.lb7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb7.GradientRepeatBG = false; + this.lb7.isButton = false; + this.lb7.Location = new System.Drawing.Point(6, 408); + this.lb7.MouseDownColor = System.Drawing.Color.Yellow; + this.lb7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb7.msg = null; + this.lb7.Name = "lb7"; + this.lb7.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb7.ProgressEnable = false; + this.lb7.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb7.ProgressForeColor = System.Drawing.Color.Black; + this.lb7.ProgressMax = 100F; + this.lb7.ProgressMin = 0F; + this.lb7.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb7.ProgressValue = 0F; + this.lb7.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb7.Sign = ""; + this.lb7.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb7.SignColor = System.Drawing.Color.Yellow; + this.lb7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb7.Size = new System.Drawing.Size(707, 50); + this.lb7.TabIndex = 9; + this.lb7.Text = "*"; + this.lb7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb7.TextShadow = true; + this.lb7.TextVisible = true; + // + // panel6 + // + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(6, 403); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(707, 5); + this.panel6.TabIndex = 16; + // + // lb6 + // + this.lb6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb6.BackColor2 = System.Drawing.Color.Gray; + this.lb6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb6.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb6.BorderSize = new System.Windows.Forms.Padding(1); + this.lb6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb6.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb6.Dock = System.Windows.Forms.DockStyle.Top; + this.lb6.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb6.ForeColor = System.Drawing.Color.White; + this.lb6.GradientEnable = true; + this.lb6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb6.GradientRepeatBG = false; + this.lb6.isButton = false; + this.lb6.Location = new System.Drawing.Point(6, 353); + this.lb6.MouseDownColor = System.Drawing.Color.Yellow; + this.lb6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb6.msg = null; + this.lb6.Name = "lb6"; + this.lb6.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb6.ProgressEnable = false; + this.lb6.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb6.ProgressForeColor = System.Drawing.Color.Black; + this.lb6.ProgressMax = 100F; + this.lb6.ProgressMin = 0F; + this.lb6.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb6.ProgressValue = 0F; + this.lb6.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb6.Sign = ""; + this.lb6.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb6.SignColor = System.Drawing.Color.Yellow; + this.lb6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb6.Size = new System.Drawing.Size(707, 50); + this.lb6.TabIndex = 8; + this.lb6.Text = "*"; + this.lb6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb6.TextShadow = true; + this.lb6.TextVisible = true; + // + // panel5 + // + this.panel5.Dock = System.Windows.Forms.DockStyle.Top; + this.panel5.Location = new System.Drawing.Point(6, 348); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(707, 5); + this.panel5.TabIndex = 15; + // + // lb5 + // + this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb5.BackColor2 = System.Drawing.Color.Gray; + this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb5.BorderSize = new System.Windows.Forms.Padding(1); + this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb5.Dock = System.Windows.Forms.DockStyle.Top; + this.lb5.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb5.ForeColor = System.Drawing.Color.White; + this.lb5.GradientEnable = true; + this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb5.GradientRepeatBG = false; + this.lb5.isButton = false; + this.lb5.Location = new System.Drawing.Point(6, 298); + this.lb5.MouseDownColor = System.Drawing.Color.Yellow; + this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb5.msg = null; + this.lb5.Name = "lb5"; + this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb5.ProgressEnable = false; + this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb5.ProgressForeColor = System.Drawing.Color.Black; + this.lb5.ProgressMax = 100F; + this.lb5.ProgressMin = 0F; + this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb5.ProgressValue = 0F; + this.lb5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb5.Sign = ""; + this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb5.SignColor = System.Drawing.Color.Yellow; + this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb5.Size = new System.Drawing.Size(707, 50); + this.lb5.TabIndex = 7; + this.lb5.Text = "*"; + this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb5.TextShadow = true; + this.lb5.TextVisible = true; + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(6, 293); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(707, 5); + this.panel3.TabIndex = 13; + // + // lb4 + // + this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb4.BackColor2 = System.Drawing.Color.Gray; + this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb4.BorderSize = new System.Windows.Forms.Padding(1); + this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb4.Dock = System.Windows.Forms.DockStyle.Top; + this.lb4.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb4.ForeColor = System.Drawing.Color.White; + this.lb4.GradientEnable = true; + this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb4.GradientRepeatBG = false; + this.lb4.isButton = false; + this.lb4.Location = new System.Drawing.Point(6, 243); + this.lb4.MouseDownColor = System.Drawing.Color.Yellow; + this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb4.msg = null; + this.lb4.Name = "lb4"; + this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb4.ProgressEnable = false; + this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb4.ProgressForeColor = System.Drawing.Color.Black; + this.lb4.ProgressMax = 100F; + this.lb4.ProgressMin = 0F; + this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb4.ProgressValue = 0F; + this.lb4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb4.Sign = ""; + this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb4.SignColor = System.Drawing.Color.Yellow; + this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb4.Size = new System.Drawing.Size(707, 50); + this.lb4.TabIndex = 6; + this.lb4.Text = "*"; + this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb4.TextShadow = true; + this.lb4.TextVisible = true; + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(6, 238); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(707, 5); + this.panel2.TabIndex = 12; + // + // lb3 + // + this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb3.BackColor2 = System.Drawing.Color.Gray; + this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb3.BorderSize = new System.Windows.Forms.Padding(1); + this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb3.Dock = System.Windows.Forms.DockStyle.Top; + this.lb3.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb3.ForeColor = System.Drawing.Color.White; + this.lb3.GradientEnable = true; + this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb3.GradientRepeatBG = false; + this.lb3.isButton = false; + this.lb3.Location = new System.Drawing.Point(6, 188); + this.lb3.MouseDownColor = System.Drawing.Color.Yellow; + this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb3.msg = null; + this.lb3.Name = "lb3"; + this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb3.ProgressEnable = false; + this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb3.ProgressForeColor = System.Drawing.Color.Black; + this.lb3.ProgressMax = 100F; + this.lb3.ProgressMin = 0F; + this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb3.ProgressValue = 0F; + this.lb3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb3.Sign = ""; + this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb3.SignColor = System.Drawing.Color.Yellow; + this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb3.Size = new System.Drawing.Size(707, 50); + this.lb3.TabIndex = 5; + this.lb3.Text = "*"; + this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb3.TextShadow = true; + this.lb3.TextVisible = true; + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(6, 183); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(707, 5); + this.panel1.TabIndex = 11; + // + // lb2 + // + this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb2.BackColor2 = System.Drawing.Color.Gray; + this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb2.BorderSize = new System.Windows.Forms.Padding(1); + this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb2.Dock = System.Windows.Forms.DockStyle.Top; + this.lb2.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb2.ForeColor = System.Drawing.Color.White; + this.lb2.GradientEnable = true; + this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb2.GradientRepeatBG = false; + this.lb2.isButton = false; + this.lb2.Location = new System.Drawing.Point(6, 133); + this.lb2.MouseDownColor = System.Drawing.Color.Yellow; + this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb2.msg = null; + this.lb2.Name = "lb2"; + this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb2.ProgressEnable = false; + this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb2.ProgressForeColor = System.Drawing.Color.Black; + this.lb2.ProgressMax = 100F; + this.lb2.ProgressMin = 0F; + this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb2.ProgressValue = 0F; + this.lb2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb2.Sign = ""; + this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb2.SignColor = System.Drawing.Color.Yellow; + this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb2.Size = new System.Drawing.Size(707, 50); + this.lb2.TabIndex = 4; + this.lb2.Text = "*"; + this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb2.TextShadow = true; + this.lb2.TextVisible = true; + // + // panel4 + // + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(6, 128); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(707, 5); + this.panel4.TabIndex = 14; + // + // lb1 + // + this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb1.BackColor2 = System.Drawing.Color.Gray; + this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lb1.BorderSize = new System.Windows.Forms.Padding(1); + this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb1.Dock = System.Windows.Forms.DockStyle.Top; + this.lb1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb1.ForeColor = System.Drawing.Color.White; + this.lb1.GradientEnable = true; + this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lb1.GradientRepeatBG = false; + this.lb1.isButton = false; + this.lb1.Location = new System.Drawing.Point(6, 78); + this.lb1.MouseDownColor = System.Drawing.Color.Yellow; + this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb1.msg = null; + this.lb1.Name = "lb1"; + this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb1.ProgressEnable = false; + this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb1.ProgressForeColor = System.Drawing.Color.Black; + this.lb1.ProgressMax = 100F; + this.lb1.ProgressMin = 0F; + this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb1.ProgressValue = 0F; + this.lb1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb1.Sign = ""; + this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb1.SignColor = System.Drawing.Color.Yellow; + this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb1.Size = new System.Drawing.Size(707, 50); + this.lb1.TabIndex = 2; + this.lb1.Text = "*"; + this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb1.TextShadow = true; + this.lb1.TextVisible = true; + // + // panel8 + // + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(6, 73); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(707, 5); + this.panel8.TabIndex = 18; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Brown; + this.lbTitle.BackColor2 = System.Drawing.Color.Tomato; + this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 28F, System.Drawing.FontStyle.Bold); + this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Horizontal; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = true; + this.lbTitle.Location = new System.Drawing.Point(6, 6); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(707, 67); + this.lbTitle.TabIndex = 3; + this.lbTitle.Text = "TITLE"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + // + // fMessageWindow + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.ClientSize = new System.Drawing.Size(729, 540); + this.Controls.Add(this.arPanel1); + this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "fMessageWindow"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Message Window"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fMsg_Load); + this.arPanel1.ResumeLayout(false); + this.panButton.ResumeLayout(false); + this.ResumeLayout(false); + } - #endregion - - public arCtl.arLabel lb1; - private arCtl.arPanel arPanel1; - public arCtl.arLabel lbTitle; - public arCtl.arLabel lb7; - public arCtl.arLabel lb6; - public arCtl.arLabel lb5; - public arCtl.arLabel lb4; - public arCtl.arLabel lb3; - public arCtl.arLabel lb2; - private System.Windows.Forms.Timer tmBlink; - public arCtl.arLabel btYes; - public arCtl.arLabel btNo; - private System.Windows.Forms.Panel panButton; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel7; - private System.Windows.Forms.Panel panel6; - private System.Windows.Forms.Panel panel5; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Panel panel8; + #endregion + + public arCtl.arLabel lb1; + private arCtl.arPanel arPanel1; + public arCtl.arLabel lbTitle; + public arCtl.arLabel lb7; + public arCtl.arLabel lb6; + public arCtl.arLabel lb5; + public arCtl.arLabel lb4; + public arCtl.arLabel lb3; + public arCtl.arLabel lb2; + private System.Windows.Forms.Timer tmBlink; + public arCtl.arLabel btYes; + public arCtl.arLabel btNo; + private System.Windows.Forms.Panel panButton; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panel8; } } \ No newline at end of file diff --git a/Cs_HMI/Project/MessageWindow/fMessageWindow.cs b/HMI/Project/MessageWindow/fMessageWindow.cs similarity index 96% rename from Cs_HMI/Project/MessageWindow/fMessageWindow.cs rename to HMI/Project/MessageWindow/fMessageWindow.cs index d0d64dc..b344b2c 100644 --- a/Cs_HMI/Project/MessageWindow/fMessageWindow.cs +++ b/HMI/Project/MessageWindow/fMessageWindow.cs @@ -1,199 +1,199 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Project -{ - public partial class fMessageWindow : Form - { - private Boolean fMove = false; - private Point MDownPos; - private string _msg = string.Empty; - public Boolean DialogMode = false; - - /// - /// 사용자가 이 창을 닫을수 있는가? - /// - public Boolean EnableUserClose - { - get { return _enableuserclose; } - set - { - _enableuserclose = value; - // if (!EnableUserClose) btClose.Visible = false; - } - } - private Boolean _enableuserclose = true; - - public void setMessage(string msg) - { - //msg를 분리해서 표시를 한다. - var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5, lb6, lb7 }; - var lineBuf = msg.Replace("\r", "").Split('\n'); - int maxLine = Math.Min(lbs.Length, lineBuf.Length); - - for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 - { - if (i >= lineBuf.Length) - { - lbs[i].Text = string.Empty; - } - else - { - if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); - else lbs[i].Text = lineBuf[i]; - } - - } - } - public fMessageWindow(string msg, string filename = "") - { - EnableUserClose = true; - InitializeComponent(); - this.FormClosing += fMsgWindow_FormClosing; - this.KeyDown += (s1, e1) => { if (EnableUserClose && e1.KeyCode == Keys.Escape) this.Close(); }; - this._msg = msg; - - - if (filename != "") - { - string fullname = AppDomain.CurrentDomain.BaseDirectory + "Image\\" + filename; - if (System.IO.File.Exists(fullname)) - { - var img = this.lb1.BackgroundImage; - this.lb1.BackgroundImage = Image.FromFile(fullname); - if (img != null) img.Dispose(); - } - else - { - msg += "\nNo Image File\n" + filename; - } - } - else - { - var img = this.lb1.BackgroundImage; - this.lb1.BackgroundImage = null; - if (img != null) img.Dispose(); - } - setMessage(msg); - this.lbTitle.MouseMove += label1_MouseMove; - lbTitle.MouseUp += label1_MouseUp; - lbTitle.MouseDown += label1_MouseDown; - lbTitle.MouseDoubleClick += label1_MouseDoubleClick; - //btClose.Click += arLabel1_Click; - } - - void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) - { - if (DialogMode==false) - { - e.Cancel = true; - return; - } - } - - private void fMsg_Load(object sender, EventArgs e) - { - - } - - private void label1_MouseMove(object sender, MouseEventArgs e) - { - if (fMove) - { - Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); - this.Left += offset.X; - this.Top += offset.Y; - offset = new Point(0, 0); - } - } - - private void label1_MouseUp(object sender, MouseEventArgs e) - { - fMove = false; - } - - private void label1_MouseDown(object sender, MouseEventArgs e) - { - MDownPos = new Point(e.X, e.Y); - fMove = true; - } - - private void label1_MouseDoubleClick(object sender, MouseEventArgs e) - { - if (EnableUserClose) - { - if (DialogMode == false) this.Visible = false; - else this.Close(); - } - - } - public enum EWinColor - { - Attention=0, - Error, - Information - } - - public void SetWindowColor(EWinColor wincolor) - { - switch (wincolor) - { - case EWinColor.Attention: - lbTitle.BackColor = Color.Gold; - lbTitle.BackColor2 = Color.Orange; - lbTitle.ShadowColor = Color.FromArgb(150, 150, 150); - lbTitle.ForeColor = Color.FromArgb(50, 50, 50); - break; - case EWinColor.Error: - lbTitle.BackColor = Color.Brown; - lbTitle.BackColor2 = Color.Tomato; - lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); - lbTitle.ForeColor = Color.WhiteSmoke; - break; - default: - lbTitle.BackColor = Color.DarkTurquoise; - lbTitle.BackColor2 = Color.LightSkyBlue; - lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); - lbTitle.ForeColor = Color.WhiteSmoke; - break; - } - } - - private void lbTitle_Click(object sender, EventArgs e) - { - if (EnableUserClose) - { - if (DialogMode == false) this.Visible = false; - else this.Close(); - } - } - - private void tmBlink_Tick(object sender, EventArgs e) - { - var bg1 = lbTitle.BackColor; - var bg2 = lbTitle.BackColor2; - lbTitle.BackColor = (Color)bg2; - lbTitle.BackColor2 = (Color)bg1; - } - - private void btYes_Click(object sender, EventArgs e) - { - if (DialogMode == false) this.Visible = false; - else this.DialogResult = System.Windows.Forms.DialogResult.Yes; - } - - private void btNo_Click(object sender, EventArgs e) - { - if (DialogMode == false) this.Visible = false; - else this.Close(); - - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project +{ + public partial class fMessageWindow : Form + { + private Boolean fMove = false; + private Point MDownPos; + private string _msg = string.Empty; + public Boolean DialogMode = false; + + /// + /// 사용자가 이 창을 닫을수 있는가? + /// + public Boolean EnableUserClose + { + get { return _enableuserclose; } + set + { + _enableuserclose = value; + // if (!EnableUserClose) btClose.Visible = false; + } + } + private Boolean _enableuserclose = true; + + public void setMessage(string msg) + { + //msg를 분리해서 표시를 한다. + var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5, lb6, lb7 }; + var lineBuf = msg.Replace("\r", "").Split('\n'); + int maxLine = Math.Min(lbs.Length, lineBuf.Length); + + for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 + { + if (i >= lineBuf.Length) + { + lbs[i].Text = string.Empty; + } + else + { + if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); + else lbs[i].Text = lineBuf[i]; + } + + } + } + public fMessageWindow(string msg, string filename = "") + { + EnableUserClose = true; + InitializeComponent(); + this.FormClosing += fMsgWindow_FormClosing; + this.KeyDown += (s1, e1) => { if (EnableUserClose && e1.KeyCode == Keys.Escape) this.Close(); }; + this._msg = msg; + + + if (filename != "") + { + string fullname = AppDomain.CurrentDomain.BaseDirectory + "Image\\" + filename; + if (System.IO.File.Exists(fullname)) + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = Image.FromFile(fullname); + if (img != null) img.Dispose(); + } + else + { + msg += "\nNo Image File\n" + filename; + } + } + else + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = null; + if (img != null) img.Dispose(); + } + setMessage(msg); + this.lbTitle.MouseMove += label1_MouseMove; + lbTitle.MouseUp += label1_MouseUp; + lbTitle.MouseDown += label1_MouseDown; + lbTitle.MouseDoubleClick += label1_MouseDoubleClick; + //btClose.Click += arLabel1_Click; + } + + void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) + { + if (DialogMode==false) + { + e.Cancel = true; + return; + } + } + + private void fMsg_Load(object sender, EventArgs e) + { + + } + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + private void label1_MouseDoubleClick(object sender, MouseEventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) this.Visible = false; + else this.Close(); + } + + } + public enum EWinColor + { + Attention=0, + Error, + Information + } + + public void SetWindowColor(EWinColor wincolor) + { + switch (wincolor) + { + case EWinColor.Attention: + lbTitle.BackColor = Color.Gold; + lbTitle.BackColor2 = Color.Orange; + lbTitle.ShadowColor = Color.FromArgb(150, 150, 150); + lbTitle.ForeColor = Color.FromArgb(50, 50, 50); + break; + case EWinColor.Error: + lbTitle.BackColor = Color.Brown; + lbTitle.BackColor2 = Color.Tomato; + lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + lbTitle.ForeColor = Color.WhiteSmoke; + break; + default: + lbTitle.BackColor = Color.DarkTurquoise; + lbTitle.BackColor2 = Color.LightSkyBlue; + lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + lbTitle.ForeColor = Color.WhiteSmoke; + break; + } + } + + private void lbTitle_Click(object sender, EventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) this.Visible = false; + else this.Close(); + } + } + + private void tmBlink_Tick(object sender, EventArgs e) + { + var bg1 = lbTitle.BackColor; + var bg2 = lbTitle.BackColor2; + lbTitle.BackColor = (Color)bg2; + lbTitle.BackColor2 = (Color)bg1; + } + + private void btYes_Click(object sender, EventArgs e) + { + if (DialogMode == false) this.Visible = false; + else this.DialogResult = System.Windows.Forms.DialogResult.Yes; + } + + private void btNo_Click(object sender, EventArgs e) + { + if (DialogMode == false) this.Visible = false; + else this.Close(); + + } + } +} diff --git a/Cs_HMI/Project/MessageWindow/fMessageWindow.resx b/HMI/Project/MessageWindow/fMessageWindow.resx similarity index 97% rename from Cs_HMI/Project/MessageWindow/fMessageWindow.resx rename to HMI/Project/MessageWindow/fMessageWindow.resx index fcee611..eedca23 100644 --- a/Cs_HMI/Project/MessageWindow/fMessageWindow.resx +++ b/HMI/Project/MessageWindow/fMessageWindow.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/MessageWindow/fMsgWindow.Designer.cs b/HMI/Project/MessageWindow/fMsgWindow.Designer.cs similarity index 98% rename from Cs_HMI/Project/MessageWindow/fMsgWindow.Designer.cs rename to HMI/Project/MessageWindow/fMsgWindow.Designer.cs index 10ee66d..0306bf8 100644 --- a/Cs_HMI/Project/MessageWindow/fMsgWindow.Designer.cs +++ b/HMI/Project/MessageWindow/fMsgWindow.Designer.cs @@ -28,432 +28,432 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.lb1 = new arCtl.arLabel(); - this.arPanel1 = new arCtl.arPanel(); - this.lb7 = new arCtl.arLabel(); - this.lb6 = new arCtl.arLabel(); - this.lb5 = new arCtl.arLabel(); - this.lb4 = new arCtl.arLabel(); - this.lb3 = new arCtl.arLabel(); - this.lb2 = new arCtl.arLabel(); - this.lbTitle = new arCtl.arLabel(); - this.tmBlink = new System.Windows.Forms.Timer(this.components); - this.arPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // lb1 - // - this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb1.BackColor2 = System.Drawing.Color.Gray; - this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb1.BorderSize = new System.Windows.Forms.Padding(1); - this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.lb1.ForeColor = System.Drawing.Color.White; - this.lb1.GradientEnable = true; - this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lb1.GradientRepeatBG = false; - this.lb1.isButton = false; - this.lb1.Location = new System.Drawing.Point(8, 80); - this.lb1.MouseDownColor = System.Drawing.Color.Yellow; - this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb1.msg = null; - this.lb1.Name = "lb1"; - this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb1.ProgressEnable = false; - this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb1.ProgressForeColor = System.Drawing.Color.Black; - this.lb1.ProgressMax = 100F; - this.lb1.ProgressMin = 0F; - this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb1.ProgressValue = 0F; - this.lb1.ShadowColor = System.Drawing.Color.Black; - this.lb1.Sign = ""; - this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb1.SignColor = System.Drawing.Color.Yellow; - this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb1.Size = new System.Drawing.Size(874, 50); - this.lb1.TabIndex = 2; - this.lb1.Text = "*"; - this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb1.TextShadow = true; - this.lb1.TextVisible = true; - // - // arPanel1 - // - this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arPanel1.BackColor2 = System.Drawing.Color.Gray; - this.arPanel1.BorderColor = System.Drawing.Color.DimGray; - this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); - this.arPanel1.Controls.Add(this.lb7); - this.arPanel1.Controls.Add(this.lb6); - this.arPanel1.Controls.Add(this.lb5); - this.arPanel1.Controls.Add(this.lb4); - this.arPanel1.Controls.Add(this.lb3); - this.arPanel1.Controls.Add(this.lb2); - this.arPanel1.Controls.Add(this.lbTitle); - this.arPanel1.Controls.Add(this.lb1); - this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); - this.arPanel1.ForeColor = System.Drawing.Color.Khaki; - this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.arPanel1.GradientRepeatBG = false; - this.arPanel1.Location = new System.Drawing.Point(5, 5); - this.arPanel1.Name = "arPanel1"; - this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arPanel1.ProgressMax = 100F; - this.arPanel1.ProgressMin = 0F; - this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arPanel1.ProgressValue = 0F; - this.arPanel1.ShadowColor = System.Drawing.Color.Black; - this.arPanel1.ShowBorder = true; - this.arPanel1.Size = new System.Drawing.Size(890, 480); - this.arPanel1.TabIndex = 4; - this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.arPanel1.TextShadow = false; - this.arPanel1.UseProgressBar = false; - // - // lb7 - // - this.lb7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb7.BackColor2 = System.Drawing.Color.Gray; - this.lb7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb7.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb7.BorderSize = new System.Windows.Forms.Padding(1); - this.lb7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb7.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb7.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.lb7.ForeColor = System.Drawing.Color.White; - this.lb7.GradientEnable = true; - this.lb7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lb7.GradientRepeatBG = false; - this.lb7.isButton = false; - this.lb7.Location = new System.Drawing.Point(8, 422); - this.lb7.MouseDownColor = System.Drawing.Color.Yellow; - this.lb7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb7.msg = null; - this.lb7.Name = "lb7"; - this.lb7.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb7.ProgressEnable = false; - this.lb7.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb7.ProgressForeColor = System.Drawing.Color.Black; - this.lb7.ProgressMax = 100F; - this.lb7.ProgressMin = 0F; - this.lb7.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb7.ProgressValue = 0F; - this.lb7.ShadowColor = System.Drawing.Color.Black; - this.lb7.Sign = ""; - this.lb7.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb7.SignColor = System.Drawing.Color.Yellow; - this.lb7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb7.Size = new System.Drawing.Size(874, 50); - this.lb7.TabIndex = 9; - this.lb7.Text = "*"; - this.lb7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb7.TextShadow = true; - this.lb7.TextVisible = true; - // - // lb6 - // - this.lb6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb6.BackColor2 = System.Drawing.Color.Gray; - this.lb6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb6.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb6.BorderSize = new System.Windows.Forms.Padding(1); - this.lb6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb6.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb6.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.lb6.ForeColor = System.Drawing.Color.White; - this.lb6.GradientEnable = true; - this.lb6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lb6.GradientRepeatBG = false; - this.lb6.isButton = false; - this.lb6.Location = new System.Drawing.Point(8, 365); - this.lb6.MouseDownColor = System.Drawing.Color.Yellow; - this.lb6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb6.msg = null; - this.lb6.Name = "lb6"; - this.lb6.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb6.ProgressEnable = false; - this.lb6.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb6.ProgressForeColor = System.Drawing.Color.Black; - this.lb6.ProgressMax = 100F; - this.lb6.ProgressMin = 0F; - this.lb6.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb6.ProgressValue = 0F; - this.lb6.ShadowColor = System.Drawing.Color.Black; - this.lb6.Sign = ""; - this.lb6.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb6.SignColor = System.Drawing.Color.Yellow; - this.lb6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb6.Size = new System.Drawing.Size(874, 50); - this.lb6.TabIndex = 8; - this.lb6.Text = "*"; - this.lb6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb6.TextShadow = true; - this.lb6.TextVisible = true; - // - // lb5 - // - this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb5.BackColor2 = System.Drawing.Color.Gray; - this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb5.BorderSize = new System.Windows.Forms.Padding(1); - this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb5.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.lb5.ForeColor = System.Drawing.Color.White; - this.lb5.GradientEnable = true; - this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lb5.GradientRepeatBG = false; - this.lb5.isButton = false; - this.lb5.Location = new System.Drawing.Point(8, 308); - this.lb5.MouseDownColor = System.Drawing.Color.Yellow; - this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb5.msg = null; - this.lb5.Name = "lb5"; - this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb5.ProgressEnable = false; - this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb5.ProgressForeColor = System.Drawing.Color.Black; - this.lb5.ProgressMax = 100F; - this.lb5.ProgressMin = 0F; - this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb5.ProgressValue = 0F; - this.lb5.ShadowColor = System.Drawing.Color.Black; - this.lb5.Sign = ""; - this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb5.SignColor = System.Drawing.Color.Yellow; - this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb5.Size = new System.Drawing.Size(874, 50); - this.lb5.TabIndex = 7; - this.lb5.Text = "*"; - this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb5.TextShadow = true; - this.lb5.TextVisible = true; - // - // lb4 - // - this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb4.BackColor2 = System.Drawing.Color.Gray; - this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb4.BorderSize = new System.Windows.Forms.Padding(1); - this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb4.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.lb4.ForeColor = System.Drawing.Color.White; - this.lb4.GradientEnable = true; - this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lb4.GradientRepeatBG = false; - this.lb4.isButton = false; - this.lb4.Location = new System.Drawing.Point(8, 251); - this.lb4.MouseDownColor = System.Drawing.Color.Yellow; - this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb4.msg = null; - this.lb4.Name = "lb4"; - this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb4.ProgressEnable = false; - this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb4.ProgressForeColor = System.Drawing.Color.Black; - this.lb4.ProgressMax = 100F; - this.lb4.ProgressMin = 0F; - this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb4.ProgressValue = 0F; - this.lb4.ShadowColor = System.Drawing.Color.Black; - this.lb4.Sign = ""; - this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb4.SignColor = System.Drawing.Color.Yellow; - this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb4.Size = new System.Drawing.Size(874, 50); - this.lb4.TabIndex = 6; - this.lb4.Text = "*"; - this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb4.TextShadow = true; - this.lb4.TextVisible = true; - // - // lb3 - // - this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb3.BackColor2 = System.Drawing.Color.Gray; - this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb3.BorderSize = new System.Windows.Forms.Padding(1); - this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb3.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.lb3.ForeColor = System.Drawing.Color.White; - this.lb3.GradientEnable = true; - this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lb3.GradientRepeatBG = false; - this.lb3.isButton = false; - this.lb3.Location = new System.Drawing.Point(8, 194); - this.lb3.MouseDownColor = System.Drawing.Color.Yellow; - this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb3.msg = null; - this.lb3.Name = "lb3"; - this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb3.ProgressEnable = false; - this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb3.ProgressForeColor = System.Drawing.Color.Black; - this.lb3.ProgressMax = 100F; - this.lb3.ProgressMin = 0F; - this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb3.ProgressValue = 0F; - this.lb3.ShadowColor = System.Drawing.Color.Black; - this.lb3.Sign = ""; - this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb3.SignColor = System.Drawing.Color.Yellow; - this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb3.Size = new System.Drawing.Size(874, 50); - this.lb3.TabIndex = 5; - this.lb3.Text = "*"; - this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb3.TextShadow = true; - this.lb3.TextVisible = true; - // - // lb2 - // - this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.lb2.BackColor2 = System.Drawing.Color.Gray; - this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lb2.BorderSize = new System.Windows.Forms.Padding(1); - this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lb2.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.lb2.ForeColor = System.Drawing.Color.White; - this.lb2.GradientEnable = true; - this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lb2.GradientRepeatBG = false; - this.lb2.isButton = false; - this.lb2.Location = new System.Drawing.Point(8, 137); - this.lb2.MouseDownColor = System.Drawing.Color.Yellow; - this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lb2.msg = null; - this.lb2.Name = "lb2"; - this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lb2.ProgressEnable = false; - this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lb2.ProgressForeColor = System.Drawing.Color.Black; - this.lb2.ProgressMax = 100F; - this.lb2.ProgressMin = 0F; - this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lb2.ProgressValue = 0F; - this.lb2.ShadowColor = System.Drawing.Color.Black; - this.lb2.Sign = ""; - this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lb2.SignColor = System.Drawing.Color.Yellow; - this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lb2.Size = new System.Drawing.Size(874, 50); - this.lb2.TabIndex = 4; - this.lb2.Text = "*"; - this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lb2.TextShadow = true; - this.lb2.TextVisible = true; - // - // lbTitle - // - this.lbTitle.BackColor = System.Drawing.Color.Tomato; - this.lbTitle.BackColor2 = System.Drawing.Color.Red; - this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbTitle.BorderColorOver = System.Drawing.Color.Gray; - this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); - this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); - this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; - this.lbTitle.GradientEnable = true; - this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbTitle.GradientRepeatBG = false; - this.lbTitle.isButton = false; - this.lbTitle.Location = new System.Drawing.Point(8, 9); - this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; - this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbTitle.msg = null; - this.lbTitle.Name = "lbTitle"; - this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbTitle.ProgressEnable = false; - this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; - this.lbTitle.ProgressMax = 100F; - this.lbTitle.ProgressMin = 0F; - this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbTitle.ProgressValue = 0F; - this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.lbTitle.Sign = ""; - this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbTitle.SignColor = System.Drawing.Color.Yellow; - this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbTitle.Size = new System.Drawing.Size(874, 67); - this.lbTitle.TabIndex = 3; - this.lbTitle.Text = "TITLE"; - this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbTitle.TextShadow = true; - this.lbTitle.TextVisible = true; - this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); - // - // tmBlink - // - this.tmBlink.Enabled = true; - this.tmBlink.Interval = 300; - this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); - // - // fMsgWindow - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); - this.ClientSize = new System.Drawing.Size(900, 490); - this.Controls.Add(this.arPanel1); - this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.KeyPreview = true; - this.MaximizeBox = false; - this.Name = "fMsgWindow"; - this.Padding = new System.Windows.Forms.Padding(5); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Message Window"; - this.TopMost = true; - this.Load += new System.EventHandler(this.fMsg_Load); - this.arPanel1.ResumeLayout(false); - this.ResumeLayout(false); - + this.components = new System.ComponentModel.Container(); + this.lb1 = new arCtl.arLabel(); + this.arPanel1 = new arCtl.arPanel(); + this.lb7 = new arCtl.arLabel(); + this.lb6 = new arCtl.arLabel(); + this.lb5 = new arCtl.arLabel(); + this.lb4 = new arCtl.arLabel(); + this.lb3 = new arCtl.arLabel(); + this.lb2 = new arCtl.arLabel(); + this.lbTitle = new arCtl.arLabel(); + this.tmBlink = new System.Windows.Forms.Timer(this.components); + this.arPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // lb1 + // + this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb1.BackColor2 = System.Drawing.Color.Gray; + this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb1.BorderSize = new System.Windows.Forms.Padding(1); + this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb1.ForeColor = System.Drawing.Color.White; + this.lb1.GradientEnable = true; + this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb1.GradientRepeatBG = false; + this.lb1.isButton = false; + this.lb1.Location = new System.Drawing.Point(8, 80); + this.lb1.MouseDownColor = System.Drawing.Color.Yellow; + this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb1.msg = null; + this.lb1.Name = "lb1"; + this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb1.ProgressEnable = false; + this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb1.ProgressForeColor = System.Drawing.Color.Black; + this.lb1.ProgressMax = 100F; + this.lb1.ProgressMin = 0F; + this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb1.ProgressValue = 0F; + this.lb1.ShadowColor = System.Drawing.Color.Black; + this.lb1.Sign = ""; + this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb1.SignColor = System.Drawing.Color.Yellow; + this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb1.Size = new System.Drawing.Size(874, 50); + this.lb1.TabIndex = 2; + this.lb1.Text = "*"; + this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb1.TextShadow = true; + this.lb1.TextVisible = true; + // + // arPanel1 + // + this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arPanel1.BackColor2 = System.Drawing.Color.Gray; + this.arPanel1.BorderColor = System.Drawing.Color.DimGray; + this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); + this.arPanel1.Controls.Add(this.lb7); + this.arPanel1.Controls.Add(this.lb6); + this.arPanel1.Controls.Add(this.lb5); + this.arPanel1.Controls.Add(this.lb4); + this.arPanel1.Controls.Add(this.lb3); + this.arPanel1.Controls.Add(this.lb2); + this.arPanel1.Controls.Add(this.lbTitle); + this.arPanel1.Controls.Add(this.lb1); + this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel1.ForeColor = System.Drawing.Color.Khaki; + this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel1.GradientRepeatBG = false; + this.arPanel1.Location = new System.Drawing.Point(5, 5); + this.arPanel1.Name = "arPanel1"; + this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel1.ProgressMax = 100F; + this.arPanel1.ProgressMin = 0F; + this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel1.ProgressValue = 0F; + this.arPanel1.ShadowColor = System.Drawing.Color.Black; + this.arPanel1.ShowBorder = true; + this.arPanel1.Size = new System.Drawing.Size(890, 480); + this.arPanel1.TabIndex = 4; + this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel1.TextShadow = false; + this.arPanel1.UseProgressBar = false; + // + // lb7 + // + this.lb7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb7.BackColor2 = System.Drawing.Color.Gray; + this.lb7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb7.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb7.BorderSize = new System.Windows.Forms.Padding(1); + this.lb7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb7.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb7.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb7.ForeColor = System.Drawing.Color.White; + this.lb7.GradientEnable = true; + this.lb7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb7.GradientRepeatBG = false; + this.lb7.isButton = false; + this.lb7.Location = new System.Drawing.Point(8, 422); + this.lb7.MouseDownColor = System.Drawing.Color.Yellow; + this.lb7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb7.msg = null; + this.lb7.Name = "lb7"; + this.lb7.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb7.ProgressEnable = false; + this.lb7.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb7.ProgressForeColor = System.Drawing.Color.Black; + this.lb7.ProgressMax = 100F; + this.lb7.ProgressMin = 0F; + this.lb7.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb7.ProgressValue = 0F; + this.lb7.ShadowColor = System.Drawing.Color.Black; + this.lb7.Sign = ""; + this.lb7.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb7.SignColor = System.Drawing.Color.Yellow; + this.lb7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb7.Size = new System.Drawing.Size(874, 50); + this.lb7.TabIndex = 9; + this.lb7.Text = "*"; + this.lb7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb7.TextShadow = true; + this.lb7.TextVisible = true; + // + // lb6 + // + this.lb6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb6.BackColor2 = System.Drawing.Color.Gray; + this.lb6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb6.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb6.BorderSize = new System.Windows.Forms.Padding(1); + this.lb6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb6.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb6.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb6.ForeColor = System.Drawing.Color.White; + this.lb6.GradientEnable = true; + this.lb6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb6.GradientRepeatBG = false; + this.lb6.isButton = false; + this.lb6.Location = new System.Drawing.Point(8, 365); + this.lb6.MouseDownColor = System.Drawing.Color.Yellow; + this.lb6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb6.msg = null; + this.lb6.Name = "lb6"; + this.lb6.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb6.ProgressEnable = false; + this.lb6.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb6.ProgressForeColor = System.Drawing.Color.Black; + this.lb6.ProgressMax = 100F; + this.lb6.ProgressMin = 0F; + this.lb6.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb6.ProgressValue = 0F; + this.lb6.ShadowColor = System.Drawing.Color.Black; + this.lb6.Sign = ""; + this.lb6.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb6.SignColor = System.Drawing.Color.Yellow; + this.lb6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb6.Size = new System.Drawing.Size(874, 50); + this.lb6.TabIndex = 8; + this.lb6.Text = "*"; + this.lb6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb6.TextShadow = true; + this.lb6.TextVisible = true; + // + // lb5 + // + this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb5.BackColor2 = System.Drawing.Color.Gray; + this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb5.BorderSize = new System.Windows.Forms.Padding(1); + this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb5.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb5.ForeColor = System.Drawing.Color.White; + this.lb5.GradientEnable = true; + this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb5.GradientRepeatBG = false; + this.lb5.isButton = false; + this.lb5.Location = new System.Drawing.Point(8, 308); + this.lb5.MouseDownColor = System.Drawing.Color.Yellow; + this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb5.msg = null; + this.lb5.Name = "lb5"; + this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb5.ProgressEnable = false; + this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb5.ProgressForeColor = System.Drawing.Color.Black; + this.lb5.ProgressMax = 100F; + this.lb5.ProgressMin = 0F; + this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb5.ProgressValue = 0F; + this.lb5.ShadowColor = System.Drawing.Color.Black; + this.lb5.Sign = ""; + this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb5.SignColor = System.Drawing.Color.Yellow; + this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb5.Size = new System.Drawing.Size(874, 50); + this.lb5.TabIndex = 7; + this.lb5.Text = "*"; + this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb5.TextShadow = true; + this.lb5.TextVisible = true; + // + // lb4 + // + this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb4.BackColor2 = System.Drawing.Color.Gray; + this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb4.BorderSize = new System.Windows.Forms.Padding(1); + this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb4.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb4.ForeColor = System.Drawing.Color.White; + this.lb4.GradientEnable = true; + this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb4.GradientRepeatBG = false; + this.lb4.isButton = false; + this.lb4.Location = new System.Drawing.Point(8, 251); + this.lb4.MouseDownColor = System.Drawing.Color.Yellow; + this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb4.msg = null; + this.lb4.Name = "lb4"; + this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb4.ProgressEnable = false; + this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb4.ProgressForeColor = System.Drawing.Color.Black; + this.lb4.ProgressMax = 100F; + this.lb4.ProgressMin = 0F; + this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb4.ProgressValue = 0F; + this.lb4.ShadowColor = System.Drawing.Color.Black; + this.lb4.Sign = ""; + this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb4.SignColor = System.Drawing.Color.Yellow; + this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb4.Size = new System.Drawing.Size(874, 50); + this.lb4.TabIndex = 6; + this.lb4.Text = "*"; + this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb4.TextShadow = true; + this.lb4.TextVisible = true; + // + // lb3 + // + this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb3.BackColor2 = System.Drawing.Color.Gray; + this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb3.BorderSize = new System.Windows.Forms.Padding(1); + this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb3.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb3.ForeColor = System.Drawing.Color.White; + this.lb3.GradientEnable = true; + this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb3.GradientRepeatBG = false; + this.lb3.isButton = false; + this.lb3.Location = new System.Drawing.Point(8, 194); + this.lb3.MouseDownColor = System.Drawing.Color.Yellow; + this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb3.msg = null; + this.lb3.Name = "lb3"; + this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb3.ProgressEnable = false; + this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb3.ProgressForeColor = System.Drawing.Color.Black; + this.lb3.ProgressMax = 100F; + this.lb3.ProgressMin = 0F; + this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb3.ProgressValue = 0F; + this.lb3.ShadowColor = System.Drawing.Color.Black; + this.lb3.Sign = ""; + this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb3.SignColor = System.Drawing.Color.Yellow; + this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb3.Size = new System.Drawing.Size(874, 50); + this.lb3.TabIndex = 5; + this.lb3.Text = "*"; + this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb3.TextShadow = true; + this.lb3.TextVisible = true; + // + // lb2 + // + this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lb2.BackColor2 = System.Drawing.Color.Gray; + this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb2.BorderSize = new System.Windows.Forms.Padding(1); + this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb2.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb2.ForeColor = System.Drawing.Color.White; + this.lb2.GradientEnable = true; + this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb2.GradientRepeatBG = false; + this.lb2.isButton = false; + this.lb2.Location = new System.Drawing.Point(8, 137); + this.lb2.MouseDownColor = System.Drawing.Color.Yellow; + this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb2.msg = null; + this.lb2.Name = "lb2"; + this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb2.ProgressEnable = false; + this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb2.ProgressForeColor = System.Drawing.Color.Black; + this.lb2.ProgressMax = 100F; + this.lb2.ProgressMin = 0F; + this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb2.ProgressValue = 0F; + this.lb2.ShadowColor = System.Drawing.Color.Black; + this.lb2.Sign = ""; + this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb2.SignColor = System.Drawing.Color.Yellow; + this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb2.Size = new System.Drawing.Size(874, 50); + this.lb2.TabIndex = 4; + this.lb2.Text = "*"; + this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb2.TextShadow = true; + this.lb2.TextVisible = true; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Tomato; + this.lbTitle.BackColor2 = System.Drawing.Color.Red; + this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.Gray; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(8, 9); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(874, 67); + this.lbTitle.TabIndex = 3; + this.lbTitle.Text = "TITLE"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + // + // tmBlink + // + this.tmBlink.Enabled = true; + this.tmBlink.Interval = 300; + this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); + // + // fMsgWindow + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.ClientSize = new System.Drawing.Size(900, 490); + this.Controls.Add(this.arPanel1); + this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "fMsgWindow"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Message Window"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fMsg_Load); + this.arPanel1.ResumeLayout(false); + this.ResumeLayout(false); + } #endregion diff --git a/Cs_HMI/Project/MessageWindow/fMsgWindow.cs b/HMI/Project/MessageWindow/fMsgWindow.cs similarity index 96% rename from Cs_HMI/Project/MessageWindow/fMsgWindow.cs rename to HMI/Project/MessageWindow/fMsgWindow.cs index 80ccd20..73ab57c 100644 --- a/Cs_HMI/Project/MessageWindow/fMsgWindow.cs +++ b/HMI/Project/MessageWindow/fMsgWindow.cs @@ -1,156 +1,156 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Project -{ - public partial class fMsgWindow : Form - { - private Boolean fMove = false; - private Point MDownPos; - private string _msg = string.Empty; - public Boolean DialogMode = false; - - /// - /// 사용자가 이 창을 닫을수 있는가? - /// - public Boolean EnableUserClose - { - get { return _enableuserclose; } - set - { - _enableuserclose = value; - // if (!EnableUserClose) btClose.Visible = false; - } - } - private Boolean _enableuserclose = true; - - public void setMessage(string msg) - { - //msg를 분리해서 표시를 한다. - var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5, lb6, lb7 }; - var lineBuf = msg.Replace("\r", "").Split('\n'); - int maxLine = Math.Min(lbs.Length, lineBuf.Length); - - for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 - { - if (i >= lineBuf.Length) - { - lbs[i].Text = string.Empty; - } - else - { - if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); - else lbs[i].Text = lineBuf[i]; - } - - } - } - public fMsgWindow(string msg, string filename = "") - { - EnableUserClose = true; - InitializeComponent(); - this.FormClosing += fMsgWindow_FormClosing; - this.KeyDown += (s1, e1) => { if (EnableUserClose && e1.KeyCode == Keys.Escape) this.Close(); }; - this._msg = msg; - - - if (filename != "") - { - string fullname = AppDomain.CurrentDomain.BaseDirectory + "Image\\" + filename; - if (System.IO.File.Exists(fullname)) - { - var img = this.lb1.BackgroundImage; - this.lb1.BackgroundImage = Image.FromFile(fullname); - if (img != null) img.Dispose(); - } - else - { - msg += "\nNo Image File\n" + filename; - } - } - else - { - var img = this.lb1.BackgroundImage; - this.lb1.BackgroundImage = null; - if (img != null) img.Dispose(); - } - setMessage(msg); - this.lbTitle.MouseMove += label1_MouseMove; - lbTitle.MouseUp += label1_MouseUp; - lbTitle.MouseDown += label1_MouseDown; - lbTitle.MouseDoubleClick += label1_MouseDoubleClick; - //btClose.Click += arLabel1_Click; - } - - void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) - { - if (DialogMode==false) - { - e.Cancel = true; - return; - } - } - - private void fMsg_Load(object sender, EventArgs e) - { - - } - - private void label1_MouseMove(object sender, MouseEventArgs e) - { - if (fMove) - { - Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); - this.Left += offset.X; - this.Top += offset.Y; - offset = new Point(0, 0); - } - } - - private void label1_MouseUp(object sender, MouseEventArgs e) - { - fMove = false; - } - - private void label1_MouseDown(object sender, MouseEventArgs e) - { - MDownPos = new Point(e.X, e.Y); - fMove = true; - } - - private void label1_MouseDoubleClick(object sender, MouseEventArgs e) - { - if (EnableUserClose) - { - if (DialogMode == false) this.Visible = false; - else this.Close(); - } - - } - - - private void lbTitle_Click(object sender, EventArgs e) - { - if (EnableUserClose) - { - if (DialogMode == false) this.Visible = false; - else this.Close(); - } - } - - private void tmBlink_Tick(object sender, EventArgs e) - { - var bg1 = lbTitle.BackColor; - var bg2 = lbTitle.BackColor2; - lbTitle.BackColor = bg2; - lbTitle.BackColor2 = bg1; - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project +{ + public partial class fMsgWindow : Form + { + private Boolean fMove = false; + private Point MDownPos; + private string _msg = string.Empty; + public Boolean DialogMode = false; + + /// + /// 사용자가 이 창을 닫을수 있는가? + /// + public Boolean EnableUserClose + { + get { return _enableuserclose; } + set + { + _enableuserclose = value; + // if (!EnableUserClose) btClose.Visible = false; + } + } + private Boolean _enableuserclose = true; + + public void setMessage(string msg) + { + //msg를 분리해서 표시를 한다. + var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5, lb6, lb7 }; + var lineBuf = msg.Replace("\r", "").Split('\n'); + int maxLine = Math.Min(lbs.Length, lineBuf.Length); + + for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 + { + if (i >= lineBuf.Length) + { + lbs[i].Text = string.Empty; + } + else + { + if (i > 0) lbs[i].Text = string.Format("{0}. {1}", i, lineBuf[i]); + else lbs[i].Text = lineBuf[i]; + } + + } + } + public fMsgWindow(string msg, string filename = "") + { + EnableUserClose = true; + InitializeComponent(); + this.FormClosing += fMsgWindow_FormClosing; + this.KeyDown += (s1, e1) => { if (EnableUserClose && e1.KeyCode == Keys.Escape) this.Close(); }; + this._msg = msg; + + + if (filename != "") + { + string fullname = AppDomain.CurrentDomain.BaseDirectory + "Image\\" + filename; + if (System.IO.File.Exists(fullname)) + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = Image.FromFile(fullname); + if (img != null) img.Dispose(); + } + else + { + msg += "\nNo Image File\n" + filename; + } + } + else + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = null; + if (img != null) img.Dispose(); + } + setMessage(msg); + this.lbTitle.MouseMove += label1_MouseMove; + lbTitle.MouseUp += label1_MouseUp; + lbTitle.MouseDown += label1_MouseDown; + lbTitle.MouseDoubleClick += label1_MouseDoubleClick; + //btClose.Click += arLabel1_Click; + } + + void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) + { + if (DialogMode==false) + { + e.Cancel = true; + return; + } + } + + private void fMsg_Load(object sender, EventArgs e) + { + + } + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + private void label1_MouseDoubleClick(object sender, MouseEventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) this.Visible = false; + else this.Close(); + } + + } + + + private void lbTitle_Click(object sender, EventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) this.Visible = false; + else this.Close(); + } + } + + private void tmBlink_Tick(object sender, EventArgs e) + { + var bg1 = lbTitle.BackColor; + var bg2 = lbTitle.BackColor2; + lbTitle.BackColor = bg2; + lbTitle.BackColor2 = bg1; + } + } +} diff --git a/Cs_HMI/Project/MessageWindow/fMsgWindow.resx b/HMI/Project/MessageWindow/fMsgWindow.resx similarity index 97% rename from Cs_HMI/Project/MessageWindow/fMsgWindow.resx rename to HMI/Project/MessageWindow/fMsgWindow.resx index fcee611..eedca23 100644 --- a/Cs_HMI/Project/MessageWindow/fMsgWindow.resx +++ b/HMI/Project/MessageWindow/fMsgWindow.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/MethodExtentions.cs b/HMI/Project/MethodExtentions.cs similarity index 97% rename from Cs_HMI/Project/MethodExtentions.cs rename to HMI/Project/MethodExtentions.cs index 91746c1..208e9e6 100644 --- a/Cs_HMI/Project/MethodExtentions.cs +++ b/HMI/Project/MethodExtentions.cs @@ -1,224 +1,224 @@ - -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Runtime.InteropServices; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace Project -{ - /// - /// generic method Extension - /// - public static class MethodExtensions - { - public static Rectangle AddOffset(this System.Drawing.Rectangle rect,System.Drawing.Point offset) - { - return new Rectangle(rect.Left + offset.X, rect.Top + offset.Y, rect.Width, rect.Height); - } - public static Rectangle AddOffset(this System.Drawing.Rectangle rect, int x, int y) - { - return new Rectangle(rect.Left + x, rect.Top + y, rect.Width, rect.Height); - } - public static string ToString(this System.Drawing.Rectangle rect) - { - return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); - } - public static string ToString(this System.Drawing.RectangleF rect) - { - return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); - } - - //public static void SetBGColor(this System.Windows.Forms.Label ctl,System.Drawing.Color color1) - //{ - // ctl.BackColor = System.Drawing.Color.Red; - //} - - /// - /// 0101이 반복되는 문자열 형태로 전환합니다. - /// - /// - /// - public static string BitString(this System.Collections.BitArray arr) - { - System.Text.StringBuilder sb = new System.Text.StringBuilder(); - for (int i = arr.Length; i > 0; i--) - sb.Append(arr[i - 1] ? "1" : "0"); - return sb.ToString(); - } - - /// - /// int 값으로 변환합니다. - /// - /// - /// - public static int ValueI(this System.Collections.BitArray arr) - { - byte[] buf = new byte[4]; - arr.CopyTo(buf, 0); - return BitConverter.ToInt32(buf, 0); - } - - /// - /// 숫자인지 검사합니다. - /// - /// - /// - public static bool IsNumeric(this string input) - { - double data; - return double.TryParse(input, out data); - //return Regex.IsMatch(input, @"^\d+$"); - } - - /// - /// isnullorempty 를 수행합니다. - /// - /// - /// - public static Boolean isEmpty(this string input) - { - return string.IsNullOrEmpty(input); - } - - /// - /// default 인코딩을 사용하여 문자열로 반환합니다. - /// - /// - /// - public static string GetString(this Byte[] input) - { - return System.Text.Encoding.Default.GetString(input); - } - - /// - /// 16진수 문자열 형태로 반환합니다. - /// - /// - /// - public static string GetHexString(this Byte[] input) - { - System.Text.StringBuilder sb = new System.Text.StringBuilder(); - foreach (byte b in input) - sb.Append(" " + b.ToString("X2")); - return sb.ToString(); - } - - public static string Base64Encode(this string src) - { - string base64enc = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(src)); - return base64enc; - } - public static string Base64Decode(this string src) - { - var base64dec = Convert.FromBase64String(src); - return System.Text.Encoding.UTF8.GetString(base64dec); - } - public static string UrlPathEncode(this string src) - { - string data = System.Web.HttpUtility.UrlPathEncode(src); - return data; - } - public static string UrlEncode(this string src) - { - string data = System.Web.HttpUtility.UrlEncode(src, System.Text.Encoding.UTF8); - return data; - } - public static string UrlDecode(this string src) - { - string data = System.Web.HttpUtility.UrlDecode(src, System.Text.Encoding.UTF8); - return data; - } - public static string toSizeStr(this Size rect) - { - return string.Format("{0};{1}", rect.Width, rect.Height); - } - public static string toPointStr(this PointF rect) - { - return string.Format("{0};{1}", rect.X, rect.Y); - } - public static string toPointStr(this Point rect) - { - return string.Format("{0};{1}", rect.X, rect.Y); - } - public static string toRectStr(this Rectangle rect) - { - return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); - } - public static string toRectStr(this RectangleF rect) - { - return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); - } - public static RectangleF toRectF(this string str) - { - var buffer = str.Split(';'); - if (buffer.Length != 4) return RectangleF.Empty; - for (int i = 0; i < buffer.Length; i++) - if (buffer[i] == "") buffer[i] = "0"; - return new RectangleF(float.Parse(buffer[0]), float.Parse(buffer[1]), float.Parse(buffer[2]), float.Parse(buffer[3])); - } - public static Rectangle toRect(this string str) - { - var buffer = str.Split(';'); - if (buffer.Length != 4) return Rectangle.Empty; - for (int i = 0; i < buffer.Length; i++) - if (buffer[i] == "") buffer[i] = "0"; - return new Rectangle(int.Parse(buffer[0]), int.Parse(buffer[1]), int.Parse(buffer[2]), int.Parse(buffer[3])); - } - public static Point toPoint(this string str) - { - str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); - - var buffer = str.Split(';'); - if (buffer.Length != 2) return Point.Empty; - for (int i = 0; i < buffer.Length; i++) - if (buffer[i] == "") buffer[i] = "0"; - return new Point(int.Parse(buffer[0]), int.Parse(buffer[1])); - } - public static Size toSize(this string str) - { - str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); - - var buffer = str.Split(';'); - if (buffer.Length != 2) return Size.Empty; - for (int i = 0; i < buffer.Length; i++) - if (buffer[i] == "") buffer[i] = "0"; - return new Size(int.Parse(buffer[0]), int.Parse(buffer[1])); - } - public static PointF toPointF(this string str) - { - str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); - - var buffer = str.Split(';'); - if (buffer.Length != 2) return PointF.Empty; - for (int i = 0; i < buffer.Length; i++) - if (buffer[i] == "") buffer[i] = "0"; - return new PointF(float.Parse(buffer[0]), float.Parse(buffer[1])); - } - public static Rectangle Fix(this Rectangle rect, Size imgsize) - { - //영역보정 - if (rect.Left < 1) rect.X = 1; - if (rect.Top < 1) rect.Y = 1; - if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; - if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; - if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; - return rect; - } - public static RectangleF FixRoi(this RectangleF rect, Size imgsize) - { - //영역보정 - if (rect.Left < 1) rect.X = 1; - if (rect.Top < 1) rect.Y = 1; - if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; - if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; - if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; - return rect; - } - - } -} - + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Project +{ + /// + /// generic method Extension + /// + public static class MethodExtensions + { + public static Rectangle AddOffset(this System.Drawing.Rectangle rect,System.Drawing.Point offset) + { + return new Rectangle(rect.Left + offset.X, rect.Top + offset.Y, rect.Width, rect.Height); + } + public static Rectangle AddOffset(this System.Drawing.Rectangle rect, int x, int y) + { + return new Rectangle(rect.Left + x, rect.Top + y, rect.Width, rect.Height); + } + public static string ToString(this System.Drawing.Rectangle rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string ToString(this System.Drawing.RectangleF rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + + //public static void SetBGColor(this System.Windows.Forms.Label ctl,System.Drawing.Color color1) + //{ + // ctl.BackColor = System.Drawing.Color.Red; + //} + + /// + /// 0101이 반복되는 문자열 형태로 전환합니다. + /// + /// + /// + public static string BitString(this System.Collections.BitArray arr) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + for (int i = arr.Length; i > 0; i--) + sb.Append(arr[i - 1] ? "1" : "0"); + return sb.ToString(); + } + + /// + /// int 값으로 변환합니다. + /// + /// + /// + public static int ValueI(this System.Collections.BitArray arr) + { + byte[] buf = new byte[4]; + arr.CopyTo(buf, 0); + return BitConverter.ToInt32(buf, 0); + } + + /// + /// 숫자인지 검사합니다. + /// + /// + /// + public static bool IsNumeric(this string input) + { + double data; + return double.TryParse(input, out data); + //return Regex.IsMatch(input, @"^\d+$"); + } + + /// + /// isnullorempty 를 수행합니다. + /// + /// + /// + public static Boolean isEmpty(this string input) + { + return string.IsNullOrEmpty(input); + } + + /// + /// default 인코딩을 사용하여 문자열로 반환합니다. + /// + /// + /// + public static string GetString(this Byte[] input) + { + return System.Text.Encoding.Default.GetString(input); + } + + /// + /// 16진수 문자열 형태로 반환합니다. + /// + /// + /// + public static string GetHexString(this Byte[] input) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + foreach (byte b in input) + sb.Append(" " + b.ToString("X2")); + return sb.ToString(); + } + + public static string Base64Encode(this string src) + { + string base64enc = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(src)); + return base64enc; + } + public static string Base64Decode(this string src) + { + var base64dec = Convert.FromBase64String(src); + return System.Text.Encoding.UTF8.GetString(base64dec); + } + public static string UrlPathEncode(this string src) + { + string data = System.Web.HttpUtility.UrlPathEncode(src); + return data; + } + public static string UrlEncode(this string src) + { + string data = System.Web.HttpUtility.UrlEncode(src, System.Text.Encoding.UTF8); + return data; + } + public static string UrlDecode(this string src) + { + string data = System.Web.HttpUtility.UrlDecode(src, System.Text.Encoding.UTF8); + return data; + } + public static string toSizeStr(this Size rect) + { + return string.Format("{0};{1}", rect.Width, rect.Height); + } + public static string toPointStr(this PointF rect) + { + return string.Format("{0};{1}", rect.X, rect.Y); + } + public static string toPointStr(this Point rect) + { + return string.Format("{0};{1}", rect.X, rect.Y); + } + public static string toRectStr(this Rectangle rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); + } + public static string toRectStr(this RectangleF rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); + } + public static RectangleF toRectF(this string str) + { + var buffer = str.Split(';'); + if (buffer.Length != 4) return RectangleF.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new RectangleF(float.Parse(buffer[0]), float.Parse(buffer[1]), float.Parse(buffer[2]), float.Parse(buffer[3])); + } + public static Rectangle toRect(this string str) + { + var buffer = str.Split(';'); + if (buffer.Length != 4) return Rectangle.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Rectangle(int.Parse(buffer[0]), int.Parse(buffer[1]), int.Parse(buffer[2]), int.Parse(buffer[3])); + } + public static Point toPoint(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return Point.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Point(int.Parse(buffer[0]), int.Parse(buffer[1])); + } + public static Size toSize(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return Size.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Size(int.Parse(buffer[0]), int.Parse(buffer[1])); + } + public static PointF toPointF(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return PointF.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new PointF(float.Parse(buffer[0]), float.Parse(buffer[1])); + } + public static Rectangle Fix(this Rectangle rect, Size imgsize) + { + //영역보정 + if (rect.Left < 1) rect.X = 1; + if (rect.Top < 1) rect.Y = 1; + if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; + if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; + if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; + return rect; + } + public static RectangleF FixRoi(this RectangleF rect, Size imgsize) + { + //영역보정 + if (rect.Left < 1) rect.X = 1; + if (rect.Top < 1) rect.Y = 1; + if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; + if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; + if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; + return rect; + } + + } +} + diff --git a/Cs_HMI/Project/PUB.cs b/HMI/Project/PUB.cs similarity index 97% rename from Cs_HMI/Project/PUB.cs rename to HMI/Project/PUB.cs index 2ba1f93..2d0ba3d 100644 --- a/Cs_HMI/Project/PUB.cs +++ b/HMI/Project/PUB.cs @@ -1,757 +1,757 @@ -using COMM; -using System.Net.NetworkInformation; -using System.Net; -using System.Management; -using System.Data; -using AR; -using System.Media; -using System.Runtime.InteropServices; -using System.Windows.Forms; -using System; - -#if SPEECH -using Microsoft.Speech.Synthesis; -#endif - -using System.Threading.Tasks; -using System.Data.SqlClient; -using System.Linq; -using AGVNavigationCore.Models; -using AGVNavigationCore.Controls; -using System.Collections.Generic; -using System.Drawing; - -namespace Project -{ - public static class PUB - { - //public static Device.CFlag flag; - public static bool bShutdown = false; - public static bool Automodeonreboot = false; - public static bool AutRebootAlreay = false; - public static bool DriveSpeed = false; - public static AGVNavigationCore.Controls.UnifiedAGVCanvas _mapCanvas; - //public static List _mapNodes; - - /// - /// 다음 작업 명령 (PickOn/PickOff) - /// - public static ENIGProtocol.AGVCommandHE NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; - - /// - /// 가상 AGV (시뮬레이션용) - /// - public static VirtualAGV _virtualAGV; - - #region "Hardware" - - /// - /// 읽기/쓰기용이며 구동모터 와 비상정지가 연결됨(USB-ATMEGA 2560) - /// - //public static arDev.FakePLC PLC; - - ///// - ///// 읽기전용이며 Z축 모터와 외부 버튼이 연결됨(USB-ATMEGA 2560) - ///// - //public static Device.PLC2 plcS; - - /// - /// XBEE 통신(USB-TTL) - /// - public static Device.Xbee XBE; - - /// - /// 배터리 잔량 확인(COM2 : RS232C - TTL) - /// - // public static arDevice.BMS bms; - - /// - /// RFID READER (COM1 : RS232C) - /// - public static arDev.Narumi AGV; - - public static arDev.BMS BMS; - - #endregion - - /// - /// 디버그모니터용 소켓(데이터를 전송만 한다) - /// - public static Device.Socket sock_debug; -#if SPEECH - private static SpeechSynthesizer voice; -#endif - public static SoundPlayer mplayer; - - [DllImport("winmm.dll")] - private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume); - - public static void SetVolume(int volume) - { - // volume은 0~100 사이의 값 - uint vol = (uint)((volume / 100.0) * 0xFFFF); - waveOutSetVolume(IntPtr.Zero, vol); - setting.musicvol = volume; - } - - public static bool CheckPassword() - { - var f = new Dialog.fPassword(); - if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK) return false; - var pass = f.tbInput.Text.Trim(); - var passok = DateTime.Now.ToString("ddMM"); - if (pass.Equals(passok)) return true; - else return false; - } - - /// - /// 스피커를 통한 음성을 출력합니다 - /// 출력되는 음성은 기본로그에도 자동 포함됩니다 - /// - /// - /// - /// 로그에도 출력 합니다 - public static void Speak(string m, Boolean force = false, bool addlog = true,string logcate="") - { - if (force == false && PUB.setting.Enable_Speak == false) - { - Console.WriteLine("speech disabled"); - return; - } -#if SPEECH - if (force) - voice.SpeakAsyncCancelAll(); - if (voice.State == SynthesizerState.Ready) - voice.SpeakAsync(m); - if (addlog) - { - if (logcate.isEmpty()) logcate = "SPEAK"; - PUB.log.Add(logcate, m); - } -#else - PUB.log.Add($"스피치컴파일상수OFF"); -#endif - } - - /// - /// 콜을 받을 수 있는 상황인가? - /// - /// - public static bool IsCanCALL() - { - //콜가능여부도 전송한다 - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] && - VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false && - PUB.BMS.BMSInformation.rsoc > PUB.setting.ChargeEmergencyLevel && - PUB.sm.RunStep != StateMachine.ERunStep.BUFFER_OUT && - VAR.BOOL[eVarBool.WAIT_COVER_DOWN] == false && - VAR.BOOL[eVarBool.WAIT_COVER_UP] == false) - { - return true; - } - else return false; - } - - public static CounterSetting counter; - - /// - /// popup message window - /// - public static MessageWindow popup; - - /// - /// database manager - /// - public static Manager.DatabaseManager dbm; - - /// - /// 설정정보 - /// - public static CSetting setting; - - /// - /// 시스템로그 - /// - public static AR.Log log, logagv, logplc, logbms, logxbee; - - public static Boolean bPlayMusic = false; - - - /// - /// 사용자 인풋 감지 시간 - /// - public static DateTime LastInputTime = DateTime.Now; - - public static CResult Result; - - public static string PatchVersion { get; set; } - - /// - /// 상태머신 - /// - public static StateMachine.StateMachine sm; //상태머신분리 190529 - - public static System.IO.DirectoryInfo path; - - - public static void initCore() - { - //setting - setting = new CSetting(); - setting.Load(); - - //counter setting - counter = new CounterSetting(); - counter.Load(); - - //log - log = new AR.Log(); - logagv = new AR.Log(); - logplc = new AR.Log(); - logbms = new AR.Log(); - logxbee = new AR.Log(); - - logagv.FileNameFormat = "{yyyyMMdd}_agv"; - logplc.FileNameFormat = "{yyyyMMdd}_plc"; - logbms.FileNameFormat = "{yyyyMMdd}_bms"; - logxbee.FileNameFormat = "{yyyyMMdd}_cal"; - - //popupmessage - popup = new MessageWindow(); - - Result = new CResult(); - Result.Clear(); - } - - public static void init() - { - - Result = new CResult(); - - //state machine - sm = new StateMachine.StateMachine(); - - path = new System.IO.DirectoryInfo(UTIL.CurrentPath); - - - - mplayer = new SoundPlayer(); - if (PUB.setting.musicfile.isEmpty() == false) - if (System.IO.File.Exists(PUB.setting.musicfile)) - { - PUB.mplayer.SoundLocation = PUB.setting.musicfile; - SetVolume(PUB.setting.musicvol); - } -#if SPEECH - voice = new SpeechSynthesizer(); - try - { - // 한국어 음성을 찾아서 설정 - var koreanVoice = voice.GetInstalledVoices() - .Where(v => v.VoiceInfo.Culture.Name.StartsWith("ko")) - .FirstOrDefault(); - - if (koreanVoice != null) - { - voice.SelectVoice(koreanVoice.VoiceInfo.Name); - } - else - { - // 한국어 음성이 없으면 기본 음성 사용 - var defaultVoice = voice.GetInstalledVoices().FirstOrDefault(); - if (defaultVoice != null) - { - voice.SelectVoice(defaultVoice.VoiceInfo.Name); - } - } - } - catch - { - // 음성 설정 실패 시 기본값 사용 - } - voice.SetOutputToDefaultAudioDevice(); -#endif - var file_version = System.IO.Path.Combine(UTIL.CurrentPath, "version.txt"); - if (System.IO.File.Exists(file_version)) - { - PUB.PatchVersion = System.IO.File.ReadAllText(file_version, System.Text.Encoding.UTF8); - } - else PUB.PatchVersion = string.Empty; - } - - - - public static Boolean CheckManualChargeMode(bool Prompt = true) - { - if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true) - { - string msg = "수동 충전 상태이므로 진행 할 수 없습니다"; - PUB.Speak(msg); - if (Prompt) - UTIL.MsgE(msg); - return false; - } - else return true; - } - - public static double GetFreeSpace(string driveletter) - { - try - { - var di = new System.IO.DriveInfo(driveletter); - var freespace = di.TotalFreeSpace; - var totalspace = di.TotalSize; - var freeSpaceRate = (freespace * 1.0 / totalspace) * 100.0; - return freeSpaceRate; - } - catch - { - return 100.0; - } - } - - public static double GetFreeSpace() - { - double retval = 100.0; - string savePath1 = path.FullName; - if (savePath1 != "" && System.IO.Directory.Exists(savePath1)) - { - //이폴더를 사용 - if (savePath1.StartsWith("\\") == false) - { - //남은잔량을 체크한다. - retval = GetFreeSpace(savePath1.Substring(0, 1)); - //if (freespace1 >= Pub.setting.AutoDeleteThreshold) return savePath1; - } - } - return retval; - } - - /// - /// 장치에 오류가 있는지? - /// - /// - public static Boolean HasHWError() - { - //if (PUB.PLC.IsValid == false) return true; - if (PUB.AGV.IsOpen == false) return true; - if (PUB.XBE.IsOpen == false) return true; - return false; - } - - //public static void AddStatusSQL(StateMachine.eSMStep status, string remark, DateTime wdate) - //{ - // VAR.TIME[eVarTime.StatusReporttime] = DateTime.Now; - // try - // { - // var state = 0; - // if (status == StateMachine.eSMStep.RUN) state = 1; - // else if (status == StateMachine.eSMStep.ERROR || status == StateMachine.eSMStep.EMERGENCY) state = 2; - // if (string.IsNullOrEmpty(remark)) remark = status.ToString(); - // var mcid = PUB.setting.MCID; - // var path = System.IO.Path.Combine(Util.CurrentPath, "Status"); - // var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql"); - // var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time) values('{0}','{1}','{2}','{3}','{4}','{5}')"; - // sql = string.Format(sql, mcid, state, remark, IP, MAC, wdate.ToString("yyyy-MM-dd HH:mm:ss")); - // System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); - - // //만들어진지 3분이 지난 파일은 삭제한다. - // //var di = new System.IO.DirectoryInfo(path); - // //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); - // //if (fi != null) fi.Delete(); - // } - // catch (Exception ex) - // { - // PUB.log.AddE(ex.Message); - // } - //} - - public static void AddEEDB(string remark) - { - var step = PUB.sm.Step.ToString(); - var rtep = PUB.sm.RunStep.ToString(); - var mcid = PUB.setting.MCID; - var path = System.IO.Path.Combine(UTIL.CurrentPath, "Status"); - var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{step}_{rtep}.sql"); - var wdate = DateTime.Now; - try - { - var sql = "insert into AGV_History(mcid,step,runstep,remark,ip,wdate) values('{0}','{1}','{2}','{3}','{4}','{5}')"; - sql = string.Format(sql, mcid, step, rtep, remark, IP, wdate.ToString("yyyy-MM-dd HH:mm:ss")); - System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); - - //만들어진지 3분이 지난 파일은 삭제한다. - //var di = new System.IO.DirectoryInfo(path); - //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); - //if (fi != null) fi.Delete(); - } - catch (Exception ex) - { - PUB.log.AddE(ex.Message); - } - } - - public static string GetResultCodeMessage(eResult err) - { - return err.ToString().ToUpper(); - } - - - public static string GetErrorMessage(eECode err, params object[] values) - { - switch (err) - { - case eECode.NOTALLOWUP: - return "상차 허용 위치가 아닙니다"; - case eECode.AGVCONN: - return Lang.AGV연결실패; - case eECode.PLCCONN: - return Lang.PLC통신실패; - case eECode.MESSAGE_ERROR: - if (values.Length > 0) return values[0].ToString(); - return "Message Error"; - - default: - return err.ToString(); - } - } - public static string IP { get; set; } - public static string MAC { get; set; } - - /// - /// 프로그램 사용기록 추가 - /// - /// - /// - /// - public static void CheckNRegister3(string prgmName, string develop, string prgmVersion) - { - if (prgmName.Length > 50) prgmName = prgmName.Substring(0, 50); //길이제한 - var task = Task.Factory.StartNew(() => - { - try - { - string ip = ""; - string mac = ""; - // string prgmName = Application.ProductName; - - var nif = NetworkInterface.GetAllNetworkInterfaces(); - var host = Dns.GetHostEntry(Dns.GetHostName()); - string fullname = System.Net.Dns.GetHostEntry("").HostName; - foreach (IPAddress r in host.AddressList) - { - string str = r.ToString(); - - if (str != "" && str.Substring(0, 3) == "10.") - { - ip = str; - break; - } - } - - string rtn = string.Empty; - ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); - ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); - foreach (ManagementObject mo in query1.Get()) - { - string[] address = (string[])mo["IPAddress"]; - if (address[0] == ip && mo["MACAddress"] != null) - { - mac = mo["MACAddress"].ToString(); - break; - } - } - - if (ip == "" || mac == "") return; - - var conn = new SqlConnection(AGV4.Properties.Settings.Default.CS);// "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); - conn.Open(); - string ProcName = "AddPrgmUser3"; - var cmd = new SqlCommand(ProcName, conn) - { - CommandType = CommandType.StoredProcedure - }; - - SqlParameter param = cmd.Parameters.Add("@mac", SqlDbType.NVarChar, 50); - param.Value = mac; - - param = cmd.Parameters.Add("@ip", SqlDbType.NVarChar, 50); - param.Value = ip; - - param = cmd.Parameters.Add("@pgrm", SqlDbType.NVarChar, 50); - param.Value = prgmName; - - param = cmd.Parameters.Add("@develop", SqlDbType.NVarChar, 50); - param.Value = develop; - - param = cmd.Parameters.Add("@pgver", SqlDbType.NVarChar, 50); - param.Value = prgmVersion; - - param = cmd.Parameters.Add("@prgmLogin", SqlDbType.VarChar, 20); - param.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - - param = cmd.Parameters.Add("@account", SqlDbType.NVarChar, 50); - param.Value = System.Environment.UserName; - - param = cmd.Parameters.Add("@hostname", SqlDbType.NVarChar, 100); - param.Value = fullname; - - cmd.ExecuteNonQuery(); - conn.Close(); - - IP = ip; - MAC = mac; - } - catch (Exception ex) - { - PUB.log.AddE(ex.Message); - } - }); - } - public static string SelectSerialPort() - { - var f = new System.Windows.Forms.Form(); - f.WindowState = System.Windows.Forms.FormWindowState.Normal; - f.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - f.Size = new System.Drawing.Size(800, 400); - f.MaximizeBox = false; - f.MinimizeBox = false; - f.Text = "Select Port"; - f.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - var lst = new System.Windows.Forms.ListBox(); - lst.Font = new System.Drawing.Font("Consolas", 15, System.Drawing.FontStyle.Bold); - lst.Dock = System.Windows.Forms.DockStyle.Fill; - lst.DoubleClick += (s1, e1) => - { - if (lst.SelectedItem != null) f.DialogResult = System.Windows.Forms.DialogResult.OK; - }; - using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort")) - { - var portnames = System.IO.Ports.SerialPort.GetPortNames().OrderBy(t => t); - var ports = searcher.Get().Cast().ToList(); - foreach (var port in portnames) - { - var desc = ""; - var portInfo = ports.Where(t => t["DeviceId"].ToString() == port).FirstOrDefault(); - if (portInfo != null) desc = portInfo["Caption"].ToString(); - lst.Items.Add(string.Format("{0} - {1}", port, desc)); - } - } - f.Controls.Add(lst); - if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - var name = lst.SelectedItem.ToString().Split('-'); - return name[0].Trim(); - } - else return string.Empty; - } - - public static void SystemReboot(UInt16 timeout, bool setautomode = false) - { - System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(); - si.FileName = @"c:\windows\system32\shutdown.exe"; - si.Arguments = "-r -t " + timeout.ToString(); - si.UseShellExecute = false; - System.Diagnostics.Process prc = new System.Diagnostics.Process(); - prc.StartInfo = si; - - PUB.AGV.AGVMoveStop("user reboot"); - - if (setautomode) - { - PUB.Automodeonreboot = true; - PUB.setting.SetAutoModeOn = true; - PUB.setting.AUtoRebootLastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - PUB.setting.Save(); - } - - - prc.Start(); - - } - public static void SystemShutdown(UInt16 timeout) - { - //System.Text.StringBuilder sb = new StringBuilder(); - //sb.AppendLine("@echo off"); - //sb.AppendLine("echo System OFF After " + timeout.ToString() + "Seconds"); - //sb.AppendLine("shutdown -s -t " + timeout.ToString()); - //string bfile = AppDomain.CurrentDomain.BaseDirectory + "Shutdown.bat"; - //System.IO.File.WriteAllText(bfile, string.Format(sb.ToString(), AppDomain.CurrentDomain.BaseDirectory), System.Text.Encoding.Default); - - System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(); - si.FileName = @"c:\windows\system32\shutdown.exe"; - si.Arguments = "-s -t " + timeout.ToString(); - si.UseShellExecute = false; - System.Diagnostics.Process prc = new System.Diagnostics.Process(); - prc.StartInfo = si; - prc.Start(); - } - - public static void ChangeUIPopup(System.Windows.Forms.NumericUpDown valueCtl) - { - var value = valueCtl.Value.ToString(); - var f = UTIL.InputBox("input", value);// new Dialog.fInput(value); - if (f.Item1) - { - var val = decimal.Parse(f.Item2); - if (val < valueCtl.Minimum) - { - UTIL.MsgE(string.Format("최소 입력값은 {0} 입니다.", valueCtl.Minimum)); - val = valueCtl.Minimum; - } - if (val > valueCtl.Maximum) - { - UTIL.MsgE(string.Format("최대 입력값은 {0} 입니다.", valueCtl.Maximum)); - val = valueCtl.Maximum; - } - valueCtl.Value = val; - } - - } - - #region VirtualAGV 실제 데이터 동기화 - public static MapNode FindByNodeID(string nodeidx) - { - var _mapNodes = PUB._mapCanvas.Nodes; - if (_mapNodes == null || _mapNodes.Any() == false) return null; - if (nodeidx.isEmpty()) return null; - return _mapNodes.Where(t => t.Id.Equals(nodeidx)).FirstOrDefault(); - } - public static MapNode FindByRFID(string rfidValue) - { - var _mapNodes = PUB._mapCanvas.Nodes; - if (_mapNodes == null || _mapNodes.Any() == false) return null; - if (rfidValue.isEmpty()) return null; - return _mapNodes.Where(t => t.RfidId.Equals(rfidValue)).FirstOrDefault(); - } - public static List FindByNodeAlias(string alias) - { - var _mapNodes = PUB._mapCanvas.Nodes; - if (_mapNodes == null || _mapNodes.Any() == false) return null; - if (alias.isEmpty()) return null; - var lst = _mapNodes.Where(t => t.AliasName.Equals(alias)); - if (lst.Any() == false) return null; - return lst.ToList(); - } - public static List FindByNodeType(AGVNavigationCore.Models.MapNode type) - { - var _mapNodes = PUB._mapCanvas.Nodes; - if (_mapNodes == null || _mapNodes.Any() == false) return null; - var lst = _mapNodes.Where(t => t.Type.Equals(type)); - if (lst.Any() == false) return null; - return lst.ToList(); - } - /// - /// RFID 읽기 시 해당 노드 위치로 AGV 업데이트 - /// - /// 읽은 RFID ID - /// 모터 방향 (Forward/Backward) - /// 업데이트 성공 여부 - public static bool UpdateAGVFromRFID(ushort rfidId, AgvDirection motorDirection = AgvDirection.Forward) - { - var _mapNodes = PUB._mapCanvas.Nodes; - if (_virtualAGV == null || _mapNodes == null) return false; - - // RFID에 해당하는 노드 찾기 - var node = _mapNodes.FirstOrDefault(n => n.RfidId == rfidId); - if (node != null) - { - _virtualAGV.SetPosition(node, motorDirection); - RefreshAGVCanvas(); - - log.Add($"[AGV] RFID {rfidId} 감지 → 노드 {node.Id} 위치 업데이트 (방향: {motorDirection})"); - return true; - } - - log.Add($"[AGV] RFID {rfidId}에 해당하는 노드를 찾을 수 없음"); - return false; - } - - /// - /// 노드ID로 AGV 위치 업데이트 - /// - /// 노드 ID - /// 모터 방향 (Forward/Backward) - /// 업데이트 성공 여부 - public static bool UpdateAGVToNode(string nodeId, AgvDirection motorDirection = AgvDirection.Forward) - { - var _mapNodes = PUB._mapCanvas.Nodes; - if (_virtualAGV == null || _mapNodes == null) return false; - - var node = _mapNodes.FirstOrDefault(n => n.Id == nodeId); - if (node != null) - { - _virtualAGV.SetPosition(node, motorDirection); - RefreshAGVCanvas(); - - log.Add($"[AGV] 노드 {nodeId} 위치로 이동 (방향: {motorDirection})"); - return true; - } - - return false; - } - - /// - /// 모든 로그를 플러시 합니다. - /// - public static void LogFlush() - { - PUB.log.Flush(); - PUB.logagv.Flush(); - PUB.logplc.Flush(); - PUB.logbms.Flush(); - PUB.logxbee.Flush(); - } - - /// - /// AGV 방향 업데이트 - /// - /// 새로운 방향 - public static void UpdateAGVDirection(AgvDirection direction) - { - if (_virtualAGV == null) return; - - _virtualAGV.CurrentDirection = direction; - RefreshAGVCanvas(); - } - - /// - /// AGV 상태 업데이트 - /// - /// 새로운 상태 - public static void UpdateAGVState(AGVState state) - { - if (_virtualAGV == null) return; - - _virtualAGV.CurrentState = state; - RefreshAGVCanvas(); - } - - /// - /// AGV 배터리 레벨 업데이트 - /// - /// 배터리 레벨 (0.0 ~ 100.0) - public static void UpdateAGVBattery(float batteryLevel) - { - if (_virtualAGV == null) return; - - _virtualAGV.SetBatteryLevel(batteryLevel); - RefreshAGVCanvas(); - } - - /// - /// 맵 캔버스 강제 갱신 (AGV 위치 표시 업데이트) - /// - public static void RefreshAGVCanvas() - { - if (_mapCanvas != null && _mapCanvas.IsHandleCreated) - { - _mapCanvas.Invalidate(); - } - } - - - #endregion - - } -} +using COMM; +using System.Net.NetworkInformation; +using System.Net; +using System.Management; +using System.Data; +using AR; +using System.Media; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using System; + +#if SPEECH +using Microsoft.Speech.Synthesis; +#endif + +using System.Threading.Tasks; +using System.Data.SqlClient; +using System.Linq; +using AGVNavigationCore.Models; +using AGVNavigationCore.Controls; +using System.Collections.Generic; +using System.Drawing; + +namespace Project +{ + public static class PUB + { + //public static Device.CFlag flag; + public static bool bShutdown = false; + public static bool Automodeonreboot = false; + public static bool AutRebootAlreay = false; + public static bool DriveSpeed = false; + public static AGVNavigationCore.Controls.UnifiedAGVCanvas _mapCanvas; + //public static List _mapNodes; + + /// + /// 다음 작업 명령 (PickOn/PickOff) + /// + public static ENIGProtocol.AGVCommandHE NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; + + /// + /// 가상 AGV (시뮬레이션용) + /// + public static VirtualAGV _virtualAGV; + + #region "Hardware" + + /// + /// 읽기/쓰기용이며 구동모터 와 비상정지가 연결됨(USB-ATMEGA 2560) + /// + //public static arDev.FakePLC PLC; + + ///// + ///// 읽기전용이며 Z축 모터와 외부 버튼이 연결됨(USB-ATMEGA 2560) + ///// + //public static Device.PLC2 plcS; + + /// + /// XBEE 통신(USB-TTL) + /// + public static Device.Xbee XBE; + + /// + /// 배터리 잔량 확인(COM2 : RS232C - TTL) + /// + // public static arDevice.BMS bms; + + /// + /// RFID READER (COM1 : RS232C) + /// + public static arDev.Narumi AGV; + + public static arDev.BMS BMS; + + #endregion + + /// + /// 디버그모니터용 소켓(데이터를 전송만 한다) + /// + public static Device.Socket sock_debug; +#if SPEECH + private static SpeechSynthesizer voice; +#endif + public static SoundPlayer mplayer; + + [DllImport("winmm.dll")] + private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume); + + public static void SetVolume(int volume) + { + // volume은 0~100 사이의 값 + uint vol = (uint)((volume / 100.0) * 0xFFFF); + waveOutSetVolume(IntPtr.Zero, vol); + setting.musicvol = volume; + } + + public static bool CheckPassword() + { + var f = new Dialog.fPassword(); + if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK) return false; + var pass = f.tbInput.Text.Trim(); + var passok = DateTime.Now.ToString("ddMM"); + if (pass.Equals(passok)) return true; + else return false; + } + + /// + /// 스피커를 통한 음성을 출력합니다 + /// 출력되는 음성은 기본로그에도 자동 포함됩니다 + /// + /// + /// + /// 로그에도 출력 합니다 + public static void Speak(string m, Boolean force = false, bool addlog = true,string logcate="") + { + if (force == false && PUB.setting.Enable_Speak == false) + { + Console.WriteLine("speech disabled"); + return; + } +#if SPEECH + if (force) + voice.SpeakAsyncCancelAll(); + if (voice.State == SynthesizerState.Ready) + voice.SpeakAsync(m); + if (addlog) + { + if (logcate.isEmpty()) logcate = "SPEAK"; + PUB.log.Add(logcate, m); + } +#else + PUB.log.Add($"스피치컴파일상수OFF"); +#endif + } + + /// + /// 콜을 받을 수 있는 상황인가? + /// + /// + public static bool IsCanCALL() + { + //콜가능여부도 전송한다 + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] && + VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false && + PUB.BMS.BMSInformation.rsoc > PUB.setting.ChargeEmergencyLevel && + PUB.sm.RunStep != StateMachine.ERunStep.BUFFER_OUT && + VAR.BOOL[eVarBool.WAIT_COVER_DOWN] == false && + VAR.BOOL[eVarBool.WAIT_COVER_UP] == false) + { + return true; + } + else return false; + } + + public static CounterSetting counter; + + /// + /// popup message window + /// + public static MessageWindow popup; + + /// + /// database manager + /// + public static Manager.DatabaseManager dbm; + + /// + /// 설정정보 + /// + public static CSetting setting; + + /// + /// 시스템로그 + /// + public static AR.Log log, logagv, logplc, logbms, logxbee; + + public static Boolean bPlayMusic = false; + + + /// + /// 사용자 인풋 감지 시간 + /// + public static DateTime LastInputTime = DateTime.Now; + + public static CResult Result; + + public static string PatchVersion { get; set; } + + /// + /// 상태머신 + /// + public static StateMachine.StateMachine sm; //상태머신분리 190529 + + public static System.IO.DirectoryInfo path; + + + public static void initCore() + { + //setting + setting = new CSetting(); + setting.Load(); + + //counter setting + counter = new CounterSetting(); + counter.Load(); + + //log + log = new AR.Log(); + logagv = new AR.Log(); + logplc = new AR.Log(); + logbms = new AR.Log(); + logxbee = new AR.Log(); + + logagv.FileNameFormat = "{yyyyMMdd}_agv"; + logplc.FileNameFormat = "{yyyyMMdd}_plc"; + logbms.FileNameFormat = "{yyyyMMdd}_bms"; + logxbee.FileNameFormat = "{yyyyMMdd}_cal"; + + //popupmessage + popup = new MessageWindow(); + + Result = new CResult(); + Result.Clear(); + } + + public static void init() + { + + Result = new CResult(); + + //state machine + sm = new StateMachine.StateMachine(); + + path = new System.IO.DirectoryInfo(UTIL.CurrentPath); + + + + mplayer = new SoundPlayer(); + if (PUB.setting.musicfile.isEmpty() == false) + if (System.IO.File.Exists(PUB.setting.musicfile)) + { + PUB.mplayer.SoundLocation = PUB.setting.musicfile; + SetVolume(PUB.setting.musicvol); + } +#if SPEECH + voice = new SpeechSynthesizer(); + try + { + // 한국어 음성을 찾아서 설정 + var koreanVoice = voice.GetInstalledVoices() + .Where(v => v.VoiceInfo.Culture.Name.StartsWith("ko")) + .FirstOrDefault(); + + if (koreanVoice != null) + { + voice.SelectVoice(koreanVoice.VoiceInfo.Name); + } + else + { + // 한국어 음성이 없으면 기본 음성 사용 + var defaultVoice = voice.GetInstalledVoices().FirstOrDefault(); + if (defaultVoice != null) + { + voice.SelectVoice(defaultVoice.VoiceInfo.Name); + } + } + } + catch + { + // 음성 설정 실패 시 기본값 사용 + } + voice.SetOutputToDefaultAudioDevice(); +#endif + var file_version = System.IO.Path.Combine(UTIL.CurrentPath, "version.txt"); + if (System.IO.File.Exists(file_version)) + { + PUB.PatchVersion = System.IO.File.ReadAllText(file_version, System.Text.Encoding.UTF8); + } + else PUB.PatchVersion = string.Empty; + } + + + + public static Boolean CheckManualChargeMode(bool Prompt = true) + { + if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true) + { + string msg = "수동 충전 상태이므로 진행 할 수 없습니다"; + PUB.Speak(msg); + if (Prompt) + UTIL.MsgE(msg); + return false; + } + else return true; + } + + public static double GetFreeSpace(string driveletter) + { + try + { + var di = new System.IO.DriveInfo(driveletter); + var freespace = di.TotalFreeSpace; + var totalspace = di.TotalSize; + var freeSpaceRate = (freespace * 1.0 / totalspace) * 100.0; + return freeSpaceRate; + } + catch + { + return 100.0; + } + } + + public static double GetFreeSpace() + { + double retval = 100.0; + string savePath1 = path.FullName; + if (savePath1 != "" && System.IO.Directory.Exists(savePath1)) + { + //이폴더를 사용 + if (savePath1.StartsWith("\\") == false) + { + //남은잔량을 체크한다. + retval = GetFreeSpace(savePath1.Substring(0, 1)); + //if (freespace1 >= Pub.setting.AutoDeleteThreshold) return savePath1; + } + } + return retval; + } + + /// + /// 장치에 오류가 있는지? + /// + /// + public static Boolean HasHWError() + { + //if (PUB.PLC.IsValid == false) return true; + if (PUB.AGV.IsOpen == false) return true; + if (PUB.XBE.IsOpen == false) return true; + return false; + } + + //public static void AddStatusSQL(StateMachine.eSMStep status, string remark, DateTime wdate) + //{ + // VAR.TIME[eVarTime.StatusReporttime] = DateTime.Now; + // try + // { + // var state = 0; + // if (status == StateMachine.eSMStep.RUN) state = 1; + // else if (status == StateMachine.eSMStep.ERROR || status == StateMachine.eSMStep.EMERGENCY) state = 2; + // if (string.IsNullOrEmpty(remark)) remark = status.ToString(); + // var mcid = PUB.setting.MCID; + // var path = System.IO.Path.Combine(Util.CurrentPath, "Status"); + // var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql"); + // var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time) values('{0}','{1}','{2}','{3}','{4}','{5}')"; + // sql = string.Format(sql, mcid, state, remark, IP, MAC, wdate.ToString("yyyy-MM-dd HH:mm:ss")); + // System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); + + // //만들어진지 3분이 지난 파일은 삭제한다. + // //var di = new System.IO.DirectoryInfo(path); + // //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); + // //if (fi != null) fi.Delete(); + // } + // catch (Exception ex) + // { + // PUB.log.AddE(ex.Message); + // } + //} + + public static void AddEEDB(string remark) + { + var step = PUB.sm.Step.ToString(); + var rtep = PUB.sm.RunStep.ToString(); + var mcid = PUB.setting.MCID; + var path = System.IO.Path.Combine(UTIL.CurrentPath, "Status"); + var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{step}_{rtep}.sql"); + var wdate = DateTime.Now; + try + { + var sql = "insert into AGV_History(mcid,step,runstep,remark,ip,wdate) values('{0}','{1}','{2}','{3}','{4}','{5}')"; + sql = string.Format(sql, mcid, step, rtep, remark, IP, wdate.ToString("yyyy-MM-dd HH:mm:ss")); + System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); + + //만들어진지 3분이 지난 파일은 삭제한다. + //var di = new System.IO.DirectoryInfo(path); + //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); + //if (fi != null) fi.Delete(); + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + } + + public static string GetResultCodeMessage(eResult err) + { + return err.ToString().ToUpper(); + } + + + public static string GetErrorMessage(eECode err, params object[] values) + { + switch (err) + { + case eECode.NOTALLOWUP: + return "상차 허용 위치가 아닙니다"; + case eECode.AGVCONN: + return Lang.AGV연결실패; + case eECode.PLCCONN: + return Lang.PLC통신실패; + case eECode.MESSAGE_ERROR: + if (values.Length > 0) return values[0].ToString(); + return "Message Error"; + + default: + return err.ToString(); + } + } + public static string IP { get; set; } + public static string MAC { get; set; } + + /// + /// 프로그램 사용기록 추가 + /// + /// + /// + /// + public static void CheckNRegister3(string prgmName, string develop, string prgmVersion) + { + if (prgmName.Length > 50) prgmName = prgmName.Substring(0, 50); //길이제한 + var task = Task.Factory.StartNew(() => + { + try + { + string ip = ""; + string mac = ""; + // string prgmName = Application.ProductName; + + var nif = NetworkInterface.GetAllNetworkInterfaces(); + var host = Dns.GetHostEntry(Dns.GetHostName()); + string fullname = System.Net.Dns.GetHostEntry("").HostName; + foreach (IPAddress r in host.AddressList) + { + string str = r.ToString(); + + if (str != "" && str.Substring(0, 3) == "10.") + { + ip = str; + break; + } + } + + string rtn = string.Empty; + ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); + ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); + foreach (ManagementObject mo in query1.Get()) + { + string[] address = (string[])mo["IPAddress"]; + if (address[0] == ip && mo["MACAddress"] != null) + { + mac = mo["MACAddress"].ToString(); + break; + } + } + + if (ip == "" || mac == "") return; + + var conn = new SqlConnection(AGV4.Properties.Settings.Default.CS);// "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); + conn.Open(); + string ProcName = "AddPrgmUser3"; + var cmd = new SqlCommand(ProcName, conn) + { + CommandType = CommandType.StoredProcedure + }; + + SqlParameter param = cmd.Parameters.Add("@mac", SqlDbType.NVarChar, 50); + param.Value = mac; + + param = cmd.Parameters.Add("@ip", SqlDbType.NVarChar, 50); + param.Value = ip; + + param = cmd.Parameters.Add("@pgrm", SqlDbType.NVarChar, 50); + param.Value = prgmName; + + param = cmd.Parameters.Add("@develop", SqlDbType.NVarChar, 50); + param.Value = develop; + + param = cmd.Parameters.Add("@pgver", SqlDbType.NVarChar, 50); + param.Value = prgmVersion; + + param = cmd.Parameters.Add("@prgmLogin", SqlDbType.VarChar, 20); + param.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + param = cmd.Parameters.Add("@account", SqlDbType.NVarChar, 50); + param.Value = System.Environment.UserName; + + param = cmd.Parameters.Add("@hostname", SqlDbType.NVarChar, 100); + param.Value = fullname; + + cmd.ExecuteNonQuery(); + conn.Close(); + + IP = ip; + MAC = mac; + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + }); + } + public static string SelectSerialPort() + { + var f = new System.Windows.Forms.Form(); + f.WindowState = System.Windows.Forms.FormWindowState.Normal; + f.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + f.Size = new System.Drawing.Size(800, 400); + f.MaximizeBox = false; + f.MinimizeBox = false; + f.Text = "Select Port"; + f.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + var lst = new System.Windows.Forms.ListBox(); + lst.Font = new System.Drawing.Font("Consolas", 15, System.Drawing.FontStyle.Bold); + lst.Dock = System.Windows.Forms.DockStyle.Fill; + lst.DoubleClick += (s1, e1) => + { + if (lst.SelectedItem != null) f.DialogResult = System.Windows.Forms.DialogResult.OK; + }; + using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort")) + { + var portnames = System.IO.Ports.SerialPort.GetPortNames().OrderBy(t => t); + var ports = searcher.Get().Cast().ToList(); + foreach (var port in portnames) + { + var desc = ""; + var portInfo = ports.Where(t => t["DeviceId"].ToString() == port).FirstOrDefault(); + if (portInfo != null) desc = portInfo["Caption"].ToString(); + lst.Items.Add(string.Format("{0} - {1}", port, desc)); + } + } + f.Controls.Add(lst); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + var name = lst.SelectedItem.ToString().Split('-'); + return name[0].Trim(); + } + else return string.Empty; + } + + public static void SystemReboot(UInt16 timeout, bool setautomode = false) + { + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(); + si.FileName = @"c:\windows\system32\shutdown.exe"; + si.Arguments = "-r -t " + timeout.ToString(); + si.UseShellExecute = false; + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + prc.StartInfo = si; + + PUB.AGV.AGVMoveStop("user reboot"); + + if (setautomode) + { + PUB.Automodeonreboot = true; + PUB.setting.SetAutoModeOn = true; + PUB.setting.AUtoRebootLastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + PUB.setting.Save(); + } + + + prc.Start(); + + } + public static void SystemShutdown(UInt16 timeout) + { + //System.Text.StringBuilder sb = new StringBuilder(); + //sb.AppendLine("@echo off"); + //sb.AppendLine("echo System OFF After " + timeout.ToString() + "Seconds"); + //sb.AppendLine("shutdown -s -t " + timeout.ToString()); + //string bfile = AppDomain.CurrentDomain.BaseDirectory + "Shutdown.bat"; + //System.IO.File.WriteAllText(bfile, string.Format(sb.ToString(), AppDomain.CurrentDomain.BaseDirectory), System.Text.Encoding.Default); + + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(); + si.FileName = @"c:\windows\system32\shutdown.exe"; + si.Arguments = "-s -t " + timeout.ToString(); + si.UseShellExecute = false; + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + prc.StartInfo = si; + prc.Start(); + } + + public static void ChangeUIPopup(System.Windows.Forms.NumericUpDown valueCtl) + { + var value = valueCtl.Value.ToString(); + var f = UTIL.InputBox("input", value);// new Dialog.fInput(value); + if (f.Item1) + { + var val = decimal.Parse(f.Item2); + if (val < valueCtl.Minimum) + { + UTIL.MsgE(string.Format("최소 입력값은 {0} 입니다.", valueCtl.Minimum)); + val = valueCtl.Minimum; + } + if (val > valueCtl.Maximum) + { + UTIL.MsgE(string.Format("최대 입력값은 {0} 입니다.", valueCtl.Maximum)); + val = valueCtl.Maximum; + } + valueCtl.Value = val; + } + + } + + #region VirtualAGV 실제 데이터 동기화 + public static MapNode FindByNodeID(string nodeidx) + { + var _mapNodes = PUB._mapCanvas.Nodes; + if (_mapNodes == null || _mapNodes.Any() == false) return null; + if (nodeidx.isEmpty()) return null; + return _mapNodes.Where(t => t.Id.Equals(nodeidx)).FirstOrDefault(); + } + public static MapNode FindByRFID(string rfidValue) + { + var _mapNodes = PUB._mapCanvas.Nodes; + if (_mapNodes == null || _mapNodes.Any() == false) return null; + if (rfidValue.isEmpty()) return null; + return _mapNodes.Where(t => t.RfidId.Equals(rfidValue)).FirstOrDefault(); + } + public static List FindByNodeAlias(string alias) + { + var _mapNodes = PUB._mapCanvas.Nodes; + if (_mapNodes == null || _mapNodes.Any() == false) return null; + if (alias.isEmpty()) return null; + var lst = _mapNodes.Where(t => t.AliasName.Equals(alias)); + if (lst.Any() == false) return null; + return lst.ToList(); + } + public static List FindByNodeType(AGVNavigationCore.Models.MapNode type) + { + var _mapNodes = PUB._mapCanvas.Nodes; + if (_mapNodes == null || _mapNodes.Any() == false) return null; + var lst = _mapNodes.Where(t => t.Type.Equals(type)); + if (lst.Any() == false) return null; + return lst.ToList(); + } + /// + /// RFID 읽기 시 해당 노드 위치로 AGV 업데이트 + /// + /// 읽은 RFID ID + /// 모터 방향 (Forward/Backward) + /// 업데이트 성공 여부 + public static bool UpdateAGVFromRFID(ushort rfidId, AgvDirection motorDirection = AgvDirection.Forward) + { + var _mapNodes = PUB._mapCanvas.Nodes; + if (_virtualAGV == null || _mapNodes == null) return false; + + // RFID에 해당하는 노드 찾기 + var node = _mapNodes.FirstOrDefault(n => n.RfidId == rfidId); + if (node != null) + { + _virtualAGV.SetPosition(node, motorDirection); + RefreshAGVCanvas(); + + log.Add($"[AGV] RFID {rfidId} 감지 → 노드 {node.Id} 위치 업데이트 (방향: {motorDirection})"); + return true; + } + + log.Add($"[AGV] RFID {rfidId}에 해당하는 노드를 찾을 수 없음"); + return false; + } + + /// + /// 노드ID로 AGV 위치 업데이트 + /// + /// 노드 ID + /// 모터 방향 (Forward/Backward) + /// 업데이트 성공 여부 + public static bool UpdateAGVToNode(string nodeId, AgvDirection motorDirection = AgvDirection.Forward) + { + var _mapNodes = PUB._mapCanvas.Nodes; + if (_virtualAGV == null || _mapNodes == null) return false; + + var node = _mapNodes.FirstOrDefault(n => n.Id == nodeId); + if (node != null) + { + _virtualAGV.SetPosition(node, motorDirection); + RefreshAGVCanvas(); + + log.Add($"[AGV] 노드 {nodeId} 위치로 이동 (방향: {motorDirection})"); + return true; + } + + return false; + } + + /// + /// 모든 로그를 플러시 합니다. + /// + public static void LogFlush() + { + PUB.log.Flush(); + PUB.logagv.Flush(); + PUB.logplc.Flush(); + PUB.logbms.Flush(); + PUB.logxbee.Flush(); + } + + /// + /// AGV 방향 업데이트 + /// + /// 새로운 방향 + public static void UpdateAGVDirection(AgvDirection direction) + { + if (_virtualAGV == null) return; + + _virtualAGV.CurrentDirection = direction; + RefreshAGVCanvas(); + } + + /// + /// AGV 상태 업데이트 + /// + /// 새로운 상태 + public static void UpdateAGVState(AGVState state) + { + if (_virtualAGV == null) return; + + _virtualAGV.CurrentState = state; + RefreshAGVCanvas(); + } + + /// + /// AGV 배터리 레벨 업데이트 + /// + /// 배터리 레벨 (0.0 ~ 100.0) + public static void UpdateAGVBattery(float batteryLevel) + { + if (_virtualAGV == null) return; + + _virtualAGV.SetBatteryLevel(batteryLevel); + RefreshAGVCanvas(); + } + + /// + /// 맵 캔버스 강제 갱신 (AGV 위치 표시 업데이트) + /// + public static void RefreshAGVCanvas() + { + if (_mapCanvas != null && _mapCanvas.IsHandleCreated) + { + _mapCanvas.Invalidate(); + } + } + + + #endregion + + } +} diff --git a/Cs_HMI/Project/Program.cs b/HMI/Project/Program.cs similarity index 97% rename from Cs_HMI/Project/Program.cs rename to HMI/Project/Program.cs index 6c4791b..67596bb 100644 --- a/Cs_HMI/Project/Program.cs +++ b/HMI/Project/Program.cs @@ -1,59 +1,59 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Forms; -using System.Reflection; -using System.Runtime.InteropServices; -using System.Resources; -using System.Threading; - -namespace Project -{ - static class Program - { - /// - /// 해당 응용 프로그램의 주 진입점입니다. - /// - [STAThread] - static void Main() - { - //중복실행방지 - string mutexName = "AGV4_Application_Mutex"; - Mutex mtx = new Mutex(true, mutexName); - var success = mtx.WaitOne(new TimeSpan(0, 0, 1)); - if (success == false) - { - MessageBox.Show("Duplicate execution not allowed\n\nProgram is already running"); - return; - } - - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - //Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); - //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); - Application.Run(new fMain()); - } - - static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) - { - string emsg = "Fatal Error(UHE)\n\n" + e.ExceptionObject.ToString(); - PUB.log.AddE(emsg); - PUB.log.Flush(); - AR.UTIL.SaveBugReport(emsg); - var f = new fErrorException(emsg); - f.ShowDialog(); - Application.ExitThread(); - } - - static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) - { - string emsg = "Fatal Error(ATE)\n\n" + e.Exception.ToString(); - PUB.log.AddE(emsg); - PUB.log.Flush(); - AR.UTIL.SaveBugReport(emsg); - var f = new fErrorException(emsg); - f.ShowDialog(); - Application.ExitThread(); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Resources; +using System.Threading; + +namespace Project +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + //중복실행방지 + string mutexName = "AGV4_Application_Mutex"; + Mutex mtx = new Mutex(true, mutexName); + var success = mtx.WaitOne(new TimeSpan(0, 0, 1)); + if (success == false) + { + MessageBox.Show("Duplicate execution not allowed\n\nProgram is already running"); + return; + } + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + //Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); + //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); + Application.Run(new fMain()); + } + + static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + string emsg = "Fatal Error(UHE)\n\n" + e.ExceptionObject.ToString(); + PUB.log.AddE(emsg); + PUB.log.Flush(); + AR.UTIL.SaveBugReport(emsg); + var f = new fErrorException(emsg); + f.ShowDialog(); + Application.ExitThread(); + } + + static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) + { + string emsg = "Fatal Error(ATE)\n\n" + e.Exception.ToString(); + PUB.log.AddE(emsg); + PUB.log.Flush(); + AR.UTIL.SaveBugReport(emsg); + var f = new fErrorException(emsg); + f.ShowDialog(); + Application.ExitThread(); + } + } +} diff --git a/Cs_HMI/Project/Project.sln b/HMI/Project/Project.sln similarity index 100% rename from Cs_HMI/Project/Project.sln rename to HMI/Project/Project.sln diff --git a/Cs_HMI/Project/Properties/AssemblyInfo.cs b/HMI/Project/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/Project/Properties/AssemblyInfo.cs rename to HMI/Project/Properties/AssemblyInfo.cs index 3a467be..703e476 100644 --- a/Cs_HMI/Project/Properties/AssemblyInfo.cs +++ b/HMI/Project/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("ENIG Shuttle Narmi")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Amkor K4")] -[assembly: AssemblyProduct("ENIG Shuttle Narmi")] -[assembly: AssemblyCopyright("Copyright ©Amkor-EET 2020")] -[assembly: AssemblyTrademark("EET")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("65f3e762-800c-772e-862f-b444642ec59f")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 -// 지정되도록 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("25.12.04.0000")] -[assembly: AssemblyFileVersion("25.12.04.0000")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("ENIG Shuttle Narmi")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Amkor K4")] +[assembly: AssemblyProduct("ENIG Shuttle Narmi")] +[assembly: AssemblyCopyright("Copyright ©Amkor-EET 2020")] +[assembly: AssemblyTrademark("EET")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("65f3e762-800c-772e-862f-b444642ec59f")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("25.12.04.0000")] +[assembly: AssemblyFileVersion("25.12.04.0000")] diff --git a/Cs_HMI/Project/Properties/Resources.Designer.cs b/HMI/Project/Properties/Resources.Designer.cs similarity index 97% rename from Cs_HMI/Project/Properties/Resources.Designer.cs rename to HMI/Project/Properties/Resources.Designer.cs index 0e97cab..9dc7602 100644 --- a/Cs_HMI/Project/Properties/Resources.Designer.cs +++ b/HMI/Project/Properties/Resources.Designer.cs @@ -1,173 +1,173 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace Project.Properties { - using System; - - - /// - /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. - /// - // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder - // 클래스에서 자동으로 생성되었습니다. - // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 - // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Project.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 - /// 재정의합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap Charge { - get { - object obj = ResourceManager.GetObject("Charge", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap ChargeH { - get { - object obj = ResourceManager.GetObject("ChargeH", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_charged_battery_80 { - get { - object obj = ResourceManager.GetObject("icons8_charged_battery_80", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_checked_radio_button_48 { - get { - object obj = ResourceManager.GetObject("icons8-checked-radio-button-48", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_exercise_40 { - get { - object obj = ResourceManager.GetObject("icons8-exercise-40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_new_40 { - get { - object obj = ResourceManager.GetObject("icons8-new-40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_no_running_40 { - get { - object obj = ResourceManager.GetObject("icons8-no-running-40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_running_40 { - get { - object obj = ResourceManager.GetObject("icons8-running-40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_save_40 { - get { - object obj = ResourceManager.GetObject("icons8-save-40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap icons8_unavailable_40 { - get { - object obj = ResourceManager.GetObject("icons8-unavailable-40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap setup_40 { - get { - object obj = ResourceManager.GetObject("setup_40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Project.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Project.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Charge { + get { + object obj = ResourceManager.GetObject("Charge", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap ChargeH { + get { + object obj = ResourceManager.GetObject("ChargeH", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_charged_battery_80 { + get { + object obj = ResourceManager.GetObject("icons8_charged_battery_80", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_checked_radio_button_48 { + get { + object obj = ResourceManager.GetObject("icons8-checked-radio-button-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_exercise_40 { + get { + object obj = ResourceManager.GetObject("icons8-exercise-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_new_40 { + get { + object obj = ResourceManager.GetObject("icons8-new-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_no_running_40 { + get { + object obj = ResourceManager.GetObject("icons8-no-running-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_running_40 { + get { + object obj = ResourceManager.GetObject("icons8-running-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_save_40 { + get { + object obj = ResourceManager.GetObject("icons8-save-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_unavailable_40 { + get { + object obj = ResourceManager.GetObject("icons8-unavailable-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap setup_40 { + get { + object obj = ResourceManager.GetObject("setup_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Cs_HMI/Project/Properties/Resources.resx b/HMI/Project/Properties/Resources.resx similarity index 98% rename from Cs_HMI/Project/Properties/Resources.resx rename to HMI/Project/Properties/Resources.resx index 32a9015..4c36066 100644 --- a/Cs_HMI/Project/Properties/Resources.resx +++ b/HMI/Project/Properties/Resources.resx @@ -1,154 +1,154 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\icons8-no-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-save-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-unavailable-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-new-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-exercise-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-checked-radio-button-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-charged-battery-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-automatic-gearbox-warning-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\icons8-charge-empty-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\ChargeH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\icons8-no-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-save-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-unavailable-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-new-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-exercise-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-checked-radio-button-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-charged-battery-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-automatic-gearbox-warning-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-charge-empty-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\ChargeH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Cs_HMI/Project/Properties/Settings.Designer.cs b/HMI/Project/Properties/Settings.Designer.cs similarity index 97% rename from Cs_HMI/Project/Properties/Settings.Designer.cs rename to HMI/Project/Properties/Settings.Designer.cs index 883cf55..aaf2a42 100644 --- a/Cs_HMI/Project/Properties/Settings.Designer.cs +++ b/HMI/Project/Properties/Settings.Designer.cs @@ -1,50 +1,50 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace AGV4.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("asdfasdfasdf\r\nasdfasdfasdf\r\nasdf")] - public string css { - get { - return ((string)(this["css"])); - } - set { - this["css"] = value; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Inf" + - "o=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertific" + - "ate=True")] - public string CS { - get { - return ((string)(this["CS"])); - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace AGV4.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("asdfasdfasdf\r\nasdfasdfasdf\r\nasdf")] + public string css { + get { + return ((string)(this["css"])); + } + set { + this["css"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Inf" + + "o=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertific" + + "ate=True")] + public string CS { + get { + return ((string)(this["CS"])); + } + } + } +} diff --git a/Cs_HMI/Project/Properties/Settings.settings b/HMI/Project/Properties/Settings.settings similarity index 98% rename from Cs_HMI/Project/Properties/Settings.settings rename to HMI/Project/Properties/Settings.settings index 9fb9111..8f334d5 100644 --- a/Cs_HMI/Project/Properties/Settings.settings +++ b/HMI/Project/Properties/Settings.settings @@ -1,19 +1,19 @@ - - - - - - asdfasdfasdf -asdfasdfasdf -asdf - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <ConnectionString>Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</ConnectionString> - <ProviderName>System.Data.SqlClient</ProviderName> -</SerializableConnectionString> - Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertificate=True - - + + + + + + asdfasdfasdf +asdfasdfasdf +asdf + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <ConnectionString>Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertificate=True + + \ No newline at end of file diff --git a/Cs_HMI/Project/Properties/launchSettings.json b/HMI/Project/Properties/launchSettings.json similarity index 94% rename from Cs_HMI/Project/Properties/launchSettings.json rename to HMI/Project/Properties/launchSettings.json index c54641c..e3316a8 100644 --- a/Cs_HMI/Project/Properties/launchSettings.json +++ b/HMI/Project/Properties/launchSettings.json @@ -1,8 +1,8 @@ -{ - "profiles": { - "AGV4": { - "commandName": "Project", - "workingDirectory": "D:\\Amkor\\AGV4" - } - } +{ + "profiles": { + "AGV4": { + "commandName": "Project", + "workingDirectory": "D:\\Amkor\\AGV4" + } + } } \ No newline at end of file diff --git a/Cs_HMI/Project/ReadMe.txt b/HMI/Project/ReadMe.txt similarity index 96% rename from Cs_HMI/Project/ReadMe.txt rename to HMI/Project/ReadMe.txt index 81495c3..189d23d 100644 --- a/Cs_HMI/Project/ReadMe.txt +++ b/HMI/Project/ReadMe.txt @@ -1,20 +1,20 @@ -==================================== -HostName : EET1PAGV2 -IP Address : 192.168.1.78 -==================================== -XB24C / 802.15.4 TH -call button setting : ch-17 / id-45A4 / DH:0 / DL:FFFF -충전기 No : 30 : ch-C / ID-3332 - - -GO-QA,GO-QC 라벨 출력 후 장비에 붙이기 -무선 안테나 1개 파손 , 정면 우측 -바닥 회색 테이프 마감 필요 - -08:00~09:00 -18:00~19:00 - - -230425 chi countQA추가 및 메인 디스플레이 방식 변경 - 충전중 수동전환하면 충전 해제 함 -230424 chi QA루트 추가 및 관련 테스트 작업, RFID 입력 +==================================== +HostName : EET1PAGV2 +IP Address : 192.168.1.78 +==================================== +XB24C / 802.15.4 TH +call button setting : ch-17 / id-45A4 / DH:0 / DL:FFFF +충전기 No : 30 : ch-C / ID-3332 + + +GO-QA,GO-QC 라벨 출력 후 장비에 붙이기 +무선 안테나 1개 파손 , 정면 우측 +바닥 회색 테이프 마감 필요 + +08:00~09:00 +18:00~19:00 + + +230425 chi countQA추가 및 메인 디스플레이 방식 변경 + 충전중 수동전환하면 충전 해제 함 +230424 chi QA루트 추가 및 관련 테스트 작업, RFID 입력 diff --git a/Cs_HMI/Project/Resources/ChargeH.png b/HMI/Project/Resources/ChargeH.png similarity index 100% rename from Cs_HMI/Project/Resources/ChargeH.png rename to HMI/Project/Resources/ChargeH.png diff --git a/Cs_HMI/Project/Resources/icons8-automatic-gearbox-warning-80.png b/HMI/Project/Resources/icons8-automatic-gearbox-warning-80.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-automatic-gearbox-warning-80.png rename to HMI/Project/Resources/icons8-automatic-gearbox-warning-80.png diff --git a/Cs_HMI/Project/Resources/icons8-charge-empty-battery-96.png b/HMI/Project/Resources/icons8-charge-empty-battery-96.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-charge-empty-battery-96.png rename to HMI/Project/Resources/icons8-charge-empty-battery-96.png diff --git a/Cs_HMI/Project/Resources/icons8-charged-battery-80.png b/HMI/Project/Resources/icons8-charged-battery-80.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-charged-battery-80.png rename to HMI/Project/Resources/icons8-charged-battery-80.png diff --git a/Cs_HMI/Project/Resources/icons8-checked-radio-button-48.png b/HMI/Project/Resources/icons8-checked-radio-button-48.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-checked-radio-button-48.png rename to HMI/Project/Resources/icons8-checked-radio-button-48.png diff --git a/Cs_HMI/Project/Resources/icons8-exercise-40.png b/HMI/Project/Resources/icons8-exercise-40.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-exercise-40.png rename to HMI/Project/Resources/icons8-exercise-40.png diff --git a/Cs_HMI/Project/Resources/icons8-new-40.png b/HMI/Project/Resources/icons8-new-40.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-new-40.png rename to HMI/Project/Resources/icons8-new-40.png diff --git a/Cs_HMI/Project/Resources/icons8-no-running-40.png b/HMI/Project/Resources/icons8-no-running-40.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-no-running-40.png rename to HMI/Project/Resources/icons8-no-running-40.png diff --git a/Cs_HMI/Project/Resources/icons8-running-40.png b/HMI/Project/Resources/icons8-running-40.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-running-40.png rename to HMI/Project/Resources/icons8-running-40.png diff --git a/Cs_HMI/Project/Resources/icons8-save-40.png b/HMI/Project/Resources/icons8-save-40.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-save-40.png rename to HMI/Project/Resources/icons8-save-40.png diff --git a/Cs_HMI/Project/Resources/icons8-unavailable-40.png b/HMI/Project/Resources/icons8-unavailable-40.png similarity index 100% rename from Cs_HMI/Project/Resources/icons8-unavailable-40.png rename to HMI/Project/Resources/icons8-unavailable-40.png diff --git a/Cs_HMI/Project/StateMachine/AGVPosition.cs b/HMI/Project/StateMachine/AGVPosition.cs similarity index 96% rename from Cs_HMI/Project/StateMachine/AGVPosition.cs rename to HMI/Project/StateMachine/AGVPosition.cs index df66c25..dafbbef 100644 --- a/Cs_HMI/Project/StateMachine/AGVPosition.cs +++ b/HMI/Project/StateMachine/AGVPosition.cs @@ -1,145 +1,145 @@ -using System; -using System.Collections.Generic; - -namespace Project.StateMachine -{ - public class AGVPosition - { - public enum PositionType - { - None, - Tops1, - Sstron1, - Sstron2, - Path - } - - public class Position - { - public int RFID { get; set; } - public PositionType Type { get; set; } - public string Name { get; set; } - public string Direction { get; set; } - public List ConnectedPositions { get; set; } - - public Position(int rfid, PositionType type, string name, string direction) - { - RFID = rfid; - Type = type; - Name = name; - Direction = direction; - ConnectedPositions = new List(); - } - } - - private Dictionary positionMap; - private static AGVPosition instance; - - private AGVPosition() - { - positionMap = new Dictionary(); - InitializePositions(); - } - - public static AGVPosition Instance - { - get - { - if (instance == null) - { - instance = new AGVPosition(); - } - return instance; - } - } - - private void InitializePositions() - { - // Tops 1 관련 위치 - AddPosition(100, PositionType.Tops1, "Tops 1", "0"); - AddPosition(101, PositionType.Path, "Tops1-Sstron1 Path 1", "0"); - AddPosition(102, PositionType.Path, "Tops1-Sstron1 Path 2", "0"); - - // Sstron 1 관련 위치 - AddPosition(200, PositionType.Sstron1, "Sstron 1", "0"); - AddPosition(201, PositionType.Path, "Sstron1-Sstron2 Path 1", "0"); - AddPosition(202, PositionType.Path, "Sstron1-Sstron2 Path 2", "0"); - - // Sstron 2 관련 위치 - AddPosition(300, PositionType.Sstron2, "Sstron 2", "0"); - - // 경로 연결 설정 - ConnectPositions(100, 101); - ConnectPositions(101, 102); - ConnectPositions(102, 200); - ConnectPositions(200, 201); - ConnectPositions(201, 202); - ConnectPositions(202, 300); - } - - private void AddPosition(int rfid, PositionType type, string name, string direction) - { - positionMap[rfid] = new Position(rfid, type, name, direction); - } - - private void ConnectPositions(int pos1, int pos2) - { - if (positionMap.ContainsKey(pos1) && positionMap.ContainsKey(pos2)) - { - positionMap[pos1].ConnectedPositions.Add(pos2); - positionMap[pos2].ConnectedPositions.Add(pos1); - } - } - - public Position GetPosition(int rfid) - { - if (positionMap.ContainsKey(rfid)) - { - return positionMap[rfid]; - } - return null; - } - - public List FindPath(int startRfid, int endRfid) - { - if (!positionMap.ContainsKey(startRfid) || !positionMap.ContainsKey(endRfid)) - { - return null; - } - - var visited = new HashSet(); - var path = new List(); - if (FindPathDFS(startRfid, endRfid, visited, path)) - { - return path; - } - return null; - } - - private bool FindPathDFS(int current, int end, HashSet visited, List path) - { - if (current == end) - { - path.Add(current); - return true; - } - - visited.Add(current); - path.Add(current); - - foreach (var next in positionMap[current].ConnectedPositions) - { - if (!visited.Contains(next)) - { - if (FindPathDFS(next, end, visited, path)) - { - return true; - } - } - } - - path.RemoveAt(path.Count - 1); - return false; - } - } +using System; +using System.Collections.Generic; + +namespace Project.StateMachine +{ + public class AGVPosition + { + public enum PositionType + { + None, + Tops1, + Sstron1, + Sstron2, + Path + } + + public class Position + { + public int RFID { get; set; } + public PositionType Type { get; set; } + public string Name { get; set; } + public string Direction { get; set; } + public List ConnectedPositions { get; set; } + + public Position(int rfid, PositionType type, string name, string direction) + { + RFID = rfid; + Type = type; + Name = name; + Direction = direction; + ConnectedPositions = new List(); + } + } + + private Dictionary positionMap; + private static AGVPosition instance; + + private AGVPosition() + { + positionMap = new Dictionary(); + InitializePositions(); + } + + public static AGVPosition Instance + { + get + { + if (instance == null) + { + instance = new AGVPosition(); + } + return instance; + } + } + + private void InitializePositions() + { + // Tops 1 관련 위치 + AddPosition(100, PositionType.Tops1, "Tops 1", "0"); + AddPosition(101, PositionType.Path, "Tops1-Sstron1 Path 1", "0"); + AddPosition(102, PositionType.Path, "Tops1-Sstron1 Path 2", "0"); + + // Sstron 1 관련 위치 + AddPosition(200, PositionType.Sstron1, "Sstron 1", "0"); + AddPosition(201, PositionType.Path, "Sstron1-Sstron2 Path 1", "0"); + AddPosition(202, PositionType.Path, "Sstron1-Sstron2 Path 2", "0"); + + // Sstron 2 관련 위치 + AddPosition(300, PositionType.Sstron2, "Sstron 2", "0"); + + // 경로 연결 설정 + ConnectPositions(100, 101); + ConnectPositions(101, 102); + ConnectPositions(102, 200); + ConnectPositions(200, 201); + ConnectPositions(201, 202); + ConnectPositions(202, 300); + } + + private void AddPosition(int rfid, PositionType type, string name, string direction) + { + positionMap[rfid] = new Position(rfid, type, name, direction); + } + + private void ConnectPositions(int pos1, int pos2) + { + if (positionMap.ContainsKey(pos1) && positionMap.ContainsKey(pos2)) + { + positionMap[pos1].ConnectedPositions.Add(pos2); + positionMap[pos2].ConnectedPositions.Add(pos1); + } + } + + public Position GetPosition(int rfid) + { + if (positionMap.ContainsKey(rfid)) + { + return positionMap[rfid]; + } + return null; + } + + public List FindPath(int startRfid, int endRfid) + { + if (!positionMap.ContainsKey(startRfid) || !positionMap.ContainsKey(endRfid)) + { + return null; + } + + var visited = new HashSet(); + var path = new List(); + if (FindPathDFS(startRfid, endRfid, visited, path)) + { + return path; + } + return null; + } + + private bool FindPathDFS(int current, int end, HashSet visited, List path) + { + if (current == end) + { + path.Add(current); + return true; + } + + visited.Add(current); + path.Add(current); + + foreach (var next in positionMap[current].ConnectedPositions) + { + if (!visited.Contains(next)) + { + if (FindPathDFS(next, end, visited, path)) + { + return true; + } + } + } + + path.RemoveAt(path.Count - 1); + return false; + } + } } \ No newline at end of file diff --git a/Cs_HMI/Project/StateMachine/AGVProtocolHandler.cs b/HMI/Project/StateMachine/AGVProtocolHandler.cs similarity index 96% rename from Cs_HMI/Project/StateMachine/AGVProtocolHandler.cs rename to HMI/Project/StateMachine/AGVProtocolHandler.cs index bf1d650..92b3d86 100644 --- a/Cs_HMI/Project/StateMachine/AGVProtocolHandler.cs +++ b/HMI/Project/StateMachine/AGVProtocolHandler.cs @@ -1,107 +1,107 @@ -using System; -using System.Collections.Generic; -using System.Text.RegularExpressions; - -namespace Project.StateMachine -{ - public class AGVProtocolHandler - { - private static AGVProtocolHandler instance; - private AGVStateManager stateManager; - - private AGVProtocolHandler() - { - stateManager = AGVStateManager.Instance; - } - - public static AGVProtocolHandler Instance - { - get - { - if (instance == null) - { - instance = new AGVProtocolHandler(); - } - return instance; - } - } - - public bool ProcessProtocol(string protocol) - { - try - { - // 프로토콜 형식: COMMAND:DESTINATION - var parts = protocol.Split(':'); - if (parts.Length != 2) - { - return false; - } - - var command = parts[0].ToUpper(); - var destination = parts[1].ToUpper(); - - switch (command) - { - case "MOVE_TO": - return HandleMoveToCommand(destination); - case "PICKUP": - return HandlePickupCommand(destination); - case "DROPOFF": - return HandleDropoffCommand(destination); - case "EMERGENCY_STOP": - return HandleEmergencyStopCommand(); - default: - return false; - } - } - catch (Exception) - { - return false; - } - } - - private bool HandleMoveToCommand(string destination) - { - switch (destination) - { - case "T1": - return stateManager.ProcessCommand(AGVStateManager.AGVCommand.MoveToTops1); - case "S1": - return stateManager.ProcessCommand(AGVStateManager.AGVCommand.MoveToSstron1); - case "S2": - return stateManager.ProcessCommand(AGVStateManager.AGVCommand.MoveToSstron2); - default: - return false; - } - } - - private bool HandlePickupCommand(string destination) - { - if (destination != "T1") - { - return false; - } - return stateManager.ProcessCommand(AGVStateManager.AGVCommand.PickupCart); - } - - private bool HandleDropoffCommand(string destination) - { - if (destination != "S1" && destination != "S2") - { - return false; - } - return stateManager.ProcessCommand(AGVStateManager.AGVCommand.DropoffCart); - } - - private bool HandleEmergencyStopCommand() - { - return stateManager.ProcessCommand(AGVStateManager.AGVCommand.EmergencyStop); - } - - public string GetCurrentStatus() - { - var state = stateManager.CurrentState; - return $"Current State: {state}"; - } - } +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; + +namespace Project.StateMachine +{ + public class AGVProtocolHandler + { + private static AGVProtocolHandler instance; + private AGVStateManager stateManager; + + private AGVProtocolHandler() + { + stateManager = AGVStateManager.Instance; + } + + public static AGVProtocolHandler Instance + { + get + { + if (instance == null) + { + instance = new AGVProtocolHandler(); + } + return instance; + } + } + + public bool ProcessProtocol(string protocol) + { + try + { + // 프로토콜 형식: COMMAND:DESTINATION + var parts = protocol.Split(':'); + if (parts.Length != 2) + { + return false; + } + + var command = parts[0].ToUpper(); + var destination = parts[1].ToUpper(); + + switch (command) + { + case "MOVE_TO": + return HandleMoveToCommand(destination); + case "PICKUP": + return HandlePickupCommand(destination); + case "DROPOFF": + return HandleDropoffCommand(destination); + case "EMERGENCY_STOP": + return HandleEmergencyStopCommand(); + default: + return false; + } + } + catch (Exception) + { + return false; + } + } + + private bool HandleMoveToCommand(string destination) + { + switch (destination) + { + case "T1": + return stateManager.ProcessCommand(AGVStateManager.AGVCommand.MoveToTops1); + case "S1": + return stateManager.ProcessCommand(AGVStateManager.AGVCommand.MoveToSstron1); + case "S2": + return stateManager.ProcessCommand(AGVStateManager.AGVCommand.MoveToSstron2); + default: + return false; + } + } + + private bool HandlePickupCommand(string destination) + { + if (destination != "T1") + { + return false; + } + return stateManager.ProcessCommand(AGVStateManager.AGVCommand.PickupCart); + } + + private bool HandleDropoffCommand(string destination) + { + if (destination != "S1" && destination != "S2") + { + return false; + } + return stateManager.ProcessCommand(AGVStateManager.AGVCommand.DropoffCart); + } + + private bool HandleEmergencyStopCommand() + { + return stateManager.ProcessCommand(AGVStateManager.AGVCommand.EmergencyStop); + } + + public string GetCurrentStatus() + { + var state = stateManager.CurrentState; + return $"Current State: {state}"; + } + } } \ No newline at end of file diff --git a/Cs_HMI/Project/StateMachine/AGVStateManager.cs b/HMI/Project/StateMachine/AGVStateManager.cs similarity index 96% rename from Cs_HMI/Project/StateMachine/AGVStateManager.cs rename to HMI/Project/StateMachine/AGVStateManager.cs index bf57c23..3bb2a5f 100644 --- a/Cs_HMI/Project/StateMachine/AGVStateManager.cs +++ b/HMI/Project/StateMachine/AGVStateManager.cs @@ -1,159 +1,159 @@ -using System; -using System.Collections.Generic; - -namespace Project.StateMachine -{ - public class AGVStateManager - { - public enum AGVState - { - Idle, - Moving, - Loading, - Unloading, - Error - } - - public enum AGVCommand - { - MoveToTops1, - MoveToSstron1, - MoveToSstron2, - PickupCart, - DropoffCart, - EmergencyStop - } - - private AGVState currentState; - private static AGVStateManager instance; - private AGVPosition positionManager; - - private AGVStateManager() - { - currentState = AGVState.Idle; - positionManager = AGVPosition.Instance; - } - - public static AGVStateManager Instance - { - get - { - if (instance == null) - { - instance = new AGVStateManager(); - } - return instance; - } - } - - public AGVState CurrentState - { - get { return currentState; } - } - - public bool ProcessCommand(AGVCommand command) - { - switch (command) - { - case AGVCommand.MoveToTops1: - return HandleMoveCommand(100); // Tops 1 RFID - case AGVCommand.MoveToSstron1: - return HandleMoveCommand(200); // Sstron 1 RFID - case AGVCommand.MoveToSstron2: - return HandleMoveCommand(300); // Sstron 2 RFID - case AGVCommand.PickupCart: - return HandlePickupCommand(); - case AGVCommand.DropoffCart: - return HandleDropoffCommand(); - case AGVCommand.EmergencyStop: - return HandleEmergencyStop(); - default: - return false; - } - } - - private bool HandleMoveCommand(int targetRfid) - { - if (currentState != AGVState.Idle && currentState != AGVState.Moving) - { - return false; - } - - // 현재 위치에서 목표 위치까지의 경로를 찾음 - var currentRfid = GetCurrentRfid(); // 실제 구현에서는 현재 RFID 값을 가져와야 함 - var path = positionManager.FindPath(currentRfid, targetRfid); - - if (path == null) - { - return false; - } - - currentState = AGVState.Moving; - // 경로를 따라 이동하는 로직 구현 - return true; - } - - private bool HandlePickupCommand() - { - if (currentState != AGVState.Moving) - { - return false; - } - - // 현재 위치가 Tops 1인지 확인 - var currentRfid = GetCurrentRfid(); - var position = positionManager.GetPosition(currentRfid); - - if (position == null || position.Type != AGVPosition.PositionType.Tops1) - { - return false; - } - - currentState = AGVState.Loading; - // 카트 적재 로직 구현 - return true; - } - - private bool HandleDropoffCommand() - { - if (currentState != AGVState.Moving) - { - return false; - } - - // 현재 위치가 Sstron 1 또는 Sstron 2인지 확인 - var currentRfid = GetCurrentRfid(); - var position = positionManager.GetPosition(currentRfid); - - if (position == null || - (position.Type != AGVPosition.PositionType.Sstron1 && - position.Type != AGVPosition.PositionType.Sstron2)) - { - return false; - } - - currentState = AGVState.Unloading; - // 카트 하역 로직 구현 - return true; - } - - private bool HandleEmergencyStop() - { - currentState = AGVState.Error; - // 비상 정지 로직 구현 - return true; - } - - private int GetCurrentRfid() - { - // 실제 구현에서는 AGV의 현재 RFID 값을 반환해야 함 - // 예시로 100(Tops 1)을 반환 - return 100; - } - - public void UpdateState(AGVState newState) - { - currentState = newState; - } - } +using System; +using System.Collections.Generic; + +namespace Project.StateMachine +{ + public class AGVStateManager + { + public enum AGVState + { + Idle, + Moving, + Loading, + Unloading, + Error + } + + public enum AGVCommand + { + MoveToTops1, + MoveToSstron1, + MoveToSstron2, + PickupCart, + DropoffCart, + EmergencyStop + } + + private AGVState currentState; + private static AGVStateManager instance; + private AGVPosition positionManager; + + private AGVStateManager() + { + currentState = AGVState.Idle; + positionManager = AGVPosition.Instance; + } + + public static AGVStateManager Instance + { + get + { + if (instance == null) + { + instance = new AGVStateManager(); + } + return instance; + } + } + + public AGVState CurrentState + { + get { return currentState; } + } + + public bool ProcessCommand(AGVCommand command) + { + switch (command) + { + case AGVCommand.MoveToTops1: + return HandleMoveCommand(100); // Tops 1 RFID + case AGVCommand.MoveToSstron1: + return HandleMoveCommand(200); // Sstron 1 RFID + case AGVCommand.MoveToSstron2: + return HandleMoveCommand(300); // Sstron 2 RFID + case AGVCommand.PickupCart: + return HandlePickupCommand(); + case AGVCommand.DropoffCart: + return HandleDropoffCommand(); + case AGVCommand.EmergencyStop: + return HandleEmergencyStop(); + default: + return false; + } + } + + private bool HandleMoveCommand(int targetRfid) + { + if (currentState != AGVState.Idle && currentState != AGVState.Moving) + { + return false; + } + + // 현재 위치에서 목표 위치까지의 경로를 찾음 + var currentRfid = GetCurrentRfid(); // 실제 구현에서는 현재 RFID 값을 가져와야 함 + var path = positionManager.FindPath(currentRfid, targetRfid); + + if (path == null) + { + return false; + } + + currentState = AGVState.Moving; + // 경로를 따라 이동하는 로직 구현 + return true; + } + + private bool HandlePickupCommand() + { + if (currentState != AGVState.Moving) + { + return false; + } + + // 현재 위치가 Tops 1인지 확인 + var currentRfid = GetCurrentRfid(); + var position = positionManager.GetPosition(currentRfid); + + if (position == null || position.Type != AGVPosition.PositionType.Tops1) + { + return false; + } + + currentState = AGVState.Loading; + // 카트 적재 로직 구현 + return true; + } + + private bool HandleDropoffCommand() + { + if (currentState != AGVState.Moving) + { + return false; + } + + // 현재 위치가 Sstron 1 또는 Sstron 2인지 확인 + var currentRfid = GetCurrentRfid(); + var position = positionManager.GetPosition(currentRfid); + + if (position == null || + (position.Type != AGVPosition.PositionType.Sstron1 && + position.Type != AGVPosition.PositionType.Sstron2)) + { + return false; + } + + currentState = AGVState.Unloading; + // 카트 하역 로직 구현 + return true; + } + + private bool HandleEmergencyStop() + { + currentState = AGVState.Error; + // 비상 정지 로직 구현 + return true; + } + + private int GetCurrentRfid() + { + // 실제 구현에서는 AGV의 현재 RFID 값을 반환해야 함 + // 예시로 100(Tops 1)을 반환 + return 100; + } + + public void UpdateState(AGVState newState) + { + currentState = newState; + } + } } \ No newline at end of file diff --git a/Cs_HMI/Project/StateMachine/DisplayTextHandler.cs b/HMI/Project/StateMachine/DisplayTextHandler.cs similarity index 95% rename from Cs_HMI/Project/StateMachine/DisplayTextHandler.cs rename to HMI/Project/StateMachine/DisplayTextHandler.cs index 13bd24a..f1e1baf 100644 --- a/Cs_HMI/Project/StateMachine/DisplayTextHandler.cs +++ b/HMI/Project/StateMachine/DisplayTextHandler.cs @@ -1,29 +1,29 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Net; -using System.Text; -using System.Windows.Forms; - -namespace Project -{ - public partial class fMain - { - - delegate void UpdateControlTextHandler(Control ctl, string value); - void UpdateControlText(Control ctl, string value) - { - if (ctl.InvokeRequired) - { - ctl.BeginInvoke(new UpdateControlTextHandler(UpdateControlText), new object[] { ctl, value }); - } - else - { - ctl.Text = value; - } - } - } -} +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class fMain + { + + delegate void UpdateControlTextHandler(Control ctl, string value); + void UpdateControlText(Control ctl, string value) + { + if (ctl.InvokeRequired) + { + ctl.BeginInvoke(new UpdateControlTextHandler(UpdateControlText), new object[] { ctl, value }); + } + else + { + ctl.Text = value; + } + } + } +} diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs b/HMI/Project/StateMachine/Step/_SM_RUN.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs rename to HMI/Project/StateMachine/Step/_SM_RUN.cs index d60209e..8ac2e48 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN.cs @@ -1,296 +1,296 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using Project.StateMachine; -using COMM; -using AR; - -namespace Project -{ - public partial class fMain - { - DateTime LastSpeakTime = DateTime.Now; - DateTime CoverControlTime = DateTime.Now; - DateTime LastCommandTime = DateTime.Now; - DateTime LastCommandTimeNextStop = DateTime.Now; - bool runStepisFirst = false; - - private void _SM_RUN(Boolean isFirst, TimeSpan stepTime) - { - //HW 연결오류 - if (PUB.AGV.IsOpen == false) - { - PUB.Result.SetResultMessage(eResult.Hardware, eECode.AGVCONN, eNextStep.ERROR); - PUB.sm.SetNewStep(eSMStep.IDLE); - return; - } - - //가동불가 조건 확인 - if (CheckStopCondition() == false) return; - - //중단기능이 동작이라면 처리하지 않는다. - if (PUB.sm.bPause) - { - System.Threading.Thread.Sleep(200); - return; - } - - //스텝이 변경되었다면? - if (PUB.sm.RunStep != PUB.sm.RunStepNew) - { - runStepisFirst = true; - PUB.sm.ApplyRunStep(); - } - else runStepisFirst = false; - - //처음시작이라면 시작시간을 설정한다 - if (isFirst) - { - if (PUB.sm.RunStep == ERunStep.READY) - VAR.TIME.Update(eVarTime.ReadyStart); - else - VAR.TIME.Update(eVarTime.RunStart); - VAR.I32[eVarInt32.PathValidationError] = 0; - } - - //자동모드에서 대기상태 (추가동작없음) - if (PUB.sm.RunStep == ERunStep.READY) - { - _SM_RUN_READY(runStepisFirst, PUB.sm.GetRunSteptime); - return; - } - - //############################################# - //## 이 후에는 모든 동작루틴이 온다 - //############################################# - - //라이더 센서에서 멈춘경우 처리 - if (PUB.AGV.system1.stop_by_front_detect == true) - { - var tsSpeak = DateTime.Now - LastSpeakTime; - if (tsSpeak.TotalSeconds >= PUB.setting.alarmSoundTerm) - { - PUB.Speak(Lang.전방에물체가감지되었습니다); - LastSpeakTime = DateTime.Now; - } - return; - } - - //선로이탈감지 - if (PUB.AGV.error.runerror_by_no_magent_line == true) - { - var tsSpeak = DateTime.Now - LastSpeakTime; - if (tsSpeak.TotalSeconds >= PUB.setting.alarmSoundTerm) - { - PUB.Speak(Lang.선로를이탈했습니다); - LastSpeakTime = DateTime.Now; - } - return; - } - - //현재위치를 모르는 상태라면 이동하여 현재 위치를 찾는다 - if (_SM_RUN_POSCHK(isFirst, stepTime) == false) - { - PUB.Result.result_message = "현재 위치 확인 중"; - PUB.Result.result_progressmax = 0; - return; - } - - //나머지 상황체크 - switch (PUB.sm.RunStep) - { - case ERunStep.GOHOME: - if (_SM_RUN_GOTO_HOME(runStepisFirst, PUB.sm.GetRunSteptime) == true) - { - PUB.log.Add($"홈 이동이 완료되어 준비상태로 전환합니다"); - PUB.sm.SetNewRunStep(ERunStep.READY); - } - break; - case ERunStep.GOTO: //목적지까지 이동하는 경우 - if (_SM_RUN_GOTO(runStepisFirst, PUB.sm.GetRunSteptime) == true) - { - //목적지가 BUFFER라면 버퍼투입대기위치까지 완료했다는 시그널을 보낸다. - var target = PUB._virtualAGV.TargetNode; - PUB.log.Add($"목적지({target.RfidId}) 도착완료 타입:{target.Type}, 출발지:{PUB._virtualAGV.StartNode.RfidId}"); - - PUB.XBE.StepMC = Device.eDocStep.NotSet; - - switch (target.StationType) - { - case AGVNavigationCore.Models.StationType.Buffer: - var lastPath = PUB._virtualAGV.CurrentPath.DetailedPath.LastOrDefault(); - if (lastPath.NodeId.Equals(PUB._virtualAGV.CurrentNode.Id)) - { - //버퍼진입전 노드에 도착완료했따 - PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; - } - else - { - //마지막위치가 아닌 다른 위치에 있으니 버퍼 작업을 할 수없다 - PUB.XBE.StepMC = Device.eDocStep.NotSet; - PUB.log.AddE($"목적지가 버퍼이나 노드가 불일치 한다 오류사항"); - PUB._mapCanvas.SetAlertMessage("목적지가 버퍼이나 노드 불일치 오류"); - PUB.sm.SetNewRunStep(ERunStep.ERROR); - } - break; - case AGVNavigationCore.Models.StationType.Charger1: - case AGVNavigationCore.Models.StationType.Charger2: - - break; - - case AGVNavigationCore.Models.StationType.Loader: - PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; - break; - - case AGVNavigationCore.Models.StationType.Clearner: - PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; - break; - - case AGVNavigationCore.Models.StationType.UnLoader: - PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; - break; - - default: - PUB.log.Add($"정의되지 않은 스테이션 입니다({target.StationType}) "); - break; - } - - PUB._virtualAGV.Turn = AGVNavigationCore.Models.AGVTurn.None; - PUB.sm.SetNewRunStep(ERunStep.READY); - } - break; - - case ERunStep.MARKSTOPB: //후진방향으로 마크스탑 - case ERunStep.MARKSTOPF: //전진방향으로 마크스탑 - - //이동중이지 않다면 먼저 이동을 진행한다 - var agvDir = PUB.sm.RunStep == ERunStep.MARKSTOPF ? arDev.Narumi.eRunOpt.Forward : arDev.Narumi.eRunOpt.Backward; - PUB.AGV.AGVMoveRun(agvDir); - - //이동중이라면 마크스탑을 입력한다 - PUB.AGV.AGVMoveStop("run-markstropb", arDev.Narumi.eStopOpt.MarkStop); - - //마크스탑신호를 확인한다.(최대 5초) - - //신호가 확인되지 않으면 오류로 정지한다 - break; - - - case ERunStep.GOCHARGE: //충전위치로 이동 - if (runStepisFirst) - { - VAR.TIME[eVarTime.ChargeTry] = DateTime.Now; - PUB.sm.ResetRunStepSeq(); - PUB.log.Add("충전 명령 시작"); - } - else if (_SM_RUN_CHARGE_GO(runStepisFirst, PUB.sm.GetRunSteptime)) - { - PUB.Speak(Lang.충전을시작합니다); - PUB.sm.SetNewRunStep(ERunStep.CHARGECHECK); - return; - } - break; - - case ERunStep.CHARGECHECK: //충전중 - if (runStepisFirst) - { - VAR.TIME.Update(eVarTime.ChargeStart); - LastCommandTime = DateTime.Now; - } - else if (_SM_RUN_CHARGE_CHECK(runStepisFirst, PUB.sm.GetRunSteptime)) - { - //충전상태가 활성화되었으므로 대기상태로 전환한다 - PUB.sm.SetNewRunStep(ERunStep.READY); - PUB.log.AddAT("충전상태 확인 완료로 인해 대기 합니다"); - } - break; - - case ERunStep.CHARGEOFF: - if (runStepisFirst) - { - VAR.TIME.Update(eVarTime.ChargeEnd); - LastCommandTime = DateTime.Now; - } - else - { - //충전 상태가 OFF되어야 동작하게한다 - if (_SM_RUN_CHARGE_GOFF(isFirst, stepTime) == true) - { - //충전상태가 활성화되었으므로 대기상태로 전환한다 - PUB.sm.ClearRunStep(); - - //대기상태로 전환 - PUB.sm.SetNewRunStep(ERunStep.READY); - PUB.log.AddAT("충전 해제로 대기상태로 전환 합니다"); - } - } - break; - - case ERunStep.CLEANER_IN: //클리너도킹 - case ERunStep.UNLOADER_IN: //언로더도킹 - case ERunStep.LOADER_IN: //로더도킹 - if (_SM_RUN_ENTER(runStepisFirst, PUB.sm.GetRunSteptime)) - { - PUB.Speak(Lang.버퍼도킹이완료되었습니다); - - //도킹완료상태를 업데이트한다. - PUB.XBE.StepMC = Device.eDocStep.EnterComplete; - - //대기상태로 전환 - PUB.sm.SetNewRunStep(ERunStep.READY); - return; - } - break; - case ERunStep.CLEANER_OUT: //클리너아웃 - case ERunStep.UNLOADER_OUT: //언로더아웃 - case ERunStep.LOADER_OUT: //로더아웃 - if (_SM_RUN_EXIT(runStepisFirst, PUB.sm.GetRunSteptime)) - { - PUB.Speak(Lang.버퍼도킹해제완료); - - //도킹완료상태를 업데이트한다. - PUB.XBE.StepMC = Device.eDocStep.ExitComplete; - - //대기상태로 전환 - PUB.sm.SetNewRunStep(ERunStep.READY); - return; - } - break; - - case ERunStep.BUFFER_OUT: //버퍼아웃 - if (_SM_RUN_BUFFER_OUT(runStepisFirst, PUB.sm.GetRunSteptime)) - { - PUB.Speak(Lang.버퍼도킹해제완료); - - //도킹완료상태를 업데이트한다. - PUB.XBE.StepMC = Device.eDocStep.ExitComplete; - - //대기상태로 전환 - PUB.sm.SetNewRunStep(ERunStep.READY); - return; - } - else PUB.XBE.StepMC = Device.eDocStep.ExitIng; - break; - - case ERunStep.BUFFER_IN: //버퍼도킹 - if (_SM_RUN_BUFFER_IN(runStepisFirst, PUB.sm.GetRunSteptime)) - { - PUB.Speak(Lang.버퍼도킹이완료되었습니다); - - //도킹완료상태를 업데이트한다. - PUB.XBE.StepMC = Device.eDocStep.EnterComplete; - - //대기상태로 전환 - PUB.sm.SetNewRunStep(ERunStep.READY); - return; - } - else PUB.XBE.StepMC = Device.eDocStep.EnterIng; - break; - } - - } - - }//cvass -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using Project.StateMachine; +using COMM; +using AR; + +namespace Project +{ + public partial class fMain + { + DateTime LastSpeakTime = DateTime.Now; + DateTime CoverControlTime = DateTime.Now; + DateTime LastCommandTime = DateTime.Now; + DateTime LastCommandTimeNextStop = DateTime.Now; + bool runStepisFirst = false; + + private void _SM_RUN(Boolean isFirst, TimeSpan stepTime) + { + //HW 연결오류 + if (PUB.AGV.IsOpen == false) + { + PUB.Result.SetResultMessage(eResult.Hardware, eECode.AGVCONN, eNextStep.ERROR); + PUB.sm.SetNewStep(eSMStep.IDLE); + return; + } + + //가동불가 조건 확인 + if (CheckStopCondition() == false) return; + + //중단기능이 동작이라면 처리하지 않는다. + if (PUB.sm.bPause) + { + System.Threading.Thread.Sleep(200); + return; + } + + //스텝이 변경되었다면? + if (PUB.sm.RunStep != PUB.sm.RunStepNew) + { + runStepisFirst = true; + PUB.sm.ApplyRunStep(); + } + else runStepisFirst = false; + + //처음시작이라면 시작시간을 설정한다 + if (isFirst) + { + if (PUB.sm.RunStep == ERunStep.READY) + VAR.TIME.Update(eVarTime.ReadyStart); + else + VAR.TIME.Update(eVarTime.RunStart); + VAR.I32[eVarInt32.PathValidationError] = 0; + } + + //자동모드에서 대기상태 (추가동작없음) + if (PUB.sm.RunStep == ERunStep.READY) + { + _SM_RUN_READY(runStepisFirst, PUB.sm.GetRunSteptime); + return; + } + + //############################################# + //## 이 후에는 모든 동작루틴이 온다 + //############################################# + + //라이더 센서에서 멈춘경우 처리 + if (PUB.AGV.system1.stop_by_front_detect == true) + { + var tsSpeak = DateTime.Now - LastSpeakTime; + if (tsSpeak.TotalSeconds >= PUB.setting.alarmSoundTerm) + { + PUB.Speak(Lang.전방에물체가감지되었습니다); + LastSpeakTime = DateTime.Now; + } + return; + } + + //선로이탈감지 + if (PUB.AGV.error.runerror_by_no_magent_line == true) + { + var tsSpeak = DateTime.Now - LastSpeakTime; + if (tsSpeak.TotalSeconds >= PUB.setting.alarmSoundTerm) + { + PUB.Speak(Lang.선로를이탈했습니다); + LastSpeakTime = DateTime.Now; + } + return; + } + + //현재위치를 모르는 상태라면 이동하여 현재 위치를 찾는다 + if (_SM_RUN_POSCHK(isFirst, stepTime) == false) + { + PUB.Result.result_message = "현재 위치 확인 중"; + PUB.Result.result_progressmax = 0; + return; + } + + //나머지 상황체크 + switch (PUB.sm.RunStep) + { + case ERunStep.GOHOME: + if (_SM_RUN_GOTO_HOME(runStepisFirst, PUB.sm.GetRunSteptime) == true) + { + PUB.log.Add($"홈 이동이 완료되어 준비상태로 전환합니다"); + PUB.sm.SetNewRunStep(ERunStep.READY); + } + break; + case ERunStep.GOTO: //목적지까지 이동하는 경우 + if (_SM_RUN_GOTO(runStepisFirst, PUB.sm.GetRunSteptime) == true) + { + //목적지가 BUFFER라면 버퍼투입대기위치까지 완료했다는 시그널을 보낸다. + var target = PUB._virtualAGV.TargetNode; + PUB.log.Add($"목적지({target.RfidId}) 도착완료 타입:{target.Type}, 출발지:{PUB._virtualAGV.StartNode.RfidId}"); + + PUB.XBE.StepMC = Device.eDocStep.NotSet; + + switch (target.StationType) + { + case AGVNavigationCore.Models.StationType.Buffer: + var lastPath = PUB._virtualAGV.CurrentPath.DetailedPath.LastOrDefault(); + if (lastPath.NodeId.Equals(PUB._virtualAGV.CurrentNode.Id)) + { + //버퍼진입전 노드에 도착완료했따 + PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; + } + else + { + //마지막위치가 아닌 다른 위치에 있으니 버퍼 작업을 할 수없다 + PUB.XBE.StepMC = Device.eDocStep.NotSet; + PUB.log.AddE($"목적지가 버퍼이나 노드가 불일치 한다 오류사항"); + PUB._mapCanvas.SetAlertMessage("목적지가 버퍼이나 노드 불일치 오류"); + PUB.sm.SetNewRunStep(ERunStep.ERROR); + } + break; + case AGVNavigationCore.Models.StationType.Charger1: + case AGVNavigationCore.Models.StationType.Charger2: + + break; + + case AGVNavigationCore.Models.StationType.Loader: + PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; + break; + + case AGVNavigationCore.Models.StationType.Clearner: + PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; + break; + + case AGVNavigationCore.Models.StationType.UnLoader: + PUB.XBE.StepMC = Device.eDocStep.ReadyForEnter; + break; + + default: + PUB.log.Add($"정의되지 않은 스테이션 입니다({target.StationType}) "); + break; + } + + PUB._virtualAGV.Turn = AGVNavigationCore.Models.AGVTurn.None; + PUB.sm.SetNewRunStep(ERunStep.READY); + } + break; + + case ERunStep.MARKSTOPB: //후진방향으로 마크스탑 + case ERunStep.MARKSTOPF: //전진방향으로 마크스탑 + + //이동중이지 않다면 먼저 이동을 진행한다 + var agvDir = PUB.sm.RunStep == ERunStep.MARKSTOPF ? arDev.Narumi.eRunOpt.Forward : arDev.Narumi.eRunOpt.Backward; + PUB.AGV.AGVMoveRun(agvDir); + + //이동중이라면 마크스탑을 입력한다 + PUB.AGV.AGVMoveStop("run-markstropb", arDev.Narumi.eStopOpt.MarkStop); + + //마크스탑신호를 확인한다.(최대 5초) + + //신호가 확인되지 않으면 오류로 정지한다 + break; + + + case ERunStep.GOCHARGE: //충전위치로 이동 + if (runStepisFirst) + { + VAR.TIME[eVarTime.ChargeTry] = DateTime.Now; + PUB.sm.ResetRunStepSeq(); + PUB.log.Add("충전 명령 시작"); + } + else if (_SM_RUN_CHARGE_GO(runStepisFirst, PUB.sm.GetRunSteptime)) + { + PUB.Speak(Lang.충전을시작합니다); + PUB.sm.SetNewRunStep(ERunStep.CHARGECHECK); + return; + } + break; + + case ERunStep.CHARGECHECK: //충전중 + if (runStepisFirst) + { + VAR.TIME.Update(eVarTime.ChargeStart); + LastCommandTime = DateTime.Now; + } + else if (_SM_RUN_CHARGE_CHECK(runStepisFirst, PUB.sm.GetRunSteptime)) + { + //충전상태가 활성화되었으므로 대기상태로 전환한다 + PUB.sm.SetNewRunStep(ERunStep.READY); + PUB.log.AddAT("충전상태 확인 완료로 인해 대기 합니다"); + } + break; + + case ERunStep.CHARGEOFF: + if (runStepisFirst) + { + VAR.TIME.Update(eVarTime.ChargeEnd); + LastCommandTime = DateTime.Now; + } + else + { + //충전 상태가 OFF되어야 동작하게한다 + if (_SM_RUN_CHARGE_GOFF(isFirst, stepTime) == true) + { + //충전상태가 활성화되었으므로 대기상태로 전환한다 + PUB.sm.ClearRunStep(); + + //대기상태로 전환 + PUB.sm.SetNewRunStep(ERunStep.READY); + PUB.log.AddAT("충전 해제로 대기상태로 전환 합니다"); + } + } + break; + + case ERunStep.CLEANER_IN: //클리너도킹 + case ERunStep.UNLOADER_IN: //언로더도킹 + case ERunStep.LOADER_IN: //로더도킹 + if (_SM_RUN_ENTER(runStepisFirst, PUB.sm.GetRunSteptime)) + { + PUB.Speak(Lang.버퍼도킹이완료되었습니다); + + //도킹완료상태를 업데이트한다. + PUB.XBE.StepMC = Device.eDocStep.EnterComplete; + + //대기상태로 전환 + PUB.sm.SetNewRunStep(ERunStep.READY); + return; + } + break; + case ERunStep.CLEANER_OUT: //클리너아웃 + case ERunStep.UNLOADER_OUT: //언로더아웃 + case ERunStep.LOADER_OUT: //로더아웃 + if (_SM_RUN_EXIT(runStepisFirst, PUB.sm.GetRunSteptime)) + { + PUB.Speak(Lang.버퍼도킹해제완료); + + //도킹완료상태를 업데이트한다. + PUB.XBE.StepMC = Device.eDocStep.ExitComplete; + + //대기상태로 전환 + PUB.sm.SetNewRunStep(ERunStep.READY); + return; + } + break; + + case ERunStep.BUFFER_OUT: //버퍼아웃 + if (_SM_RUN_BUFFER_OUT(runStepisFirst, PUB.sm.GetRunSteptime)) + { + PUB.Speak(Lang.버퍼도킹해제완료); + + //도킹완료상태를 업데이트한다. + PUB.XBE.StepMC = Device.eDocStep.ExitComplete; + + //대기상태로 전환 + PUB.sm.SetNewRunStep(ERunStep.READY); + return; + } + else PUB.XBE.StepMC = Device.eDocStep.ExitIng; + break; + + case ERunStep.BUFFER_IN: //버퍼도킹 + if (_SM_RUN_BUFFER_IN(runStepisFirst, PUB.sm.GetRunSteptime)) + { + PUB.Speak(Lang.버퍼도킹이완료되었습니다); + + //도킹완료상태를 업데이트한다. + PUB.XBE.StepMC = Device.eDocStep.EnterComplete; + + //대기상태로 전환 + PUB.sm.SetNewRunStep(ERunStep.READY); + return; + } + else PUB.XBE.StepMC = Device.eDocStep.EnterIng; + break; + } + + } + + }//cvass +} diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_IN.cs b/HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_IN.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_IN.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_IN.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_OUT.cs b/HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_OUT.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_OUT.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_BUFFER_OUT.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_CHECK.cs b/HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_CHECK.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_CHECK.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_CHECK.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GO.cs b/HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GO.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GO.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GO.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GOFF.cs b/HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GOFF.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GOFF.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_CHARGE_GOFF.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_ENTER.cs b/HMI/Project/StateMachine/Step/_SM_RUN_ENTER.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_ENTER.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_ENTER.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_EXIT.cs b/HMI/Project/StateMachine/Step/_SM_RUN_EXIT.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_EXIT.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_EXIT.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOTO.cs b/HMI/Project/StateMachine/Step/_SM_RUN_GOTO.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOTO.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_GOTO.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOTO_HOME.cs b/HMI/Project/StateMachine/Step/_SM_RUN_GOTO_HOME.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOTO_HOME.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_GOTO_HOME.cs diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs b/HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs index a42b505..0e387b4 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs @@ -1,120 +1,120 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; - -namespace Project -{ - public partial class fMain - { - /// - /// 웨이퍼를 집기 위해 지정된 위치로 이동을 합니다. - /// - /// - private bool _SM_RUN_INIT(Boolean firstRun, TimeSpan RunTime) - { - //result message - int progress = 0; - var ProgressMax = 13; - - //setting socket - UpdateProgressStatus(++progress, ProgressMax, "소켓 초기화"); System.Threading.Thread.Sleep(5); - if (PUB.sock_debug.Listen(PUB.setting.listenPort)) - PUB.log.AddI("Socket Listen : " + PUB.setting.listenPort); - else - PUB.log.AddE("Socket Listen : " + PUB.sock_debug.errorMessage); - - - //UpdateProgressStatus(++progress, ProgressMax, "PLC 확인"); System.Threading.Thread.Sleep(5); - //if (PUB.setting.Port_PLC != "") - //{ - // if (PUB.PLC.Init(PUB.setting.Port_PLC, PUB.setting.Baud_PLC)) - // { - // //VAR.BOOL[eVarBool.FLAG_SETUP] = true; - // PUB.log.Add("Entering Setup Mode (Main)"); - // } - // else PUB.log.AddE("PLC Init error : " + PUB.PLC.GetErrorMessage()); - //} - - //UpdateProgressStatus("PLC #2 확인", ++progress, ProgressMax); System.Threading.Thread.Sleep(5); - //if (Pub.setting.Port_PLC2 != "") - //{ - // if (Pub.plcS.Init(Pub.setting.Port_PLC2, Pub.setting.Baud_plc2)) - // { - // Pub.plcS.SetFlag(Device.PLC2.PLCFlag.FLAG_SETUP, true); - // Pub.log.Add("Entering Setup Mode (Sub)"); - // } - // else Pub.log.AddE("DIO #S Init error : " + Pub.plcS.GetErrorMessage()); - //} - - //setting Port_Xbee - //UpdateProgressStatus(++progress, ProgressMax, "Port_Xbee 확인"); System.Threading.Thread.Sleep(5); - //if (PUB.setting.Port_XBE.isEmpty() == false) - //{ - // PUB.XBE.PortName = PUB.setting.Port_XBE; - // if (PUB.XBE.Open() == false) - // PUB.log.AddE(string.Format("Barcode Port({0}) Open Error: {1}", PUB.setting.Port_XBE, PUB.XBE.errorMessage)); - //} - //else - //{ - // PUB.log.AddAT("NOT-SET Port_Xbee PORTNAME"); - // PUB.XBE.errorMessage = "NOT-SET Port_Xbee PORTNAME"; - //} - - ////setting Port_Xbee - //UpdateProgressStatus(++progress, ProgressMax, "Port_AGV 확인"); System.Threading.Thread.Sleep(5); - //if (PUB.setting.Port_AGV.isEmpty() == false) - //{ - // PUB.AGV.PortName = PUB.setting.Port_AGV; - // PUB.AGV.BaudRate = PUB.setting.Baud_AGV; - // if (PUB.AGV.Open() == false) - // PUB.log.AddE(string.Format("RFID Host:{0} Open Error: {1}", PUB.setting.Port_AGV, PUB.AGV.errorMessage)); - //} - //else - //{ - // PUB.log.AddAT("NOT-SET Port_AGV PORTNAME"); - // PUB.AGV.errorMessage = "NOT-SET Port_AGV PORTNAME"; - //} - - - ////setting Port_Xbee - //UpdateProgressStatus(++progress, ProgressMax, "Port_BMS 확인"); System.Threading.Thread.Sleep(5); - //if (!PUB.setting.Port_BAT.isEmpty()) - //{ - // PUB.BAT.PortName = PUB.setting.Port_BAT;//.Port_BMS; - // PUB.BAT.BaudRate = PUB.setting.Baud_BAT;// - // PUB.BAT.ScanInterval = 1000;// Pub.setting.interval_bms; - // var binit_bms = PUB.BAT.Open(); - // if (binit_bms == false) PUB.log.AddE(string.Format("binit_bms Port({0}) Open Error: {1}", PUB.setting.Port_BAT, PUB.BAT.errorMessage)); - //} - //else - //{ - // PUB.log.AddAT("NOT-SET binit_bms PORTNAME"); - //} - - //남은 공간 - UpdateProgressStatus(++progress, ProgressMax, "공간 확인"); System.Threading.Thread.Sleep(5); - CheckFreeSpace(); //181225 - - //시스템 오류가 있다면 경고 메시지를 표싷ㄴ다. - UpdateProgressStatus(++progress, ProgressMax, "오류 수집"); System.Threading.Thread.Sleep(5); - //var AlertMessage = new System.Text.StringBuilder(); - //if (Pub.Xbee.IsInit == false) AlertMessage.AppendLine(string.Format("BARCODE : {0}", Pub.Xbee.errorMessage)); - if (freeSpaceRate < PUB.setting.AutoDeleteThreshold) - { - PUB.Speak(string.Format("디스크 용량이 {0:N0}% 남았습니다", freeSpaceRate)); - } - - //if (AlertMessage.Length > 1) - //{ - // AlertMessage.Insert(0, "SYSTEM ALERT\n"); - // Pub.popup.setMessage(AlertMessage.ToString()); - //} - - UpdateProgressStatus(++progress, ProgressMax, "--"); System.Threading.Thread.Sleep(5); - PUB.log.Add("초기화 완료"); - return true; - } - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class fMain + { + /// + /// 웨이퍼를 집기 위해 지정된 위치로 이동을 합니다. + /// + /// + private bool _SM_RUN_INIT(Boolean firstRun, TimeSpan RunTime) + { + //result message + int progress = 0; + var ProgressMax = 13; + + //setting socket + UpdateProgressStatus(++progress, ProgressMax, "소켓 초기화"); System.Threading.Thread.Sleep(5); + if (PUB.sock_debug.Listen(PUB.setting.listenPort)) + PUB.log.AddI("Socket Listen : " + PUB.setting.listenPort); + else + PUB.log.AddE("Socket Listen : " + PUB.sock_debug.errorMessage); + + + //UpdateProgressStatus(++progress, ProgressMax, "PLC 확인"); System.Threading.Thread.Sleep(5); + //if (PUB.setting.Port_PLC != "") + //{ + // if (PUB.PLC.Init(PUB.setting.Port_PLC, PUB.setting.Baud_PLC)) + // { + // //VAR.BOOL[eVarBool.FLAG_SETUP] = true; + // PUB.log.Add("Entering Setup Mode (Main)"); + // } + // else PUB.log.AddE("PLC Init error : " + PUB.PLC.GetErrorMessage()); + //} + + //UpdateProgressStatus("PLC #2 확인", ++progress, ProgressMax); System.Threading.Thread.Sleep(5); + //if (Pub.setting.Port_PLC2 != "") + //{ + // if (Pub.plcS.Init(Pub.setting.Port_PLC2, Pub.setting.Baud_plc2)) + // { + // Pub.plcS.SetFlag(Device.PLC2.PLCFlag.FLAG_SETUP, true); + // Pub.log.Add("Entering Setup Mode (Sub)"); + // } + // else Pub.log.AddE("DIO #S Init error : " + Pub.plcS.GetErrorMessage()); + //} + + //setting Port_Xbee + //UpdateProgressStatus(++progress, ProgressMax, "Port_Xbee 확인"); System.Threading.Thread.Sleep(5); + //if (PUB.setting.Port_XBE.isEmpty() == false) + //{ + // PUB.XBE.PortName = PUB.setting.Port_XBE; + // if (PUB.XBE.Open() == false) + // PUB.log.AddE(string.Format("Barcode Port({0}) Open Error: {1}", PUB.setting.Port_XBE, PUB.XBE.errorMessage)); + //} + //else + //{ + // PUB.log.AddAT("NOT-SET Port_Xbee PORTNAME"); + // PUB.XBE.errorMessage = "NOT-SET Port_Xbee PORTNAME"; + //} + + ////setting Port_Xbee + //UpdateProgressStatus(++progress, ProgressMax, "Port_AGV 확인"); System.Threading.Thread.Sleep(5); + //if (PUB.setting.Port_AGV.isEmpty() == false) + //{ + // PUB.AGV.PortName = PUB.setting.Port_AGV; + // PUB.AGV.BaudRate = PUB.setting.Baud_AGV; + // if (PUB.AGV.Open() == false) + // PUB.log.AddE(string.Format("RFID Host:{0} Open Error: {1}", PUB.setting.Port_AGV, PUB.AGV.errorMessage)); + //} + //else + //{ + // PUB.log.AddAT("NOT-SET Port_AGV PORTNAME"); + // PUB.AGV.errorMessage = "NOT-SET Port_AGV PORTNAME"; + //} + + + ////setting Port_Xbee + //UpdateProgressStatus(++progress, ProgressMax, "Port_BMS 확인"); System.Threading.Thread.Sleep(5); + //if (!PUB.setting.Port_BAT.isEmpty()) + //{ + // PUB.BAT.PortName = PUB.setting.Port_BAT;//.Port_BMS; + // PUB.BAT.BaudRate = PUB.setting.Baud_BAT;// + // PUB.BAT.ScanInterval = 1000;// Pub.setting.interval_bms; + // var binit_bms = PUB.BAT.Open(); + // if (binit_bms == false) PUB.log.AddE(string.Format("binit_bms Port({0}) Open Error: {1}", PUB.setting.Port_BAT, PUB.BAT.errorMessage)); + //} + //else + //{ + // PUB.log.AddAT("NOT-SET binit_bms PORTNAME"); + //} + + //남은 공간 + UpdateProgressStatus(++progress, ProgressMax, "공간 확인"); System.Threading.Thread.Sleep(5); + CheckFreeSpace(); //181225 + + //시스템 오류가 있다면 경고 메시지를 표싷ㄴ다. + UpdateProgressStatus(++progress, ProgressMax, "오류 수집"); System.Threading.Thread.Sleep(5); + //var AlertMessage = new System.Text.StringBuilder(); + //if (Pub.Xbee.IsInit == false) AlertMessage.AppendLine(string.Format("BARCODE : {0}", Pub.Xbee.errorMessage)); + if (freeSpaceRate < PUB.setting.AutoDeleteThreshold) + { + PUB.Speak(string.Format("디스크 용량이 {0:N0}% 남았습니다", freeSpaceRate)); + } + + //if (AlertMessage.Length > 1) + //{ + // AlertMessage.Insert(0, "SYSTEM ALERT\n"); + // Pub.popup.setMessage(AlertMessage.ToString()); + //} + + UpdateProgressStatus(++progress, ProgressMax, "--"); System.Threading.Thread.Sleep(5); + PUB.log.Add("초기화 완료"); + return true; + } + } +} diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_POSCHK.cs b/HMI/Project/StateMachine/Step/_SM_RUN_POSCHK.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_POSCHK.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_POSCHK.cs index e8468e8..4443d55 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_POSCHK.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN_POSCHK.cs @@ -1,44 +1,44 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using AR; -using COMM; - -namespace Project -{ - public partial class fMain - { - public Boolean _SM_RUN_POSCHK(bool isFirst, TimeSpan stepTime) - { - //현재위치가 설정되어있는지 확인한다, 현재위치값이 있는 경우 True 를 반환 - if (PUB._virtualAGV.CurrentNode != null && PUB._virtualAGV.PrevNode != null) - return true; - - //이동을 하지 않고있다면 전진을 진행한다 - if (PUB.AGV.system1.agv_run == false) - { - var ts = VAR.TIME.RUN(eVarTime.LastRunCommandTime); - if (ts.TotalSeconds > 5) - { - PUB.log.Add($"현재위치를 몰라 전진 이동 합니다"); - var ret = PUB.AGV.AGVMoveSet(new arDev.Narumi.BunkiData - { - Bunki = arDev.Narumi.eBunki.Strate, - Direction = arDev.Narumi.eMoveDir.Forward, - PBSSensor = 1, - Speed = arDev.Narumi.eMoveSpd.Low, - }); - if(ret == arDev.eNarumiCommandResult.Success) - { - PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward); - } - VAR.TIME.Update(eVarTime.LastRunCommandTime); - } - } - VAR.STR[eVarString.StatusMessage] = "현재 위치를 알 수 없습니다"; - return false; - } - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +using COMM; + +namespace Project +{ + public partial class fMain + { + public Boolean _SM_RUN_POSCHK(bool isFirst, TimeSpan stepTime) + { + //현재위치가 설정되어있는지 확인한다, 현재위치값이 있는 경우 True 를 반환 + if (PUB._virtualAGV.CurrentNode != null && PUB._virtualAGV.PrevNode != null) + return true; + + //이동을 하지 않고있다면 전진을 진행한다 + if (PUB.AGV.system1.agv_run == false) + { + var ts = VAR.TIME.RUN(eVarTime.LastRunCommandTime); + if (ts.TotalSeconds > 5) + { + PUB.log.Add($"현재위치를 몰라 전진 이동 합니다"); + var ret = PUB.AGV.AGVMoveSet(new arDev.Narumi.BunkiData + { + Bunki = arDev.Narumi.eBunki.Strate, + Direction = arDev.Narumi.eMoveDir.Forward, + PBSSensor = 1, + Speed = arDev.Narumi.eMoveSpd.Low, + }); + if(ret == arDev.eNarumiCommandResult.Success) + { + PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward); + } + VAR.TIME.Update(eVarTime.LastRunCommandTime); + } + } + VAR.STR[eVarString.StatusMessage] = "현재 위치를 알 수 없습니다"; + return false; + } + } +} diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_READY.cs b/HMI/Project/StateMachine/Step/_SM_RUN_READY.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_READY.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_READY.cs index 72e64f1..93e1db7 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_READY.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN_READY.cs @@ -1,77 +1,77 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using AR; -using COMM; -using Project.StateMachine; - -namespace Project -{ - public partial class fMain - { - public Boolean _SM_RUN_READY(bool isFirst, TimeSpan stepTime) - { - ////이동 불가 조건이 걸려있다면 충전을 하지 못하게 한다. - //Boolean bAutoChageOn = true; - //if (PUB.AGV.system1.stop_by_front_detect) bAutoChageOn = false; - //else if (PUB.AGV.error.Emergency) bAutoChageOn = false; - //else if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) bAutoChageOn = false; - //else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) bAutoChageOn = false; - - - //자동 충전 중이라면 최대 충전시간과 레벨을 체크한다 - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true) - { - if (VAR.TIME.IsSet(eVarTime.ChargeStart) == false) - VAR.TIME.Update(eVarTime.ChargeStart); - - //충전중이라면 최대 충전 시간을 체크한다. - var tsChargeRunTime = VAR.TIME.RUN(eVarTime.ChargeStart); - if (PUB.BMS.BMSInformation.rsoc >= PUB.setting.ChargeMaxLevel) - { - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); - PUB.sm.ClearRunStep(); - PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF); - PUB.sm.SetNewStep(eSMStep.RUN); - PUB.log.Add($"최대충전레벨 OVER로 인한 자동 해제(레벨:{PUB.setting.ChargeMaxLevel})"); - PUB.AddEEDB($"최대충전레벨 OVER로 인한 자동 해제(레벨:{PUB.setting.ChargeMaxLevel})"); - PUB.Speak(Lang.충전완료로해제합니다); - } - else if (PUB.setting.ChargeMaxTime > 1 && tsChargeRunTime.TotalSeconds >= PUB.setting.ChargeMaxTime) - { - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); - PUB.sm.ClearRunStep(); - PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF); - PUB.sm.SetNewStep(eSMStep.RUN); - PUB.log.Add($"최대충전시간 OVER로 인한 자동 해제(시간:{PUB.setting.ChargeMaxTime})"); - PUB.AddEEDB($"최대충전시간 OVER로 인한 자동 해제(시간:{PUB.setting.ChargeMaxTime})"); - PUB.Speak(Lang.충전완료로해제합니다); - } - VAR.STR[eVarString.ChargeCheckMsg] = "자동 충전 중"; - } - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true) - { - if (VAR.TIME.IsSet(eVarTime.ChargeStart) == false) - VAR.TIME.Update(eVarTime.ChargeStart); - VAR.STR[eVarString.ChargeCheckMsg] = "수동 충전"; - } - - //대기모드에서는 움직이지 않게 한다 - if(PUB.AGV.system1.agv_run) - { - var ts = VAR.TIME.RUN(eVarTime.IdleStopTime); - if(ts.TotalSeconds > 1) - { - PUB.log.Add($"대기상태에서는 정차"); - PUB.AGV.AGVMoveStop("대기상태에서는 정차"); - VAR.TIME.Update(eVarTime.IdleStopTime); - } - } - - return false; - - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AR; +using COMM; +using Project.StateMachine; + +namespace Project +{ + public partial class fMain + { + public Boolean _SM_RUN_READY(bool isFirst, TimeSpan stepTime) + { + ////이동 불가 조건이 걸려있다면 충전을 하지 못하게 한다. + //Boolean bAutoChageOn = true; + //if (PUB.AGV.system1.stop_by_front_detect) bAutoChageOn = false; + //else if (PUB.AGV.error.Emergency) bAutoChageOn = false; + //else if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) bAutoChageOn = false; + //else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) bAutoChageOn = false; + + + //자동 충전 중이라면 최대 충전시간과 레벨을 체크한다 + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true) + { + if (VAR.TIME.IsSet(eVarTime.ChargeStart) == false) + VAR.TIME.Update(eVarTime.ChargeStart); + + //충전중이라면 최대 충전 시간을 체크한다. + var tsChargeRunTime = VAR.TIME.RUN(eVarTime.ChargeStart); + if (PUB.BMS.BMSInformation.rsoc >= PUB.setting.ChargeMaxLevel) + { + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); + PUB.sm.ClearRunStep(); + PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF); + PUB.sm.SetNewStep(eSMStep.RUN); + PUB.log.Add($"최대충전레벨 OVER로 인한 자동 해제(레벨:{PUB.setting.ChargeMaxLevel})"); + PUB.AddEEDB($"최대충전레벨 OVER로 인한 자동 해제(레벨:{PUB.setting.ChargeMaxLevel})"); + PUB.Speak(Lang.충전완료로해제합니다); + } + else if (PUB.setting.ChargeMaxTime > 1 && tsChargeRunTime.TotalSeconds >= PUB.setting.ChargeMaxTime) + { + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); + PUB.sm.ClearRunStep(); + PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF); + PUB.sm.SetNewStep(eSMStep.RUN); + PUB.log.Add($"최대충전시간 OVER로 인한 자동 해제(시간:{PUB.setting.ChargeMaxTime})"); + PUB.AddEEDB($"최대충전시간 OVER로 인한 자동 해제(시간:{PUB.setting.ChargeMaxTime})"); + PUB.Speak(Lang.충전완료로해제합니다); + } + VAR.STR[eVarString.ChargeCheckMsg] = "자동 충전 중"; + } + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true) + { + if (VAR.TIME.IsSet(eVarTime.ChargeStart) == false) + VAR.TIME.Update(eVarTime.ChargeStart); + VAR.STR[eVarString.ChargeCheckMsg] = "수동 충전"; + } + + //대기모드에서는 움직이지 않게 한다 + if(PUB.AGV.system1.agv_run) + { + var ts = VAR.TIME.RUN(eVarTime.IdleStopTime); + if(ts.TotalSeconds > 1) + { + PUB.log.Add($"대기상태에서는 정차"); + PUB.AGV.AGVMoveStop("대기상태에서는 정차"); + VAR.TIME.Update(eVarTime.IdleStopTime); + } + } + + return false; + + } + } +} diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs b/HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs index d37d923..d831ce9 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs @@ -1,159 +1,159 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using Project.StateMachine; -using COMM; -using AR; - -namespace Project -{ - public partial class fMain - { - public Boolean _SM_RUN_RESET(bool isFirst, TimeSpan stepTime) - { - if (runStepisFirst) - { - PUB.Speak(Lang.장비상태초기화); - - //충전기검색시퀀스 OFF - //PUB.flag.set(EFlag.FLAG_GO_CHAGER_TEMP, false); - } - - var idx = 1; - if (PUB.sm.RunStepSeq == idx++) - { - //충전중이라면 충전off코드를 넣는다 - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false,PUB.setting.ChargetWaitSec); - LastCommandTime = DateTime.Now; - PUB.AddEEDB($"초기화"); - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - UpdateProgressStatus(stepTime.TotalSeconds, 5, "SYNC : 수동 모드 확인 중"); - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) - PUB.sm.UpdateRunStepSeq(); - else - { - //일정시간동안 명령을 재전송한다 - var tsCmd = DateTime.Now - LastCommandTime; - if (tsCmd.TotalMilliseconds >= 1999) - { - VAR.BOOL[eVarBool.FLAG_AUTORUN] = false; - LastCommandTime = DateTime.Now; - } - } - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //모션을 멈춥니다 - //PUB.PLC.Move(Device.PLC.Rundirection.Stop,"RESET"); - PUB.AGV.AGVMoveStop("_sm_run_reset"); - LastCommandTime = DateTime.Now; - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //모션이 멈출때까지 기다린다 - if (PUB.AGV.system1.agv_stop == false) - { - PUB.sm.UpdateRunStepSeq(); - } - else - { - //모션이 멈추지 않는다면 멈춤코드를 계속 넣는다 - var tsCmd = DateTime.Now - LastCommandTime; - if (tsCmd.TotalMilliseconds >= 1999) - { - //PUB.PLC.Move(Device.PLC.Rundirection.Stop,"RESET(Re)"); - PUB.AGV.AGVMoveStop("_sm_run_reset"); - LastCommandTime = DateTime.Now; - } - } - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //대상위치 초기화 - PUB.Result.TargetPos = ePosition.NONE; - PUB.Result.CurrentPos = ePosition.NONE; - PUB.Result.CurrentPosCW = "0"; - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //자동 스탑 플래그 해제 - //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;//"reset #6"); - VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false; - - LastCommandTime = DateTime.Now; - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - UpdateProgressStatus(stepTime.TotalSeconds, 5, "자동멈춤해제(ALIGN)"); - if (VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] == false) - PUB.sm.UpdateRunStepSeq(); - else - { - //일정시간동안 명령을 재전송한다 - var tsCmd = DateTime.Now - LastCommandTime; - if (tsCmd.TotalMilliseconds >= 1999) - { - VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;// "reset #7"); - //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;// - LastCommandTime = DateTime.Now; - } - } - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //자동 스탑 플래그 해제 - //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = false;// "reset #8"); - - LastCommandTime = DateTime.Now; - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //설정모드가 되어있다면 해제 해준다 - VAR.BOOL[eVarBool.FLAG_SETUP] = false; - VAR.BOOL[eVarBool.ITEMON] = false; - VAR.BOOL[eVarBool.WAIT_COVER_DOWN] = false; - VAR.BOOL[eVarBool.WAIT_COVER_UP] = false; - - LastCommandTime = DateTime.Now; - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - UpdateProgressStatus(stepTime.TotalSeconds, 5, "설정모드해제(MARK)"); - - if (VAR.BOOL[eVarBool.FLAG_SETUP] == false) - PUB.sm.UpdateRunStepSeq(); - else - { - //일정시간동안 명령을 재전송한다 - var tsCmd = DateTime.Now - LastCommandTime; - if (tsCmd.TotalMilliseconds >= 1999) - { - VAR.BOOL[eVarBool.FLAG_SETUP] = false; - LastCommandTime = DateTime.Now; - } - } - return false; - } - return true; - } - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using Project.StateMachine; +using COMM; +using AR; + +namespace Project +{ + public partial class fMain + { + public Boolean _SM_RUN_RESET(bool isFirst, TimeSpan stepTime) + { + if (runStepisFirst) + { + PUB.Speak(Lang.장비상태초기화); + + //충전기검색시퀀스 OFF + //PUB.flag.set(EFlag.FLAG_GO_CHAGER_TEMP, false); + } + + var idx = 1; + if (PUB.sm.RunStepSeq == idx++) + { + //충전중이라면 충전off코드를 넣는다 + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false,PUB.setting.ChargetWaitSec); + LastCommandTime = DateTime.Now; + PUB.AddEEDB($"초기화"); + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + UpdateProgressStatus(stepTime.TotalSeconds, 5, "SYNC : 수동 모드 확인 중"); + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) + PUB.sm.UpdateRunStepSeq(); + else + { + //일정시간동안 명령을 재전송한다 + var tsCmd = DateTime.Now - LastCommandTime; + if (tsCmd.TotalMilliseconds >= 1999) + { + VAR.BOOL[eVarBool.FLAG_AUTORUN] = false; + LastCommandTime = DateTime.Now; + } + } + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //모션을 멈춥니다 + //PUB.PLC.Move(Device.PLC.Rundirection.Stop,"RESET"); + PUB.AGV.AGVMoveStop("_sm_run_reset"); + LastCommandTime = DateTime.Now; + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //모션이 멈출때까지 기다린다 + if (PUB.AGV.system1.agv_stop == false) + { + PUB.sm.UpdateRunStepSeq(); + } + else + { + //모션이 멈추지 않는다면 멈춤코드를 계속 넣는다 + var tsCmd = DateTime.Now - LastCommandTime; + if (tsCmd.TotalMilliseconds >= 1999) + { + //PUB.PLC.Move(Device.PLC.Rundirection.Stop,"RESET(Re)"); + PUB.AGV.AGVMoveStop("_sm_run_reset"); + LastCommandTime = DateTime.Now; + } + } + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //대상위치 초기화 + PUB.Result.TargetPos = ePosition.NONE; + PUB.Result.CurrentPos = ePosition.NONE; + PUB.Result.CurrentPosCW = "0"; + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //자동 스탑 플래그 해제 + //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;//"reset #6"); + VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false; + + LastCommandTime = DateTime.Now; + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + UpdateProgressStatus(stepTime.TotalSeconds, 5, "자동멈춤해제(ALIGN)"); + if (VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] == false) + PUB.sm.UpdateRunStepSeq(); + else + { + //일정시간동안 명령을 재전송한다 + var tsCmd = DateTime.Now - LastCommandTime; + if (tsCmd.TotalMilliseconds >= 1999) + { + VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;// "reset #7"); + //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;// + LastCommandTime = DateTime.Now; + } + } + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //자동 스탑 플래그 해제 + //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = false;// "reset #8"); + + LastCommandTime = DateTime.Now; + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //설정모드가 되어있다면 해제 해준다 + VAR.BOOL[eVarBool.FLAG_SETUP] = false; + VAR.BOOL[eVarBool.ITEMON] = false; + VAR.BOOL[eVarBool.WAIT_COVER_DOWN] = false; + VAR.BOOL[eVarBool.WAIT_COVER_UP] = false; + + LastCommandTime = DateTime.Now; + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + UpdateProgressStatus(stepTime.TotalSeconds, 5, "설정모드해제(MARK)"); + + if (VAR.BOOL[eVarBool.FLAG_SETUP] == false) + PUB.sm.UpdateRunStepSeq(); + else + { + //일정시간동안 명령을 재전송한다 + var tsCmd = DateTime.Now - LastCommandTime; + if (tsCmd.TotalMilliseconds >= 1999) + { + VAR.BOOL[eVarBool.FLAG_SETUP] = false; + LastCommandTime = DateTime.Now; + } + } + return false; + } + return true; + } + } +} diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs b/HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs rename to HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs index d28fb0d..2e39b3a 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs +++ b/HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs @@ -1,171 +1,171 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using Project.StateMachine; -using COMM; -using System.Diagnostics; -using AR; - -namespace Project -{ - public partial class fMain - { - Dictionary synlist; - int synidx; - public Boolean _SM_RUN_SYNC(bool isFirst, TimeSpan stepTime) - { - var idx = 1; - if (PUB.sm.RunStepSeq == idx++) - { - // return true; - UpdateProgressStatus(stepTime.TotalSeconds, 5, "SYNC : 장치 연결(MAIN) 확인 중"); - if (PUB.AGV.IsOpen == false) - { - //agv connect - var rlt = ConnectSerialPort(PUB.AGV, PUB.setting.Port_AGV, PUB.setting.Baud_AGV, - eVarTime.LastConn_AGV, eVarTime.LastConnTry_AGV, eVarTime.LastRecv_AGV); - if (rlt == false) - { - //존재하지 않는 포트라면 sync를 벗어난다 - PUB.log.AddE($"AGV포트({PUB.setting.Port_AGV}) 가 존재하지않아 SYNC를 중단합니다"); - PUB.sm.SetNewStep(eSMStep.IDLE); - } - } - else if (PUB.AGV.IsValid == true) - { - //설정모드 진입 - VAR.BOOL[eVarBool.FLAG_SETUP] = true; - LastCommandTime = DateTime.Now; - - PUB.sm.UpdateRunStepSeq(); - } - else - { - UpdateProgressStatus(stepTime.TotalMilliseconds, 10000.0, "wait"); - if (stepTime.TotalSeconds >= 10) - { - PUB.log.AddE("시간초과로 인해 Sync 작업이 실패되었습니다"); - PUB.sm.SetNewStep(eSMStep.IDLE); - } - } - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //동기화 명령 생성 - synlist = new Dictionary(); - synlist.Add("SSH", PUB.setting.SPD_H.ToString("0000")); // PUB.AGV.AGVCommand(item.Key, item.Value); - synlist.Add("SSM", PUB.setting.SPD_M.ToString("0000")); - synlist.Add("SSL", PUB.setting.SPD_L.ToString("0000")); - - synlist.Add("SSS", PUB.setting.SPD_S.ToString("0000")); - synlist.Add("SRS", PUB.setting.SPD_R.ToString("0000")); - - synlist.Add("SPK", PUB.setting.PID_PH.ToString("0000")); - synlist.Add("SPM", PUB.setting.PID_PM.ToString("0000")); - synlist.Add("SPL", PUB.setting.PID_PL.ToString("0000")); - - synlist.Add("SIK", PUB.setting.PID_IH.ToString("0000")); - synlist.Add("SIM", PUB.setting.PID_IM.ToString("0000")); - synlist.Add("SIL", PUB.setting.PID_IL.ToString("0000")); - - synlist.Add("SDK", PUB.setting.PID_DH.ToString("0000")); - synlist.Add("SDM", PUB.setting.PID_DM.ToString("0000")); - synlist.Add("SDL", PUB.setting.PID_DL.ToString("0000")); - - synlist.Add("SPS", PUB.setting.PID_PS.ToString("0000")); - synlist.Add("SIS", PUB.setting.PID_IS.ToString("0000")); - synlist.Add("SDS", PUB.setting.PID_DS.ToString("0000")); - - //추가 230110 - synlist.Add("SCK", PUB.setting.SCK.ToString("0000")); - synlist.Add("SSK", PUB.setting.SSK.ToString("0000")); - synlist.Add("STT", PUB.setting.STT.ToString("0000")); - //synlist.Add("SBN", PUB.setting.ChargerID.ToString("0000")); - - synlist.Add("SGS", PUB.setting.GDSValue.ToString("0000")); - VAR.I32[eVarInt32.SyncItemCount] = synlist.Count; - - - PUB.AddEEDB($"SYNC시작({PUB.Result.TargetPos})"); - - synidx = 0; - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //잠시 대기 - var ts = DateTime.Now - LastCommandTime; - if (ts.TotalSeconds > 0.15) - { - PUB.sm.UpdateRunStepSeq(); - } - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - //통신 확인되었으므로 설정값들을 - if (synidx < synlist.Count) - { - var item = synlist.ElementAt(synidx); - UpdateProgressStatus(stepTime.TotalSeconds, 5, $"SYNC :{item.Key}"); - PUB.AGV.AGVCommand(item.Key, item.Value); - - // 캔버스에 동기화 상태 표시 - if (PUB._mapCanvas != null) - { - float progress = (float)synidx / VAR.I32[eVarInt32.SyncItemCount]; - PUB._mapCanvas.SetSyncStatus("장비 설정 동기화 중...", progress, $"항목: {item.Key} ({synidx + 1}/{synlist.Count})"); - } - } - LastCommandTime = DateTime.Now; - PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - if (synidx < synlist.Count) - { - var ts = DateTime.Now - LastCommandTime; - var item = synlist.ElementAt(synidx); - UpdateProgressStatus(stepTime.TotalSeconds, 5, $"SYNC 변경 확인 중 :{item.Key}"); - if (PUB.AGV.ACKData.Equals(item.Key)) - { - synidx += 1; - if (ts.TotalSeconds < 0.15) PUB.sm.UpdateRunStepSeq(-2); //싱크중에 추가 지연시간 확보 - else PUB.sm.UpdateRunStepSeq(-1); - LastCommandTime = DateTime.Now; - } - else - { - if (ts.TotalSeconds > 1) - { - PUB.AGV.AGVCommand(item.Key, item.Value); - LastCommandTime = DateTime.Now; - Console.WriteLine($"RE.send Sync : {item.Key}:{item.Value}"); - } - } - } - else PUB.sm.UpdateRunStepSeq(); - return false; - } - else if (PUB.sm.RunStepSeq == idx++) - { - PUB.AddEEDB($"SYNC완료({PUB.Result.TargetPos})"); - UpdateProgressStatus(stepTime.TotalSeconds, 5, "SYNC : 완료"); - - // 동기화 완료 시 캔버스 모드 복귀 - if (PUB._mapCanvas != null) - PUB._mapCanvas.SetSyncStatus("동기화 완료!", 1.0f, "잠시 후 메인 화면으로 이동합니다."); - - LastCommandTime = DateTime.Now; - PUB.sm.UpdateRunStepSeq(); - return false; - } - return true; - } - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using Project.StateMachine; +using COMM; +using System.Diagnostics; +using AR; + +namespace Project +{ + public partial class fMain + { + Dictionary synlist; + int synidx; + public Boolean _SM_RUN_SYNC(bool isFirst, TimeSpan stepTime) + { + var idx = 1; + if (PUB.sm.RunStepSeq == idx++) + { + // return true; + UpdateProgressStatus(stepTime.TotalSeconds, 5, "SYNC : 장치 연결(MAIN) 확인 중"); + if (PUB.AGV.IsOpen == false) + { + //agv connect + var rlt = ConnectSerialPort(PUB.AGV, PUB.setting.Port_AGV, PUB.setting.Baud_AGV, + eVarTime.LastConn_AGV, eVarTime.LastConnTry_AGV, eVarTime.LastRecv_AGV); + if (rlt == false) + { + //존재하지 않는 포트라면 sync를 벗어난다 + PUB.log.AddE($"AGV포트({PUB.setting.Port_AGV}) 가 존재하지않아 SYNC를 중단합니다"); + PUB.sm.SetNewStep(eSMStep.IDLE); + } + } + else if (PUB.AGV.IsValid == true) + { + //설정모드 진입 + VAR.BOOL[eVarBool.FLAG_SETUP] = true; + LastCommandTime = DateTime.Now; + + PUB.sm.UpdateRunStepSeq(); + } + else + { + UpdateProgressStatus(stepTime.TotalMilliseconds, 10000.0, "wait"); + if (stepTime.TotalSeconds >= 10) + { + PUB.log.AddE("시간초과로 인해 Sync 작업이 실패되었습니다"); + PUB.sm.SetNewStep(eSMStep.IDLE); + } + } + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //동기화 명령 생성 + synlist = new Dictionary(); + synlist.Add("SSH", PUB.setting.SPD_H.ToString("0000")); // PUB.AGV.AGVCommand(item.Key, item.Value); + synlist.Add("SSM", PUB.setting.SPD_M.ToString("0000")); + synlist.Add("SSL", PUB.setting.SPD_L.ToString("0000")); + + synlist.Add("SSS", PUB.setting.SPD_S.ToString("0000")); + synlist.Add("SRS", PUB.setting.SPD_R.ToString("0000")); + + synlist.Add("SPK", PUB.setting.PID_PH.ToString("0000")); + synlist.Add("SPM", PUB.setting.PID_PM.ToString("0000")); + synlist.Add("SPL", PUB.setting.PID_PL.ToString("0000")); + + synlist.Add("SIK", PUB.setting.PID_IH.ToString("0000")); + synlist.Add("SIM", PUB.setting.PID_IM.ToString("0000")); + synlist.Add("SIL", PUB.setting.PID_IL.ToString("0000")); + + synlist.Add("SDK", PUB.setting.PID_DH.ToString("0000")); + synlist.Add("SDM", PUB.setting.PID_DM.ToString("0000")); + synlist.Add("SDL", PUB.setting.PID_DL.ToString("0000")); + + synlist.Add("SPS", PUB.setting.PID_PS.ToString("0000")); + synlist.Add("SIS", PUB.setting.PID_IS.ToString("0000")); + synlist.Add("SDS", PUB.setting.PID_DS.ToString("0000")); + + //추가 230110 + synlist.Add("SCK", PUB.setting.SCK.ToString("0000")); + synlist.Add("SSK", PUB.setting.SSK.ToString("0000")); + synlist.Add("STT", PUB.setting.STT.ToString("0000")); + //synlist.Add("SBN", PUB.setting.ChargerID.ToString("0000")); + + synlist.Add("SGS", PUB.setting.GDSValue.ToString("0000")); + VAR.I32[eVarInt32.SyncItemCount] = synlist.Count; + + + PUB.AddEEDB($"SYNC시작({PUB.Result.TargetPos})"); + + synidx = 0; + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //잠시 대기 + var ts = DateTime.Now - LastCommandTime; + if (ts.TotalSeconds > 0.15) + { + PUB.sm.UpdateRunStepSeq(); + } + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + //통신 확인되었으므로 설정값들을 + if (synidx < synlist.Count) + { + var item = synlist.ElementAt(synidx); + UpdateProgressStatus(stepTime.TotalSeconds, 5, $"SYNC :{item.Key}"); + PUB.AGV.AGVCommand(item.Key, item.Value); + + // 캔버스에 동기화 상태 표시 + if (PUB._mapCanvas != null) + { + float progress = (float)synidx / VAR.I32[eVarInt32.SyncItemCount]; + PUB._mapCanvas.SetSyncStatus("장비 설정 동기화 중...", progress, $"항목: {item.Key} ({synidx + 1}/{synlist.Count})"); + } + } + LastCommandTime = DateTime.Now; + PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + if (synidx < synlist.Count) + { + var ts = DateTime.Now - LastCommandTime; + var item = synlist.ElementAt(synidx); + UpdateProgressStatus(stepTime.TotalSeconds, 5, $"SYNC 변경 확인 중 :{item.Key}"); + if (PUB.AGV.ACKData.Equals(item.Key)) + { + synidx += 1; + if (ts.TotalSeconds < 0.15) PUB.sm.UpdateRunStepSeq(-2); //싱크중에 추가 지연시간 확보 + else PUB.sm.UpdateRunStepSeq(-1); + LastCommandTime = DateTime.Now; + } + else + { + if (ts.TotalSeconds > 1) + { + PUB.AGV.AGVCommand(item.Key, item.Value); + LastCommandTime = DateTime.Now; + Console.WriteLine($"RE.send Sync : {item.Key}:{item.Value}"); + } + } + } + else PUB.sm.UpdateRunStepSeq(); + return false; + } + else if (PUB.sm.RunStepSeq == idx++) + { + PUB.AddEEDB($"SYNC완료({PUB.Result.TargetPos})"); + UpdateProgressStatus(stepTime.TotalSeconds, 5, "SYNC : 완료"); + + // 동기화 완료 시 캔버스 모드 복귀 + if (PUB._mapCanvas != null) + PUB._mapCanvas.SetSyncStatus("동기화 완료!", 1.0f, "잠시 후 메인 화면으로 이동합니다."); + + LastCommandTime = DateTime.Now; + PUB.sm.UpdateRunStepSeq(); + return false; + } + return true; + } + } +} diff --git a/Cs_HMI/Project/StateMachine/Step/_STEP_CLOSE.cs b/HMI/Project/StateMachine/Step/_STEP_CLOSE.cs similarity index 96% rename from Cs_HMI/Project/StateMachine/Step/_STEP_CLOSE.cs rename to HMI/Project/StateMachine/Step/_STEP_CLOSE.cs index 40022ac..57b6535 100644 --- a/Cs_HMI/Project/StateMachine/Step/_STEP_CLOSE.cs +++ b/HMI/Project/StateMachine/Step/_STEP_CLOSE.cs @@ -1,56 +1,56 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using Project.StateMachine; - -namespace Project -{ - public partial class fMain - { - /// - /// 프로그램을 닫을때 1회 실행되는 함수 - /// File : /Step/_Step_Close.cs - /// - private void _STEP_CLOSING_START(eSMStep step) - { - PUB.bShutdown = true; - - PUB.AddEEDB("프로그램 종료"); - PUB.log.Add("Program Close"); - PUB.LogFlush(); - } - public StepResult _STEP_CLOSING(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) - { - //############################ - //#### 사용자 전용 코드 - //############################ - - - //############################ - //#### 개발자 권장코드 - //############################ - PUB.sm.SetNewStep(eSMStep.CLOSED); - return StepResult.Complete; - } - - public void _STEP_CLOSED_START(eSMStep step) - { - try - { - this.BeginInvoke(new Action(() => - { - //화면을 닫는다 - PUB.sm.Stop(); - this.Close(); - })); - } - catch { } - } - public StepResult _STEP_CLOSED(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) - { - return StepResult.Wait; - } - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using Project.StateMachine; + +namespace Project +{ + public partial class fMain + { + /// + /// 프로그램을 닫을때 1회 실행되는 함수 + /// File : /Step/_Step_Close.cs + /// + private void _STEP_CLOSING_START(eSMStep step) + { + PUB.bShutdown = true; + + PUB.AddEEDB("프로그램 종료"); + PUB.log.Add("Program Close"); + PUB.LogFlush(); + } + public StepResult _STEP_CLOSING(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + //############################ + //#### 사용자 전용 코드 + //############################ + + + //############################ + //#### 개발자 권장코드 + //############################ + PUB.sm.SetNewStep(eSMStep.CLOSED); + return StepResult.Complete; + } + + public void _STEP_CLOSED_START(eSMStep step) + { + try + { + this.BeginInvoke(new Action(() => + { + //화면을 닫는다 + PUB.sm.Stop(); + this.Close(); + })); + } + catch { } + } + public StepResult _STEP_CLOSED(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + return StepResult.Wait; + } + } +} diff --git a/Cs_HMI/Project/StateMachine/Step/_Util.cs b/HMI/Project/StateMachine/Step/_Util.cs similarity index 100% rename from Cs_HMI/Project/StateMachine/Step/_Util.cs rename to HMI/Project/StateMachine/Step/_Util.cs diff --git a/Cs_HMI/Project/StateMachine/_AGV.cs b/HMI/Project/StateMachine/_AGV.cs similarity index 98% rename from Cs_HMI/Project/StateMachine/_AGV.cs rename to HMI/Project/StateMachine/_AGV.cs index 8a70b83..b8f4c57 100644 --- a/Cs_HMI/Project/StateMachine/_AGV.cs +++ b/HMI/Project/StateMachine/_AGV.cs @@ -1,280 +1,280 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using arCtl; -using Project.StateMachine; -using COMM; -using AR; -using AGVNavigationCore.Models; -using AGVNavigationCore.Controls; - -namespace Project -{ - - public partial class fMain - { - private void AGV_Message(object sender, arDev.Narumi.MessageEventArgs e) - { - if (e.MsgType == arDev.NarumiSerialComm.MessageType.Normal) - PUB.logagv.AddE(e.Message); - else if (e.MsgType == arDev.NarumiSerialComm.MessageType.Normal) - PUB.logagv.Add(e.Message); - else if (e.MsgType == arDev.NarumiSerialComm.MessageType.Recv) - { - if (e.Message.Substring(1).StartsWith("STS") == false) - PUB.logagv.Add("AGV-RX", e.Message); - } - else if (e.MsgType == arDev.NarumiSerialComm.MessageType.Send) - PUB.logagv.Add("AGV-TX", e.Message); - else - { - PUB.logagv.Add(e.MsgType.ToString(), e.Message); - } - } - - - bool _charging = false; - private void AGV_DataReceive(object sender, arDev.Narumi.DataEventArgs e) - { - try - { - VAR.TIME.Set(eVarTime.LastRecv_AGV, DateTime.Now); - //데이터 파싱 - switch (e.DataType) - { - case arDev.Narumi.DataType.STS: - { - //마크센서 확인 - var agv_err = PUB.AGV.error.Value; - var agv_emg = PUB.AGV.error.Emergency; - var agv_chg = PUB.AGV.system1.Battery_charging; - var agv_stp = PUB.AGV.system1.agv_stop; - var agv_run = PUB.AGV.system1.agv_run; - var agv_mrk = PUB.AGV.signal1.mark_sensor; - - - //if (chg_run && PUB.AGV.system1.agv_run) PUB.Speak("이동을 시작 합니다"); - VAR.BOOL[eVarBool.AGVDIR_BACK] = PUB.AGV.data.Direction == 'B'; - var syncDir = PUB.AGV.data.Direction == 'B' ? AgvDirection.Backward : AgvDirection.Forward; - - // [Sync] Update VirtualAGV Direction - if (PUB._virtualAGV != null) - { - if (PUB._virtualAGV.CurrentDirection != syncDir) - PUB.UpdateAGVDirection(syncDir); - } - - - // [Sync] Update VirtualAGV State - AGVState syncState = AGVState.Idle; - if (PUB.AGV.error.Value > 0) syncState = AGVState.Error; - else if (PUB.AGV.system1.Battery_charging) syncState = AGVState.Charging; - else if (PUB.AGV.system1.agv_run) syncState = AGVState.Moving; - - if (PUB._virtualAGV != null && PUB._virtualAGV.GetCurrentState() != syncState) - PUB.UpdateAGVState(syncState); - - if (VAR.BOOL[eVarBool.AGV_ERROR] != (agv_err > 0)) - { - VAR.BOOL[eVarBool.AGV_ERROR] = (agv_err > 0); - PUB.logagv.Add($"new AGV_ERROR ({PUB.AGV.error.Value})"); - } - if (VAR.BOOL[eVarBool.EMERGENCY] != agv_emg) - { - VAR.BOOL[eVarBool.EMERGENCY] = agv_emg; - PUB.logagv.Add($"new EMERGENCY ({VAR.BOOL[eVarBool.EMERGENCY]})"); - } - - - //차징상태변경 - if (_charging != agv_chg) - { - if (agv_chg) - { - VAR.TIME[eVarTime.ChargeStart] = DateTime.Now; - PUB.logagv.Add($"충전시작:{VAR.TIME[eVarTime.ChargeStart]}"); - } - _charging = agv_chg; - } - - //배터리충전상태 - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] != agv_chg) - { - PUB.log.Add($"충전상태전환 {agv_chg}"); - VAR.BOOL[eVarBool.FLAG_CHARGEONA] = agv_chg; - } - - - if (PUB.AGV.error.Charger_pos_error != VAR.BOOL[eVarBool.CHG_POSERR]) - { - if (PUB.AGV.error.Charger_pos_error) - { - PUB.Speak(Lang.충전기위치오류); - } - VAR.BOOL[eVarBool.CHG_POSERR] = PUB.AGV.error.Charger_pos_error; - } - - ////나르미가 멈췄다면 다음 마크 이동 기능이 OFF 된다 - //if (agv_stp) - //{ - // if (VAR.BOOL[eVarBool.NEXTSTOP_MARK]) - // { - // VAR.BOOL[eVarBool.NEXTSTOP_MARK] = false; - // PUB.logagv.Add($"NEXTSTOP_MARK 변경({VAR.BOOL[eVarBool.NEXTSTOP_MARK]})"); - // } - //} - - //마크센서 상태가 변경이 되었다면 - if (VAR.BOOL[eVarBool.MARK_SENSOR] != PUB.AGV.signal1.mark_sensor) - { - PUB.logagv.Add($"MARK_SENSOR 변경({PUB.AGV.signal1.mark_sensor})"); - VAR.BOOL[eVarBool.MARK_SENSOR] = PUB.AGV.signal1.mark_sensor; - - //AGV가 멈췄고 마크센서가 ON되었다면 마지막 RFID 위치가 확정된경우이다 - if (agv_stp && VAR.BOOL[eVarBool.MARK_SENSOR]) - { - PUB.log.Add("마크스탑이 확인되어 최종위치를 PASS 처리 합니다"); - var curnode = PUB._virtualAGV.SetCurrentNodeMarkStop(); - if (curnode == true) - { - PUB.log.Add($"마크스탑으로 해당노드의 이동을 확정합니다"); - } - else PUB.log.AddAT($"마크스탑이 확인되었으나 현재 노드가없어 PASS를 설정하지 못함"); - } - } - if (VAR.BOOL[eVarBool.MARK_SENSOROFF] == VAR.BOOL[eVarBool.MARK_SENSOR]) - { - VAR.BOOL[eVarBool.MARK_SENSOROFF] = !VAR.BOOL[eVarBool.MARK_SENSOR]; - VAR.TIME[eVarTime.MarkSensorOff] = DateTime.Now; - PUB.log.Add($"MARK_SENSOROFF 변경({VAR.BOOL[eVarBool.MARK_SENSOROFF]})"); - } - - } - break; - case arDev.Narumi.DataType.TAG: - { - //자동 실행 중이다. - - PUB.Result.LastTAG = PUB.AGV.data.TagNo;//.ToString("0000"); - PUB.log.Add($"AGV 태그수신 : {PUB.AGV.data.TagNo} LastTag:{PUB.Result.LastTAG}"); - //POT/NOT 보면 일단 바로 멈추게한다 - if (PUB.Result.CurrentPos == ePosition.POT || PUB.Result.CurrentPos == ePosition.NOT) - { - var logEMsg = $"Stop by [POT/NOT]"; - PUB.AGV.AGVMoveStop(logEMsg); - PUB.log.AddE(logEMsg); - } - - //virtual agv setting - var CurrentNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == PUB.Result.LastTAG); - if (CurrentNode == null) - { - //없는 노드는 자동으로 추가한다 - var newNodeId = $"AUTO_{PUB.Result.LastTAG}"; - var newNode = new MapNode - { - Id = newNodeId, - RfidId = PUB.Result.LastTAG, - Position = new Point(100, 100), // 기본 위치 - IsActive = true, - CreatedDate = DateTime.Now, - ModifiedDate = DateTime.Now - }; - - // 맵 노드 리스트에 추가 - PUB._mapCanvas.Nodes.Add(newNode); - - // 로그 기록 - PUB.log.AddI($"RFID:{PUB.Result.LastTAG} 노드를 자동 추가했습니다 (NodeId: {newNodeId})"); - - // CurrentNode에 새로 생성한 노드 할당 - CurrentNode = newNode; - } - else - { - //모터방향 확인해서 UI와 AGV클래스에 적용한다 - var MotDireciton = PUB.AGV.data.Direction == 'B' ? AgvDirection.Backward : AgvDirection.Forward; - PUB._mapCanvas.SetAGVPosition(PUB.setting.MCID, CurrentNode, MotDireciton); - PUB._virtualAGV.SetPosition(CurrentNode, MotDireciton); - - //방향을 다시 확인하여. 기존 경로의 무결성을 검증한다, 필요한 경우 다시 계산할 필요가 있다. - } - - //태그를 읽었다면 상태를 바로 전송한다 - PUB.XBE.SendStatus(); - } - break; - case arDev.Narumi.DataType.ACK: - PUB.logagv.Add($"AGV_[ACK]Receive : {PUB.AGV.ACKData}"); - break; - default: - PUB.logagv.Add($"AGV_DataReceive : {e.DataType}"); - break; - - } - - //이 후 상황을 예측한다 - if (PUB._mapCanvas != null && PUB._virtualAGV != null) - { - var nextAction = PUB._virtualAGV.Predict(); - var message = $"[다음 행동 예측]\n\n"; - - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) - message += "[X] 수동모드\n"; - - if (PUB._virtualAGV.TargetNode == null) message += "[X] 목표노드없음\n"; - if (PUB._virtualAGV.CurrentNode == null) message += "[X] 현재노드없음\n"; - else if (PUB._virtualAGV.HasPath() == false) message += "[X] 경로계산안됨\n"; - if (PUB._virtualAGV.PrevNode == null) message += "[X] 이전노드없음\n"; - else message += $"이전노드: {PUB._virtualAGV.PrevNode.ID2} : {PUB._virtualAGV.PrevDirection}\n"; - message += $"현재노드: {PUB._virtualAGV.CurrentNode.ID2} : {PUB._virtualAGV.CurrentDirection}\n"; - - message += "-------------\n"; - - var node = PUB._virtualAGV.CurrentNode; - var curpos = PUB._virtualAGV.CurrentNodeID2; - var targetpos = PUB._virtualAGV.TargetNode?.ID2 ?? "(X)"; - - - - var pathdetail = ""; - if (PUB._virtualAGV.CurrentPath != null && PUB._virtualAGV.CurrentPath.DetailedPath.Any()) - { - var idx = 0; - foreach (var item in PUB._virtualAGV.CurrentPath.DetailedPath) - { - idx += 1; - if (pathdetail.isEmpty() == false) pathdetail += "->"; - if (idx % 6 == 0) pathdetail += "\n"; - pathdetail += $"{item.RfidId:0000}({item.MotorDirection.ToString().Substring(0, 1)}{item.MagnetDirection.ToString().Substring(0, 1)}{item.Speed.ToString().Substring(0, 1)})"; - if (item.IsPass) pathdetail += "(O)"; - } - } - - message += $"모터: {nextAction.Motor}\n" + - $"마그넷: {nextAction.Magnet}\n" + - $"속도: {nextAction.Speed}\n" + - $"이유: {nextAction.Message}\n" + - $"상태머신:{PUB.sm.Step}:{PUB.sm.RunStep}:{PUB.sm.RunStepSeq}\n" + - $"---\n" + - $"현재 상태: {PUB._virtualAGV.CurrentState}\n" + - $"현재 방향: {PUB._virtualAGV.CurrentDirection}\n" + - $"턴: {PUB._virtualAGV.Turn}\n" + - $"위치 확정: {PUB._virtualAGV.IsPositionConfirmed} (RFID {PUB._virtualAGV.DetectedRfidCount}개)\n" + - - $"대상 노드: {targetpos}\n" + - $"상세 경로: {pathdetail}"; - - PUB._mapCanvas.PredictMessage = message; - } - } - catch (Exception ex) - { - Console.WriteLine($"[AGV_DataReceive] {ex.Message}"); - } - } - } +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using arCtl; +using Project.StateMachine; +using COMM; +using AR; +using AGVNavigationCore.Models; +using AGVNavigationCore.Controls; + +namespace Project +{ + + public partial class fMain + { + private void AGV_Message(object sender, arDev.Narumi.MessageEventArgs e) + { + if (e.MsgType == arDev.NarumiSerialComm.MessageType.Normal) + PUB.logagv.AddE(e.Message); + else if (e.MsgType == arDev.NarumiSerialComm.MessageType.Normal) + PUB.logagv.Add(e.Message); + else if (e.MsgType == arDev.NarumiSerialComm.MessageType.Recv) + { + if (e.Message.Substring(1).StartsWith("STS") == false) + PUB.logagv.Add("AGV-RX", e.Message); + } + else if (e.MsgType == arDev.NarumiSerialComm.MessageType.Send) + PUB.logagv.Add("AGV-TX", e.Message); + else + { + PUB.logagv.Add(e.MsgType.ToString(), e.Message); + } + } + + + bool _charging = false; + private void AGV_DataReceive(object sender, arDev.Narumi.DataEventArgs e) + { + try + { + VAR.TIME.Set(eVarTime.LastRecv_AGV, DateTime.Now); + //데이터 파싱 + switch (e.DataType) + { + case arDev.Narumi.DataType.STS: + { + //마크센서 확인 + var agv_err = PUB.AGV.error.Value; + var agv_emg = PUB.AGV.error.Emergency; + var agv_chg = PUB.AGV.system1.Battery_charging; + var agv_stp = PUB.AGV.system1.agv_stop; + var agv_run = PUB.AGV.system1.agv_run; + var agv_mrk = PUB.AGV.signal1.mark_sensor; + + + //if (chg_run && PUB.AGV.system1.agv_run) PUB.Speak("이동을 시작 합니다"); + VAR.BOOL[eVarBool.AGVDIR_BACK] = PUB.AGV.data.Direction == 'B'; + var syncDir = PUB.AGV.data.Direction == 'B' ? AgvDirection.Backward : AgvDirection.Forward; + + // [Sync] Update VirtualAGV Direction + if (PUB._virtualAGV != null) + { + if (PUB._virtualAGV.CurrentDirection != syncDir) + PUB.UpdateAGVDirection(syncDir); + } + + + // [Sync] Update VirtualAGV State + AGVState syncState = AGVState.Idle; + if (PUB.AGV.error.Value > 0) syncState = AGVState.Error; + else if (PUB.AGV.system1.Battery_charging) syncState = AGVState.Charging; + else if (PUB.AGV.system1.agv_run) syncState = AGVState.Moving; + + if (PUB._virtualAGV != null && PUB._virtualAGV.GetCurrentState() != syncState) + PUB.UpdateAGVState(syncState); + + if (VAR.BOOL[eVarBool.AGV_ERROR] != (agv_err > 0)) + { + VAR.BOOL[eVarBool.AGV_ERROR] = (agv_err > 0); + PUB.logagv.Add($"new AGV_ERROR ({PUB.AGV.error.Value})"); + } + if (VAR.BOOL[eVarBool.EMERGENCY] != agv_emg) + { + VAR.BOOL[eVarBool.EMERGENCY] = agv_emg; + PUB.logagv.Add($"new EMERGENCY ({VAR.BOOL[eVarBool.EMERGENCY]})"); + } + + + //차징상태변경 + if (_charging != agv_chg) + { + if (agv_chg) + { + VAR.TIME[eVarTime.ChargeStart] = DateTime.Now; + PUB.logagv.Add($"충전시작:{VAR.TIME[eVarTime.ChargeStart]}"); + } + _charging = agv_chg; + } + + //배터리충전상태 + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] != agv_chg) + { + PUB.log.Add($"충전상태전환 {agv_chg}"); + VAR.BOOL[eVarBool.FLAG_CHARGEONA] = agv_chg; + } + + + if (PUB.AGV.error.Charger_pos_error != VAR.BOOL[eVarBool.CHG_POSERR]) + { + if (PUB.AGV.error.Charger_pos_error) + { + PUB.Speak(Lang.충전기위치오류); + } + VAR.BOOL[eVarBool.CHG_POSERR] = PUB.AGV.error.Charger_pos_error; + } + + ////나르미가 멈췄다면 다음 마크 이동 기능이 OFF 된다 + //if (agv_stp) + //{ + // if (VAR.BOOL[eVarBool.NEXTSTOP_MARK]) + // { + // VAR.BOOL[eVarBool.NEXTSTOP_MARK] = false; + // PUB.logagv.Add($"NEXTSTOP_MARK 변경({VAR.BOOL[eVarBool.NEXTSTOP_MARK]})"); + // } + //} + + //마크센서 상태가 변경이 되었다면 + if (VAR.BOOL[eVarBool.MARK_SENSOR] != PUB.AGV.signal1.mark_sensor) + { + PUB.logagv.Add($"MARK_SENSOR 변경({PUB.AGV.signal1.mark_sensor})"); + VAR.BOOL[eVarBool.MARK_SENSOR] = PUB.AGV.signal1.mark_sensor; + + //AGV가 멈췄고 마크센서가 ON되었다면 마지막 RFID 위치가 확정된경우이다 + if (agv_stp && VAR.BOOL[eVarBool.MARK_SENSOR]) + { + PUB.log.Add("마크스탑이 확인되어 최종위치를 PASS 처리 합니다"); + var curnode = PUB._virtualAGV.SetCurrentNodeMarkStop(); + if (curnode == true) + { + PUB.log.Add($"마크스탑으로 해당노드의 이동을 확정합니다"); + } + else PUB.log.AddAT($"마크스탑이 확인되었으나 현재 노드가없어 PASS를 설정하지 못함"); + } + } + if (VAR.BOOL[eVarBool.MARK_SENSOROFF] == VAR.BOOL[eVarBool.MARK_SENSOR]) + { + VAR.BOOL[eVarBool.MARK_SENSOROFF] = !VAR.BOOL[eVarBool.MARK_SENSOR]; + VAR.TIME[eVarTime.MarkSensorOff] = DateTime.Now; + PUB.log.Add($"MARK_SENSOROFF 변경({VAR.BOOL[eVarBool.MARK_SENSOROFF]})"); + } + + } + break; + case arDev.Narumi.DataType.TAG: + { + //자동 실행 중이다. + + PUB.Result.LastTAG = PUB.AGV.data.TagNo;//.ToString("0000"); + PUB.log.Add($"AGV 태그수신 : {PUB.AGV.data.TagNo} LastTag:{PUB.Result.LastTAG}"); + //POT/NOT 보면 일단 바로 멈추게한다 + if (PUB.Result.CurrentPos == ePosition.POT || PUB.Result.CurrentPos == ePosition.NOT) + { + var logEMsg = $"Stop by [POT/NOT]"; + PUB.AGV.AGVMoveStop(logEMsg); + PUB.log.AddE(logEMsg); + } + + //virtual agv setting + var CurrentNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == PUB.Result.LastTAG); + if (CurrentNode == null) + { + //없는 노드는 자동으로 추가한다 + var newNodeId = $"AUTO_{PUB.Result.LastTAG}"; + var newNode = new MapNode + { + Id = newNodeId, + RfidId = PUB.Result.LastTAG, + Position = new Point(100, 100), // 기본 위치 + IsActive = true, + CreatedDate = DateTime.Now, + ModifiedDate = DateTime.Now + }; + + // 맵 노드 리스트에 추가 + PUB._mapCanvas.Nodes.Add(newNode); + + // 로그 기록 + PUB.log.AddI($"RFID:{PUB.Result.LastTAG} 노드를 자동 추가했습니다 (NodeId: {newNodeId})"); + + // CurrentNode에 새로 생성한 노드 할당 + CurrentNode = newNode; + } + else + { + //모터방향 확인해서 UI와 AGV클래스에 적용한다 + var MotDireciton = PUB.AGV.data.Direction == 'B' ? AgvDirection.Backward : AgvDirection.Forward; + PUB._mapCanvas.SetAGVPosition(PUB.setting.MCID, CurrentNode, MotDireciton); + PUB._virtualAGV.SetPosition(CurrentNode, MotDireciton); + + //방향을 다시 확인하여. 기존 경로의 무결성을 검증한다, 필요한 경우 다시 계산할 필요가 있다. + } + + //태그를 읽었다면 상태를 바로 전송한다 + PUB.XBE.SendStatus(); + } + break; + case arDev.Narumi.DataType.ACK: + PUB.logagv.Add($"AGV_[ACK]Receive : {PUB.AGV.ACKData}"); + break; + default: + PUB.logagv.Add($"AGV_DataReceive : {e.DataType}"); + break; + + } + + //이 후 상황을 예측한다 + if (PUB._mapCanvas != null && PUB._virtualAGV != null) + { + var nextAction = PUB._virtualAGV.Predict(); + var message = $"[다음 행동 예측]\n\n"; + + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) + message += "[X] 수동모드\n"; + + if (PUB._virtualAGV.TargetNode == null) message += "[X] 목표노드없음\n"; + if (PUB._virtualAGV.CurrentNode == null) message += "[X] 현재노드없음\n"; + else if (PUB._virtualAGV.HasPath() == false) message += "[X] 경로계산안됨\n"; + if (PUB._virtualAGV.PrevNode == null) message += "[X] 이전노드없음\n"; + else message += $"이전노드: {PUB._virtualAGV.PrevNode.ID2} : {PUB._virtualAGV.PrevDirection}\n"; + message += $"현재노드: {PUB._virtualAGV.CurrentNode.ID2} : {PUB._virtualAGV.CurrentDirection}\n"; + + message += "-------------\n"; + + var node = PUB._virtualAGV.CurrentNode; + var curpos = PUB._virtualAGV.CurrentNodeID2; + var targetpos = PUB._virtualAGV.TargetNode?.ID2 ?? "(X)"; + + + + var pathdetail = ""; + if (PUB._virtualAGV.CurrentPath != null && PUB._virtualAGV.CurrentPath.DetailedPath.Any()) + { + var idx = 0; + foreach (var item in PUB._virtualAGV.CurrentPath.DetailedPath) + { + idx += 1; + if (pathdetail.isEmpty() == false) pathdetail += "->"; + if (idx % 6 == 0) pathdetail += "\n"; + pathdetail += $"{item.RfidId:0000}({item.MotorDirection.ToString().Substring(0, 1)}{item.MagnetDirection.ToString().Substring(0, 1)}{item.Speed.ToString().Substring(0, 1)})"; + if (item.IsPass) pathdetail += "(O)"; + } + } + + message += $"모터: {nextAction.Motor}\n" + + $"마그넷: {nextAction.Magnet}\n" + + $"속도: {nextAction.Speed}\n" + + $"이유: {nextAction.Message}\n" + + $"상태머신:{PUB.sm.Step}:{PUB.sm.RunStep}:{PUB.sm.RunStepSeq}\n" + + $"---\n" + + $"현재 상태: {PUB._virtualAGV.CurrentState}\n" + + $"현재 방향: {PUB._virtualAGV.CurrentDirection}\n" + + $"턴: {PUB._virtualAGV.Turn}\n" + + $"위치 확정: {PUB._virtualAGV.IsPositionConfirmed} (RFID {PUB._virtualAGV.DetectedRfidCount}개)\n" + + + $"대상 노드: {targetpos}\n" + + $"상세 경로: {pathdetail}"; + + PUB._mapCanvas.PredictMessage = message; + } + } + catch (Exception ex) + { + Console.WriteLine($"[AGV_DataReceive] {ex.Message}"); + } + } + } } \ No newline at end of file diff --git a/Cs_HMI/Project/StateMachine/_BMS.cs b/HMI/Project/StateMachine/_BMS.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/_BMS.cs rename to HMI/Project/StateMachine/_BMS.cs index 747e772..accf7e0 100644 --- a/Cs_HMI/Project/StateMachine/_BMS.cs +++ b/HMI/Project/StateMachine/_BMS.cs @@ -1,205 +1,205 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using arCtl; -using Project.StateMachine; -using COMM; -using AR; - -namespace Project -{ - public partial class fMain - { - string lastbms03 = ""; - string lastbms04 = ""; - string lastbmsA03 = ""; - string lastbmsA04 = ""; - string lastbms = ""; - DateTime lastbmstime03 = DateTime.Now; - DateTime lastbmstime04 = DateTime.Now; - DateTime lastbmstimeA03 = DateTime.Now; - DateTime lastbmstimeA04 = DateTime.Now; - DateTime lastbmstime = DateTime.Now; - private void Bms_Message(object sender, arDev.BMS.MessageEventArgs e) - { - - if (e.MsgType == arDev.BMSSerialComm.MessageType.Error) PUB.logbms.AddE(e.Message); - else - { - VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; - - var hexstr = e.Data.GetHexString().Trim(); - bool addlog = false; - var logtimesec = 30; - if (hexstr.StartsWith("DD 04")) - { - if (lastbms04.Equals(hexstr.Substring(0, 5)) == false) - { - addlog = true; - lastbms04 = "DD 04"; - lastbmstime04 = DateTime.Now; - } - else - { - var ts = DateTime.Now - lastbmstime04; - if (ts.TotalSeconds > logtimesec) - { - addlog = true; - lastbms04 = "DD 04"; - lastbmstime04 = DateTime.Now; - } - } - - } - else if (hexstr.StartsWith("DD 03")) - { - if (lastbms03.Equals(hexstr.Substring(0, 5)) == false) - { - addlog = true; - lastbms03 = "DD 03"; - lastbmstime03 = DateTime.Now; - } - else - { - var ts = DateTime.Now - lastbmstime03; - if (ts.TotalSeconds > logtimesec) - { - addlog = true; - lastbms03 = "DD 03"; - lastbmstime03 = DateTime.Now; - } - } - } - - else if (hexstr.StartsWith("DD A5 04")) - { - if (lastbmsA04.Equals(hexstr.Substring(0, 8)) == false) - { - addlog = true; - lastbmsA04 = "DD A5 04"; - lastbmstimeA04 = DateTime.Now; - } - else - { - var ts = DateTime.Now - lastbmstimeA04; - if (ts.TotalSeconds > logtimesec) - { - addlog = true; - lastbmsA04 = "DD A5 04"; - lastbmstimeA04 = DateTime.Now; - } - } - } - - else if (hexstr.StartsWith("DD A5 03")) - { - if (lastbmsA03.Equals(hexstr.Substring(0, 8)) == false) - { - addlog = true; - lastbmsA03 = "DD A5 03"; - lastbmstimeA03 = DateTime.Now; - } - else - { - var ts = DateTime.Now - lastbmstimeA03; - if (ts.TotalSeconds > logtimesec) - { - addlog = true; - lastbmsA03 = "DD A5 03"; - lastbmstimeA03 = DateTime.Now; - } - } - } - - - - else if (hexstr.isEmpty() == false) - { - if (lastbms.Equals(hexstr) == false) - { - lastbms = hexstr; - lastbmstime = DateTime.Now; - addlog = true; - } - else - { - var ts = DateTime.Now - lastbmstime; - if (ts.TotalSeconds > logtimesec) - { - addlog = true; - lastbms = hexstr; - lastbmstime = DateTime.Now; - } - } - } - - if (addlog) - { - //if (e.MsgType == arDev.arRS232.MessageType.Recv) - // PUB.logbms.Add("RX", e.Data.GetHexString()); - //else if (e.MsgType == arDev.arRS232.MessageType.Send) - // PUB.logbms.Add("TX", e.Data.GetHexString()); - //else - { - PUB.logbms.Add(e.MsgType.ToString(),e.Message); - } - - } - - - - } - } - private void BMS_ChargeDetect(object sender, arDev.ChargetDetectArgs e) - { - //자동충전중이아니고 멈춰있다면 수동 충전으로 전환한다 - VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; - if (e.Detected == true) //충전이 감지되었다. - { - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false && VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false) - { - VAR.BOOL[eVarBool.FLAG_CHARGEONM] = true; - PUB.Speak(Lang.충전이감지되어수동충전으로전환합니다); - if (PUB.AGV.system1.agv_run == true) PUB.AGV.AGVMoveStop("수동충전감지"); - } - } - else PUB.logbms.AddI("Battery Charge Off"); - - } - - private void Bms_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e) - { - VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; - - PUB.UpdateAGVBattery(e.Data.rsoc); - - if (e.Data.rsoc <= PUB.setting.ChargeStartLevel) - { - //배터리 레벨이 기준보다 낮다면 경고를 활성화 한다 - if (VAR.BOOL[eVarBool.BATTERY_LOW] == false) - { - VAR.BOOL[eVarBool.BATTERY_LOW] = true; - PUB.log.AddAT("배터리 부족 경고 활성화"); - } - } - else - { - //배터리 경고를 해제한다 - if (VAR.BOOL[eVarBool.BATTERY_LOW] == true) - { - VAR.BOOL[eVarBool.BATTERY_LOW] = false; - PUB.log.AddAT("배터리 부족 경고 비활성화"); - } - } - EEMStatus.MakeBMSInformation_INFO(); - } - private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e) - { - VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; - EEMStatus.MakeBMSInformation_Cell(); - } - } -} +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using arCtl; +using Project.StateMachine; +using COMM; +using AR; + +namespace Project +{ + public partial class fMain + { + string lastbms03 = ""; + string lastbms04 = ""; + string lastbmsA03 = ""; + string lastbmsA04 = ""; + string lastbms = ""; + DateTime lastbmstime03 = DateTime.Now; + DateTime lastbmstime04 = DateTime.Now; + DateTime lastbmstimeA03 = DateTime.Now; + DateTime lastbmstimeA04 = DateTime.Now; + DateTime lastbmstime = DateTime.Now; + private void Bms_Message(object sender, arDev.BMS.MessageEventArgs e) + { + + if (e.MsgType == arDev.BMSSerialComm.MessageType.Error) PUB.logbms.AddE(e.Message); + else + { + VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; + + var hexstr = e.Data.GetHexString().Trim(); + bool addlog = false; + var logtimesec = 30; + if (hexstr.StartsWith("DD 04")) + { + if (lastbms04.Equals(hexstr.Substring(0, 5)) == false) + { + addlog = true; + lastbms04 = "DD 04"; + lastbmstime04 = DateTime.Now; + } + else + { + var ts = DateTime.Now - lastbmstime04; + if (ts.TotalSeconds > logtimesec) + { + addlog = true; + lastbms04 = "DD 04"; + lastbmstime04 = DateTime.Now; + } + } + + } + else if (hexstr.StartsWith("DD 03")) + { + if (lastbms03.Equals(hexstr.Substring(0, 5)) == false) + { + addlog = true; + lastbms03 = "DD 03"; + lastbmstime03 = DateTime.Now; + } + else + { + var ts = DateTime.Now - lastbmstime03; + if (ts.TotalSeconds > logtimesec) + { + addlog = true; + lastbms03 = "DD 03"; + lastbmstime03 = DateTime.Now; + } + } + } + + else if (hexstr.StartsWith("DD A5 04")) + { + if (lastbmsA04.Equals(hexstr.Substring(0, 8)) == false) + { + addlog = true; + lastbmsA04 = "DD A5 04"; + lastbmstimeA04 = DateTime.Now; + } + else + { + var ts = DateTime.Now - lastbmstimeA04; + if (ts.TotalSeconds > logtimesec) + { + addlog = true; + lastbmsA04 = "DD A5 04"; + lastbmstimeA04 = DateTime.Now; + } + } + } + + else if (hexstr.StartsWith("DD A5 03")) + { + if (lastbmsA03.Equals(hexstr.Substring(0, 8)) == false) + { + addlog = true; + lastbmsA03 = "DD A5 03"; + lastbmstimeA03 = DateTime.Now; + } + else + { + var ts = DateTime.Now - lastbmstimeA03; + if (ts.TotalSeconds > logtimesec) + { + addlog = true; + lastbmsA03 = "DD A5 03"; + lastbmstimeA03 = DateTime.Now; + } + } + } + + + + else if (hexstr.isEmpty() == false) + { + if (lastbms.Equals(hexstr) == false) + { + lastbms = hexstr; + lastbmstime = DateTime.Now; + addlog = true; + } + else + { + var ts = DateTime.Now - lastbmstime; + if (ts.TotalSeconds > logtimesec) + { + addlog = true; + lastbms = hexstr; + lastbmstime = DateTime.Now; + } + } + } + + if (addlog) + { + //if (e.MsgType == arDev.arRS232.MessageType.Recv) + // PUB.logbms.Add("RX", e.Data.GetHexString()); + //else if (e.MsgType == arDev.arRS232.MessageType.Send) + // PUB.logbms.Add("TX", e.Data.GetHexString()); + //else + { + PUB.logbms.Add(e.MsgType.ToString(),e.Message); + } + + } + + + + } + } + private void BMS_ChargeDetect(object sender, arDev.ChargetDetectArgs e) + { + //자동충전중이아니고 멈춰있다면 수동 충전으로 전환한다 + VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; + if (e.Detected == true) //충전이 감지되었다. + { + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false && VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false) + { + VAR.BOOL[eVarBool.FLAG_CHARGEONM] = true; + PUB.Speak(Lang.충전이감지되어수동충전으로전환합니다); + if (PUB.AGV.system1.agv_run == true) PUB.AGV.AGVMoveStop("수동충전감지"); + } + } + else PUB.logbms.AddI("Battery Charge Off"); + + } + + private void Bms_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e) + { + VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; + + PUB.UpdateAGVBattery(e.Data.rsoc); + + if (e.Data.rsoc <= PUB.setting.ChargeStartLevel) + { + //배터리 레벨이 기준보다 낮다면 경고를 활성화 한다 + if (VAR.BOOL[eVarBool.BATTERY_LOW] == false) + { + VAR.BOOL[eVarBool.BATTERY_LOW] = true; + PUB.log.AddAT("배터리 부족 경고 활성화"); + } + } + else + { + //배터리 경고를 해제한다 + if (VAR.BOOL[eVarBool.BATTERY_LOW] == true) + { + VAR.BOOL[eVarBool.BATTERY_LOW] = false; + PUB.log.AddAT("배터리 부족 경고 비활성화"); + } + } + EEMStatus.MakeBMSInformation_INFO(); + } + private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e) + { + VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now; + EEMStatus.MakeBMSInformation_Cell(); + } + } +} diff --git a/Cs_HMI/Project/StateMachine/_DIO.cs b/HMI/Project/StateMachine/_DIO.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/_DIO.cs rename to HMI/Project/StateMachine/_DIO.cs index 0861c49..7611f9f 100644 --- a/Cs_HMI/Project/StateMachine/_DIO.cs +++ b/HMI/Project/StateMachine/_DIO.cs @@ -1,195 +1,195 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using AR; -using arDev; -using COMM; - -namespace Project -{ - public partial class fMain - { - - //private void PLC_DioChanged(object sender, arDev.FakePLC.IOValueEventArgs e) - //{ - // if (e.Direction == arDev.Arduino.IODirection.Input) - // { - // var diName = (arDev.FakePLC.DIName)e.ArrIDX; - // Console.WriteLine(string.Format("[DI:{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue)); - - // if (diName == arDev.FakePLC.DIName.PINI_BTN_1) //reset - // { - // if (e.NewValue == true) - // { - // PUB.log.Add($"버튼({diName}) 눌림(AGV_RESET)"); - // PUB.AGV.AGVErrorReset(); - - // //241203 - // if(PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) - // { - // PUB.AGV.AGVMoveStop("button1"); - // } - // //PUB.XBE.NewMsgEvent('0', '1'); - // } - // } - // else if (diName == arDev.FakePLC.DIName.PINI_BTN_2) //auto -> QC //230424 - // { - // if (e.NewValue == true) - // { - // PUB.log.Add($"버튼({diName}) 눌림"); - // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) - // { - // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) - // { - // //zup을 자동으로 해준다 - // if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) - // { - // PUB.log.Add($"버튼({diName}) 눌림"); - // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - // PUB.Result.NextPos = ePosition.QC; - // } - // else PUB.Speak(Lang.커버업대기상태가아닙니다); - // } - // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) - // { - // //이미 하차진행중에 누른 경우이다 - // PUB.Result.NextPos = ePosition.QC; - // PUB.Result.TargetPos = ePosition.QC; - // } - // else - // { - // PUB.log.Add(Lang.QC이동버튼은상하차에서만사용가능합니다); - // PUB.Speak(Lang.하차상태에서만사용가능합니다); - // } - // } - // else PUB.Speak(Lang.자동운전상태가아닙니다); - - // //if (VAR.BOOL[eVarBool.FLAG_AUTORUN]==false) - // //{ - // // PUB.sm.ClearRunStep(); - // // PUB.sm.SetNewRunStep(StateMachine.ERunStep.READY); - // // PUB.sm.SetNewStep(StateMachine.eSMStep.RUN); - // // PUB.Speak("자동 상태로 전환 합니다"); - // //} - // //else - // //{ - // // PUB.Speak("현재 자동 상태 입니다"); - // //} - // } - // } - // else if (diName == arDev.FakePLC.DIName.PINI_BTN_3) //z-down -> QA //230424 - // { - // if (e.NewValue == true) - // { - // //Z-dn기능으로 업데이트 230119 - // PUB.log.Add($"버튼({diName}) 눌림"); - // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) - // { - // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) - // { - // //zup.을 자동으로 해준다 - // if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) - // { - // PUB.log.Add($"버튼({diName}) 눌림"); - // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - // PUB.Result.NextPos = ePosition.QA; - // } - // else PUB.Speak(Lang.커버업대기상태가아닙니다); - // } - // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) - // { - // //이미 하차진행중에 누른 경우이다 - // PUB.Result.NextPos = ePosition.QA; - // PUB.Result.TargetPos = ePosition.QA; - // } - // else - // { - // PUB.log.Add($"QA이동 버튼은 상/하차에서만 사용 가능합니다"); - // PUB.Speak(Lang.하차상태에서만사용가능합니다); - // } - // } - // else PUB.Speak(Lang.자동운전상태가아닙니다); - - // //PUB.PLC.ZMot(FakePLC.ZMotDirection.Down); - // } - // } - // else if (diName == arDev.FakePLC.DIName.PINI_BTN_4) //z-up - // { - // if (e.NewValue == true) - // { - // //Z-up기능으로 업데이트 230119 - // PUB.log.Add($"버튼({diName}) 눌림"); - // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - // } - // } - // else if (diName == arDev.FakePLC.DIName.PINI_EMG) - // { - // if (e.NewValue == true) - // { - // PUB.log.Add($"버튼({diName}) 눌림"); - // PUB.Speak(Lang.비상정지); - // } - // //else Pub.Speak("비상 정지 해제"); - // } - // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADL) - // { - // if (e.NewValue == true) - // { - // PUB.log.Add($"버튼({diName}) 눌림"); - // PUB.Speak(Lang.오버로드감지); - // } - // VAR.BOOL[eVarBool.OVERLOADL] = e.NewValue; - // } - // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADR) - // { - // if (e.NewValue == true) - // { - // PUB.log.Add($"버튼({diName}) 눌림"); - // PUB.Speak(Lang.오버로드감지); - // } - // VAR.BOOL[eVarBool.OVERLOADR] = e.NewValue; - // } - // //else if (diName == FakePLC.DIName.PINI_LIMIT_LU) - // //{ - // // PUB.flag.set(EFlag.FLAG_LIMITHIGHL, e.NewValue); - // //} - // //else if (diName == FakePLC.DIName.PINI_LIMIT_RU) - // //{ - // // PUB.flag.set(EFlag.FLAG_LIMITHIGHR, e.NewValue); - // //} - // //else if (diName == FakePLC.DIName.PINI_LIMIT_LD) - // //{ - // // PUB.flag.set(EFlag.FLAG_LIMITLOWL, e.NewValue); - // //} - // //else if (diName == FakePLC.DIName.PINI_LIMIT_RD) - // //{ - // // PUB.flag.set(EFlag.FLAG_LIMITLOWR, e.NewValue); - // //} - // //else - // //{ - // // //처리하지 않음 - // //} - // //PUB.flag.set(EFlag.FLAG_LIMITHIGH, (PUB.flag.get(EFlag.FLAG_LIMITHIGHL) && PUB.flag.get(EFlag.FLAG_LIMITHIGHR))); - // //PUB.flag.set(EFlag.FLAG_LIMITLOW, (PUB.flag.get(EFlag.FLAG_LIMITLOWL) && PUB.flag.get(EFlag.FLAG_LIMITLOWR))); - // VAR.BOOL[eVarBool.FLAG_LIMITHIGH] = false;// PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU); - // VAR.BOOL[eVarBool.FLAG_LIMITLOW] = false;//PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD); - // VAR.BOOL[eVarBool.OVERLOAD] = (VAR.BOOL[eVarBool.OVERLOADL] || VAR.BOOL[eVarBool.OVERLOADR]); - // } - // else - // { - // //출력포트값 변경 - // var doName = (arDev.FakePLC.DOName)e.ArrIDX; - // PUB.logplc.Add($"출력({doName}) {(e.NewValue ? "O" : "X")}"); - // } - //} - - //string oldflagmessage = string.Empty; - // 사용하지 않는 필드들 제거 - // private string logmessage; - // private string lastplclogmessage; - // private string logerror; - } -} - +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +using arDev; +using COMM; + +namespace Project +{ + public partial class fMain + { + + //private void PLC_DioChanged(object sender, arDev.FakePLC.IOValueEventArgs e) + //{ + // if (e.Direction == arDev.Arduino.IODirection.Input) + // { + // var diName = (arDev.FakePLC.DIName)e.ArrIDX; + // Console.WriteLine(string.Format("[DI:{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue)); + + // if (diName == arDev.FakePLC.DIName.PINI_BTN_1) //reset + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림(AGV_RESET)"); + // PUB.AGV.AGVErrorReset(); + + // //241203 + // if(PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) + // { + // PUB.AGV.AGVMoveStop("button1"); + // } + // //PUB.XBE.NewMsgEvent('0', '1'); + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_BTN_2) //auto -> QC //230424 + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) + // { + // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) + // { + // //zup을 자동으로 해준다 + // if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + // PUB.Result.NextPos = ePosition.QC; + // } + // else PUB.Speak(Lang.커버업대기상태가아닙니다); + // } + // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) + // { + // //이미 하차진행중에 누른 경우이다 + // PUB.Result.NextPos = ePosition.QC; + // PUB.Result.TargetPos = ePosition.QC; + // } + // else + // { + // PUB.log.Add(Lang.QC이동버튼은상하차에서만사용가능합니다); + // PUB.Speak(Lang.하차상태에서만사용가능합니다); + // } + // } + // else PUB.Speak(Lang.자동운전상태가아닙니다); + + // //if (VAR.BOOL[eVarBool.FLAG_AUTORUN]==false) + // //{ + // // PUB.sm.ClearRunStep(); + // // PUB.sm.SetNewRunStep(StateMachine.ERunStep.READY); + // // PUB.sm.SetNewStep(StateMachine.eSMStep.RUN); + // // PUB.Speak("자동 상태로 전환 합니다"); + // //} + // //else + // //{ + // // PUB.Speak("현재 자동 상태 입니다"); + // //} + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_BTN_3) //z-down -> QA //230424 + // { + // if (e.NewValue == true) + // { + // //Z-dn기능으로 업데이트 230119 + // PUB.log.Add($"버튼({diName}) 눌림"); + // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) + // { + // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) + // { + // //zup.을 자동으로 해준다 + // if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + // PUB.Result.NextPos = ePosition.QA; + // } + // else PUB.Speak(Lang.커버업대기상태가아닙니다); + // } + // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) + // { + // //이미 하차진행중에 누른 경우이다 + // PUB.Result.NextPos = ePosition.QA; + // PUB.Result.TargetPos = ePosition.QA; + // } + // else + // { + // PUB.log.Add($"QA이동 버튼은 상/하차에서만 사용 가능합니다"); + // PUB.Speak(Lang.하차상태에서만사용가능합니다); + // } + // } + // else PUB.Speak(Lang.자동운전상태가아닙니다); + + // //PUB.PLC.ZMot(FakePLC.ZMotDirection.Down); + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_BTN_4) //z-up + // { + // if (e.NewValue == true) + // { + // //Z-up기능으로 업데이트 230119 + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_EMG) + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.Speak(Lang.비상정지); + // } + // //else Pub.Speak("비상 정지 해제"); + // } + // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADL) + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.Speak(Lang.오버로드감지); + // } + // VAR.BOOL[eVarBool.OVERLOADL] = e.NewValue; + // } + // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADR) + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.Speak(Lang.오버로드감지); + // } + // VAR.BOOL[eVarBool.OVERLOADR] = e.NewValue; + // } + // //else if (diName == FakePLC.DIName.PINI_LIMIT_LU) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITHIGHL, e.NewValue); + // //} + // //else if (diName == FakePLC.DIName.PINI_LIMIT_RU) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITHIGHR, e.NewValue); + // //} + // //else if (diName == FakePLC.DIName.PINI_LIMIT_LD) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITLOWL, e.NewValue); + // //} + // //else if (diName == FakePLC.DIName.PINI_LIMIT_RD) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITLOWR, e.NewValue); + // //} + // //else + // //{ + // // //처리하지 않음 + // //} + // //PUB.flag.set(EFlag.FLAG_LIMITHIGH, (PUB.flag.get(EFlag.FLAG_LIMITHIGHL) && PUB.flag.get(EFlag.FLAG_LIMITHIGHR))); + // //PUB.flag.set(EFlag.FLAG_LIMITLOW, (PUB.flag.get(EFlag.FLAG_LIMITLOWL) && PUB.flag.get(EFlag.FLAG_LIMITLOWR))); + // VAR.BOOL[eVarBool.FLAG_LIMITHIGH] = false;// PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU); + // VAR.BOOL[eVarBool.FLAG_LIMITLOW] = false;//PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD); + // VAR.BOOL[eVarBool.OVERLOAD] = (VAR.BOOL[eVarBool.OVERLOADL] || VAR.BOOL[eVarBool.OVERLOADR]); + // } + // else + // { + // //출력포트값 변경 + // var doName = (arDev.FakePLC.DOName)e.ArrIDX; + // PUB.logplc.Add($"출력({doName}) {(e.NewValue ? "O" : "X")}"); + // } + //} + + //string oldflagmessage = string.Empty; + // 사용하지 않는 필드들 제거 + // private string logmessage; + // private string lastplclogmessage; + // private string logerror; + } +} + diff --git a/Cs_HMI/Project/StateMachine/_Flag.cs b/HMI/Project/StateMachine/_Flag.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/_Flag.cs rename to HMI/Project/StateMachine/_Flag.cs index 736546c..92cfae5 100644 --- a/Cs_HMI/Project/StateMachine/_Flag.cs +++ b/HMI/Project/StateMachine/_Flag.cs @@ -1,108 +1,108 @@ -using AR; -using COMM; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Linq; -using System.Text; - -namespace Project -{ - public partial class fMain - { - void gridView2_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) - { - //메인화면 하단의 플래그 상태창에서 클릭된 경우 - //var gv = sender as arFrame.Control.GridView; - //var flagIndex = gv.getNameItem(e.idx); - //if(flagIndex != "") - //{ - // var fidx = int.Parse(flagIndex); - // var flag = (eFlag)fidx; - // var curValue = Pub.flag.get(flag); - // Pub.flag.set(flag, !curValue); - //} - } - - private void BOOL_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - var buf = e.PropertyName.Split('|'); - var flag = (COMM.eVarBool)int.Parse(buf[0]); - var NewValue = buf[1].ToUpper() == "TRUE"; - if (flag == COMM.eVarBool.FLAG_AUTORUN) - { - //자동운전이 해제되면 현재위치값을 삭제한다 - if (NewValue == false && PUB.setting.AutoModeOffAndClearPosition == true) - { - if (PUB.Result.CurrentPos != ePosition.NONE) - { - PUB.log.AddAT($"자동운전이 해제되어 현재 위치를 제거합니다"); - PUB.Result.CurrentPos = ePosition.NONE; - PUB.Result.CurrentPosCW = "1"; - } - } - // Pub.mplayer.Stop(); - //if (NewValue == true) - //{ - // btAutoRun.BackColor = Color.Lime; - // btAutoRun.BackColor2 = Color.Green; - // btAutoRun.Text = "자동 실행 상태"; - - // //if (Pub.sm.Step >= StateMachine.eSMStep.IDLE) Pub.Speak("자동 실행 모드"); - //} - //else - //{ - // btAutoRun.BackColor2 = Color.DimGray; - // btAutoRun.BackColor = Color.FromArgb(100, 100, 100); - // btAutoRun.Text = "수동 조작 상태"; - // //if (Pub.sm.Step >= StateMachine.eSMStep.IDLE) Pub.Speak("수동 조작 모드"); - //} - } - else if (flag == COMM.eVarBool.FLAG_CHARGEONA) - { - if (NewValue) - { - VAR.TIME.Update(eVarTime.ChargeStart); - PUB.counter.CountChargeA += 1; - PUB.counter.Save(); - PUB.Speak(Lang.충전을시작합니다); - } - else - { - PUB.Speak(Lang.충전을해제합니다); - } - } - else if (flag == COMM.eVarBool.FLAG_CHARGEONM) - { - if (NewValue) - { - VAR.TIME.Update(eVarTime.ChargeStart); - PUB.counter.CountChargeM += 1; - PUB.counter.Save(); - PUB.Speak(Lang.수동충전을시작합니다); - } - else - { - PUB.Speak(Lang.수동충전을해제합니다); - } - } - //else if (flag == COMM.eVarBool.NEXTSTOP_MARK) - //{ - // if (NewValue) - // { - // //PUB.Speak("다음 위치에서 멈춥니다"); - // PUB.log.Add($"마크인식시 멈춤 신호 변경 : {NewValue}"); - // } - //} - - } - - //void PLC_FlagChanged(object sender, arDev.Arduino.DIO.FlagValueEventArgs e) - //{ - // //플래그 상태표시는 메인의 타이머를 이용한다 - // // var flag = (arDev.FakePLC.PLCFlag)e.ArrIDX; - // PUB.log.Add($"PLC Flag Changed {e.ArrIDX} : {e.NewValue}"); - //} - } -} +using AR; +using COMM; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class fMain + { + void gridView2_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) + { + //메인화면 하단의 플래그 상태창에서 클릭된 경우 + //var gv = sender as arFrame.Control.GridView; + //var flagIndex = gv.getNameItem(e.idx); + //if(flagIndex != "") + //{ + // var fidx = int.Parse(flagIndex); + // var flag = (eFlag)fidx; + // var curValue = Pub.flag.get(flag); + // Pub.flag.set(flag, !curValue); + //} + } + + private void BOOL_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + var buf = e.PropertyName.Split('|'); + var flag = (COMM.eVarBool)int.Parse(buf[0]); + var NewValue = buf[1].ToUpper() == "TRUE"; + if (flag == COMM.eVarBool.FLAG_AUTORUN) + { + //자동운전이 해제되면 현재위치값을 삭제한다 + if (NewValue == false && PUB.setting.AutoModeOffAndClearPosition == true) + { + if (PUB.Result.CurrentPos != ePosition.NONE) + { + PUB.log.AddAT($"자동운전이 해제되어 현재 위치를 제거합니다"); + PUB.Result.CurrentPos = ePosition.NONE; + PUB.Result.CurrentPosCW = "1"; + } + } + // Pub.mplayer.Stop(); + //if (NewValue == true) + //{ + // btAutoRun.BackColor = Color.Lime; + // btAutoRun.BackColor2 = Color.Green; + // btAutoRun.Text = "자동 실행 상태"; + + // //if (Pub.sm.Step >= StateMachine.eSMStep.IDLE) Pub.Speak("자동 실행 모드"); + //} + //else + //{ + // btAutoRun.BackColor2 = Color.DimGray; + // btAutoRun.BackColor = Color.FromArgb(100, 100, 100); + // btAutoRun.Text = "수동 조작 상태"; + // //if (Pub.sm.Step >= StateMachine.eSMStep.IDLE) Pub.Speak("수동 조작 모드"); + //} + } + else if (flag == COMM.eVarBool.FLAG_CHARGEONA) + { + if (NewValue) + { + VAR.TIME.Update(eVarTime.ChargeStart); + PUB.counter.CountChargeA += 1; + PUB.counter.Save(); + PUB.Speak(Lang.충전을시작합니다); + } + else + { + PUB.Speak(Lang.충전을해제합니다); + } + } + else if (flag == COMM.eVarBool.FLAG_CHARGEONM) + { + if (NewValue) + { + VAR.TIME.Update(eVarTime.ChargeStart); + PUB.counter.CountChargeM += 1; + PUB.counter.Save(); + PUB.Speak(Lang.수동충전을시작합니다); + } + else + { + PUB.Speak(Lang.수동충전을해제합니다); + } + } + //else if (flag == COMM.eVarBool.NEXTSTOP_MARK) + //{ + // if (NewValue) + // { + // //PUB.Speak("다음 위치에서 멈춥니다"); + // PUB.log.Add($"마크인식시 멈춤 신호 변경 : {NewValue}"); + // } + //} + + } + + //void PLC_FlagChanged(object sender, arDev.Arduino.DIO.FlagValueEventArgs e) + //{ + // //플래그 상태표시는 메인의 타이머를 이용한다 + // // var flag = (arDev.FakePLC.PLCFlag)e.ArrIDX; + // PUB.log.Add($"PLC Flag Changed {e.ArrIDX} : {e.NewValue}"); + //} + } +} diff --git a/Cs_HMI/Project/StateMachine/_Loop.cs b/HMI/Project/StateMachine/_Loop.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/_Loop.cs rename to HMI/Project/StateMachine/_Loop.cs index 8487d9c..6bbc4e2 100644 --- a/Cs_HMI/Project/StateMachine/_Loop.cs +++ b/HMI/Project/StateMachine/_Loop.cs @@ -1,439 +1,439 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using arCtl; -using Project.StateMachine; -using COMM; -using System.Windows.Forms; -using Project.ViewForm; -using AR; - -namespace Project -{ - - public partial class fMain - { - - - DateTime lastDeleteTime = DateTime.Now; - DateTime startuptime = new DateTime(1982, 11, 23); - enum EScreen - { - Auto = 0, - Manual, - IO, - Flag - } - void SetScreen(System.Windows.Forms.Form newscreen) - { - if (newscreen == null) - throw new Exception("화면전용용 폼이 Null 입니다. SM_RUN_INIT 에서 해당 폼이 초기화 되었는지 확인하세요"); - - //작업시작 - if (this.InvokeRequired) - { - this.BeginInvoke(new Action(() => - { - SetScreen(newscreen); - })); - } - else - { - if (newscreen.GetType() == typeof(fManual)) - { - - } - else if (PUB.DriveSpeed) - { - var rlt = PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_H.ToString("0000")); - if (rlt == arDev.eNarumiCommandResult.Success) - { - PUB.DriveSpeed = false; - PUB.log.Add($"Screen Change and DriveSpeed Off:{rlt}"); - } else - { - PUB.log.AddE($"Screen Change and DriveSpeed Off:{rlt}"); - } - - } - - MenuAuto.ForeColor = Color.FromArgb(180, 180, 180); - MenuFlag.ForeColor = Color.FromArgb(180, 180, 180); - MenuLift.ForeColor = Color.FromArgb(180, 180, 180); - MenuLog.ForeColor = Color.FromArgb(180, 180, 180); - MenuMAN.ForeColor = Color.FromArgb(180, 180, 180); - MenuAGV.ForeColor = Color.FromArgb(180, 180, 180); - MenuBMS.ForeColor = Color.FromArgb(180, 180, 180); - - - if (panDlg.Controls.Count > 0) - { - var f = panDlg.Controls[0] as System.Windows.Forms.Form; - if (f.GetType() == newscreen.GetType()) return; - else f.Hide(); //숨김처리 - } - panDlg.Controls.Clear(); - panDlg.Controls.Add(newscreen); - newscreen.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - newscreen.WindowState = System.Windows.Forms.FormWindowState.Maximized; - newscreen.Show(); - } - } - - string lockstep = string.Empty; - System.Threading.ManualResetEvent mreloop = new System.Threading.ManualResetEvent(true); - void sm_Running(object sender, StateMachine.StateMachine.RunningEventArgs e) - { - - //창을 닫아야하는 상황에는 처리하지 않는다. - if (PUB.popup.needClose) - { - System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. - PUB.sm.WaitFirstRun = true; - return; - } - else PUB.sm.WaitFirstRun = false; - - if (mreloop.WaitOne(1) == false) return; - mreloop.Reset(); - - lockstep = e.Step.ToString(); - - //main loop - switch (e.Step) - { - case eSMStep.CLOSING: - _STEP_CLOSING_START(e.Step); - PUB.sm.SetNewStep(eSMStep.CLOSED); - break; - case eSMStep.CLOSED: - if (e.isFirst) _STEP_CLOSED_START(e.Step); - else _STEP_CLOSED(e.Step, e.StepTime, e.StepTime); - break; - case eSMStep.NOTSET: - PUB.log.Add("S/M Initialize Start"); - PUB.sm.SetNewStep(eSMStep.INIT); - break; - - case eSMStep.INIT: //최초실행이다. - - if (_SM_RUN_INIT(e.isFirst, PUB.sm.StepRunTime)) - { - //메인화면을 설정한다 - form_auto = new ViewForm.fAuto(); - form_manu = new ViewForm.fManual(); - form_zlift = new ViewForm.fIO(); - form_flag = new ViewForm.fFlag(); - form_bms = new ViewForm.fBms(); - form_agv = new ViewForm.fAgv(); - - - form_auto.TopLevel = false; - form_manu.TopLevel = false; - form_zlift.TopLevel = false; - form_flag.TopLevel = false; - form_bms.TopLevel = false; - form_agv.TopLevel = false; - - - form_auto.Dock = System.Windows.Forms.DockStyle.Fill; - form_manu.Dock = System.Windows.Forms.DockStyle.Fill; - form_zlift.Dock = System.Windows.Forms.DockStyle.Fill; - form_flag.Dock = System.Windows.Forms.DockStyle.Fill; - form_bms.Dock = System.Windows.Forms.DockStyle.Fill; - form_agv.Dock = System.Windows.Forms.DockStyle.Fill; - - SetScreen(form_auto); - - PUB.sm.ResetRunStepSeq(); - PUB.sm.SetNewStep(eSMStep.SYNC); - PUB.Speak(Lang.프로그램이초기화되었습니다); - } - break; - - - case eSMStep.IDLE: - - if (e.isFirst) - { - PUB.sm.bPause = false; - //Pub.flag.set(eFlag.UserStepCheck, false); - PUB.sm.ClearRunStep(); - // Util_DO.SetMGZMotor(false); - PUB.Result.SMSG_ProgressEnable = false; - UpdateStatusMessage("준비 완료", Color.Red, Color.Gold); - if (startuptime.Year == 1982) startuptime = DateTime.Now; - - - // 동기화 모드 종료 (혹시 남아있을 경우) - if (PUB._mapCanvas != null) - { - this.Invoke(new Action(() => { - PUB._mapCanvas.ExitSyncMode( AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run); - })); - } - - } - - //자동소거기능 - if (PUB.setting.AutoDeleteDay > 0) - { - if (VAR.BOOL[eVarBool.MINSPACE] == true) - { - var ts = DateTime.Now - lastDeleteTime; - if (ts.TotalSeconds > 1) - { - //파일을 찾아서 소거한다. - if (System.IO.Directory.Exists(PUB.path.FullName)) - DeleteFile(PUB.path.FullName); - - - lastDeleteTime = DateTime.Now; - } - - } - } - break; - - case eSMStep.SYNC: - if (e.isFirst) - { - // 동기화 완료 시 캔버스 모드 복귀 - this.Invoke(new Action(() => { - if (PUB._mapCanvas != null) - PUB._mapCanvas.SetSyncStatus("설정 동기화", 0f, "환경설정 값으로 AGV컨트롤러를 설정 합니다"); - })); - - } - if (_SM_RUN_SYNC(runStepisFirst, PUB.sm.GetRunSteptime)) - { - var b1 = PUB.XBE.IsOpen; - var b2 = PUB.AGV.IsOpen; - var b3 = true;// PUB.PLC.IsOpen; - var b4 = PUB.BMS.IsOpen; - - if (b1 == false || b2 == false || b3 == false || b4 == false) - PUB.Speak(Lang.하드웨어오류발생); - else - PUB.Speak( Lang.초기화완료); - - PUB.sm.SetNewStep(eSMStep.IDLE); - } - break; - - case eSMStep.RUN: - _SM_RUN(e.isFirst, e.StepTime); - break; - - case eSMStep.PAUSE: - case eSMStep.EMERGENCY: - case eSMStep.ERROR: - - - //창을 닫아야하는 상황에는 처리하지 않는다. - if (PUB.popup.needClose) - { - System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. - PUB.sm.WaitFirstRun = true; - return; - } - else PUB.sm.WaitFirstRun = false; - - if (e.isFirst) - { - - if (PUB.Result.ResultCode != eResult.NoError) - { - //에러메세지가 있는 경우에만 표시함 - if (PUB.Result.ResultMessage != "") - PUB.popup.setMessage(PUB.Result.ResultMessage); - - if (PUB.Result.ResultCode == eResult.Hardware) - { - PUB.Speak(Lang.하드웨어오류로인해진행할수없습니다); - } - else PUB.Speak(PUB.Result.ResultMessage); - - } - if (e.Step == eSMStep.EMERGENCY) PUB.log.AddE("Enter Emergency Step"); - else if (e.Step == eSMStep.PAUSE) PUB.log.AddE("Enter Pause Step : " + PUB.Result.ResultMessage); - else PUB.log.AddE(string.Format("Enter Error Step : {0}", PUB.Result.ResultMessage)); - - - - PUB.sm.bPause = false; - PUB.sm.ClearRunStep(); - PUB.sm.SetNewStep(eSMStep.IDLE); - } - break; - - case eSMStep.RESET: - - if (e.isFirst) - { - Resultclear(); - PUB.sm.bPause = false; - } - else - { - if (_SM_RUN_RESET(runStepisFirst, PUB.sm.GetRunSteptime)) - PUB.sm.SetNewStep(eSMStep.IDLE); - } - break; - } - - mreloop.Set(); - } - - void DeleteFile(string path) - { - var basetime = DateTime.Now.AddDays(-1 * PUB.setting.AutoDeleteDay); - var di = new System.IO.DirectoryInfo(path); - if (di.Exists) - { - var dirYear = di.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirYear != null) - { - var dirMon = dirYear.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirMon != null) - { - var dirDay = dirMon.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirDay != null) - { - var curDay = DateTime.Parse(string.Format("{0}-{1}-{2} 00:00:00", dirYear.ToString(), dirMon.ToString(), dirDay.ToString())); - if (curDay < basetime) - { - var dirLot = dirDay.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirLot != null) - { - var delfile = dirLot.GetFiles().FirstOrDefault(); - if (delfile != null) - { - try - { - PUB.log.AddI("Remove Fle : " + delfile.FullName + ",time=" + delfile.LastWriteTime.ToString()); - delfile.Delete(); - } - catch (Exception ex) - { - PUB.log.AddE("deleete error : " + ex.Message); - } - } - else - { - string delpath = dirLot.FullName; - try - { - dirLot.Delete(true); - } - catch (Exception ex) - { - PUB.log.AddE("remove dir" + ex.Message + "," + delpath); - } - - } - } - else - { - //이 폴더아래에 다른 폴더가 하나도 없다 즉 비어 있따. - string delpath = dirDay.FullName; - try - { - dirDay.Delete(true); - } - catch (Exception ex) - { - PUB.log.AddE("remove dir" + ex.Message + "," + delpath); - } - } - } - - } - else - { - //날짜에 해당하는 폴더가 하나도 없다. 월 폴더를 제거한다. - string delpath = dirMon.FullName; - try - { - dirMon.Delete(true); - } - catch (Exception ex) - { - PUB.log.AddE("remove dir" + ex.Message + "," + delpath); - } - } - } - else - { - //이 달에 해당하는 데이터가 없다. 이 년도를 삭제한다. - string delpath = dirYear.FullName; - try - { - dirYear.Delete(true); - } - catch (Exception ex) - { - PUB.log.AddE("remove dir" + ex.Message + "," + delpath); - } - } - } - //년도별폴더목록을 정리함 - //가장작은 년도를 기준으로 파일을 검색해서 1개씩 삭제함 - } - } - - void sm_Message(object sender, StateMachine.StateMachine.StateMachineMessageEventArgs e) - { - //상태머신에서 발생한 메세지 - if (e.Header != "SM-STEP") - PUB.log.Add(e.Header, e.Message); - } - - - void sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e) - { - //상태머신의 스텝이 변경될때 발생함 - //Pub.log.Add(string.Format("SM:Step Changed {0} to {1}",e.Old,e.New)); - VAR.BOOL[eVarBool.FLAG_AUTORUN] = e.New == eSMStep.RUN; - VAR.BOOL[eVarBool.FLAG_SYNC] = (e.New == eSMStep.SYNC); - - //230313 - var n = (eSMStep)e.New; - EEMStatus.AddStatusSQL(n, extrun: true); - - if (e.New == eSMStep.IDLE) - { - VAR.TIME[eVarTime.IdleStart] = DateTime.Now; - PUB.AGV.AGVMoveStop("_sm_stepchange", arDev.Narumi.eStopOpt.Stop); - - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); - - if (VAR.BOOL[eVarBool.FLAG_AUTORUN]) - { - PUB.logagv.Add($"IDLE 전환으로인해 autorun 해제"); - VAR.BOOL[eVarBool.FLAG_AUTORUN] = false; - } - } - } - - //void uploadForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e) - //{ - // //이벤트 해제 - // if (uploadForm != null) - // uploadForm.FormClosed -= uploadForm_FormClosed; - - // //업로드 창이 닫히면 그 결과를 화면에 표시 해준다. - // //foreach (System.Windows.Forms.ListViewItem lv in uploadForm.listView1.Items) - // //{ - // // string slot = lv.SubItems[0].Text; - // // string wafer = lv.SubItems[2].Text; - // // string state = lv.SubItems[3].Text; - - // //} - //} - } -} +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using arCtl; +using Project.StateMachine; +using COMM; +using System.Windows.Forms; +using Project.ViewForm; +using AR; + +namespace Project +{ + + public partial class fMain + { + + + DateTime lastDeleteTime = DateTime.Now; + DateTime startuptime = new DateTime(1982, 11, 23); + enum EScreen + { + Auto = 0, + Manual, + IO, + Flag + } + void SetScreen(System.Windows.Forms.Form newscreen) + { + if (newscreen == null) + throw new Exception("화면전용용 폼이 Null 입니다. SM_RUN_INIT 에서 해당 폼이 초기화 되었는지 확인하세요"); + + //작업시작 + if (this.InvokeRequired) + { + this.BeginInvoke(new Action(() => + { + SetScreen(newscreen); + })); + } + else + { + if (newscreen.GetType() == typeof(fManual)) + { + + } + else if (PUB.DriveSpeed) + { + var rlt = PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_H.ToString("0000")); + if (rlt == arDev.eNarumiCommandResult.Success) + { + PUB.DriveSpeed = false; + PUB.log.Add($"Screen Change and DriveSpeed Off:{rlt}"); + } else + { + PUB.log.AddE($"Screen Change and DriveSpeed Off:{rlt}"); + } + + } + + MenuAuto.ForeColor = Color.FromArgb(180, 180, 180); + MenuFlag.ForeColor = Color.FromArgb(180, 180, 180); + MenuLift.ForeColor = Color.FromArgb(180, 180, 180); + MenuLog.ForeColor = Color.FromArgb(180, 180, 180); + MenuMAN.ForeColor = Color.FromArgb(180, 180, 180); + MenuAGV.ForeColor = Color.FromArgb(180, 180, 180); + MenuBMS.ForeColor = Color.FromArgb(180, 180, 180); + + + if (panDlg.Controls.Count > 0) + { + var f = panDlg.Controls[0] as System.Windows.Forms.Form; + if (f.GetType() == newscreen.GetType()) return; + else f.Hide(); //숨김처리 + } + panDlg.Controls.Clear(); + panDlg.Controls.Add(newscreen); + newscreen.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + newscreen.WindowState = System.Windows.Forms.FormWindowState.Maximized; + newscreen.Show(); + } + } + + string lockstep = string.Empty; + System.Threading.ManualResetEvent mreloop = new System.Threading.ManualResetEvent(true); + void sm_Running(object sender, StateMachine.StateMachine.RunningEventArgs e) + { + + //창을 닫아야하는 상황에는 처리하지 않는다. + if (PUB.popup.needClose) + { + System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + PUB.sm.WaitFirstRun = true; + return; + } + else PUB.sm.WaitFirstRun = false; + + if (mreloop.WaitOne(1) == false) return; + mreloop.Reset(); + + lockstep = e.Step.ToString(); + + //main loop + switch (e.Step) + { + case eSMStep.CLOSING: + _STEP_CLOSING_START(e.Step); + PUB.sm.SetNewStep(eSMStep.CLOSED); + break; + case eSMStep.CLOSED: + if (e.isFirst) _STEP_CLOSED_START(e.Step); + else _STEP_CLOSED(e.Step, e.StepTime, e.StepTime); + break; + case eSMStep.NOTSET: + PUB.log.Add("S/M Initialize Start"); + PUB.sm.SetNewStep(eSMStep.INIT); + break; + + case eSMStep.INIT: //최초실행이다. + + if (_SM_RUN_INIT(e.isFirst, PUB.sm.StepRunTime)) + { + //메인화면을 설정한다 + form_auto = new ViewForm.fAuto(); + form_manu = new ViewForm.fManual(); + form_zlift = new ViewForm.fIO(); + form_flag = new ViewForm.fFlag(); + form_bms = new ViewForm.fBms(); + form_agv = new ViewForm.fAgv(); + + + form_auto.TopLevel = false; + form_manu.TopLevel = false; + form_zlift.TopLevel = false; + form_flag.TopLevel = false; + form_bms.TopLevel = false; + form_agv.TopLevel = false; + + + form_auto.Dock = System.Windows.Forms.DockStyle.Fill; + form_manu.Dock = System.Windows.Forms.DockStyle.Fill; + form_zlift.Dock = System.Windows.Forms.DockStyle.Fill; + form_flag.Dock = System.Windows.Forms.DockStyle.Fill; + form_bms.Dock = System.Windows.Forms.DockStyle.Fill; + form_agv.Dock = System.Windows.Forms.DockStyle.Fill; + + SetScreen(form_auto); + + PUB.sm.ResetRunStepSeq(); + PUB.sm.SetNewStep(eSMStep.SYNC); + PUB.Speak(Lang.프로그램이초기화되었습니다); + } + break; + + + case eSMStep.IDLE: + + if (e.isFirst) + { + PUB.sm.bPause = false; + //Pub.flag.set(eFlag.UserStepCheck, false); + PUB.sm.ClearRunStep(); + // Util_DO.SetMGZMotor(false); + PUB.Result.SMSG_ProgressEnable = false; + UpdateStatusMessage("준비 완료", Color.Red, Color.Gold); + if (startuptime.Year == 1982) startuptime = DateTime.Now; + + + // 동기화 모드 종료 (혹시 남아있을 경우) + if (PUB._mapCanvas != null) + { + this.Invoke(new Action(() => { + PUB._mapCanvas.ExitSyncMode( AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run); + })); + } + + } + + //자동소거기능 + if (PUB.setting.AutoDeleteDay > 0) + { + if (VAR.BOOL[eVarBool.MINSPACE] == true) + { + var ts = DateTime.Now - lastDeleteTime; + if (ts.TotalSeconds > 1) + { + //파일을 찾아서 소거한다. + if (System.IO.Directory.Exists(PUB.path.FullName)) + DeleteFile(PUB.path.FullName); + + + lastDeleteTime = DateTime.Now; + } + + } + } + break; + + case eSMStep.SYNC: + if (e.isFirst) + { + // 동기화 완료 시 캔버스 모드 복귀 + this.Invoke(new Action(() => { + if (PUB._mapCanvas != null) + PUB._mapCanvas.SetSyncStatus("설정 동기화", 0f, "환경설정 값으로 AGV컨트롤러를 설정 합니다"); + })); + + } + if (_SM_RUN_SYNC(runStepisFirst, PUB.sm.GetRunSteptime)) + { + var b1 = PUB.XBE.IsOpen; + var b2 = PUB.AGV.IsOpen; + var b3 = true;// PUB.PLC.IsOpen; + var b4 = PUB.BMS.IsOpen; + + if (b1 == false || b2 == false || b3 == false || b4 == false) + PUB.Speak(Lang.하드웨어오류발생); + else + PUB.Speak( Lang.초기화완료); + + PUB.sm.SetNewStep(eSMStep.IDLE); + } + break; + + case eSMStep.RUN: + _SM_RUN(e.isFirst, e.StepTime); + break; + + case eSMStep.PAUSE: + case eSMStep.EMERGENCY: + case eSMStep.ERROR: + + + //창을 닫아야하는 상황에는 처리하지 않는다. + if (PUB.popup.needClose) + { + System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + PUB.sm.WaitFirstRun = true; + return; + } + else PUB.sm.WaitFirstRun = false; + + if (e.isFirst) + { + + if (PUB.Result.ResultCode != eResult.NoError) + { + //에러메세지가 있는 경우에만 표시함 + if (PUB.Result.ResultMessage != "") + PUB.popup.setMessage(PUB.Result.ResultMessage); + + if (PUB.Result.ResultCode == eResult.Hardware) + { + PUB.Speak(Lang.하드웨어오류로인해진행할수없습니다); + } + else PUB.Speak(PUB.Result.ResultMessage); + + } + if (e.Step == eSMStep.EMERGENCY) PUB.log.AddE("Enter Emergency Step"); + else if (e.Step == eSMStep.PAUSE) PUB.log.AddE("Enter Pause Step : " + PUB.Result.ResultMessage); + else PUB.log.AddE(string.Format("Enter Error Step : {0}", PUB.Result.ResultMessage)); + + + + PUB.sm.bPause = false; + PUB.sm.ClearRunStep(); + PUB.sm.SetNewStep(eSMStep.IDLE); + } + break; + + case eSMStep.RESET: + + if (e.isFirst) + { + Resultclear(); + PUB.sm.bPause = false; + } + else + { + if (_SM_RUN_RESET(runStepisFirst, PUB.sm.GetRunSteptime)) + PUB.sm.SetNewStep(eSMStep.IDLE); + } + break; + } + + mreloop.Set(); + } + + void DeleteFile(string path) + { + var basetime = DateTime.Now.AddDays(-1 * PUB.setting.AutoDeleteDay); + var di = new System.IO.DirectoryInfo(path); + if (di.Exists) + { + var dirYear = di.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirYear != null) + { + var dirMon = dirYear.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirMon != null) + { + var dirDay = dirMon.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirDay != null) + { + var curDay = DateTime.Parse(string.Format("{0}-{1}-{2} 00:00:00", dirYear.ToString(), dirMon.ToString(), dirDay.ToString())); + if (curDay < basetime) + { + var dirLot = dirDay.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirLot != null) + { + var delfile = dirLot.GetFiles().FirstOrDefault(); + if (delfile != null) + { + try + { + PUB.log.AddI("Remove Fle : " + delfile.FullName + ",time=" + delfile.LastWriteTime.ToString()); + delfile.Delete(); + } + catch (Exception ex) + { + PUB.log.AddE("deleete error : " + ex.Message); + } + } + else + { + string delpath = dirLot.FullName; + try + { + dirLot.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + + } + } + else + { + //이 폴더아래에 다른 폴더가 하나도 없다 즉 비어 있따. + string delpath = dirDay.FullName; + try + { + dirDay.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + + } + else + { + //날짜에 해당하는 폴더가 하나도 없다. 월 폴더를 제거한다. + string delpath = dirMon.FullName; + try + { + dirMon.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + else + { + //이 달에 해당하는 데이터가 없다. 이 년도를 삭제한다. + string delpath = dirYear.FullName; + try + { + dirYear.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + //년도별폴더목록을 정리함 + //가장작은 년도를 기준으로 파일을 검색해서 1개씩 삭제함 + } + } + + void sm_Message(object sender, StateMachine.StateMachine.StateMachineMessageEventArgs e) + { + //상태머신에서 발생한 메세지 + if (e.Header != "SM-STEP") + PUB.log.Add(e.Header, e.Message); + } + + + void sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e) + { + //상태머신의 스텝이 변경될때 발생함 + //Pub.log.Add(string.Format("SM:Step Changed {0} to {1}",e.Old,e.New)); + VAR.BOOL[eVarBool.FLAG_AUTORUN] = e.New == eSMStep.RUN; + VAR.BOOL[eVarBool.FLAG_SYNC] = (e.New == eSMStep.SYNC); + + //230313 + var n = (eSMStep)e.New; + EEMStatus.AddStatusSQL(n, extrun: true); + + if (e.New == eSMStep.IDLE) + { + VAR.TIME[eVarTime.IdleStart] = DateTime.Now; + PUB.AGV.AGVMoveStop("_sm_stepchange", arDev.Narumi.eStopOpt.Stop); + + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); + + if (VAR.BOOL[eVarBool.FLAG_AUTORUN]) + { + PUB.logagv.Add($"IDLE 전환으로인해 autorun 해제"); + VAR.BOOL[eVarBool.FLAG_AUTORUN] = false; + } + } + } + + //void uploadForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e) + //{ + // //이벤트 해제 + // if (uploadForm != null) + // uploadForm.FormClosed -= uploadForm_FormClosed; + + // //업로드 창이 닫히면 그 결과를 화면에 표시 해준다. + // //foreach (System.Windows.Forms.ListViewItem lv in uploadForm.listView1.Items) + // //{ + // // string slot = lv.SubItems[0].Text; + // // string wafer = lv.SubItems[2].Text; + // // string state = lv.SubItems[3].Text; + + // //} + //} + } +} diff --git a/Cs_HMI/Project/StateMachine/_SPS.cs b/HMI/Project/StateMachine/_SPS.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/_SPS.cs rename to HMI/Project/StateMachine/_SPS.cs index 570bd5a..892b0f4 100644 --- a/Cs_HMI/Project/StateMachine/_SPS.cs +++ b/HMI/Project/StateMachine/_SPS.cs @@ -1,228 +1,228 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading; -using System.Windows.Media.Animation; -using AR; -using arCtl; -using COMM; -using Project.StateMachine; - -namespace Project -{ - /// - /// SPS (Scan Per Second) 이벤트 핸들러 - /// - 장치 연결 및 상태 전송 기능은 _DeviceManagement.cs로 분리됨 - /// - public partial class fMain - { - DateTime chargesynctime = DateTime.Now; - DateTime agvsendstarttime = DateTime.Now; - DateTime lastXbeStatusSendTime = DateTime.Now; - DateTime lastBmsQueryTime = DateTime.Now; - object connectobj = new object(); - - void sm_SPS(object sender, EventArgs e) - { - if (PUB.sm == null || PUB.sm.Step < eSMStep.IDLE || PUB.sm.Step >= eSMStep.CLOSING || PUB.bShutdown == true) return; - - // SPS는 이제 간단한 작업만 수행 - // 장치 연결 및 상태 전송은 별도 태스크(_DeviceManagement.cs)에서 처리 - // 장치 연결이 별도로 존재할때 1회 수신 후 통신이 전체 먹통되는 증상이 있어 우선 복귀 251215 - try - { - - // ========== 1. 장치 연결 관리 ========== - // AGV 연결 - lock (connectobj) - { - ConnectSerialPort(PUB.AGV, PUB.setting.Port_AGV, PUB.setting.Baud_AGV, - eVarTime.LastConn_AGV, eVarTime.LastConnTry_AGV, eVarTime.LastRecv_AGV); - } - - - // XBee 연결 - lock (connectobj) - { - if (VAR.BOOL[eVarBool.DISABLE_AUTOCONN_XBEE] == false) - { - ConnectSerialPort(PUB.XBE, PUB.setting.Port_XBE, PUB.setting.Baud_XBE, - eVarTime.LastConn_XBE, eVarTime.LastConnTry_XBE, null); - } - } - - - // BMS 연결 - lock (connectobj) - { - if (PUB.BMS.IsOpen == false) - { - var ts = VAR.TIME.RUN(eVarTime.LastConn_BAT); - if (ts.TotalSeconds > 3) - { - PUB.log.Add($"BMS 연결 시도: {PUB.setting.Port_BAT}"); - PUB.BMS.PortName = PUB.setting.Port_BAT; - if (PUB.BMS.Open()) - PUB.log.AddI($"BMS 연결 완료({PUB.setting.Port_BAT})"); - - VAR.TIME.Update(eVarTime.LastConn_BAT); - VAR.TIME.Update(eVarTime.LastConnTry_BAT); - } - } - else if (PUB.BMS.IsValid == false) - { - var ts = VAR.TIME.RUN(eVarTime.LastConnTry_BAT); - if (ts.TotalSeconds > (Math.Max(10, PUB.setting.interval_bms) * 2.5)) - { - this.BeginInvoke(new Action(() => - { - PUB.log.Add("BMS 자동 연결 해제 (응답 없음)"); - PUB.BMS.Close(); - })); - VAR.TIME.Set(eVarTime.LastConn_BAT, DateTime.Now.AddSeconds(5)); - } - } - } - - // ========== 2. XBee 상태 전송 ========== - if (PUB.XBE != null && PUB.XBE.IsOpen) - { - var tsXbe = DateTime.Now - lastXbeStatusSendTime; - if (tsXbe.TotalSeconds >= PUB.setting.interval_xbe) - { - lastXbeStatusSendTime = DateTime.Now; - ThreadPool.QueueUserWorkItem(_ => - { - try - { - PUB.XBE.SendStatus(); - } - catch (Exception ex) - { - PUB.log.AddE($"XBee SendStatus 오류: {ex.Message}"); - } - }); - } - } - - // ========== 3. BMS 쿼리 및 배터리 경고 ========== - if (PUB.BMS != null && PUB.BMS.IsOpen) - { - var tsBms = DateTime.Now - lastBmsQueryTime; - if (tsBms.TotalSeconds >= PUB.setting.interval_bms) - { - lastBmsQueryTime = DateTime.Now; - ThreadPool.QueueUserWorkItem(_ => - { - try - { - PUB.BMS.SendQuery(); - } - catch (Exception ex) - { - PUB.log.AddE($"BMS SendQuery 오류: {ex.Message}"); - } - }); - } - - // 배터리 경고음 - try - { - Update_BatteryWarnSpeak(); - } - catch (Exception ex) - { - PUB.log.AddE($"BatteryWarnSpeak 오류: {ex.Message}"); - } - - } - } - catch (Exception ex) - { - PUB.log.AddE($"sm_SPS Exception: {ex.Message}"); - } - } - - /// - /// 시리얼 포트 연결 (arDev.arRS232) - /// - bool ConnectSerialPort(arDev.ISerialComm dev, string port, int baud, eVarTime conn, eVarTime conntry, eVarTime? recvtime) - { - if (port.isEmpty()) return false; - - if (dev.IsOpen == false && port.isEmpty() == false) - { - var tsPLC = VAR.TIME.RUN(conntry); - if (tsPLC.TotalSeconds > 5) - { - VAR.TIME.Update(conntry); - try - { - if (recvtime != null) VAR.TIME.Update(recvtime); - dev.PortName = port; - dev.BaudRate = baud; - PUB.log.Add($"Connect to {port}:{baud}"); - if (dev.Open()) - { - if (recvtime != null) VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다 - PUB.log.Add(port, $"[{port}:{baud}] 연결 완료"); - } - else - { - //존재하지 않는 포트라면 sync를 벗어난다 - var ports = System.IO.Ports.SerialPort.GetPortNames().Select(t => t.ToLower()).ToList(); - if (ports.Contains(PUB.setting.Port_AGV.ToLower()) == false) - { - return false; - } - else - { - var errmessage = dev.ErrorMessage; - PUB.log.AddE($"[AGV:{port}:{baud}] {errmessage}"); - } - } - VAR.TIME.Update(conn); - VAR.TIME.Update(conntry); - } - catch (Exception ex) - { - PUB.log.AddE(ex.Message); - } - } - } - else if (dev.PortName.Equals(port) == false) - { - this.BeginInvoke(new Action(() => - { - PUB.log.Add(port, $"포트 변경({dev.PortName}->{port})으로 연결 종료"); - VAR.TIME.Set(conntry, DateTime.Now); - dev.Close(); - })); - - VAR.TIME.Update(conntry); - } - else if (dev.IsOpen && recvtime != null) - { - //연결은 되었으나 통신이 지난지 10초가 지났다면 자동종료한다 - var tsRecv = VAR.TIME.RUN(recvtime); - var tsConn = VAR.TIME.RUN(conntry); - if (tsRecv.TotalSeconds > 30 && tsConn.TotalSeconds > 5) - { - this.BeginInvoke(new Action(() => - { - PUB.log.Add($"{port} 자동 연결 해제 (응답 없음)"); - dev.Close(); - })); - VAR.TIME.Set(conntry, DateTime.Now); - } - } - return true; - } - - - - } -} +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading; +using System.Windows.Media.Animation; +using AR; +using arCtl; +using COMM; +using Project.StateMachine; + +namespace Project +{ + /// + /// SPS (Scan Per Second) 이벤트 핸들러 + /// - 장치 연결 및 상태 전송 기능은 _DeviceManagement.cs로 분리됨 + /// + public partial class fMain + { + DateTime chargesynctime = DateTime.Now; + DateTime agvsendstarttime = DateTime.Now; + DateTime lastXbeStatusSendTime = DateTime.Now; + DateTime lastBmsQueryTime = DateTime.Now; + object connectobj = new object(); + + void sm_SPS(object sender, EventArgs e) + { + if (PUB.sm == null || PUB.sm.Step < eSMStep.IDLE || PUB.sm.Step >= eSMStep.CLOSING || PUB.bShutdown == true) return; + + // SPS는 이제 간단한 작업만 수행 + // 장치 연결 및 상태 전송은 별도 태스크(_DeviceManagement.cs)에서 처리 + // 장치 연결이 별도로 존재할때 1회 수신 후 통신이 전체 먹통되는 증상이 있어 우선 복귀 251215 + try + { + + // ========== 1. 장치 연결 관리 ========== + // AGV 연결 + lock (connectobj) + { + ConnectSerialPort(PUB.AGV, PUB.setting.Port_AGV, PUB.setting.Baud_AGV, + eVarTime.LastConn_AGV, eVarTime.LastConnTry_AGV, eVarTime.LastRecv_AGV); + } + + + // XBee 연결 + lock (connectobj) + { + if (VAR.BOOL[eVarBool.DISABLE_AUTOCONN_XBEE] == false) + { + ConnectSerialPort(PUB.XBE, PUB.setting.Port_XBE, PUB.setting.Baud_XBE, + eVarTime.LastConn_XBE, eVarTime.LastConnTry_XBE, null); + } + } + + + // BMS 연결 + lock (connectobj) + { + if (PUB.BMS.IsOpen == false) + { + var ts = VAR.TIME.RUN(eVarTime.LastConn_BAT); + if (ts.TotalSeconds > 3) + { + PUB.log.Add($"BMS 연결 시도: {PUB.setting.Port_BAT}"); + PUB.BMS.PortName = PUB.setting.Port_BAT; + if (PUB.BMS.Open()) + PUB.log.AddI($"BMS 연결 완료({PUB.setting.Port_BAT})"); + + VAR.TIME.Update(eVarTime.LastConn_BAT); + VAR.TIME.Update(eVarTime.LastConnTry_BAT); + } + } + else if (PUB.BMS.IsValid == false) + { + var ts = VAR.TIME.RUN(eVarTime.LastConnTry_BAT); + if (ts.TotalSeconds > (Math.Max(10, PUB.setting.interval_bms) * 2.5)) + { + this.BeginInvoke(new Action(() => + { + PUB.log.Add("BMS 자동 연결 해제 (응답 없음)"); + PUB.BMS.Close(); + })); + VAR.TIME.Set(eVarTime.LastConn_BAT, DateTime.Now.AddSeconds(5)); + } + } + } + + // ========== 2. XBee 상태 전송 ========== + if (PUB.XBE != null && PUB.XBE.IsOpen) + { + var tsXbe = DateTime.Now - lastXbeStatusSendTime; + if (tsXbe.TotalSeconds >= PUB.setting.interval_xbe) + { + lastXbeStatusSendTime = DateTime.Now; + ThreadPool.QueueUserWorkItem(_ => + { + try + { + PUB.XBE.SendStatus(); + } + catch (Exception ex) + { + PUB.log.AddE($"XBee SendStatus 오류: {ex.Message}"); + } + }); + } + } + + // ========== 3. BMS 쿼리 및 배터리 경고 ========== + if (PUB.BMS != null && PUB.BMS.IsOpen) + { + var tsBms = DateTime.Now - lastBmsQueryTime; + if (tsBms.TotalSeconds >= PUB.setting.interval_bms) + { + lastBmsQueryTime = DateTime.Now; + ThreadPool.QueueUserWorkItem(_ => + { + try + { + PUB.BMS.SendQuery(); + } + catch (Exception ex) + { + PUB.log.AddE($"BMS SendQuery 오류: {ex.Message}"); + } + }); + } + + // 배터리 경고음 + try + { + Update_BatteryWarnSpeak(); + } + catch (Exception ex) + { + PUB.log.AddE($"BatteryWarnSpeak 오류: {ex.Message}"); + } + + } + } + catch (Exception ex) + { + PUB.log.AddE($"sm_SPS Exception: {ex.Message}"); + } + } + + /// + /// 시리얼 포트 연결 (arDev.arRS232) + /// + bool ConnectSerialPort(arDev.ISerialComm dev, string port, int baud, eVarTime conn, eVarTime conntry, eVarTime? recvtime) + { + if (port.isEmpty()) return false; + + if (dev.IsOpen == false && port.isEmpty() == false) + { + var tsPLC = VAR.TIME.RUN(conntry); + if (tsPLC.TotalSeconds > 5) + { + VAR.TIME.Update(conntry); + try + { + if (recvtime != null) VAR.TIME.Update(recvtime); + dev.PortName = port; + dev.BaudRate = baud; + PUB.log.Add($"Connect to {port}:{baud}"); + if (dev.Open()) + { + if (recvtime != null) VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다 + PUB.log.Add(port, $"[{port}:{baud}] 연결 완료"); + } + else + { + //존재하지 않는 포트라면 sync를 벗어난다 + var ports = System.IO.Ports.SerialPort.GetPortNames().Select(t => t.ToLower()).ToList(); + if (ports.Contains(PUB.setting.Port_AGV.ToLower()) == false) + { + return false; + } + else + { + var errmessage = dev.ErrorMessage; + PUB.log.AddE($"[AGV:{port}:{baud}] {errmessage}"); + } + } + VAR.TIME.Update(conn); + VAR.TIME.Update(conntry); + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + } + } + else if (dev.PortName.Equals(port) == false) + { + this.BeginInvoke(new Action(() => + { + PUB.log.Add(port, $"포트 변경({dev.PortName}->{port})으로 연결 종료"); + VAR.TIME.Set(conntry, DateTime.Now); + dev.Close(); + })); + + VAR.TIME.Update(conntry); + } + else if (dev.IsOpen && recvtime != null) + { + //연결은 되었으나 통신이 지난지 10초가 지났다면 자동종료한다 + var tsRecv = VAR.TIME.RUN(recvtime); + var tsConn = VAR.TIME.RUN(conntry); + if (tsRecv.TotalSeconds > 30 && tsConn.TotalSeconds > 5) + { + this.BeginInvoke(new Action(() => + { + PUB.log.Add($"{port} 자동 연결 해제 (응답 없음)"); + dev.Close(); + })); + VAR.TIME.Set(conntry, DateTime.Now); + } + } + return true; + } + + + + } +} diff --git a/Cs_HMI/Project/StateMachine/_TMDisplay.cs b/HMI/Project/StateMachine/_TMDisplay.cs similarity index 97% rename from Cs_HMI/Project/StateMachine/_TMDisplay.cs rename to HMI/Project/StateMachine/_TMDisplay.cs index fcbfd97..8abae22 100644 --- a/Cs_HMI/Project/StateMachine/_TMDisplay.cs +++ b/HMI/Project/StateMachine/_TMDisplay.cs @@ -1,836 +1,836 @@ -using AR; -using COMM; -using System; -using System.Drawing; -using Project.StateMachine; - -namespace Project -{ - public partial class fMain - { - - - - void BlinkGridViewItem(arFrame.Control.GridView ctl, int row, int col, int value1, int value2) - { - var curValue = ctl.getValue(row, col); - ctl.setValue(row, col, (byte)(curValue == value1 ? value2 : value1)); // - } - - void BlinkLabel(arCtl.arLabel ctl, bool Statue - , Color onColor1, Color onColor2, Color ofColor1, Color ofColor2, - String onText = "", String OffText = "") - { - if (Statue == false) - { - ctl.BackColor2 = ofColor2; - ctl.BackColor = ofColor1; - if (OffText != "" && ctl.Text != OffText) ctl.Text = OffText; - } - else - { - if (onText != "" && ctl.Text != onText) ctl.Text = onText; - //깜박인다 - if (ctl.BackColor2 == Color.DimGray) - { - ctl.BackColor = onColor1; - ctl.BackColor2 = onColor2; - } - else - { - ctl.BackColor2 = Color.DimGray; - ctl.BackColor = Color.FromArgb(100, 100, 100); - } - } - - } - - Boolean displayOn = false; - private void tmDisplay_Tick(object sender, EventArgs e) - { - if (displayOn == false) displayOn = true; - else - { - PUB.log.AddAT("Display Timer Overlab");// Console.WriteLine("display overlab"); - return; - } - - if (PUB.sm.Step > eSMStep.INIT && - panTopMenu.Enabled == false) panTopMenu.Enabled = true; - - //배터리정보표시 - var bmsinfo = PUB.BMS.BMSInformation; - lbBat.VLevel = bmsinfo.rsoc; - lbBat.Volt = bmsinfo.packVoltage; - lbBat.MaxA = bmsinfo.fullCapacity; - lbBat.CurA = bmsinfo.remainingCapacity; - lbBat.IsOpen = PUB.BMS.IsOpen; - - //쓰레드로인해서 메인에서 진행하게한다. SPS는 메인쓰레드에서 진행 됨 - //팝을 제거 혹은 표시하는 기능 - if (PUB.popup.needShow) PUB.popup.showMessage(); - else if (PUB.popup.needClose) PUB.popup.Visible = false; // .setVision(false)(); - - //자동 리부트 코드 실행 (230710) - var chargeon = VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]; - if (PUB.sm.Step == eSMStep.RUN & PUB.sm.RunStep == ERunStep.READY && chargeon == false && - PUB.setting.AutoRebootTimeStart.isEmpty() == false && startuptime.Year != 1982 && - PUB.Automodeonreboot == false && PUB.setting.SetAutoModeOn == false && PUB.AutRebootAlreay == false) - { - var strbuf = PUB.setting.AutoRebootTimeStart.Split('~'); - if (strbuf.Length == 2) - { - strbuf[0] = strbuf[0].Trim(); - strbuf[1] = strbuf[1].Trim(); - - var btimes = DateTime.TryParse(DateTime.Now.ToString("yyyy-MM-dd ") + strbuf[0], out DateTime TimeS); - var btimee = DateTime.TryParse(DateTime.Now.ToString("yyyy-MM-dd ") + strbuf[1], out DateTime TimeE); - - //이미 재부팅을 했는지 확인한다 - if (PUB.setting.AutoRebootTimeStart.isEmpty() == false) - { - if (DateTime.TryParse(PUB.setting.AutoRebootTimeStart, out DateTime RebootLast)) - { - //지정된 시간내에서 재부팅이 되었다 - if (RebootLast >= TimeS.AddMinutes(-1) && RebootLast <= TimeE.AddMinutes(1)) - { - //재부팅이 완료됨 - PUB.log.Add($"이미 재부팅을 진행 했습니다"); - PUB.AutRebootAlreay = true; - } - } - } - - if (PUB.AutRebootAlreay == false && btimes && btimee && TimeS <= TimeE && DateTime.Now >= TimeS && DateTime.Now <= TimeE) //둘다시간조건에 맞아야한다 - { - //기록을 남긴다.(확인용) - EEMStatus.AddStatusSQL(eSMStep.IDLE, $"자동재부팅실행({strbuf[0]}~{strbuf[1]})", DateTime.Now, true); - - //자동모드도 해제 해준다(다른 일이 발생하지 않도록) - VAR.BOOL[eVarBool.FLAG_AUTORUN] = false; - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); - PUB.AGV.AGVMoveStop("autoreboot"); - PUB.sm.SetNewStep(eSMStep.IDLE); - - if (System.Diagnostics.Debugger.IsAttached == false) - { - PUB.Speak(Lang.자동재부팅을실행합니다); - PUB.SystemReboot(5, true); - } - else PUB.setting.SetAutoModeOn = true; - - } - } - } - - //자동실행-230710 - 프로그램이 켜진 후 5분안에만 동작한다 - if (startuptime.Year != 1982 && PUB.setting.SetAutoModeOn && PUB.sm.Step == eSMStep.IDLE && PUB.Automodeonreboot == false) - { - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) //이미 자동상태라면 - { - //이미 켜져있으니 처리하지 않는다 - PUB.setting.SetAutoModeOn = false; - PUB.setting.Save(); - } - else - { - var tsStartup = DateTime.Now - startuptime; - if (tsStartup.TotalMinutes < 3) - { - if (tsStartup.TotalSeconds > 10) //5초이전에는동작하지 말자 - { - PUB.log.Add($"자동 오토런 실행"); - func_sw_start(false); - PUB.setting.SetAutoModeOn = false; - PUB.setting.Save(); - } - } - else - { - //5분을 넘어선 데이터는 쓸모없다 폐기 - PUB.setting.SetAutoModeOn = false; - PUB.setting.Save(); - } - } - - } - - - - lbTime.Text = PUB.sm.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"); - - //자동충전중이다(프로그램에 의해 충전이 진행된 상태) - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true || VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true) - { - lbStStep.Text = VAR.BOOL[eVarBool.FLAG_CHARGEONA] ? "자동충전" : "수동충전"; - lbIDLE.ProgressForeColor = Color.Tomato; - if (lbIDLE.ProgressEnable == false) - lbIDLE.ProgressEnable = true; - - //lbIDLE.ForeColor = Color.Gold; - lbIDLE.ProgressForeColor = Color.Gold; - - if (PUB.sm.Step != eSMStep.RUN) - { - var tsIdle = VAR.TIME.RUN(eVarTime.ChargeStart); - lbIDLE.ProgressMax = 100;// PUB.setting.ChargeMaxLevel; - lbIDLE.ProgressMin = 0; - lbIDLE.Text = $"{PUB.BMS.BMSInformation.rsoc}%"; - lbIDLE.ProgressValue = (float)PUB.BMS.BMSInformation.rsoc; - } - else - { - //if (PUB.setting.ChargeMaxTime < 1) - //{/ - var tsIdle = VAR.TIME.RUN(eVarTime.ChargeStart); - lbIDLE.ProgressMax = PUB.setting.ChargeMaxLevel; - lbIDLE.ProgressMin = 0; - lbIDLE.Text = $"({PUB.BMS.BMSInformation.rsoc}/{PUB.setting.ChargeMaxLevel})%"; - lbIDLE.ProgressValue = (float)PUB.BMS.BMSInformation.rsoc; - //} - //else - //{ - // var tsIdle = VAR.TIME.RUN(eVarTime.ChargeStart); - // lbIDLE.ProgressMax = PUB.setting.ChargeMaxTime; - // lbIDLE.ProgressMin = 0; - // lbIDLE.Text = string.Format("{0:N0}/{1} 초 충전 중", tsIdle.TotalSeconds, PUB.setting.ChargeMaxTime); - // lbIDLE.ProgressValue = (float)tsIdle.TotalSeconds; - //} - - } - - - } - else - { - TimeSpan timerun; - if (PUB.sm.Step == eSMStep.RUN) - { - if (PUB.sm.RunStep == ERunStep.READY) - { - //대기시간 - lbStStep.Text = "대기중"; - timerun = VAR.TIME.RUN(eVarTime.ReadyStart); - } - else - { - //가동시간 - lbStStep.Text = "가동중"; - timerun = VAR.TIME.RUN(eVarTime.RunStart); - } - } - else - { - lbStStep.Text = "장비멈춤"; - timerun = VAR.TIME.RUN(eVarTime.IdleStart); - } - lbIDLE.Text = string.Format("{0}일 {1}시 {2}분 {3}초", timerun.Days, timerun.Hours, timerun.Minutes, timerun.Seconds); - if (lbIDLE.ProgressEnable == true) - lbIDLE.ProgressEnable = false; - } - - //hw접속상태 표시 - MenuAGV.BackColor = PUB.AGV.IsValid ? Color.FromArgb(40, 40, 40) : Color.Brown; - MenuBMS.BackColor = PUB.BMS.IsValid ? Color.FromArgb(40, 40, 40) : Color.Brown; - MenuMAN.BackColor = PUB.AGV.IsValid ? Color.FromArgb(40, 40, 40) : Color.Brown; - - - btChargeA.Enabled = !VAR.BOOL[eVarBool.FLAG_CHARGEONM]; - btHome.Enabled = btChargeA.Enabled; - btAutoRun.Enabled = btChargeA.Enabled; - - var bCharge = - (PUB.sm.RunStep == ERunStep.GOCHARGE || PUB.sm.RunStep == ERunStep.CHARGECHECK || VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true); - - //가동, 목적지가 충전기라면 홈 이동이다 - var bHome = PUB.sm.Step == eSMStep.RUN && (PUB.sm.RunStep == ERunStep.GOHOME); - //var bChargeM = PUB.flag.get(EFlag.FLAG_CHARGEONM); - var bAuto = VAR.BOOL[eVarBool.FLAG_AUTORUN]; - //if(batu) - - var bChargeM = VAR.BOOL[eVarBool.FLAG_CHARGEONM]; - if (btHome.Enabled == false) - { - btHome.BackColor2 = Color.Gray; - btHome.BackColor = Color.DimGray; - } - else BlinkLabel(this.btHome, bHome, Color.Aqua, Color.Teal, Color.Aqua, Color.Teal, "홈\n취소", "홈\n이동"); - if (btChargeA.Enabled == false) - { - btChargeA.BackColor2 = Color.Gray; - btChargeA.BackColor = Color.DimGray; - } - else - { - //충전가능요건이라면 해당 시간을 표시해준다. - BlinkLabel(this.btChargeA, bCharge, Color.LightSalmon, Color.Tomato, Color.LightSalmon, Color.Tomato, "자동충전취소", "자동충전\n실행(" + PUB.counter.CountChargeA.ToString() + ")"); - } - BlinkLabel(this.btChargeM, bChargeM, Color.LightSalmon, Color.Tomato, Color.LightSalmon, Color.Tomato, "수동충전취소", "수동충전\n실행(" + PUB.counter.CountChargeM.ToString() + ")"); - //BlinkLabel(this.btChargeM, bChargeM, Color.LightSalmon, Color.Tomato, "수동충전취소", "수동충전\n실행(" + Pub.counter.CountChargeM.ToString() + ")"); - if (btAutoRun.Enabled == false) - { - btAutoRun.BackColor2 = Color.Gray; - btAutoRun.BackColor = Color.DimGray; - } - else BlinkLabel(this.btAutoRun, bAuto == false, Color.DarkMagenta, Color.BlueViolet, Color.Lime, Color.Green, "수동\n조작중", "자동\n실행중"); - - //상태 표시 - Update_SSStatus(); - - //IO상태(상단줄) 표시 - Update_IOStatus(); - - //display mesasge - Update_StatusMessage(); - - //음악 on/off 처리 - Update_Music(); - - //HWState.Invalidate(); - SSInfo.Invalidate(); - IOState.Invalidate(); - - #region retgion"1분 time 루틴" - var ts = DateTime.Now - tm1minute; - if (ts.TotalMinutes >= 1) - { - //리셋카운트 - _AutoResetCount(); - - //상태를 DB에 저장한다. 230314 - var tsrun = VAR.TIME.RUN(eVarTime.StatusReporttime); - if (tsrun.TotalSeconds >= PUB.setting.StatusInterval) EEMStatus.UpdateStatusSQL(PUB.sm.Step, _extrun: true); - - tm1minute = DateTime.Now; - } - #endregion - - #region retgion"5분 time 루틴" - ts = DateTime.Now - tm5minute; - if (ts.TotalMinutes >= 5) - { - //남은디스크확인 - CheckFreeSpace(); - tm5minute = DateTime.Now; - } - #endregion - - //wat.Stop(); - //Console.WriteLine("disp time : " + wat.ElapsedMilliseconds.ToString() + "ms"); - displayOn = false; - } - - void Update_Count() - { - if (this.InvokeRequired) - { - this.BeginInvoke(new System.Windows.Forms.MethodInvoker(Update_Count), null); - } - else - { - lbCntDN.Text = PUB.counter.CountDn.ToString(); - lbCNtUP.Text = PUB.counter.CountUp.ToString(); - lbCntQA.Text = PUB.counter.CountQA.ToString(); - lbCntQC.Text = PUB.counter.CountQC.ToString(); - // lbCntPk.Text = PUB.counter.CountQa2.ToString(); - } - - } - void Update_IOStatus() - { - int inputrow = 0; - int inputcol = 0; - - ////비상정지는 깜박임으로 알려준다 - if (VAR.BOOL[eVarBool.EMERGENCY]) BlinkGridViewItem(IOState, inputrow, inputcol++, 2, 0); - else IOState.setValue(inputrow, inputcol++, 0); - - IOState.setTitle(inputrow, inputcol, "DIR:" + PUB.AGV.data.Direction.ToString()); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, "MOV:" + PUB.AGV.data.Sts.ToString()); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, "SPD:" + PUB.AGV.data.Speed.ToString()); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, $"PBS:{PUB.AGV.data.guidesensor}"); IOState.setValue(inputrow, inputcol++, 0); - - if (PUB.AGV.data.TagNo < 0) - { - IOState.setTitle(inputrow, inputcol, "(TAG)"); IOState.setValue(inputrow, inputcol++, 0); - } - else - { - IOState.setTitle(inputrow, inputcol, "T" + PUB.AGV.data.TagNo.ToString()); IOState.setValue(inputrow, inputcol++, 0); - } - if (PUB.AGV.data.CallNo < 0) - { - IOState.setTitle(inputrow, inputcol, "(CAL)"); - IOState.setValue(inputrow, inputcol++, 0); - } - else - { - IOState.setTitle(inputrow, inputcol, "CAL:" + PUB.AGV.data.CallNo.ToString()); - IOState.setValue(inputrow, inputcol++, 0); - } - - IOState.setTitle(inputrow, inputcol, "RUN"); IOState.setValue(inputrow, inputcol++, (PUB.AGV.system1.agv_run ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "MARK"); IOState.setValue(inputrow, inputcol++, (VAR.BOOL[eVarBool.MARK_SENSOR] ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "CHG"); IOState.setValue(inputrow, inputcol++, (PUB.AGV.system1.Battery_charging ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "ITM"); IOState.setValue(inputrow, inputcol++, (VAR.BOOL[eVarBool.ITEMON] ? 1 : 0)); - IOState.Invalidate(); - } - - /// - /// 가동중 40% 미만에서는 배터리 경고 메세지를 추가한다(리더) - /// - void Update_BatteryWarnSpeak() - { - if (PUB.BMS == null || PUB.BMS.BMSInformation.rsoc > 40) return; - - //가동중이거나 수동모드에서는 메세지 알림한다 - if (PUB.AGV.system1.agv_run || VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) - { - var timeoutsec = 15; - if (PUB.BMS.IsValid == false) timeoutsec = 30; - - var tswarnmsg = VAR.TIME.RUN(eVarTime.BatWarnTime); - if (tswarnmsg.TotalSeconds >= timeoutsec) - { - if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false && VAR.BOOL[eVarBool.FLAG_CHARGEONA] == false) - { - if (PUB.BMS.IsValid == false) - { - PUB.Speak(Lang.배터리통신에문제가있습니다); - } - else - { - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) - PUB.Speak(Lang.충전이필요합니다자동모드로전환하세요); - else - PUB.Speak(Lang.충전이필요합니다); - } - } - else - { - //충전중이므로 메세지처리를 하지 않는다 - } - - - VAR.TIME.Update(eVarTime.BatWarnTime); - } - } - } - - /// - /// 가동중일때 음악이 나오게 한다 - /// - void Update_Music() - { - if (PUB.mplayer == null) return; - if (PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation) && PUB.bPlayMusic) - { - if (PUB.AGV.system1.agv_run == false) - { - if (PUB.bPlayMusic) - { - PUB.mplayer.Stop(); - PUB.bPlayMusic = false; - } - - } - } - else if (PUB.setting.Enable_Music && PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation)) - { - if (PUB.AGV.system1.agv_run == true) - { - if (PUB.bPlayMusic == false) - { - PUB.mplayer.Play(); - PUB.bPlayMusic = true; - } - } - } - } - - void Update_SSStatus() - { - if (PUB.sm.IsThreadRun) SSInfo.setValue(0, 0, 0); - else SSInfo.setValue(0, 0, 2); - - var runspeed = PUB.sm.RunSpeed.TotalMilliseconds; - SSInfo.setTitle(0, 0, $"{PUB.sm.Step}\n{runspeed:N1} ms"); - - if (runspeed > 9) - SSInfo.setValue(0, 0, 2); - else if (runspeed > 4) - SSInfo.setValue(0, 0, 3); - else - SSInfo.setValue(0, 0, 0); - - - SSInfo.setTitle(1, 0, string.Format("{0}({1})", PUB.sm.RunStep, PUB.sm.RunStepSeq)); - if (PUB.sm.Step == eSMStep.RUN) - SSInfo.setTitle(1, 1, string.Format("{0:N1} sec", PUB.sm.GetRunSteptime.TotalSeconds)); - else - SSInfo.setTitle(1, 1, "--"); - - } - - /// - /// 환경설정에따른 카운트를 리셋처리한다. 171128 - /// - void _AutoResetCount() - { - if (PUB.setting.datetime_Check_1 && PUB.setting.datetime_Reset_1 != "") //오전 - { - try - { - DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + PUB.setting.datetime_Reset_1 + ":00"); - DateTime LastClearTime = PUB.counter.CountReset; - - //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 - if (DateTime.Now > SetTime && LastClearTime < SetTime) - { - PUB.log.AddI("Count Reset #1"); - PUB.counter.CountClear(); - } - } - catch { } - } - - if (PUB.setting.datetime_Check_2 && PUB.setting.datetime_Reset_2 != "") //오후 - { - try - { - DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + PUB.setting.datetime_Reset_2 + ":00"); - DateTime LastClearTime = PUB.counter.CountReset; - - //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 - if (DateTime.Now > SetTime && LastClearTime < SetTime) - { - PUB.log.AddI("Count Reset #2"); - PUB.counter.CountClear(); - } - } - catch { } - } - } - - DateTime tm1minute = DateTime.Now.AddDays(-1); - DateTime tm5minute = DateTime.Now; - - void UpdateProgressStatus(double value, double max, string title) - { - UpdateProgressStatus((float)value, (float)max, title); - } - - void UpdateProgressStatus(float value, float max, string title = "") - { - if (PUB.Result.SMSG_ProgressEnable == false) PUB.Result.SMSG_ProgressEnable = true; - if (PUB.Result.SMSG_ProgressMax != max) PUB.Result.SMSG_ProgressMax = max; - if (PUB.Result.SMSG_ProgressValue != value) - { - if (value < max) PUB.Result.SMSG_ProgressValue = value; - else PUB.Result.SMSG_ProgressValue = max; - } - if (PUB.Result.SMSG_ProgressForeColor != Color.White) - PUB.Result.SMSG_ProgressForeColor = Color.White; - - if (title != "") - if (VAR.STR[eVarString.StatusMessage].Equals(title) == false) VAR.STR[eVarString.StatusMessage] = title; - } - - void UpdateStatusMessage(string dispmsg, Color fcolor, Color shadow) - { - UpdateStatusMessage(dispmsg, Color.DimGray, Color.Gray, fcolor, shadow); - } - - void UpdateStatusMessage(string dispmsg, Color bColor, Color bColor2, Color fcolor, Color shadow, Boolean blank = false) - { - - //if (lbMsg.ProgressEnable == true) lbMsg.ProgressEnable = false; - if (dispmsg != VAR.STR[eVarString.StatusMessage] || PUB.Result.SMSG_ForeColor != fcolor || - PUB.Result.SMSG_ShadowColor != shadow - || (PUB.Result.SMSG_BackColor != bColor && PUB.Result.SMSG_BackColor2 != bColor)) - { - PUB.Result.SMSG_BackColor = bColor; - PUB.Result.SMSG_BackColor2 = bColor2; - PUB.Result.SMSG_ForeColor = fcolor; - PUB.Result.SMSG_ShadowColor = shadow; - VAR.STR[eVarString.StatusMessage] = dispmsg; - if (blank) PUB.Result.SMSG_Tag = "BLANK"; - else PUB.Result.SMSG_Tag = null; - //PUB.Result.UpdateStatusMessage(); - } - } - - - void Update_StatusMessage() - { - //최우선 점검 사항 표시 - if (PUB.sm.Step > eSMStep.INIT) - { - //오류가 있다면 오류를 표시해준다. - if (PUB.AGV.IsOpen == false ) - { - UpdateStatusMessage("AGV 연결실패", Color.Tomato, Color.Black); - } - else if(PUB.AGV.IsValid==false) - { - UpdateStatusMessage("AGV 통신상태 불량", Color.Tomato, Color.Black); - } - else if (PUB.AGV.error.Emergency) - { - if (PUB.AGV.error.runerror_by_no_magent_line) - { - UpdateStatusMessage("마그넷이 감지 되지 않습니다", Color.Tomato, Color.Black); - } - else - { - UpdateStatusMessage("비상 정지", Color.Tomato, Color.Black); - } - } - else if (PUB.BMS != null || PUB.BMS.IsOpen==false) - { - UpdateStatusMessage("BMS가 연결되지 않았습니다", Color.Tomato, Color.Black); - } - else if (PUB.BMS != null || PUB.BMS.IsValid == false) - { - UpdateStatusMessage("BMS 통신상태 불량", Color.Tomato, Color.Black); - } - //else if (PUB.PLC.IsOpen == false) - //{ - // UpdateStatusMessage(Lang.PLC연결실패, Color.Tomato, Color.Black); - //} - //else if (PUB.PLC.IsValid == false) - //{ - // UpdateStatusMessage(Lang.PLC통신실패, Color.Tomato, Color.Black); - //} - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true) - { - //남은 충전시간 계산 - string msg = string.Empty; - if (PUB.BMS.BMSInformation.rsoc < PUB.setting.ChargeEmergencyLevel) - { - msg = $"충전 진행 중(이동 불가)\n저전압으로 인해 사용이 불가 합니다"; - } - else - { - var remaintime = VAR.TIME.RUN(eVarTime.ChargeStart); - var remainsec = PUB.setting.ChargeMaxTime - remaintime.TotalSeconds; - msg = "충전 진행 중 (이동 불가) " + remainsec.ToString("N0") + "초 후 충전이 자동 OFF 됩니다"; - } - UpdateStatusMessage(msg, Color.Orange, Color.Black); - } - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true)// PUB.flag.get(EFlag.FLAG_CHARGEONM) == true) - { - UpdateStatusMessage("충전(수동) 진행 중 (이동 불가)", Color.Orange, Color.Black); - } - else if (PUB.AGV.IsOpen == false) - { - UpdateStatusMessage(Lang.AGV연결실패, Color.Tomato, Color.Black); - } - else - { - if (PUB.sm.Step == eSMStep.IDLE) - { - if (PUB.AGV.system1.agv_run) - { - if (PUB.AGV.system1.stop_by_front_detect) - UpdateStatusMessage("장애물로 인한 일시 정지", Color.SkyBlue, Color.Black); - else - UpdateStatusMessage("AGV 이동 중", Color.SkyBlue, Color.Black); - } - else if (PUB.AGV.error.Emergency) - { - if (PUB.AGV.error.runerror_by_no_magent_line) - { - UpdateStatusMessage("비상 정지 : 마그넷 라인이 감지 안됨", Color.SkyBlue, Color.Black); - } - else - { - UpdateStatusMessage("비상 정지", Color.SkyBlue, Color.Black); - } - } - else - { - var smg = "(작업을 시작 하려면 [AUTO]로 전환 하세요)"; - UpdateStatusMessage(smg, Color.SkyBlue, Color.Black); - } - } - else if (PUB.sm.Step == eSMStep.RUN) - { - - string stMsg; - if (PUB.AGV.system1.stop_by_front_detect)//.GetValueI(arDev.FakePLC.DIName.PINI_LIDAR_STOP)) - stMsg = Lang.전방에물체가감지되었습니다; - //else if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_EMG)) - // stMsg = Lang.비상정지신호가감지되었습니다; - else if (PUB.AGV.signal1.front_gate_out == true) - stMsg = Lang.선로를이탈했습니다; - else if (PUB.AGV.error.runerror_by_no_magent_line) - stMsg = "마그네틱 라인을 벗어났습니다"; - else - { - stMsg = "자동 대기"; - if (PUB.setting.Enable_AutoCharge) - { - var tsIdle = VAR.TIME.RUN(eVarTime.ReadyStart); - var remainTry = (int)(PUB.setting.ChargeRetryTerm - tsIdle.TotalSeconds); - var progMax = PUB.setting.ChargeRetryTerm; - stMsg += " / (" + remainTry.ToString() + ") 초 후 충전을 시작 합니다"; - UpdateProgressStatus(tsIdle.TotalSeconds, progMax, ""); - } - else - { - stMsg += "(자동충전 해제됨)"; - } - } - - UpdateStatusMessage(stMsg, Color.SkyBlue, Color.Black); - //자동 충전 대기상태를 프로그레시브로 표시한다 - - - if (PUB.AGV.system1.stop_by_front_detect == true) - { - UpdateStatusMessage("이동 방향 근접거리 물체 감지(이동 불가 - 일시정지)", Color.Tomato, Color.Black); - } - else if (VAR.BOOL[eVarBool.OVERLOAD] == true) - { - UpdateStatusMessage("오버로드 감지(안전커버를 확인하세요)", Color.Tomato, Color.Black); - } - else if (PUB.AGV.error.runerror_by_no_magent_line) - { - UpdateStatusMessage("마그네틱 라인을 벗어 났습니다", Color.Black, Color.White); - } - else - { - if (VAR.BOOL[eVarBool.WAIT_COVER_DOWN] == true) - { - UpdateStatusMessage(Lang.안전커버를내려주세요, Color.Lime, Color.Black); - } - else if (VAR.BOOL[eVarBool.WAIT_COVER_UP] == true) - { - UpdateStatusMessage(Lang.안전커버를올려주세요, Color.Lime, Color.Black); - } - else - { - if (PUB.sm.RunStep == ERunStep.BUFFER_IN) - { - if (PUB.sm.RunStepSeq == 1) - { - UpdateStatusMessage(String.Format("하차 이동 전 (현재 위치 검색)", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else UpdateStatusMessage(String.Format("하차 이동 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.BUFFER_OUT) - { - if (PUB.sm.RunStepSeq == 1) - { - UpdateStatusMessage(String.Format("상차 이동 전 (현재 위치 검색)", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else UpdateStatusMessage(String.Format("상차 이동 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.LOADER_IN) - { - UpdateStatusMessage(String.Format("로더 진입 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.LOADER_OUT) - { - UpdateStatusMessage(String.Format("로더 배출 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.UNLOADER_IN) - { - UpdateStatusMessage(String.Format("언로더 진입 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.UNLOADER_OUT) - { - UpdateStatusMessage(String.Format("언로더 배출 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.CLEANER_IN) - { - UpdateStatusMessage(String.Format("클리너 진입 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.CLEANER_OUT) - { - UpdateStatusMessage(String.Format("클리너 배출 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else if (PUB.sm.RunStep == ERunStep.GOCHARGE) - { - if (PUB.Result.result_message.isEmpty() == true) - { - UpdateStatusMessage(String.Format("충전기로 이동 중"), Color.Lime, Color.Black); - } - else - { - if (PUB.Result.result_progressmax > 0) - UpdateProgressStatus(PUB.Result.result_progressvalue, PUB.Result.result_progressmax, PUB.Result.result_message); - else - UpdateStatusMessage(PUB.Result.result_message, Color.Lime, Color.Black); - } - } - else if (PUB.sm.RunStep == ERunStep.CHARGECHECK) - { - if (PUB.Result.result_message.isEmpty() == true) - { - UpdateStatusMessage(String.Format("충전기 작동 확인 중"), Color.Lime, Color.Black); - } - else - { - if (PUB.Result.result_progressmax > 0) - UpdateProgressStatus(PUB.Result.result_progressvalue, PUB.Result.result_progressmax, PUB.Result.result_message); - else - UpdateStatusMessage(PUB.Result.result_message, Color.Lime, Color.Black); - } - } - else if (PUB.sm.RunStep == ERunStep.GOHOME) - { - UpdateStatusMessage(String.Format("홈(QC) 이동 중", PUB.Result.TargetPos), Color.Lime, Color.Black); - } - else - { - //충전준비상태라면 관련 정보를 표시한다 230117 - if (VAR.BOOL[eVarBool.CHARGE_READY]) - { - var sec = VAR.I32[eVarInt32.ChargeWaitSec]; - UpdateStatusMessage($"{sec} 초 후 충전이 시작 됩니다", Color.Lime, Color.Black); - } - else - { - var msg = $"대기상태(현재위치:{PUB.Result.CurrentPos}/대상위치:{PUB.Result.TargetPos})"; - if (PUB.setting.Enable_AutoCharge) msg += "(자동충전:ON)"; - else msg += "(자동충전:OFF)"; - UpdateStatusMessage(msg, Color.Lime, Color.Black); - } - - //UpdateStatusMessage(String.Format("--", Pub.Result.TargetPos), Color.White, Color.Black); - } - } - } - - - } - else if (PUB.sm.Step == eSMStep.ERROR) - { - UpdateStatusMessage("오류 발생", Color.Red, Color.Black); - } - else if (PUB.sm.Step == eSMStep.PAUSE) - { - UpdateStatusMessage("정지 됨", Color.Tomato, Color.Black); - } - else if (PUB.sm.Step == eSMStep.FINISH) - { - UpdateStatusMessage("작업 완료", Color.Lime, Color.Black); - } - else if (PUB.sm.bPause == true) - { - UpdateStatusMessage("[START]를 누르면 시작 됩니다", Color.Yellow, Color.Black); - } - else - { - string msg = "진행 중"; - UpdateStatusMessage(msg, Color.Lime, Color.Black); - } - } - - - } - } - } -} +using AR; +using COMM; +using System; +using System.Drawing; +using Project.StateMachine; + +namespace Project +{ + public partial class fMain + { + + + + void BlinkGridViewItem(arFrame.Control.GridView ctl, int row, int col, int value1, int value2) + { + var curValue = ctl.getValue(row, col); + ctl.setValue(row, col, (byte)(curValue == value1 ? value2 : value1)); // + } + + void BlinkLabel(arCtl.arLabel ctl, bool Statue + , Color onColor1, Color onColor2, Color ofColor1, Color ofColor2, + String onText = "", String OffText = "") + { + if (Statue == false) + { + ctl.BackColor2 = ofColor2; + ctl.BackColor = ofColor1; + if (OffText != "" && ctl.Text != OffText) ctl.Text = OffText; + } + else + { + if (onText != "" && ctl.Text != onText) ctl.Text = onText; + //깜박인다 + if (ctl.BackColor2 == Color.DimGray) + { + ctl.BackColor = onColor1; + ctl.BackColor2 = onColor2; + } + else + { + ctl.BackColor2 = Color.DimGray; + ctl.BackColor = Color.FromArgb(100, 100, 100); + } + } + + } + + Boolean displayOn = false; + private void tmDisplay_Tick(object sender, EventArgs e) + { + if (displayOn == false) displayOn = true; + else + { + PUB.log.AddAT("Display Timer Overlab");// Console.WriteLine("display overlab"); + return; + } + + if (PUB.sm.Step > eSMStep.INIT && + panTopMenu.Enabled == false) panTopMenu.Enabled = true; + + //배터리정보표시 + var bmsinfo = PUB.BMS.BMSInformation; + lbBat.VLevel = bmsinfo.rsoc; + lbBat.Volt = bmsinfo.packVoltage; + lbBat.MaxA = bmsinfo.fullCapacity; + lbBat.CurA = bmsinfo.remainingCapacity; + lbBat.IsOpen = PUB.BMS.IsOpen; + + //쓰레드로인해서 메인에서 진행하게한다. SPS는 메인쓰레드에서 진행 됨 + //팝을 제거 혹은 표시하는 기능 + if (PUB.popup.needShow) PUB.popup.showMessage(); + else if (PUB.popup.needClose) PUB.popup.Visible = false; // .setVision(false)(); + + //자동 리부트 코드 실행 (230710) + var chargeon = VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]; + if (PUB.sm.Step == eSMStep.RUN & PUB.sm.RunStep == ERunStep.READY && chargeon == false && + PUB.setting.AutoRebootTimeStart.isEmpty() == false && startuptime.Year != 1982 && + PUB.Automodeonreboot == false && PUB.setting.SetAutoModeOn == false && PUB.AutRebootAlreay == false) + { + var strbuf = PUB.setting.AutoRebootTimeStart.Split('~'); + if (strbuf.Length == 2) + { + strbuf[0] = strbuf[0].Trim(); + strbuf[1] = strbuf[1].Trim(); + + var btimes = DateTime.TryParse(DateTime.Now.ToString("yyyy-MM-dd ") + strbuf[0], out DateTime TimeS); + var btimee = DateTime.TryParse(DateTime.Now.ToString("yyyy-MM-dd ") + strbuf[1], out DateTime TimeE); + + //이미 재부팅을 했는지 확인한다 + if (PUB.setting.AutoRebootTimeStart.isEmpty() == false) + { + if (DateTime.TryParse(PUB.setting.AutoRebootTimeStart, out DateTime RebootLast)) + { + //지정된 시간내에서 재부팅이 되었다 + if (RebootLast >= TimeS.AddMinutes(-1) && RebootLast <= TimeE.AddMinutes(1)) + { + //재부팅이 완료됨 + PUB.log.Add($"이미 재부팅을 진행 했습니다"); + PUB.AutRebootAlreay = true; + } + } + } + + if (PUB.AutRebootAlreay == false && btimes && btimee && TimeS <= TimeE && DateTime.Now >= TimeS && DateTime.Now <= TimeE) //둘다시간조건에 맞아야한다 + { + //기록을 남긴다.(확인용) + EEMStatus.AddStatusSQL(eSMStep.IDLE, $"자동재부팅실행({strbuf[0]}~{strbuf[1]})", DateTime.Now, true); + + //자동모드도 해제 해준다(다른 일이 발생하지 않도록) + VAR.BOOL[eVarBool.FLAG_AUTORUN] = false; + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); + PUB.AGV.AGVMoveStop("autoreboot"); + PUB.sm.SetNewStep(eSMStep.IDLE); + + if (System.Diagnostics.Debugger.IsAttached == false) + { + PUB.Speak(Lang.자동재부팅을실행합니다); + PUB.SystemReboot(5, true); + } + else PUB.setting.SetAutoModeOn = true; + + } + } + } + + //자동실행-230710 - 프로그램이 켜진 후 5분안에만 동작한다 + if (startuptime.Year != 1982 && PUB.setting.SetAutoModeOn && PUB.sm.Step == eSMStep.IDLE && PUB.Automodeonreboot == false) + { + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) //이미 자동상태라면 + { + //이미 켜져있으니 처리하지 않는다 + PUB.setting.SetAutoModeOn = false; + PUB.setting.Save(); + } + else + { + var tsStartup = DateTime.Now - startuptime; + if (tsStartup.TotalMinutes < 3) + { + if (tsStartup.TotalSeconds > 10) //5초이전에는동작하지 말자 + { + PUB.log.Add($"자동 오토런 실행"); + func_sw_start(false); + PUB.setting.SetAutoModeOn = false; + PUB.setting.Save(); + } + } + else + { + //5분을 넘어선 데이터는 쓸모없다 폐기 + PUB.setting.SetAutoModeOn = false; + PUB.setting.Save(); + } + } + + } + + + + lbTime.Text = PUB.sm.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"); + + //자동충전중이다(프로그램에 의해 충전이 진행된 상태) + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true || VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true) + { + lbStStep.Text = VAR.BOOL[eVarBool.FLAG_CHARGEONA] ? "자동충전" : "수동충전"; + lbIDLE.ProgressForeColor = Color.Tomato; + if (lbIDLE.ProgressEnable == false) + lbIDLE.ProgressEnable = true; + + //lbIDLE.ForeColor = Color.Gold; + lbIDLE.ProgressForeColor = Color.Gold; + + if (PUB.sm.Step != eSMStep.RUN) + { + var tsIdle = VAR.TIME.RUN(eVarTime.ChargeStart); + lbIDLE.ProgressMax = 100;// PUB.setting.ChargeMaxLevel; + lbIDLE.ProgressMin = 0; + lbIDLE.Text = $"{PUB.BMS.BMSInformation.rsoc}%"; + lbIDLE.ProgressValue = (float)PUB.BMS.BMSInformation.rsoc; + } + else + { + //if (PUB.setting.ChargeMaxTime < 1) + //{/ + var tsIdle = VAR.TIME.RUN(eVarTime.ChargeStart); + lbIDLE.ProgressMax = PUB.setting.ChargeMaxLevel; + lbIDLE.ProgressMin = 0; + lbIDLE.Text = $"({PUB.BMS.BMSInformation.rsoc}/{PUB.setting.ChargeMaxLevel})%"; + lbIDLE.ProgressValue = (float)PUB.BMS.BMSInformation.rsoc; + //} + //else + //{ + // var tsIdle = VAR.TIME.RUN(eVarTime.ChargeStart); + // lbIDLE.ProgressMax = PUB.setting.ChargeMaxTime; + // lbIDLE.ProgressMin = 0; + // lbIDLE.Text = string.Format("{0:N0}/{1} 초 충전 중", tsIdle.TotalSeconds, PUB.setting.ChargeMaxTime); + // lbIDLE.ProgressValue = (float)tsIdle.TotalSeconds; + //} + + } + + + } + else + { + TimeSpan timerun; + if (PUB.sm.Step == eSMStep.RUN) + { + if (PUB.sm.RunStep == ERunStep.READY) + { + //대기시간 + lbStStep.Text = "대기중"; + timerun = VAR.TIME.RUN(eVarTime.ReadyStart); + } + else + { + //가동시간 + lbStStep.Text = "가동중"; + timerun = VAR.TIME.RUN(eVarTime.RunStart); + } + } + else + { + lbStStep.Text = "장비멈춤"; + timerun = VAR.TIME.RUN(eVarTime.IdleStart); + } + lbIDLE.Text = string.Format("{0}일 {1}시 {2}분 {3}초", timerun.Days, timerun.Hours, timerun.Minutes, timerun.Seconds); + if (lbIDLE.ProgressEnable == true) + lbIDLE.ProgressEnable = false; + } + + //hw접속상태 표시 + MenuAGV.BackColor = PUB.AGV.IsValid ? Color.FromArgb(40, 40, 40) : Color.Brown; + MenuBMS.BackColor = PUB.BMS.IsValid ? Color.FromArgb(40, 40, 40) : Color.Brown; + MenuMAN.BackColor = PUB.AGV.IsValid ? Color.FromArgb(40, 40, 40) : Color.Brown; + + + btChargeA.Enabled = !VAR.BOOL[eVarBool.FLAG_CHARGEONM]; + btHome.Enabled = btChargeA.Enabled; + btAutoRun.Enabled = btChargeA.Enabled; + + var bCharge = + (PUB.sm.RunStep == ERunStep.GOCHARGE || PUB.sm.RunStep == ERunStep.CHARGECHECK || VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true); + + //가동, 목적지가 충전기라면 홈 이동이다 + var bHome = PUB.sm.Step == eSMStep.RUN && (PUB.sm.RunStep == ERunStep.GOHOME); + //var bChargeM = PUB.flag.get(EFlag.FLAG_CHARGEONM); + var bAuto = VAR.BOOL[eVarBool.FLAG_AUTORUN]; + //if(batu) + + var bChargeM = VAR.BOOL[eVarBool.FLAG_CHARGEONM]; + if (btHome.Enabled == false) + { + btHome.BackColor2 = Color.Gray; + btHome.BackColor = Color.DimGray; + } + else BlinkLabel(this.btHome, bHome, Color.Aqua, Color.Teal, Color.Aqua, Color.Teal, "홈\n취소", "홈\n이동"); + if (btChargeA.Enabled == false) + { + btChargeA.BackColor2 = Color.Gray; + btChargeA.BackColor = Color.DimGray; + } + else + { + //충전가능요건이라면 해당 시간을 표시해준다. + BlinkLabel(this.btChargeA, bCharge, Color.LightSalmon, Color.Tomato, Color.LightSalmon, Color.Tomato, "자동충전취소", "자동충전\n실행(" + PUB.counter.CountChargeA.ToString() + ")"); + } + BlinkLabel(this.btChargeM, bChargeM, Color.LightSalmon, Color.Tomato, Color.LightSalmon, Color.Tomato, "수동충전취소", "수동충전\n실행(" + PUB.counter.CountChargeM.ToString() + ")"); + //BlinkLabel(this.btChargeM, bChargeM, Color.LightSalmon, Color.Tomato, "수동충전취소", "수동충전\n실행(" + Pub.counter.CountChargeM.ToString() + ")"); + if (btAutoRun.Enabled == false) + { + btAutoRun.BackColor2 = Color.Gray; + btAutoRun.BackColor = Color.DimGray; + } + else BlinkLabel(this.btAutoRun, bAuto == false, Color.DarkMagenta, Color.BlueViolet, Color.Lime, Color.Green, "수동\n조작중", "자동\n실행중"); + + //상태 표시 + Update_SSStatus(); + + //IO상태(상단줄) 표시 + Update_IOStatus(); + + //display mesasge + Update_StatusMessage(); + + //음악 on/off 처리 + Update_Music(); + + //HWState.Invalidate(); + SSInfo.Invalidate(); + IOState.Invalidate(); + + #region retgion"1분 time 루틴" + var ts = DateTime.Now - tm1minute; + if (ts.TotalMinutes >= 1) + { + //리셋카운트 + _AutoResetCount(); + + //상태를 DB에 저장한다. 230314 + var tsrun = VAR.TIME.RUN(eVarTime.StatusReporttime); + if (tsrun.TotalSeconds >= PUB.setting.StatusInterval) EEMStatus.UpdateStatusSQL(PUB.sm.Step, _extrun: true); + + tm1minute = DateTime.Now; + } + #endregion + + #region retgion"5분 time 루틴" + ts = DateTime.Now - tm5minute; + if (ts.TotalMinutes >= 5) + { + //남은디스크확인 + CheckFreeSpace(); + tm5minute = DateTime.Now; + } + #endregion + + //wat.Stop(); + //Console.WriteLine("disp time : " + wat.ElapsedMilliseconds.ToString() + "ms"); + displayOn = false; + } + + void Update_Count() + { + if (this.InvokeRequired) + { + this.BeginInvoke(new System.Windows.Forms.MethodInvoker(Update_Count), null); + } + else + { + lbCntDN.Text = PUB.counter.CountDn.ToString(); + lbCNtUP.Text = PUB.counter.CountUp.ToString(); + lbCntQA.Text = PUB.counter.CountQA.ToString(); + lbCntQC.Text = PUB.counter.CountQC.ToString(); + // lbCntPk.Text = PUB.counter.CountQa2.ToString(); + } + + } + void Update_IOStatus() + { + int inputrow = 0; + int inputcol = 0; + + ////비상정지는 깜박임으로 알려준다 + if (VAR.BOOL[eVarBool.EMERGENCY]) BlinkGridViewItem(IOState, inputrow, inputcol++, 2, 0); + else IOState.setValue(inputrow, inputcol++, 0); + + IOState.setTitle(inputrow, inputcol, "DIR:" + PUB.AGV.data.Direction.ToString()); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, "MOV:" + PUB.AGV.data.Sts.ToString()); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, "SPD:" + PUB.AGV.data.Speed.ToString()); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, $"PBS:{PUB.AGV.data.guidesensor}"); IOState.setValue(inputrow, inputcol++, 0); + + if (PUB.AGV.data.TagNo < 0) + { + IOState.setTitle(inputrow, inputcol, "(TAG)"); IOState.setValue(inputrow, inputcol++, 0); + } + else + { + IOState.setTitle(inputrow, inputcol, "T" + PUB.AGV.data.TagNo.ToString()); IOState.setValue(inputrow, inputcol++, 0); + } + if (PUB.AGV.data.CallNo < 0) + { + IOState.setTitle(inputrow, inputcol, "(CAL)"); + IOState.setValue(inputrow, inputcol++, 0); + } + else + { + IOState.setTitle(inputrow, inputcol, "CAL:" + PUB.AGV.data.CallNo.ToString()); + IOState.setValue(inputrow, inputcol++, 0); + } + + IOState.setTitle(inputrow, inputcol, "RUN"); IOState.setValue(inputrow, inputcol++, (PUB.AGV.system1.agv_run ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "MARK"); IOState.setValue(inputrow, inputcol++, (VAR.BOOL[eVarBool.MARK_SENSOR] ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "CHG"); IOState.setValue(inputrow, inputcol++, (PUB.AGV.system1.Battery_charging ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "ITM"); IOState.setValue(inputrow, inputcol++, (VAR.BOOL[eVarBool.ITEMON] ? 1 : 0)); + IOState.Invalidate(); + } + + /// + /// 가동중 40% 미만에서는 배터리 경고 메세지를 추가한다(리더) + /// + void Update_BatteryWarnSpeak() + { + if (PUB.BMS == null || PUB.BMS.BMSInformation.rsoc > 40) return; + + //가동중이거나 수동모드에서는 메세지 알림한다 + if (PUB.AGV.system1.agv_run || VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) + { + var timeoutsec = 15; + if (PUB.BMS.IsValid == false) timeoutsec = 30; + + var tswarnmsg = VAR.TIME.RUN(eVarTime.BatWarnTime); + if (tswarnmsg.TotalSeconds >= timeoutsec) + { + if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false && VAR.BOOL[eVarBool.FLAG_CHARGEONA] == false) + { + if (PUB.BMS.IsValid == false) + { + PUB.Speak(Lang.배터리통신에문제가있습니다); + } + else + { + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) + PUB.Speak(Lang.충전이필요합니다자동모드로전환하세요); + else + PUB.Speak(Lang.충전이필요합니다); + } + } + else + { + //충전중이므로 메세지처리를 하지 않는다 + } + + + VAR.TIME.Update(eVarTime.BatWarnTime); + } + } + } + + /// + /// 가동중일때 음악이 나오게 한다 + /// + void Update_Music() + { + if (PUB.mplayer == null) return; + if (PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation) && PUB.bPlayMusic) + { + if (PUB.AGV.system1.agv_run == false) + { + if (PUB.bPlayMusic) + { + PUB.mplayer.Stop(); + PUB.bPlayMusic = false; + } + + } + } + else if (PUB.setting.Enable_Music && PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation)) + { + if (PUB.AGV.system1.agv_run == true) + { + if (PUB.bPlayMusic == false) + { + PUB.mplayer.Play(); + PUB.bPlayMusic = true; + } + } + } + } + + void Update_SSStatus() + { + if (PUB.sm.IsThreadRun) SSInfo.setValue(0, 0, 0); + else SSInfo.setValue(0, 0, 2); + + var runspeed = PUB.sm.RunSpeed.TotalMilliseconds; + SSInfo.setTitle(0, 0, $"{PUB.sm.Step}\n{runspeed:N1} ms"); + + if (runspeed > 9) + SSInfo.setValue(0, 0, 2); + else if (runspeed > 4) + SSInfo.setValue(0, 0, 3); + else + SSInfo.setValue(0, 0, 0); + + + SSInfo.setTitle(1, 0, string.Format("{0}({1})", PUB.sm.RunStep, PUB.sm.RunStepSeq)); + if (PUB.sm.Step == eSMStep.RUN) + SSInfo.setTitle(1, 1, string.Format("{0:N1} sec", PUB.sm.GetRunSteptime.TotalSeconds)); + else + SSInfo.setTitle(1, 1, "--"); + + } + + /// + /// 환경설정에따른 카운트를 리셋처리한다. 171128 + /// + void _AutoResetCount() + { + if (PUB.setting.datetime_Check_1 && PUB.setting.datetime_Reset_1 != "") //오전 + { + try + { + DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + PUB.setting.datetime_Reset_1 + ":00"); + DateTime LastClearTime = PUB.counter.CountReset; + + //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 + if (DateTime.Now > SetTime && LastClearTime < SetTime) + { + PUB.log.AddI("Count Reset #1"); + PUB.counter.CountClear(); + } + } + catch { } + } + + if (PUB.setting.datetime_Check_2 && PUB.setting.datetime_Reset_2 != "") //오후 + { + try + { + DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + PUB.setting.datetime_Reset_2 + ":00"); + DateTime LastClearTime = PUB.counter.CountReset; + + //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 + if (DateTime.Now > SetTime && LastClearTime < SetTime) + { + PUB.log.AddI("Count Reset #2"); + PUB.counter.CountClear(); + } + } + catch { } + } + } + + DateTime tm1minute = DateTime.Now.AddDays(-1); + DateTime tm5minute = DateTime.Now; + + void UpdateProgressStatus(double value, double max, string title) + { + UpdateProgressStatus((float)value, (float)max, title); + } + + void UpdateProgressStatus(float value, float max, string title = "") + { + if (PUB.Result.SMSG_ProgressEnable == false) PUB.Result.SMSG_ProgressEnable = true; + if (PUB.Result.SMSG_ProgressMax != max) PUB.Result.SMSG_ProgressMax = max; + if (PUB.Result.SMSG_ProgressValue != value) + { + if (value < max) PUB.Result.SMSG_ProgressValue = value; + else PUB.Result.SMSG_ProgressValue = max; + } + if (PUB.Result.SMSG_ProgressForeColor != Color.White) + PUB.Result.SMSG_ProgressForeColor = Color.White; + + if (title != "") + if (VAR.STR[eVarString.StatusMessage].Equals(title) == false) VAR.STR[eVarString.StatusMessage] = title; + } + + void UpdateStatusMessage(string dispmsg, Color fcolor, Color shadow) + { + UpdateStatusMessage(dispmsg, Color.DimGray, Color.Gray, fcolor, shadow); + } + + void UpdateStatusMessage(string dispmsg, Color bColor, Color bColor2, Color fcolor, Color shadow, Boolean blank = false) + { + + //if (lbMsg.ProgressEnable == true) lbMsg.ProgressEnable = false; + if (dispmsg != VAR.STR[eVarString.StatusMessage] || PUB.Result.SMSG_ForeColor != fcolor || + PUB.Result.SMSG_ShadowColor != shadow + || (PUB.Result.SMSG_BackColor != bColor && PUB.Result.SMSG_BackColor2 != bColor)) + { + PUB.Result.SMSG_BackColor = bColor; + PUB.Result.SMSG_BackColor2 = bColor2; + PUB.Result.SMSG_ForeColor = fcolor; + PUB.Result.SMSG_ShadowColor = shadow; + VAR.STR[eVarString.StatusMessage] = dispmsg; + if (blank) PUB.Result.SMSG_Tag = "BLANK"; + else PUB.Result.SMSG_Tag = null; + //PUB.Result.UpdateStatusMessage(); + } + } + + + void Update_StatusMessage() + { + //최우선 점검 사항 표시 + if (PUB.sm.Step > eSMStep.INIT) + { + //오류가 있다면 오류를 표시해준다. + if (PUB.AGV.IsOpen == false ) + { + UpdateStatusMessage("AGV 연결실패", Color.Tomato, Color.Black); + } + else if(PUB.AGV.IsValid==false) + { + UpdateStatusMessage("AGV 통신상태 불량", Color.Tomato, Color.Black); + } + else if (PUB.AGV.error.Emergency) + { + if (PUB.AGV.error.runerror_by_no_magent_line) + { + UpdateStatusMessage("마그넷이 감지 되지 않습니다", Color.Tomato, Color.Black); + } + else + { + UpdateStatusMessage("비상 정지", Color.Tomato, Color.Black); + } + } + else if (PUB.BMS != null || PUB.BMS.IsOpen==false) + { + UpdateStatusMessage("BMS가 연결되지 않았습니다", Color.Tomato, Color.Black); + } + else if (PUB.BMS != null || PUB.BMS.IsValid == false) + { + UpdateStatusMessage("BMS 통신상태 불량", Color.Tomato, Color.Black); + } + //else if (PUB.PLC.IsOpen == false) + //{ + // UpdateStatusMessage(Lang.PLC연결실패, Color.Tomato, Color.Black); + //} + //else if (PUB.PLC.IsValid == false) + //{ + // UpdateStatusMessage(Lang.PLC통신실패, Color.Tomato, Color.Black); + //} + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true) + { + //남은 충전시간 계산 + string msg = string.Empty; + if (PUB.BMS.BMSInformation.rsoc < PUB.setting.ChargeEmergencyLevel) + { + msg = $"충전 진행 중(이동 불가)\n저전압으로 인해 사용이 불가 합니다"; + } + else + { + var remaintime = VAR.TIME.RUN(eVarTime.ChargeStart); + var remainsec = PUB.setting.ChargeMaxTime - remaintime.TotalSeconds; + msg = "충전 진행 중 (이동 불가) " + remainsec.ToString("N0") + "초 후 충전이 자동 OFF 됩니다"; + } + UpdateStatusMessage(msg, Color.Orange, Color.Black); + } + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM] == true)// PUB.flag.get(EFlag.FLAG_CHARGEONM) == true) + { + UpdateStatusMessage("충전(수동) 진행 중 (이동 불가)", Color.Orange, Color.Black); + } + else if (PUB.AGV.IsOpen == false) + { + UpdateStatusMessage(Lang.AGV연결실패, Color.Tomato, Color.Black); + } + else + { + if (PUB.sm.Step == eSMStep.IDLE) + { + if (PUB.AGV.system1.agv_run) + { + if (PUB.AGV.system1.stop_by_front_detect) + UpdateStatusMessage("장애물로 인한 일시 정지", Color.SkyBlue, Color.Black); + else + UpdateStatusMessage("AGV 이동 중", Color.SkyBlue, Color.Black); + } + else if (PUB.AGV.error.Emergency) + { + if (PUB.AGV.error.runerror_by_no_magent_line) + { + UpdateStatusMessage("비상 정지 : 마그넷 라인이 감지 안됨", Color.SkyBlue, Color.Black); + } + else + { + UpdateStatusMessage("비상 정지", Color.SkyBlue, Color.Black); + } + } + else + { + var smg = "(작업을 시작 하려면 [AUTO]로 전환 하세요)"; + UpdateStatusMessage(smg, Color.SkyBlue, Color.Black); + } + } + else if (PUB.sm.Step == eSMStep.RUN) + { + + string stMsg; + if (PUB.AGV.system1.stop_by_front_detect)//.GetValueI(arDev.FakePLC.DIName.PINI_LIDAR_STOP)) + stMsg = Lang.전방에물체가감지되었습니다; + //else if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_EMG)) + // stMsg = Lang.비상정지신호가감지되었습니다; + else if (PUB.AGV.signal1.front_gate_out == true) + stMsg = Lang.선로를이탈했습니다; + else if (PUB.AGV.error.runerror_by_no_magent_line) + stMsg = "마그네틱 라인을 벗어났습니다"; + else + { + stMsg = "자동 대기"; + if (PUB.setting.Enable_AutoCharge) + { + var tsIdle = VAR.TIME.RUN(eVarTime.ReadyStart); + var remainTry = (int)(PUB.setting.ChargeRetryTerm - tsIdle.TotalSeconds); + var progMax = PUB.setting.ChargeRetryTerm; + stMsg += " / (" + remainTry.ToString() + ") 초 후 충전을 시작 합니다"; + UpdateProgressStatus(tsIdle.TotalSeconds, progMax, ""); + } + else + { + stMsg += "(자동충전 해제됨)"; + } + } + + UpdateStatusMessage(stMsg, Color.SkyBlue, Color.Black); + //자동 충전 대기상태를 프로그레시브로 표시한다 + + + if (PUB.AGV.system1.stop_by_front_detect == true) + { + UpdateStatusMessage("이동 방향 근접거리 물체 감지(이동 불가 - 일시정지)", Color.Tomato, Color.Black); + } + else if (VAR.BOOL[eVarBool.OVERLOAD] == true) + { + UpdateStatusMessage("오버로드 감지(안전커버를 확인하세요)", Color.Tomato, Color.Black); + } + else if (PUB.AGV.error.runerror_by_no_magent_line) + { + UpdateStatusMessage("마그네틱 라인을 벗어 났습니다", Color.Black, Color.White); + } + else + { + if (VAR.BOOL[eVarBool.WAIT_COVER_DOWN] == true) + { + UpdateStatusMessage(Lang.안전커버를내려주세요, Color.Lime, Color.Black); + } + else if (VAR.BOOL[eVarBool.WAIT_COVER_UP] == true) + { + UpdateStatusMessage(Lang.안전커버를올려주세요, Color.Lime, Color.Black); + } + else + { + if (PUB.sm.RunStep == ERunStep.BUFFER_IN) + { + if (PUB.sm.RunStepSeq == 1) + { + UpdateStatusMessage(String.Format("하차 이동 전 (현재 위치 검색)", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else UpdateStatusMessage(String.Format("하차 이동 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.BUFFER_OUT) + { + if (PUB.sm.RunStepSeq == 1) + { + UpdateStatusMessage(String.Format("상차 이동 전 (현재 위치 검색)", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else UpdateStatusMessage(String.Format("상차 이동 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.LOADER_IN) + { + UpdateStatusMessage(String.Format("로더 진입 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.LOADER_OUT) + { + UpdateStatusMessage(String.Format("로더 배출 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.UNLOADER_IN) + { + UpdateStatusMessage(String.Format("언로더 진입 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.UNLOADER_OUT) + { + UpdateStatusMessage(String.Format("언로더 배출 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.CLEANER_IN) + { + UpdateStatusMessage(String.Format("클리너 진입 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.CLEANER_OUT) + { + UpdateStatusMessage(String.Format("클리너 배출 중 ({0})", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else if (PUB.sm.RunStep == ERunStep.GOCHARGE) + { + if (PUB.Result.result_message.isEmpty() == true) + { + UpdateStatusMessage(String.Format("충전기로 이동 중"), Color.Lime, Color.Black); + } + else + { + if (PUB.Result.result_progressmax > 0) + UpdateProgressStatus(PUB.Result.result_progressvalue, PUB.Result.result_progressmax, PUB.Result.result_message); + else + UpdateStatusMessage(PUB.Result.result_message, Color.Lime, Color.Black); + } + } + else if (PUB.sm.RunStep == ERunStep.CHARGECHECK) + { + if (PUB.Result.result_message.isEmpty() == true) + { + UpdateStatusMessage(String.Format("충전기 작동 확인 중"), Color.Lime, Color.Black); + } + else + { + if (PUB.Result.result_progressmax > 0) + UpdateProgressStatus(PUB.Result.result_progressvalue, PUB.Result.result_progressmax, PUB.Result.result_message); + else + UpdateStatusMessage(PUB.Result.result_message, Color.Lime, Color.Black); + } + } + else if (PUB.sm.RunStep == ERunStep.GOHOME) + { + UpdateStatusMessage(String.Format("홈(QC) 이동 중", PUB.Result.TargetPos), Color.Lime, Color.Black); + } + else + { + //충전준비상태라면 관련 정보를 표시한다 230117 + if (VAR.BOOL[eVarBool.CHARGE_READY]) + { + var sec = VAR.I32[eVarInt32.ChargeWaitSec]; + UpdateStatusMessage($"{sec} 초 후 충전이 시작 됩니다", Color.Lime, Color.Black); + } + else + { + var msg = $"대기상태(현재위치:{PUB.Result.CurrentPos}/대상위치:{PUB.Result.TargetPos})"; + if (PUB.setting.Enable_AutoCharge) msg += "(자동충전:ON)"; + else msg += "(자동충전:OFF)"; + UpdateStatusMessage(msg, Color.Lime, Color.Black); + } + + //UpdateStatusMessage(String.Format("--", Pub.Result.TargetPos), Color.White, Color.Black); + } + } + } + + + } + else if (PUB.sm.Step == eSMStep.ERROR) + { + UpdateStatusMessage("오류 발생", Color.Red, Color.Black); + } + else if (PUB.sm.Step == eSMStep.PAUSE) + { + UpdateStatusMessage("정지 됨", Color.Tomato, Color.Black); + } + else if (PUB.sm.Step == eSMStep.FINISH) + { + UpdateStatusMessage("작업 완료", Color.Lime, Color.Black); + } + else if (PUB.sm.bPause == true) + { + UpdateStatusMessage("[START]를 누르면 시작 됩니다", Color.Yellow, Color.Black); + } + else + { + string msg = "진행 중"; + UpdateStatusMessage(msg, Color.Lime, Color.Black); + } + } + + + } + } + } +} diff --git a/Cs_HMI/Project/StateMachine/_Xbee.cs b/HMI/Project/StateMachine/_Xbee.cs similarity index 98% rename from Cs_HMI/Project/StateMachine/_Xbee.cs rename to HMI/Project/StateMachine/_Xbee.cs index 4f5a8da..21bd223 100644 --- a/Cs_HMI/Project/StateMachine/_Xbee.cs +++ b/HMI/Project/StateMachine/_Xbee.cs @@ -1,322 +1,322 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using AGVNavigationCore.Models; -using AGVNavigationCore.PathFinding.Core; -using AGVNavigationCore.PathFinding.Planning; -using AGVNavigationCore.Utils; -using AR; -using arDev; -using COMM; -using Project.StateMachine; - -namespace Project -{ - public partial class fMain - { - - private void XBE_ProtocReceived(object sender, ENIG.EEProtocol.DataEventArgs e) - { - //TODO : 기능 처리필요 (XBee 메세지 데이터처리) - //PUB.CheckManualChargeMode() : 수동충전확인 - //VAR.BOOL[eVarBool.FLAG_AUTORUN] : 자동실행 - //PUB.Speak("현재 위치는 QA 입니다.") : 음성출력 - - //ACS 수신 데이터 처리(타 장비는 확인하지 않는다) - if (e.ReceivedPacket.ID == 0) - { - var logPrefix = "ACS"; - var data = e.ReceivedPacket.Data; - var cmd = (ENIGProtocol.AGVCommandHE)e.ReceivedPacket.Command; - if (data.Length < 1) - { - PUB.log.Add($"ACS 데이터에서 TARGET ID가 없습니다(data : first byte)"); - return; - } - - //대상디바이스 - var TargetID = data[0]; - - //해당 패킷의 대상이 나라면 처리한다. - if (PUB.setting.XBE_ID != TargetID) return; - - switch (cmd) - { - - case ENIGProtocol.AGVCommandHE.SetCurrent: //Set Current Position - Resultclear(); - - if (data.Length > 4) - { - var currTag = System.Text.Encoding.Default.GetString(data, 1, data.Length - 1); - if (ushort.TryParse(currTag, out ushort currtagValue)) - { - var node = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == currtagValue); - if (node == null) - { - PUB.log.AddE($"[{logPrefix}-SetCurrent] 노드정보를 찾을 수 없습니다 RFID:{currTag}"); - PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, $"{currTag}"); - return; - } - else - { - PUB.log.AddI($"XBEE:현재위치설정:[{node.RfidId}]{node.Id}"); - } - - PUB._mapCanvas.SetAGVPosition(PUB.setting.MCID, node, PUB._virtualAGV.CurrentDirection); - PUB._virtualAGV.SetPosition(node, PUB._virtualAGV.CurrentDirection); - } - else PUB.log.AddE($"[{logPrefix}-SetCurrent] TagString Value Errorr:{data}"); - } - else PUB.log.AddE($"[{logPrefix}-SetCurrent] TagString Lenght Errorr:{data.Length}"); - break; - - case ENIGProtocol.AGVCommandHE.PickOnEnter: // 110 - case ENIGProtocol.AGVCommandHE.PickOffEnter: // 111 - { - Resultclear(); - PUB.log.AddI($"XBEE:작업명령수신:{cmd}"); - - // 현재 위치 확인 (TargetNode가 아닌 CurrentNode 기준) - var currNode = PUB._virtualAGV.CurrentNode; - if (currNode == null) - { - PUB.log.AddE($"[{logPrefix}-{cmd}] 현재 노드를 알 수 없습니다"); - PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, "Unknown Current Node"); - return; - } - - var targetNode = PUB._virtualAGV.TargetNode; - if (targetNode == null) - { - PUB.log.AddE($"[{logPrefix}-{cmd}] 목표 노드를 알 수 없습니다"); - PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, "Unknown Target Node"); - return; - } - - //버퍼의 경우 직전에 멈추기 때문에 스테이션종류를 보정해준다 - var StationType = currNode.StationType; - if (StationType == StationType.Normal && targetNode.StationType == StationType.Buffer) - StationType = StationType.Buffer; - - ERunStep nextStep = ERunStep.READY; - switch (StationType) - { - case StationType.Loader: nextStep = ERunStep.LOADER_IN; break; - case StationType.UnLoader: nextStep = ERunStep.UNLOADER_IN; break; - case StationType.Buffer: nextStep = ERunStep.BUFFER_IN; break; - case StationType.Clearner: nextStep = ERunStep.CLEANER_IN; break; - default: - PUB.log.AddE($"[{logPrefix}-{cmd}] 해당 노드타입({StationType})은 작업을 지원하지 않습니다."); - return; - } - - //다음명령처리 - PUB.NextWorkCmd = cmd; - PUB.log.AddI($"작업 시작: {nextStep} (Type: {cmd})"); - PUB.sm.SetNewRunStep(nextStep); - } - break; - - case ENIGProtocol.AGVCommandHE.Charger: // 112 - { - Resultclear(); - PUB.log.AddI($"XBEE:충전명령수신"); - PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Charger; - PUB.sm.SetNewRunStep(ERunStep.GOCHARGE); - } - break; - - case ENIGProtocol.AGVCommandHE.GotoAlias: - case ENIGProtocol.AGVCommandHE.Goto: //move to tag - Resultclear(); - var datalength = cmd == ENIGProtocol.AGVCommandHE.GotoAlias ? 2 : 1; - if (data.Length > datalength) - { - var currTag = System.Text.Encoding.Default.GetString(data, 1, data.Length - 1).Trim(); - MapNode targetNode = null; - if (cmd == ENIGProtocol.AGVCommandHE.GotoAlias) - { - targetNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.AliasName == currTag); - } - else - { - if (ushort.TryParse(currTag, out ushort currtagvalue)) - targetNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == currtagvalue); - else PUB.log.Add($"targstring 이 숫자가 아니라서 대상을 설정할 수 없습니다 값:{currTag}"); - } - - if (targetNode != null) - { - //자동상태가아니라면 처리하지 않는다. - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) - { - PUB.log.AddE($"[{logPrefix}-Goto] 자동실행상태가 아닙니다"); - PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.ManualMode, $"{currTag}"); - return; - } - - //목적지 - PUB._virtualAGV.TargetNode = targetNode; - if (targetNode == null) - { - PUB.log.AddE($"[{logPrefix}-Goto] 노드정보를 찾을 수 없습니다 RFID:{currTag}"); - PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, $"{currTag}"); - return; - } - - ///출발지 - var startNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == PUB._virtualAGV.CurrentNode.RfidId); - PUB._virtualAGV.StartNode = startNode; - if (startNode == null) - { - PUB.log.AddE($"[{logPrefix}-Goto] 시작노드가 없습니다(현재위치 없음) NodeID:{PUB._virtualAGV.CurrentNode.Id}"); - } - - //대상이동으로 처리한다. - if (PUB.sm.RunStep != ERunStep.GOTO) - { - PUB.sm.SetNewRunStep(StateMachine.ERunStep.GOTO); - PUB.sm.ResetRunStepSeq(); - } - - - //Move to - PUB.log.Add($"[{logPrefix}-{cmd}] {startNode.RfidId} -> {targetNode.RfidId}"); - } - else PUB.log.AddE($"[{logPrefix}-{cmd}] 대상노드가 없습니다 {data}"); - } - else PUB.log.AddE($"[{logPrefix}-{cmd}] Length Error:{data.Length}"); - break; - - case ENIGProtocol.AGVCommandHE.LTurn180: - PUB.log.Add($"[{logPrefix}-LTurn180]"); - PUB.AGV.AGVMoveLeft180Turn(); - break; - case ENIGProtocol.AGVCommandHE.RTurn180: - PUB.log.Add($"[{logPrefix}-RTurn180]"); - PUB.AGV.AGVMoveRight180Turn(); - break; - - case ENIGProtocol.AGVCommandHE.LTurn: - PUB.log.Add($"[{logPrefix}-LTurn]"); - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); - break; - case ENIGProtocol.AGVCommandHE.RTurn: - PUB.log.Add($"[{logPrefix}-RTurn]"); - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); - break; - case ENIGProtocol.AGVCommandHE.Stop: //stop - PUB.log.Add($"[{logPrefix}-Stop]"); - PUB.AGV.AGVMoveStop("xbee"); - break; - case ENIGProtocol.AGVCommandHE.Reset: //Error Reset - PUB.log.Add($"[{logPrefix}-Reset]"); - ResetSystemError(); - break; - - case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime) - Resultclear(); - var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right - var Speed = data[2]; //0=slow, 1=normal, 2=fast - - arDev.Narumi.ManulOpt opt = arDev.Narumi.ManulOpt.BS; - arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; - if (Speed == 1) spd = arDev.Narumi.Speed.Mid; - else if (Speed == 2) spd = arDev.Narumi.Speed.High; - - //0.자동모드가 아니라면 실행하지 않는다 - //1.입력된 파라미터로 AGV를 이동한다 - if (Direction == 0) opt = arDev.Narumi.ManulOpt.BS; - else if (Direction == 1) opt = arDev.Narumi.ManulOpt.FS; - else if (Direction == 2) opt = arDev.Narumi.ManulOpt.LT; - else if (Direction == 3) opt = arDev.Narumi.ManulOpt.RT; - - PUB.log.Add($"[{logPrefix}-Manual] DIR:{opt},SPD:{spd}"); - PUB.AGV.AGVMoveManual(opt, spd, arDev.Narumi.Sensor.PBSOn); - break; - - case ENIGProtocol.AGVCommandHE.AutoMove: - Resultclear(); - var MotDirection = data[1]; //0=back, 1=forward - var MagDirection = data[2]; //0=straight, 1=left, 2=right - var AutSpeed = data[3]; //0=slow, 1=normal, 2=fast - var Lidar = data[4]; //0=off, 1=on - - var bunkidata = new arDev.Narumi.BunkiData(); - - //speed; - if (AutSpeed == 1) bunkidata.Speed = arDev.Narumi.eMoveSpd.Mid; - else if (AutSpeed == 2) bunkidata.Speed = arDev.Narumi.eMoveSpd.High; - else bunkidata.Speed = arDev.Narumi.eMoveSpd.Low; - - //motor direction - if (MotDirection == 0) bunkidata.Direction = arDev.Narumi.eMoveDir.Backward; - else bunkidata.Direction = arDev.Narumi.eMoveDir.Forward; - - if (MagDirection == 2) bunkidata.Bunki = arDev.Narumi.eBunki.Right; - else if (MagDirection == 1) bunkidata.Bunki = arDev.Narumi.eBunki.Left; - else bunkidata.Bunki = arDev.Narumi.eBunki.Strate; - - if (Lidar == 0) bunkidata.PBSSensor = 0; - else bunkidata.PBSSensor = 2; - - PUB.log.Add($"[{logPrefix}-AutoMove] DIR:{bunkidata.Direction}-{bunkidata.Bunki},SPD:{bunkidata.Speed}"); - - if (PUB.AGV.AGVMoveSet(bunkidata) != eNarumiCommandResult.Success) - PUB.log.AddE($"AGV속도설정실패로 인해 자동전환이 실패되었습니다"); - else - { - PUB.log.Add($"XBE 에서 자동모드로 전환합니다"); - PUB.AGV.AGVMoveRun((MotDirection == 0 ? arDev.Narumi.eRunOpt.Backward : arDev.Narumi.eRunOpt.Forward)); - } - break; - - case ENIGProtocol.AGVCommandHE.MarkStop: //Set MarkStop - //마크센서에서 멈추게 한다 - PUB.log.Add($"[{logPrefix}-MarkStop]"); - PUB.AGV.AGVMoveStop("Xbee", arDev.Narumi.eStopOpt.MarkStop); - break; - - case ENIGProtocol.AGVCommandHE.LiftControl: //Lift Control - var LiftCommand = data[1]; //0=stop, 1=up, 2=down - - arDev.Narumi.LiftCommand LCmd = arDev.Narumi.LiftCommand.STP; - if (LiftCommand == 1) LCmd = arDev.Narumi.LiftCommand.UP; - else if (LiftCommand == 2) LCmd = arDev.Narumi.LiftCommand.DN; - - PUB.log.Add($"[{logPrefix}-LiftControl] {LCmd}"); - PUB.AGV.LiftControl(LCmd); //리프트제어 - break; - - case ENIGProtocol.AGVCommandHE.ChargeControl: //충전을 제어한다 - var chargeAction = data[1] == 1; //0= off, 1=on - - //충전시퀀스가 진행되지 않았다면 진행한다 - if (PUB.sm.RunStep == StateMachine.ERunStep.GOCHARGE && PUB.sm.RunStepNew != StateMachine.ERunStep.GOCHARGE) - { - PUB.sm.SetNewRunStep(StateMachine.ERunStep.GOCHARGE); - PUB.log.AddI($"충전을 시작합니다"); - } - break; - - default: - PUB.logagv.AddE($"Unknown Command : {cmd} Sender:{e.ReceivedPacket.ID}, Target:{data[0]}"); - PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.UnknownCommand, $"{cmd}"); - break; - } - } - } - - private void XBE_MessageReceived(object sender, Device.Xbee.MessageArgs e) - { - if (e.IsError) PUB.log.AddE(e.Message); - else PUB.log.Add(e.Message); - } - - - } -} - +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AGVNavigationCore.Models; +using AGVNavigationCore.PathFinding.Core; +using AGVNavigationCore.PathFinding.Planning; +using AGVNavigationCore.Utils; +using AR; +using arDev; +using COMM; +using Project.StateMachine; + +namespace Project +{ + public partial class fMain + { + + private void XBE_ProtocReceived(object sender, ENIG.EEProtocol.DataEventArgs e) + { + //TODO : 기능 처리필요 (XBee 메세지 데이터처리) + //PUB.CheckManualChargeMode() : 수동충전확인 + //VAR.BOOL[eVarBool.FLAG_AUTORUN] : 자동실행 + //PUB.Speak("현재 위치는 QA 입니다.") : 음성출력 + + //ACS 수신 데이터 처리(타 장비는 확인하지 않는다) + if (e.ReceivedPacket.ID == 0) + { + var logPrefix = "ACS"; + var data = e.ReceivedPacket.Data; + var cmd = (ENIGProtocol.AGVCommandHE)e.ReceivedPacket.Command; + if (data.Length < 1) + { + PUB.log.Add($"ACS 데이터에서 TARGET ID가 없습니다(data : first byte)"); + return; + } + + //대상디바이스 + var TargetID = data[0]; + + //해당 패킷의 대상이 나라면 처리한다. + if (PUB.setting.XBE_ID != TargetID) return; + + switch (cmd) + { + + case ENIGProtocol.AGVCommandHE.SetCurrent: //Set Current Position + Resultclear(); + + if (data.Length > 4) + { + var currTag = System.Text.Encoding.Default.GetString(data, 1, data.Length - 1); + if (ushort.TryParse(currTag, out ushort currtagValue)) + { + var node = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == currtagValue); + if (node == null) + { + PUB.log.AddE($"[{logPrefix}-SetCurrent] 노드정보를 찾을 수 없습니다 RFID:{currTag}"); + PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, $"{currTag}"); + return; + } + else + { + PUB.log.AddI($"XBEE:현재위치설정:[{node.RfidId}]{node.Id}"); + } + + PUB._mapCanvas.SetAGVPosition(PUB.setting.MCID, node, PUB._virtualAGV.CurrentDirection); + PUB._virtualAGV.SetPosition(node, PUB._virtualAGV.CurrentDirection); + } + else PUB.log.AddE($"[{logPrefix}-SetCurrent] TagString Value Errorr:{data}"); + } + else PUB.log.AddE($"[{logPrefix}-SetCurrent] TagString Lenght Errorr:{data.Length}"); + break; + + case ENIGProtocol.AGVCommandHE.PickOnEnter: // 110 + case ENIGProtocol.AGVCommandHE.PickOffEnter: // 111 + { + Resultclear(); + PUB.log.AddI($"XBEE:작업명령수신:{cmd}"); + + // 현재 위치 확인 (TargetNode가 아닌 CurrentNode 기준) + var currNode = PUB._virtualAGV.CurrentNode; + if (currNode == null) + { + PUB.log.AddE($"[{logPrefix}-{cmd}] 현재 노드를 알 수 없습니다"); + PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, "Unknown Current Node"); + return; + } + + var targetNode = PUB._virtualAGV.TargetNode; + if (targetNode == null) + { + PUB.log.AddE($"[{logPrefix}-{cmd}] 목표 노드를 알 수 없습니다"); + PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, "Unknown Target Node"); + return; + } + + //버퍼의 경우 직전에 멈추기 때문에 스테이션종류를 보정해준다 + var StationType = currNode.StationType; + if (StationType == StationType.Normal && targetNode.StationType == StationType.Buffer) + StationType = StationType.Buffer; + + ERunStep nextStep = ERunStep.READY; + switch (StationType) + { + case StationType.Loader: nextStep = ERunStep.LOADER_IN; break; + case StationType.UnLoader: nextStep = ERunStep.UNLOADER_IN; break; + case StationType.Buffer: nextStep = ERunStep.BUFFER_IN; break; + case StationType.Clearner: nextStep = ERunStep.CLEANER_IN; break; + default: + PUB.log.AddE($"[{logPrefix}-{cmd}] 해당 노드타입({StationType})은 작업을 지원하지 않습니다."); + return; + } + + //다음명령처리 + PUB.NextWorkCmd = cmd; + PUB.log.AddI($"작업 시작: {nextStep} (Type: {cmd})"); + PUB.sm.SetNewRunStep(nextStep); + } + break; + + case ENIGProtocol.AGVCommandHE.Charger: // 112 + { + Resultclear(); + PUB.log.AddI($"XBEE:충전명령수신"); + PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Charger; + PUB.sm.SetNewRunStep(ERunStep.GOCHARGE); + } + break; + + case ENIGProtocol.AGVCommandHE.GotoAlias: + case ENIGProtocol.AGVCommandHE.Goto: //move to tag + Resultclear(); + var datalength = cmd == ENIGProtocol.AGVCommandHE.GotoAlias ? 2 : 1; + if (data.Length > datalength) + { + var currTag = System.Text.Encoding.Default.GetString(data, 1, data.Length - 1).Trim(); + MapNode targetNode = null; + if (cmd == ENIGProtocol.AGVCommandHE.GotoAlias) + { + targetNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.AliasName == currTag); + } + else + { + if (ushort.TryParse(currTag, out ushort currtagvalue)) + targetNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == currtagvalue); + else PUB.log.Add($"targstring 이 숫자가 아니라서 대상을 설정할 수 없습니다 값:{currTag}"); + } + + if (targetNode != null) + { + //자동상태가아니라면 처리하지 않는다. + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) + { + PUB.log.AddE($"[{logPrefix}-Goto] 자동실행상태가 아닙니다"); + PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.ManualMode, $"{currTag}"); + return; + } + + //목적지 + PUB._virtualAGV.TargetNode = targetNode; + if (targetNode == null) + { + PUB.log.AddE($"[{logPrefix}-Goto] 노드정보를 찾을 수 없습니다 RFID:{currTag}"); + PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.EmptyNode, $"{currTag}"); + return; + } + + ///출발지 + var startNode = PUB._mapCanvas.Nodes.FirstOrDefault(t => t.RfidId == PUB._virtualAGV.CurrentNode.RfidId); + PUB._virtualAGV.StartNode = startNode; + if (startNode == null) + { + PUB.log.AddE($"[{logPrefix}-Goto] 시작노드가 없습니다(현재위치 없음) NodeID:{PUB._virtualAGV.CurrentNode.Id}"); + } + + //대상이동으로 처리한다. + if (PUB.sm.RunStep != ERunStep.GOTO) + { + PUB.sm.SetNewRunStep(StateMachine.ERunStep.GOTO); + PUB.sm.ResetRunStepSeq(); + } + + + //Move to + PUB.log.Add($"[{logPrefix}-{cmd}] {startNode.RfidId} -> {targetNode.RfidId}"); + } + else PUB.log.AddE($"[{logPrefix}-{cmd}] 대상노드가 없습니다 {data}"); + } + else PUB.log.AddE($"[{logPrefix}-{cmd}] Length Error:{data.Length}"); + break; + + case ENIGProtocol.AGVCommandHE.LTurn180: + PUB.log.Add($"[{logPrefix}-LTurn180]"); + PUB.AGV.AGVMoveLeft180Turn(); + break; + case ENIGProtocol.AGVCommandHE.RTurn180: + PUB.log.Add($"[{logPrefix}-RTurn180]"); + PUB.AGV.AGVMoveRight180Turn(); + break; + + case ENIGProtocol.AGVCommandHE.LTurn: + PUB.log.Add($"[{logPrefix}-LTurn]"); + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); + break; + case ENIGProtocol.AGVCommandHE.RTurn: + PUB.log.Add($"[{logPrefix}-RTurn]"); + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); + break; + case ENIGProtocol.AGVCommandHE.Stop: //stop + PUB.log.Add($"[{logPrefix}-Stop]"); + PUB.AGV.AGVMoveStop("xbee"); + break; + case ENIGProtocol.AGVCommandHE.Reset: //Error Reset + PUB.log.Add($"[{logPrefix}-Reset]"); + ResetSystemError(); + break; + + case ENIGProtocol.AGVCommandHE.Manual: //Manual Move (Direction, speed, runtime) + Resultclear(); + var Direction = data[1]; //0=back, 1=forward, 2=left, 3=right + var Speed = data[2]; //0=slow, 1=normal, 2=fast + + arDev.Narumi.ManulOpt opt = arDev.Narumi.ManulOpt.BS; + arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; + if (Speed == 1) spd = arDev.Narumi.Speed.Mid; + else if (Speed == 2) spd = arDev.Narumi.Speed.High; + + //0.자동모드가 아니라면 실행하지 않는다 + //1.입력된 파라미터로 AGV를 이동한다 + if (Direction == 0) opt = arDev.Narumi.ManulOpt.BS; + else if (Direction == 1) opt = arDev.Narumi.ManulOpt.FS; + else if (Direction == 2) opt = arDev.Narumi.ManulOpt.LT; + else if (Direction == 3) opt = arDev.Narumi.ManulOpt.RT; + + PUB.log.Add($"[{logPrefix}-Manual] DIR:{opt},SPD:{spd}"); + PUB.AGV.AGVMoveManual(opt, spd, arDev.Narumi.Sensor.PBSOn); + break; + + case ENIGProtocol.AGVCommandHE.AutoMove: + Resultclear(); + var MotDirection = data[1]; //0=back, 1=forward + var MagDirection = data[2]; //0=straight, 1=left, 2=right + var AutSpeed = data[3]; //0=slow, 1=normal, 2=fast + var Lidar = data[4]; //0=off, 1=on + + var bunkidata = new arDev.Narumi.BunkiData(); + + //speed; + if (AutSpeed == 1) bunkidata.Speed = arDev.Narumi.eMoveSpd.Mid; + else if (AutSpeed == 2) bunkidata.Speed = arDev.Narumi.eMoveSpd.High; + else bunkidata.Speed = arDev.Narumi.eMoveSpd.Low; + + //motor direction + if (MotDirection == 0) bunkidata.Direction = arDev.Narumi.eMoveDir.Backward; + else bunkidata.Direction = arDev.Narumi.eMoveDir.Forward; + + if (MagDirection == 2) bunkidata.Bunki = arDev.Narumi.eBunki.Right; + else if (MagDirection == 1) bunkidata.Bunki = arDev.Narumi.eBunki.Left; + else bunkidata.Bunki = arDev.Narumi.eBunki.Strate; + + if (Lidar == 0) bunkidata.PBSSensor = 0; + else bunkidata.PBSSensor = 2; + + PUB.log.Add($"[{logPrefix}-AutoMove] DIR:{bunkidata.Direction}-{bunkidata.Bunki},SPD:{bunkidata.Speed}"); + + if (PUB.AGV.AGVMoveSet(bunkidata) != eNarumiCommandResult.Success) + PUB.log.AddE($"AGV속도설정실패로 인해 자동전환이 실패되었습니다"); + else + { + PUB.log.Add($"XBE 에서 자동모드로 전환합니다"); + PUB.AGV.AGVMoveRun((MotDirection == 0 ? arDev.Narumi.eRunOpt.Backward : arDev.Narumi.eRunOpt.Forward)); + } + break; + + case ENIGProtocol.AGVCommandHE.MarkStop: //Set MarkStop + //마크센서에서 멈추게 한다 + PUB.log.Add($"[{logPrefix}-MarkStop]"); + PUB.AGV.AGVMoveStop("Xbee", arDev.Narumi.eStopOpt.MarkStop); + break; + + case ENIGProtocol.AGVCommandHE.LiftControl: //Lift Control + var LiftCommand = data[1]; //0=stop, 1=up, 2=down + + arDev.Narumi.LiftCommand LCmd = arDev.Narumi.LiftCommand.STP; + if (LiftCommand == 1) LCmd = arDev.Narumi.LiftCommand.UP; + else if (LiftCommand == 2) LCmd = arDev.Narumi.LiftCommand.DN; + + PUB.log.Add($"[{logPrefix}-LiftControl] {LCmd}"); + PUB.AGV.LiftControl(LCmd); //리프트제어 + break; + + case ENIGProtocol.AGVCommandHE.ChargeControl: //충전을 제어한다 + var chargeAction = data[1] == 1; //0= off, 1=on + + //충전시퀀스가 진행되지 않았다면 진행한다 + if (PUB.sm.RunStep == StateMachine.ERunStep.GOCHARGE && PUB.sm.RunStepNew != StateMachine.ERunStep.GOCHARGE) + { + PUB.sm.SetNewRunStep(StateMachine.ERunStep.GOCHARGE); + PUB.log.AddI($"충전을 시작합니다"); + } + break; + + default: + PUB.logagv.AddE($"Unknown Command : {cmd} Sender:{e.ReceivedPacket.ID}, Target:{data[0]}"); + PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.UnknownCommand, $"{cmd}"); + break; + } + } + } + + private void XBE_MessageReceived(object sender, Device.Xbee.MessageArgs e) + { + if (e.IsError) PUB.log.AddE(e.Message); + else PUB.log.Add(e.Message); + } + + + } +} + diff --git a/Cs_HMI/Project/ViewForm/fAgv.Designer.cs b/HMI/Project/ViewForm/fAgv.Designer.cs similarity index 98% rename from Cs_HMI/Project/ViewForm/fAgv.Designer.cs rename to HMI/Project/ViewForm/fAgv.Designer.cs index 890059f..60ed884 100644 --- a/Cs_HMI/Project/ViewForm/fAgv.Designer.cs +++ b/HMI/Project/ViewForm/fAgv.Designer.cs @@ -1,470 +1,470 @@ -namespace Project.ViewForm -{ - partial class fAgv - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.rtSystem0 = new System.Windows.Forms.RichTextBox(); - this.rtSystem1 = new System.Windows.Forms.RichTextBox(); - this.rtSignal1 = new System.Windows.Forms.RichTextBox(); - this.rtError = new System.Windows.Forms.RichTextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.button7 = new System.Windows.Forms.Button(); - this.button6 = new System.Windows.Forms.Button(); - this.button5 = new System.Windows.Forms.Button(); - this.button17 = new System.Windows.Forms.Button(); - this.lbIP = new System.Windows.Forms.Label(); - this.button3 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.button8 = new System.Windows.Forms.Button(); - this.button4 = new System.Windows.Forms.Button(); - this.button9 = new System.Windows.Forms.Button(); - this.panel2 = new System.Windows.Forms.Panel(); - this.lbPortName = new System.Windows.Forms.Label(); - this.button15 = new System.Windows.Forms.Button(); - this.button14 = new System.Windows.Forms.Button(); - this.button11 = new System.Windows.Forms.Button(); - this.button12 = new System.Windows.Forms.Button(); - this.button13 = new System.Windows.Forms.Button(); - this.button10 = new System.Windows.Forms.Button(); - this.button16 = new System.Windows.Forms.Button(); - this.rtData = new System.Windows.Forms.RichTextBox(); - this.rtSignal2 = new System.Windows.Forms.RichTextBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 4; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); - this.tableLayoutPanel1.Controls.Add(this.rtSignal2, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.rtSystem0, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.rtSystem1, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.rtSignal1, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.rtError, 3, 0); - this.tableLayoutPanel1.Controls.Add(this.label1, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.rtData, 3, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 461); - this.tableLayoutPanel1.TabIndex = 6; - // - // rtSystem0 - // - this.rtSystem0.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtSystem0.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); - this.rtSystem0.Location = new System.Drawing.Point(3, 3); - this.rtSystem0.Name = "rtSystem0"; - this.tableLayoutPanel1.SetRowSpan(this.rtSystem0, 2); - this.rtSystem0.Size = new System.Drawing.Size(256, 404); - this.rtSystem0.TabIndex = 1; - this.rtSystem0.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; - // - // rtSystem1 - // - this.rtSystem1.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtSystem1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); - this.rtSystem1.Location = new System.Drawing.Point(265, 3); - this.rtSystem1.Name = "rtSystem1"; - this.tableLayoutPanel1.SetRowSpan(this.rtSystem1, 2); - this.rtSystem1.Size = new System.Drawing.Size(256, 404); - this.rtSystem1.TabIndex = 1; - this.rtSystem1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; - // - // rtSignal1 - // - this.rtSignal1.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtSignal1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); - this.rtSignal1.Location = new System.Drawing.Point(527, 3); - this.rtSignal1.Name = "rtSignal1"; - this.rtSignal1.Size = new System.Drawing.Size(256, 199); - this.rtSignal1.TabIndex = 1; - this.rtSignal1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; - // - // rtError - // - this.rtError.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtError.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); - this.rtError.Location = new System.Drawing.Point(789, 3); - this.rtError.Name = "rtError"; - this.rtError.Size = new System.Drawing.Size(258, 199); - this.rtError.TabIndex = 1; - this.rtError.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; - // - // label1 - // - this.tableLayoutPanel1.SetColumnSpan(this.label1, 2); - this.label1.Dock = System.Windows.Forms.DockStyle.Fill; - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(3, 410); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(518, 51); - this.label1.TabIndex = 2; - this.label1.Text = "label1"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // timer1 - // - this.timer1.Interval = 200; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - // - // panel1 - // - this.panel1.Controls.Add(this.button7); - this.panel1.Controls.Add(this.button6); - this.panel1.Controls.Add(this.button5); - this.panel1.Controls.Add(this.button17); - this.panel1.Controls.Add(this.lbIP); - this.panel1.Controls.Add(this.button3); - this.panel1.Controls.Add(this.button2); - this.panel1.Controls.Add(this.button1); - this.panel1.Controls.Add(this.button8); - this.panel1.Controls.Add(this.button4); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(3, 522); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1050, 58); - this.panel1.TabIndex = 7; - // - // button7 - // - this.button7.Dock = System.Windows.Forms.DockStyle.Right; - this.button7.Location = new System.Drawing.Point(570, 0); - this.button7.Name = "button7"; - this.button7.Size = new System.Drawing.Size(80, 58); - this.button7.TabIndex = 6; - this.button7.Text = "Go - Front\r\nManual"; - this.button7.UseVisualStyleBackColor = true; - this.button7.Click += new System.EventHandler(this.button7_Click); - // - // button6 - // - this.button6.Dock = System.Windows.Forms.DockStyle.Right; - this.button6.Location = new System.Drawing.Point(650, 0); - this.button6.Name = "button6"; - this.button6.Size = new System.Drawing.Size(80, 58); - this.button6.TabIndex = 5; - this.button6.Text = "Go - Back\r\nManual"; - this.button6.UseVisualStyleBackColor = true; - this.button6.Click += new System.EventHandler(this.button6_Click); - // - // button5 - // - this.button5.Dock = System.Windows.Forms.DockStyle.Right; - this.button5.Location = new System.Drawing.Point(730, 0); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(80, 58); - this.button5.TabIndex = 4; - this.button5.Text = "Stop(Mark)"; - this.button5.UseVisualStyleBackColor = true; - this.button5.Click += new System.EventHandler(this.button5_Click); - // - // button17 - // - this.button17.Dock = System.Windows.Forms.DockStyle.Right; - this.button17.Location = new System.Drawing.Point(810, 0); - this.button17.Name = "button17"; - this.button17.Size = new System.Drawing.Size(80, 58); - this.button17.TabIndex = 9; - this.button17.Text = "Run(Bwd)"; - this.button17.UseVisualStyleBackColor = true; - this.button17.Click += new System.EventHandler(this.button17_Click); - // - // lbIP - // - this.lbIP.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbIP.Font = new System.Drawing.Font("Tahoma", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.lbIP.ForeColor = System.Drawing.Color.White; - this.lbIP.Location = new System.Drawing.Point(252, 0); - this.lbIP.Name = "lbIP"; - this.lbIP.Size = new System.Drawing.Size(638, 58); - this.lbIP.TabIndex = 8; - this.lbIP.Text = "000.000.000.000"; - this.lbIP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // button3 - // - this.button3.Dock = System.Windows.Forms.DockStyle.Left; - this.button3.Location = new System.Drawing.Point(168, 0); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(84, 58); - this.button3.TabIndex = 2; - this.button3.Text = "Charge Off"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); - // - // button2 - // - this.button2.Dock = System.Windows.Forms.DockStyle.Left; - this.button2.Location = new System.Drawing.Point(84, 0); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(84, 58); - this.button2.TabIndex = 1; - this.button2.Text = "Charge On"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // button1 - // - this.button1.Dock = System.Windows.Forms.DockStyle.Left; - this.button1.Location = new System.Drawing.Point(0, 0); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(84, 58); - this.button1.TabIndex = 0; - this.button1.Text = "Reset"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button8 - // - this.button8.Dock = System.Windows.Forms.DockStyle.Right; - this.button8.Location = new System.Drawing.Point(890, 0); - this.button8.Name = "button8"; - this.button8.Size = new System.Drawing.Size(80, 58); - this.button8.TabIndex = 7; - this.button8.Text = "Run(Fwd)"; - this.button8.UseVisualStyleBackColor = true; - this.button8.Click += new System.EventHandler(this.button8_Click); - // - // button4 - // - this.button4.Dock = System.Windows.Forms.DockStyle.Right; - this.button4.Location = new System.Drawing.Point(970, 0); - this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(80, 58); - this.button4.TabIndex = 3; - this.button4.Text = "Stop"; - this.button4.UseVisualStyleBackColor = true; - this.button4.Click += new System.EventHandler(this.button4_Click); - // - // button9 - // - this.button9.Dock = System.Windows.Forms.DockStyle.Left; - this.button9.Location = new System.Drawing.Point(324, 0); - this.button9.Name = "button9"; - this.button9.Size = new System.Drawing.Size(115, 58); - this.button9.TabIndex = 9; - this.button9.Text = "GDS Center Scope"; - this.button9.UseVisualStyleBackColor = true; - this.button9.Click += new System.EventHandler(this.button9_Click); - // - // panel2 - // - this.panel2.Controls.Add(this.lbPortName); - this.panel2.Controls.Add(this.button15); - this.panel2.Controls.Add(this.button14); - this.panel2.Controls.Add(this.button11); - this.panel2.Controls.Add(this.button12); - this.panel2.Controls.Add(this.button13); - this.panel2.Controls.Add(this.button9); - this.panel2.Controls.Add(this.button10); - this.panel2.Controls.Add(this.button16); - this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel2.Location = new System.Drawing.Point(3, 464); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(1050, 58); - this.panel2.TabIndex = 8; - // - // lbPortName - // - this.lbPortName.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbPortName.Font = new System.Drawing.Font("Tahoma", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.lbPortName.ForeColor = System.Drawing.Color.White; - this.lbPortName.Location = new System.Drawing.Point(607, 0); - this.lbPortName.Name = "lbPortName"; - this.lbPortName.Size = new System.Drawing.Size(203, 58); - this.lbPortName.TabIndex = 15; - this.lbPortName.Text = "--"; - this.lbPortName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // button15 - // - this.button15.Dock = System.Windows.Forms.DockStyle.Left; - this.button15.Location = new System.Drawing.Point(523, 0); - this.button15.Name = "button15"; - this.button15.Size = new System.Drawing.Size(84, 58); - this.button15.TabIndex = 14; - this.button15.Text = "Mag Off"; - this.button15.UseVisualStyleBackColor = true; - this.button15.Click += new System.EventHandler(this.button15_Click); - // - // button14 - // - this.button14.Dock = System.Windows.Forms.DockStyle.Left; - this.button14.Location = new System.Drawing.Point(439, 0); - this.button14.Name = "button14"; - this.button14.Size = new System.Drawing.Size(84, 58); - this.button14.TabIndex = 13; - this.button14.Text = "Mag On"; - this.button14.UseVisualStyleBackColor = true; - this.button14.Click += new System.EventHandler(this.button14_Click); - // - // button11 - // - this.button11.Dock = System.Windows.Forms.DockStyle.Right; - this.button11.Location = new System.Drawing.Point(810, 0); - this.button11.Name = "button11"; - this.button11.Size = new System.Drawing.Size(80, 58); - this.button11.TabIndex = 11; - this.button11.Text = "Up"; - this.button11.UseVisualStyleBackColor = true; - this.button11.Click += new System.EventHandler(this.button11_Click); - // - // button12 - // - this.button12.Dock = System.Windows.Forms.DockStyle.Right; - this.button12.Location = new System.Drawing.Point(890, 0); - this.button12.Name = "button12"; - this.button12.Size = new System.Drawing.Size(80, 58); - this.button12.TabIndex = 12; - this.button12.Text = "Stop"; - this.button12.UseVisualStyleBackColor = true; - this.button12.Click += new System.EventHandler(this.button12_Click); - // - // button13 - // - this.button13.Dock = System.Windows.Forms.DockStyle.Right; - this.button13.Location = new System.Drawing.Point(970, 0); - this.button13.Name = "button13"; - this.button13.Size = new System.Drawing.Size(80, 58); - this.button13.TabIndex = 10; - this.button13.Text = "Down"; - this.button13.UseVisualStyleBackColor = true; - this.button13.Click += new System.EventHandler(this.button13_Click); - // - // button10 - // - this.button10.Dock = System.Windows.Forms.DockStyle.Left; - this.button10.Location = new System.Drawing.Point(162, 0); - this.button10.Name = "button10"; - this.button10.Size = new System.Drawing.Size(162, 58); - this.button10.TabIndex = 1; - this.button10.Text = "GateOut Off Time"; - this.button10.UseVisualStyleBackColor = true; - this.button10.Click += new System.EventHandler(this.button10_Click); - // - // button16 - // - this.button16.Dock = System.Windows.Forms.DockStyle.Left; - this.button16.Location = new System.Drawing.Point(0, 0); - this.button16.Name = "button16"; - this.button16.Size = new System.Drawing.Size(162, 58); - this.button16.TabIndex = 0; - this.button16.Text = "백턴유지시간"; - this.button16.UseVisualStyleBackColor = true; - this.button16.Click += new System.EventHandler(this.button16_Click); - // - // rtData - // - this.rtData.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtData.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); - this.rtData.Location = new System.Drawing.Point(789, 208); - this.rtData.Name = "rtData"; - this.rtData.Size = new System.Drawing.Size(258, 199); - this.rtData.TabIndex = 3; - this.rtData.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; - // - // rtSignal2 - // - this.rtSignal2.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtSignal2.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); - this.rtSignal2.Location = new System.Drawing.Point(527, 208); - this.rtSignal2.Name = "rtSignal2"; - this.rtSignal2.Size = new System.Drawing.Size(256, 199); - this.rtSignal2.TabIndex = 4; - this.rtSignal2.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; - // - // fAgv - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); - this.ClientSize = new System.Drawing.Size(1056, 583); - this.Controls.Add(this.tableLayoutPanel1); - this.Controls.Add(this.panel2); - this.Controls.Add(this.panel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "fAgv"; - this.Padding = new System.Windows.Forms.Padding(3); - this.Text = "fFlag"; - this.Load += new System.EventHandler(this.fFlag_Load); - this.VisibleChanged += new System.EventHandler(this.fAgv_VisibleChanged); - this.tableLayoutPanel1.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.RichTextBox rtSystem0; - private System.Windows.Forms.RichTextBox rtSystem1; - private System.Windows.Forms.RichTextBox rtSignal1; - private System.Windows.Forms.RichTextBox rtError; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button3; - private System.Windows.Forms.Button button4; - private System.Windows.Forms.Button button5; - private System.Windows.Forms.Button button6; - private System.Windows.Forms.Button button7; - private System.Windows.Forms.Button button8; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label lbIP; - private System.Windows.Forms.Button button9; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Button button16; - private System.Windows.Forms.Button button10; - private System.Windows.Forms.Button button15; - private System.Windows.Forms.Button button14; - private System.Windows.Forms.Button button11; - private System.Windows.Forms.Button button12; - private System.Windows.Forms.Button button13; - private System.Windows.Forms.Label lbPortName; - private System.Windows.Forms.Button button17; - private System.Windows.Forms.RichTextBox rtData; - private System.Windows.Forms.RichTextBox rtSignal2; - } +namespace Project.ViewForm +{ + partial class fAgv + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.rtSystem0 = new System.Windows.Forms.RichTextBox(); + this.rtSystem1 = new System.Windows.Forms.RichTextBox(); + this.rtSignal1 = new System.Windows.Forms.RichTextBox(); + this.rtError = new System.Windows.Forms.RichTextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.panel1 = new System.Windows.Forms.Panel(); + this.button7 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button17 = new System.Windows.Forms.Button(); + this.lbIP = new System.Windows.Forms.Label(); + this.button3 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.panel2 = new System.Windows.Forms.Panel(); + this.lbPortName = new System.Windows.Forms.Label(); + this.button15 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.rtData = new System.Windows.Forms.RichTextBox(); + this.rtSignal2 = new System.Windows.Forms.RichTextBox(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Controls.Add(this.rtSignal2, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.rtSystem0, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.rtSystem1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.rtSignal1, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.rtError, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.label1, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.rtData, 3, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 461); + this.tableLayoutPanel1.TabIndex = 6; + // + // rtSystem0 + // + this.rtSystem0.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSystem0.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSystem0.Location = new System.Drawing.Point(3, 3); + this.rtSystem0.Name = "rtSystem0"; + this.tableLayoutPanel1.SetRowSpan(this.rtSystem0, 2); + this.rtSystem0.Size = new System.Drawing.Size(256, 404); + this.rtSystem0.TabIndex = 1; + this.rtSystem0.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; + // + // rtSystem1 + // + this.rtSystem1.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSystem1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSystem1.Location = new System.Drawing.Point(265, 3); + this.rtSystem1.Name = "rtSystem1"; + this.tableLayoutPanel1.SetRowSpan(this.rtSystem1, 2); + this.rtSystem1.Size = new System.Drawing.Size(256, 404); + this.rtSystem1.TabIndex = 1; + this.rtSystem1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; + // + // rtSignal1 + // + this.rtSignal1.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSignal1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSignal1.Location = new System.Drawing.Point(527, 3); + this.rtSignal1.Name = "rtSignal1"; + this.rtSignal1.Size = new System.Drawing.Size(256, 199); + this.rtSignal1.TabIndex = 1; + this.rtSignal1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; + // + // rtError + // + this.rtError.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtError.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtError.Location = new System.Drawing.Point(789, 3); + this.rtError.Name = "rtError"; + this.rtError.Size = new System.Drawing.Size(258, 199); + this.rtError.TabIndex = 1; + this.rtError.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; + // + // label1 + // + this.tableLayoutPanel1.SetColumnSpan(this.label1, 2); + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(3, 410); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(518, 51); + this.label1.TabIndex = 2; + this.label1.Text = "label1"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // timer1 + // + this.timer1.Interval = 200; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // panel1 + // + this.panel1.Controls.Add(this.button7); + this.panel1.Controls.Add(this.button6); + this.panel1.Controls.Add(this.button5); + this.panel1.Controls.Add(this.button17); + this.panel1.Controls.Add(this.lbIP); + this.panel1.Controls.Add(this.button3); + this.panel1.Controls.Add(this.button2); + this.panel1.Controls.Add(this.button1); + this.panel1.Controls.Add(this.button8); + this.panel1.Controls.Add(this.button4); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(3, 522); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1050, 58); + this.panel1.TabIndex = 7; + // + // button7 + // + this.button7.Dock = System.Windows.Forms.DockStyle.Right; + this.button7.Location = new System.Drawing.Point(570, 0); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(80, 58); + this.button7.TabIndex = 6; + this.button7.Text = "Go - Front\r\nManual"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Right; + this.button6.Location = new System.Drawing.Point(650, 0); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(80, 58); + this.button6.TabIndex = 5; + this.button6.Text = "Go - Back\r\nManual"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Right; + this.button5.Location = new System.Drawing.Point(730, 0); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(80, 58); + this.button5.TabIndex = 4; + this.button5.Text = "Stop(Mark)"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button17 + // + this.button17.Dock = System.Windows.Forms.DockStyle.Right; + this.button17.Location = new System.Drawing.Point(810, 0); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(80, 58); + this.button17.TabIndex = 9; + this.button17.Text = "Run(Bwd)"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button17_Click); + // + // lbIP + // + this.lbIP.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbIP.Font = new System.Drawing.Font("Tahoma", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbIP.ForeColor = System.Drawing.Color.White; + this.lbIP.Location = new System.Drawing.Point(252, 0); + this.lbIP.Name = "lbIP"; + this.lbIP.Size = new System.Drawing.Size(638, 58); + this.lbIP.TabIndex = 8; + this.lbIP.Text = "000.000.000.000"; + this.lbIP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Left; + this.button3.Location = new System.Drawing.Point(168, 0); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(84, 58); + this.button3.TabIndex = 2; + this.button3.Text = "Charge Off"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Left; + this.button2.Location = new System.Drawing.Point(84, 0); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(84, 58); + this.button2.TabIndex = 1; + this.button2.Text = "Charge On"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Left; + this.button1.Location = new System.Drawing.Point(0, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(84, 58); + this.button1.TabIndex = 0; + this.button1.Text = "Reset"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Right; + this.button8.Location = new System.Drawing.Point(890, 0); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(80, 58); + this.button8.TabIndex = 7; + this.button8.Text = "Run(Fwd)"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Right; + this.button4.Location = new System.Drawing.Point(970, 0); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(80, 58); + this.button4.TabIndex = 3; + this.button4.Text = "Stop"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button9 + // + this.button9.Dock = System.Windows.Forms.DockStyle.Left; + this.button9.Location = new System.Drawing.Point(324, 0); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(115, 58); + this.button9.TabIndex = 9; + this.button9.Text = "GDS Center Scope"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // panel2 + // + this.panel2.Controls.Add(this.lbPortName); + this.panel2.Controls.Add(this.button15); + this.panel2.Controls.Add(this.button14); + this.panel2.Controls.Add(this.button11); + this.panel2.Controls.Add(this.button12); + this.panel2.Controls.Add(this.button13); + this.panel2.Controls.Add(this.button9); + this.panel2.Controls.Add(this.button10); + this.panel2.Controls.Add(this.button16); + this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel2.Location = new System.Drawing.Point(3, 464); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1050, 58); + this.panel2.TabIndex = 8; + // + // lbPortName + // + this.lbPortName.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbPortName.Font = new System.Drawing.Font("Tahoma", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbPortName.ForeColor = System.Drawing.Color.White; + this.lbPortName.Location = new System.Drawing.Point(607, 0); + this.lbPortName.Name = "lbPortName"; + this.lbPortName.Size = new System.Drawing.Size(203, 58); + this.lbPortName.TabIndex = 15; + this.lbPortName.Text = "--"; + this.lbPortName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button15 + // + this.button15.Dock = System.Windows.Forms.DockStyle.Left; + this.button15.Location = new System.Drawing.Point(523, 0); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(84, 58); + this.button15.TabIndex = 14; + this.button15.Text = "Mag Off"; + this.button15.UseVisualStyleBackColor = true; + this.button15.Click += new System.EventHandler(this.button15_Click); + // + // button14 + // + this.button14.Dock = System.Windows.Forms.DockStyle.Left; + this.button14.Location = new System.Drawing.Point(439, 0); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(84, 58); + this.button14.TabIndex = 13; + this.button14.Text = "Mag On"; + this.button14.UseVisualStyleBackColor = true; + this.button14.Click += new System.EventHandler(this.button14_Click); + // + // button11 + // + this.button11.Dock = System.Windows.Forms.DockStyle.Right; + this.button11.Location = new System.Drawing.Point(810, 0); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(80, 58); + this.button11.TabIndex = 11; + this.button11.Text = "Up"; + this.button11.UseVisualStyleBackColor = true; + this.button11.Click += new System.EventHandler(this.button11_Click); + // + // button12 + // + this.button12.Dock = System.Windows.Forms.DockStyle.Right; + this.button12.Location = new System.Drawing.Point(890, 0); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(80, 58); + this.button12.TabIndex = 12; + this.button12.Text = "Stop"; + this.button12.UseVisualStyleBackColor = true; + this.button12.Click += new System.EventHandler(this.button12_Click); + // + // button13 + // + this.button13.Dock = System.Windows.Forms.DockStyle.Right; + this.button13.Location = new System.Drawing.Point(970, 0); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(80, 58); + this.button13.TabIndex = 10; + this.button13.Text = "Down"; + this.button13.UseVisualStyleBackColor = true; + this.button13.Click += new System.EventHandler(this.button13_Click); + // + // button10 + // + this.button10.Dock = System.Windows.Forms.DockStyle.Left; + this.button10.Location = new System.Drawing.Point(162, 0); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(162, 58); + this.button10.TabIndex = 1; + this.button10.Text = "GateOut Off Time"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // button16 + // + this.button16.Dock = System.Windows.Forms.DockStyle.Left; + this.button16.Location = new System.Drawing.Point(0, 0); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(162, 58); + this.button16.TabIndex = 0; + this.button16.Text = "백턴유지시간"; + this.button16.UseVisualStyleBackColor = true; + this.button16.Click += new System.EventHandler(this.button16_Click); + // + // rtData + // + this.rtData.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtData.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtData.Location = new System.Drawing.Point(789, 208); + this.rtData.Name = "rtData"; + this.rtData.Size = new System.Drawing.Size(258, 199); + this.rtData.TabIndex = 3; + this.rtData.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; + // + // rtSignal2 + // + this.rtSignal2.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtSignal2.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2))); + this.rtSignal2.Location = new System.Drawing.Point(527, 208); + this.rtSignal2.Name = "rtSignal2"; + this.rtSignal2.Size = new System.Drawing.Size(256, 199); + this.rtSignal2.TabIndex = 4; + this.rtSignal2.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n"; + // + // fAgv + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1056, 583); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "fAgv"; + this.Padding = new System.Windows.Forms.Padding(3); + this.Text = "fFlag"; + this.Load += new System.EventHandler(this.fFlag_Load); + this.VisibleChanged += new System.EventHandler(this.fAgv_VisibleChanged); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.RichTextBox rtSystem0; + private System.Windows.Forms.RichTextBox rtSystem1; + private System.Windows.Forms.RichTextBox rtSignal1; + private System.Windows.Forms.RichTextBox rtError; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label lbIP; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Label lbPortName; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.RichTextBox rtData; + private System.Windows.Forms.RichTextBox rtSignal2; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fAgv.cs b/HMI/Project/ViewForm/fAgv.cs similarity index 97% rename from Cs_HMI/Project/ViewForm/fAgv.cs rename to HMI/Project/ViewForm/fAgv.cs index 12c2b82..dcf2777 100644 --- a/Cs_HMI/Project/ViewForm/fAgv.cs +++ b/HMI/Project/ViewForm/fAgv.cs @@ -1,201 +1,201 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using COMM; - -namespace Project.ViewForm -{ - public partial class fAgv : Form - { - public fAgv() - { - InitializeComponent(); - - - this.FormClosed += FIO_FormClosed; - } - - private void fFlag_Load(object sender, EventArgs e) - { - this.timer1.Start(); - } - - private void FIO_FormClosed(object sender, FormClosedEventArgs e) - { - this.timer1.Stop(); - } - - - private void timer1_Tick(object sender, EventArgs e) - { - timer1.Stop(); - lbIP.Text = PUB.IP; - label1.Text = PUB.AGV.LastSTS; - - rtSystem0.Rtf = PUB.AGV.system0.ToRtfString(); - rtSystem1.Rtf = PUB.AGV.system1.ToRtfString(); - rtSignal1.Rtf = PUB.AGV.signal1.ToRtfString(); - rtSignal2.Rtf = PUB.AGV.signal2.ToRtfString(); - rtData.Rtf = PUB.AGV.data.ToRtfString(); - rtError.Rtf = PUB.AGV.error.ToRtfString(); - lbPortName.Text = $"AGV:{PUB.setting.Port_AGV}\nBMS:{PUB.setting.Port_BAT}"; - timer1.Start(); - } - - private string CombineRtfStrings(string rtf1, string rtf2) - { - // RTF 문자열 합치기: 첫 번째 RTF의 닫는 } 제거하고 두 번째 RTF의 헤더 제거 - var rtf1Body = rtf1.Replace("}", "").Trim(); - var rtf2Lines = rtf2.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); - - var sb = new System.Text.StringBuilder(); - sb.Append(rtf1Body); - - // 두 번째 RTF의 헤더 부분 건너뛰기 - bool skipHeader = true; - foreach (var line in rtf2Lines) - { - if (line.Contains(@"\line") || (!line.StartsWith(@"{\rtf") && !line.StartsWith(@"{\colortbl") && !line.Contains("}"))) - { - skipHeader = false; - } - - if (!skipHeader && !line.Trim().Equals("}")) - { - sb.AppendLine(line); - } - } - - sb.AppendLine("}"); - return sb.ToString(); - } - - private void fAgv_VisibleChanged(object sender, EventArgs e) - { - this.timer1.Enabled = this.Visible; - if (timer1.Enabled) timer1.Start(); - else timer1.Stop(); - } - - private void button1_Click(object sender, EventArgs e) - { - PUB.AGV.AGVErrorReset(); - if(PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button2_Click(object sender, EventArgs e) - { - PUB.log.Add($"사용자 충전 명령 전송 : {PUB.setting.ChargerID}"); - PUB.AGV.AGVCharge(PUB.setting.ChargerID, true); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button3_Click(object sender, EventArgs e) - { - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button4_Click(object sender, EventArgs e) - { - PUB.AGV.AGVMoveStop("userbutton page:fagv button:button4"); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button5_Click(object sender, EventArgs e) - { - PUB.AGV.AGVMoveStop("user button clic fagv",arDev.Narumi.eStopOpt.MarkStop); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button7_Click(object sender, EventArgs e) - { - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button6_Click(object sender, EventArgs e) - { - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button8_Click(object sender, EventArgs e) - { - PUB.AGV.AGVMoveRun( arDev.Narumi.eRunOpt.Forward); - } - - private void button9_Click(object sender, EventArgs e) - { - var inputbox = AR.UTIL.InputBox("input value", "1000"); - if (inputbox.Item1 == false) return; - if (UInt16.TryParse(inputbox.Item2, out UInt16 value) == false) return; - PUB.AGV.TurnGDSCenterScope(value); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button16_Click(object sender, EventArgs e) - { - var inputbox = AR.UTIL.InputBox("input value","100"); - if (inputbox.Item1 == false) return; - if (int.TryParse(inputbox.Item2, out int value) == false) return; - PUB.AGV.SetBackturnTime(value); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button10_Click(object sender, EventArgs e) - { - var inputbox = AR.UTIL.InputBox("input value","50"); - if (inputbox.Item1 == false) return; - if (int.TryParse(inputbox.Item2, out int value) == false) return; - PUB.AGV.SetGateOutOffTime(value); - if (PUB.sm.Step == StateMachine.eSMStep.RUN) - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - } - - private void button14_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON); - } - - private void button15_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF); - } - - private void button11_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - } - - private void button13_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN); - } - - private void button12_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.STP); - } - - private void button17_Click(object sender, EventArgs e) - { - PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using COMM; + +namespace Project.ViewForm +{ + public partial class fAgv : Form + { + public fAgv() + { + InitializeComponent(); + + + this.FormClosed += FIO_FormClosed; + } + + private void fFlag_Load(object sender, EventArgs e) + { + this.timer1.Start(); + } + + private void FIO_FormClosed(object sender, FormClosedEventArgs e) + { + this.timer1.Stop(); + } + + + private void timer1_Tick(object sender, EventArgs e) + { + timer1.Stop(); + lbIP.Text = PUB.IP; + label1.Text = PUB.AGV.LastSTS; + + rtSystem0.Rtf = PUB.AGV.system0.ToRtfString(); + rtSystem1.Rtf = PUB.AGV.system1.ToRtfString(); + rtSignal1.Rtf = PUB.AGV.signal1.ToRtfString(); + rtSignal2.Rtf = PUB.AGV.signal2.ToRtfString(); + rtData.Rtf = PUB.AGV.data.ToRtfString(); + rtError.Rtf = PUB.AGV.error.ToRtfString(); + lbPortName.Text = $"AGV:{PUB.setting.Port_AGV}\nBMS:{PUB.setting.Port_BAT}"; + timer1.Start(); + } + + private string CombineRtfStrings(string rtf1, string rtf2) + { + // RTF 문자열 합치기: 첫 번째 RTF의 닫는 } 제거하고 두 번째 RTF의 헤더 제거 + var rtf1Body = rtf1.Replace("}", "").Trim(); + var rtf2Lines = rtf2.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); + + var sb = new System.Text.StringBuilder(); + sb.Append(rtf1Body); + + // 두 번째 RTF의 헤더 부분 건너뛰기 + bool skipHeader = true; + foreach (var line in rtf2Lines) + { + if (line.Contains(@"\line") || (!line.StartsWith(@"{\rtf") && !line.StartsWith(@"{\colortbl") && !line.Contains("}"))) + { + skipHeader = false; + } + + if (!skipHeader && !line.Trim().Equals("}")) + { + sb.AppendLine(line); + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + + private void fAgv_VisibleChanged(object sender, EventArgs e) + { + this.timer1.Enabled = this.Visible; + if (timer1.Enabled) timer1.Start(); + else timer1.Stop(); + } + + private void button1_Click(object sender, EventArgs e) + { + PUB.AGV.AGVErrorReset(); + if(PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button2_Click(object sender, EventArgs e) + { + PUB.log.Add($"사용자 충전 명령 전송 : {PUB.setting.ChargerID}"); + PUB.AGV.AGVCharge(PUB.setting.ChargerID, true); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button3_Click(object sender, EventArgs e) + { + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button4_Click(object sender, EventArgs e) + { + PUB.AGV.AGVMoveStop("userbutton page:fagv button:button4"); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button5_Click(object sender, EventArgs e) + { + PUB.AGV.AGVMoveStop("user button clic fagv",arDev.Narumi.eStopOpt.MarkStop); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button7_Click(object sender, EventArgs e) + { + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button6_Click(object sender, EventArgs e) + { + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button8_Click(object sender, EventArgs e) + { + PUB.AGV.AGVMoveRun( arDev.Narumi.eRunOpt.Forward); + } + + private void button9_Click(object sender, EventArgs e) + { + var inputbox = AR.UTIL.InputBox("input value", "1000"); + if (inputbox.Item1 == false) return; + if (UInt16.TryParse(inputbox.Item2, out UInt16 value) == false) return; + PUB.AGV.TurnGDSCenterScope(value); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button16_Click(object sender, EventArgs e) + { + var inputbox = AR.UTIL.InputBox("input value","100"); + if (inputbox.Item1 == false) return; + if (int.TryParse(inputbox.Item2, out int value) == false) return; + PUB.AGV.SetBackturnTime(value); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button10_Click(object sender, EventArgs e) + { + var inputbox = AR.UTIL.InputBox("input value","50"); + if (inputbox.Item1 == false) return; + if (int.TryParse(inputbox.Item2, out int value) == false) return; + PUB.AGV.SetGateOutOffTime(value); + if (PUB.sm.Step == StateMachine.eSMStep.RUN) + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + } + + private void button14_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON); + } + + private void button15_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF); + } + + private void button11_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + } + + private void button13_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN); + } + + private void button12_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.STP); + } + + private void button17_Click(object sender, EventArgs e) + { + PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward); + } + } +} diff --git a/Cs_HMI/Project/ViewForm/fAgv.resx b/HMI/Project/ViewForm/fAgv.resx similarity index 97% rename from Cs_HMI/Project/ViewForm/fAgv.resx rename to HMI/Project/ViewForm/fAgv.resx index aac33d5..1f666f2 100644 --- a/Cs_HMI/Project/ViewForm/fAgv.resx +++ b/HMI/Project/ViewForm/fAgv.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fAuto.Designer.cs b/HMI/Project/ViewForm/fAuto.Designer.cs similarity index 97% rename from Cs_HMI/Project/ViewForm/fAuto.Designer.cs rename to HMI/Project/ViewForm/fAuto.Designer.cs index efe2f3a..4935a95 100644 --- a/Cs_HMI/Project/ViewForm/fAuto.Designer.cs +++ b/HMI/Project/ViewForm/fAuto.Designer.cs @@ -1,99 +1,99 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace Project.ViewForm -{ - partial class fAuto - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - timer1 = new System.Windows.Forms.Timer(components); - ctlAuto1 = new CtlAuto(); - panel1 = new Panel(); - SuspendLayout(); - // - // timer1 - // - timer1.Interval = 200; - // - // ctlAuto1 - // - ctlAuto1.BackColor = Color.FromArgb(32, 32, 32); - ctlAuto1.BorderColor = Color.Transparent; - ctlAuto1.Font = new Font("맑은 고딕", 20F, FontStyle.Regular, GraphicsUnit.Point, 129); - ctlAuto1.Font_BMS_Level = new Font("Bahnschrift Condensed", 250F, FontStyle.Bold, GraphicsUnit.Point, 0); - ctlAuto1.Font_BMS_Volt = new Font("Bahnschrift Condensed", 50.25F, FontStyle.Bold); - ctlAuto1.Font_MAIN_BMSLevel = new Font("Arial Narrow", 150F, FontStyle.Bold); - ctlAuto1.ForeColor = Color.White; - ctlAuto1.ItemGap = 0; - ctlAuto1.Items = null; - ctlAuto1.Location = new Point(835, 338); - ctlAuto1.MinimumSize = new Size(100, 30); - ctlAuto1.Name = "ctlAuto1"; - ctlAuto1.ProgressMax = 100F; - ctlAuto1.ProgressVal = 50F; - ctlAuto1.Scean = CtlAuto.eScean.Normal; - ctlAuto1.Size = new Size(179, 241); - ctlAuto1.StatusMessage = "상태메세지 입니다"; - ctlAuto1.StopMessage = ""; - ctlAuto1.StopTime = new DateTime(0L); - ctlAuto1.TabIndex = 20; - ctlAuto1.Text = "ctlAuto1"; - // - // panel1 - // - panel1.Dock = DockStyle.Fill; - panel1.Font = new Font("Tahoma", 8F, FontStyle.Bold); - panel1.Location = new Point(0, 0); - panel1.Name = "panel1"; - panel1.Size = new Size(1014, 579); - panel1.TabIndex = 21; - // - // fAuto - // - AutoScaleMode = AutoScaleMode.None; - BackColor = Color.FromArgb(15, 15, 15); - ClientSize = new Size(1014, 579); - Controls.Add(panel1); - Controls.Add(ctlAuto1); - DoubleBuffered = true; - FormBorderStyle = FormBorderStyle.None; - Name = "fAuto"; - Text = "fAuto"; - Load += fAuto_Load; - VisibleChanged += fAuto_VisibleChanged; - ResumeLayout(false); - } - - #endregion - private System.Windows.Forms.Timer timer1; - private CtlAuto ctlAuto1; - private Panel panel1; - } +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace Project.ViewForm +{ + partial class fAuto + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + timer1 = new System.Windows.Forms.Timer(components); + ctlAuto1 = new CtlAuto(); + panel1 = new Panel(); + SuspendLayout(); + // + // timer1 + // + timer1.Interval = 200; + // + // ctlAuto1 + // + ctlAuto1.BackColor = Color.FromArgb(32, 32, 32); + ctlAuto1.BorderColor = Color.Transparent; + ctlAuto1.Font = new Font("맑은 고딕", 20F, FontStyle.Regular, GraphicsUnit.Point, 129); + ctlAuto1.Font_BMS_Level = new Font("Bahnschrift Condensed", 250F, FontStyle.Bold, GraphicsUnit.Point, 0); + ctlAuto1.Font_BMS_Volt = new Font("Bahnschrift Condensed", 50.25F, FontStyle.Bold); + ctlAuto1.Font_MAIN_BMSLevel = new Font("Arial Narrow", 150F, FontStyle.Bold); + ctlAuto1.ForeColor = Color.White; + ctlAuto1.ItemGap = 0; + ctlAuto1.Items = null; + ctlAuto1.Location = new Point(835, 338); + ctlAuto1.MinimumSize = new Size(100, 30); + ctlAuto1.Name = "ctlAuto1"; + ctlAuto1.ProgressMax = 100F; + ctlAuto1.ProgressVal = 50F; + ctlAuto1.Scean = CtlAuto.eScean.Normal; + ctlAuto1.Size = new Size(179, 241); + ctlAuto1.StatusMessage = "상태메세지 입니다"; + ctlAuto1.StopMessage = ""; + ctlAuto1.StopTime = new DateTime(0L); + ctlAuto1.TabIndex = 20; + ctlAuto1.Text = "ctlAuto1"; + // + // panel1 + // + panel1.Dock = DockStyle.Fill; + panel1.Font = new Font("Tahoma", 8F, FontStyle.Bold); + panel1.Location = new Point(0, 0); + panel1.Name = "panel1"; + panel1.Size = new Size(1014, 579); + panel1.TabIndex = 21; + // + // fAuto + // + AutoScaleMode = AutoScaleMode.None; + BackColor = Color.FromArgb(15, 15, 15); + ClientSize = new Size(1014, 579); + Controls.Add(panel1); + Controls.Add(ctlAuto1); + DoubleBuffered = true; + FormBorderStyle = FormBorderStyle.None; + Name = "fAuto"; + Text = "fAuto"; + Load += fAuto_Load; + VisibleChanged += fAuto_VisibleChanged; + ResumeLayout(false); + } + + #endregion + private System.Windows.Forms.Timer timer1; + private CtlAuto ctlAuto1; + private Panel panel1; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fAuto.cs b/HMI/Project/ViewForm/fAuto.cs similarity index 97% rename from Cs_HMI/Project/ViewForm/fAuto.cs rename to HMI/Project/ViewForm/fAuto.cs index 71c5f1a..6e4fb68 100644 --- a/Cs_HMI/Project/ViewForm/fAuto.cs +++ b/HMI/Project/ViewForm/fAuto.cs @@ -1,271 +1,271 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using Project.StateMachine; -using COMM; -using AR; -using AGVNavigationCore.Models; - -namespace Project.ViewForm -{ - public partial class fAuto : Form - { - - public fAuto() - { - InitializeComponent(); - this.FormClosed += FAuto_FormClosed; - PUB.sm.StepChanged += Sm_StepChanged; - this.ctlAuto1.ButtonClick += CtlAuto1_ButtonClick; - if (PUB.sm.Step == eSMStep.INIT || PUB.sm.Step == eSMStep.SYNC) - this.ctlAuto1.Scean = CtlAuto.eScean.Progress; - else - this.ctlAuto1.Scean = CtlAuto.eScean.Normal; - - InitializeMapCanvas(); - - } - - private void InitializeMapCanvas() - { - PUB._mapCanvas.NodeSelect += OnNodeSelected;; - // 스플리터 패널에 맵 캔버스 추가 - panel1.Controls.Add(PUB._mapCanvas); - } - - - private void OnNodeSelected(object sender, NodeBase node, MouseEventArgs e) - { - if (node == null) return; - var mapnode = node as MapNode; - if (mapnode == null) return; - - // [Run Mode] Left Click: AGV Operation - if (PUB._mapCanvas.Mode == AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run && e.Button == MouseButtons.Left) - { - HandleRunModeClick(mapnode); - return; - } - - if (e.Button != MouseButtons.Right) return; - - // 도킹 가능한 노드인지 또는 작업 노드인지 확인 - if (mapnode.isDockingNode == false) return; - - ContextMenuStrip menu = new ContextMenuStrip(); - - // PickOn - var pickOn = new ToolStripMenuItem("Pick On (Move & Pick)"); - pickOn.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.PickOnEnter); - menu.Items.Add(pickOn); - - // PickOff - var pickOff = new ToolStripMenuItem("Pick Off (Move & Drop)"); - pickOff.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.PickOffEnter); - menu.Items.Add(pickOff); - - // Charge - if (mapnode.StationType == StationType.Charger1 || mapnode.StationType == StationType.Charger2) - { - var charge = new ToolStripMenuItem("Charge (Move & Charge)"); - charge.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.Charger); - menu.Items.Add(charge); - } - - menu.Show(Cursor.Position); - - - - } - - private void ExecuteManualCommand(MapNode targetNode, ENIGProtocol.AGVCommandHE cmd) - { - if (PUB._virtualAGV.CurrentNode == null) - { - MessageBox.Show("AGV의 현재 위치를 알 수 없습니다."); - return; - } - if (PUB.sm.Step == eSMStep.IDLE) - { - if (MessageBox.Show("현재 대기상태가 아닙니다. 강제로 실행하시겠습니까?", "Warning", MessageBoxButtons.YesNo) == DialogResult.No) return; - } - - if (targetNode.isDockingNode == false) - { - UTIL.MsgE("이동 가능한 노드가 아닙니다"); - } - - // 1. 경로 생성 - var pathFinder = new AGVNavigationCore.PathFinding.Planning.AGVPathfinder(PUB._mapCanvas.Nodes); - - //// 현재위치에서 목표위치까지 - //var result = pathFinder.FindBasicPath(PUB._virtualAGV.CurrentNode, targetNode); - - //if (!result.Success || result.Path == null || result.Path.Count == 0) - //{ - // MessageBox.Show("경로를 찾을 수 없습니다."); - // return; - //} - - // 2. 상태 설정 - - // 2. 상태 설정 - if (targetNode is MapNode mapno) - PUB.log.AddI($"[Manual Command] {cmd} to {mapno.RfidId}({targetNode.Id})"); - else - PUB.log.AddI($"[Manual Command] {cmd} to ({targetNode.Id})"); - - // FindPathResult contains DetailedPath already. - // PUB._virtualAGV.SetPath(result); - PUB._virtualAGV.TargetNode = targetNode as MapNode; - - // 3. 작업 설정 - PUB.NextWorkCmd = cmd; - - // 4. 실행 - PUB.sm.SetNewRunStep(ERunStep.GOTO); // GOTO -> Arrive -> _IN sequence execution - } - - - private void fAuto_Load(object sender, EventArgs e) - { - ctlAuto1.dev_agv = PUB.AGV; - ctlAuto1.dev_bms = PUB.BMS; - ctlAuto1.dev_xbe = PUB.XBE; - - PUB.AGV.DataReceive += AGV_DataReceive; - - this.timer1.Start(); - } - private void AGV_DataReceive(object sender, arDev.Narumi.DataEventArgs e) - { - switch (e.DataType) - { - case arDev.Narumi.DataType.TAG: - //_AGV 파일에서 위치조정을 함 - //var tagno = PUB.AGV.data.TagNo; - //PUB.mapctl.SetCurrentPosition(tagno); - break; - } - } - - private void CtlAuto1_ButtonClick(CtlAuto.UIButton idx) - { - if (idx.cmd.Equals("EMG")) - { - PUB.log.Add("ui reset click"); - PUB.AGV.AGVErrorReset(); - } - } - - private void Sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e) - { - if (e.New == eSMStep.INIT || e.New == eSMStep.SYNC) - this.ctlAuto1.Scean = CtlAuto.eScean.Progress; - else - this.ctlAuto1.Scean = CtlAuto.eScean.Normal; - } - - private void FAuto_FormClosed(object sender, FormClosedEventArgs e) - { - timer1.Stop(); - PUB.sm.StepChanged -= Sm_StepChanged; - this.ctlAuto1.ButtonClick -= CtlAuto1_ButtonClick; - PUB.AGV.DataReceive -= AGV_DataReceive; - } - - bool tmrun = false; - - private void fAuto_VisibleChanged(object sender, EventArgs e) - { - this.timer1.Enabled = this.Visible; - if (timer1.Enabled) - { - timer1.Start(); - } - else timer1.Stop(); - } - - private void timer1_Tick_1(object sender, EventArgs e) - { - //if (this.Visible == false) return; - //if (tmrun == true) return; - //tmrun = true; - - //this.ctlAuto1.OnUpdateMode = true; - - //if (this.ctlAuto1.Scean == CtlAuto.eScean.Progress) - //{ - // ctlAuto1.ProgressVal = PUB.Result.SMSG_ProgressValue; - // ctlAuto1.ProgressMax = PUB.Result.SMSG_ProgressMax; - // ctlAuto1.StatusMessage = VAR.STR?.Get(eVarString.StatusMessage) ?? string.Empty; - //} - //this.ctlAuto1.StopMessage = string.Empty; - - //if (PUB.sm.Step == StateMachine.eSMStep.RUN) - //{ - // this.ctlAuto1.runStep = PUB.sm.RunStep; - //} - //else - //{ - // this.ctlAuto1.runStep = ERunStep.READY; - //} - //this.ctlAuto1.OnUpdateMode = false; - //this.ctlAuto1.Invalidate(); - - //PUB.mapctl.PredictNextAction(); - - //tmrun = false; - } - - private void HandleRunModeClick(MapNode targetNode) - { - if (targetNode == null) return; - - ENIGProtocol.AGVCommandHE targetCmd = ENIGProtocol.AGVCommandHE.Goto; - string confirmMsg = ""; - - if (targetNode.StationType == StationType.Charger1 || targetNode.StationType == StationType.Charger2) - { - if (MessageBox.Show($"[{targetNode.Id}] 충전기로 이동하여 충전을 진행하시겠습니까?", "작업 확인", MessageBoxButtons.YesNo) == DialogResult.Yes) - { - targetCmd = ENIGProtocol.AGVCommandHE.Charger; - ExecuteManualCommand(targetNode, targetCmd); - } - return; - } - else if (targetNode.isDockingNode) - { - // Loader, Unloader, Buffer, Cleaner - Pick/Drop Selection - ContextMenuStrip menu = new ContextMenuStrip(); - - var pickOn = new ToolStripMenuItem("Pick On (Move & Pick)"); - pickOn.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOnEnter); - menu.Items.Add(pickOn); - - var pickOff = new ToolStripMenuItem("Pick Off (Move & Drop)"); - pickOff.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOffEnter); - menu.Items.Add(pickOff); - - menu.Show(Cursor.Position); - return; - } - else - { - // Normal Node - if (MessageBox.Show($"[{targetNode.Id}] 노드로 이동하시겠습니까?", "이동 확인", MessageBoxButtons.YesNo) == DialogResult.Yes) - { - targetCmd = ENIGProtocol.AGVCommandHE.Goto; - ExecuteManualCommand(targetNode, targetCmd); - } - return; - } - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Project.StateMachine; +using COMM; +using AR; +using AGVNavigationCore.Models; + +namespace Project.ViewForm +{ + public partial class fAuto : Form + { + + public fAuto() + { + InitializeComponent(); + this.FormClosed += FAuto_FormClosed; + PUB.sm.StepChanged += Sm_StepChanged; + this.ctlAuto1.ButtonClick += CtlAuto1_ButtonClick; + if (PUB.sm.Step == eSMStep.INIT || PUB.sm.Step == eSMStep.SYNC) + this.ctlAuto1.Scean = CtlAuto.eScean.Progress; + else + this.ctlAuto1.Scean = CtlAuto.eScean.Normal; + + InitializeMapCanvas(); + + } + + private void InitializeMapCanvas() + { + PUB._mapCanvas.NodeSelect += OnNodeSelected;; + // 스플리터 패널에 맵 캔버스 추가 + panel1.Controls.Add(PUB._mapCanvas); + } + + + private void OnNodeSelected(object sender, NodeBase node, MouseEventArgs e) + { + if (node == null) return; + var mapnode = node as MapNode; + if (mapnode == null) return; + + // [Run Mode] Left Click: AGV Operation + if (PUB._mapCanvas.Mode == AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run && e.Button == MouseButtons.Left) + { + HandleRunModeClick(mapnode); + return; + } + + if (e.Button != MouseButtons.Right) return; + + // 도킹 가능한 노드인지 또는 작업 노드인지 확인 + if (mapnode.isDockingNode == false) return; + + ContextMenuStrip menu = new ContextMenuStrip(); + + // PickOn + var pickOn = new ToolStripMenuItem("Pick On (Move & Pick)"); + pickOn.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.PickOnEnter); + menu.Items.Add(pickOn); + + // PickOff + var pickOff = new ToolStripMenuItem("Pick Off (Move & Drop)"); + pickOff.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.PickOffEnter); + menu.Items.Add(pickOff); + + // Charge + if (mapnode.StationType == StationType.Charger1 || mapnode.StationType == StationType.Charger2) + { + var charge = new ToolStripMenuItem("Charge (Move & Charge)"); + charge.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.Charger); + menu.Items.Add(charge); + } + + menu.Show(Cursor.Position); + + + + } + + private void ExecuteManualCommand(MapNode targetNode, ENIGProtocol.AGVCommandHE cmd) + { + if (PUB._virtualAGV.CurrentNode == null) + { + MessageBox.Show("AGV의 현재 위치를 알 수 없습니다."); + return; + } + if (PUB.sm.Step == eSMStep.IDLE) + { + if (MessageBox.Show("현재 대기상태가 아닙니다. 강제로 실행하시겠습니까?", "Warning", MessageBoxButtons.YesNo) == DialogResult.No) return; + } + + if (targetNode.isDockingNode == false) + { + UTIL.MsgE("이동 가능한 노드가 아닙니다"); + } + + // 1. 경로 생성 + var pathFinder = new AGVNavigationCore.PathFinding.Planning.AGVPathfinder(PUB._mapCanvas.Nodes); + + //// 현재위치에서 목표위치까지 + //var result = pathFinder.FindBasicPath(PUB._virtualAGV.CurrentNode, targetNode); + + //if (!result.Success || result.Path == null || result.Path.Count == 0) + //{ + // MessageBox.Show("경로를 찾을 수 없습니다."); + // return; + //} + + // 2. 상태 설정 + + // 2. 상태 설정 + if (targetNode is MapNode mapno) + PUB.log.AddI($"[Manual Command] {cmd} to {mapno.RfidId}({targetNode.Id})"); + else + PUB.log.AddI($"[Manual Command] {cmd} to ({targetNode.Id})"); + + // FindPathResult contains DetailedPath already. + // PUB._virtualAGV.SetPath(result); + PUB._virtualAGV.TargetNode = targetNode as MapNode; + + // 3. 작업 설정 + PUB.NextWorkCmd = cmd; + + // 4. 실행 + PUB.sm.SetNewRunStep(ERunStep.GOTO); // GOTO -> Arrive -> _IN sequence execution + } + + + private void fAuto_Load(object sender, EventArgs e) + { + ctlAuto1.dev_agv = PUB.AGV; + ctlAuto1.dev_bms = PUB.BMS; + ctlAuto1.dev_xbe = PUB.XBE; + + PUB.AGV.DataReceive += AGV_DataReceive; + + this.timer1.Start(); + } + private void AGV_DataReceive(object sender, arDev.Narumi.DataEventArgs e) + { + switch (e.DataType) + { + case arDev.Narumi.DataType.TAG: + //_AGV 파일에서 위치조정을 함 + //var tagno = PUB.AGV.data.TagNo; + //PUB.mapctl.SetCurrentPosition(tagno); + break; + } + } + + private void CtlAuto1_ButtonClick(CtlAuto.UIButton idx) + { + if (idx.cmd.Equals("EMG")) + { + PUB.log.Add("ui reset click"); + PUB.AGV.AGVErrorReset(); + } + } + + private void Sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e) + { + if (e.New == eSMStep.INIT || e.New == eSMStep.SYNC) + this.ctlAuto1.Scean = CtlAuto.eScean.Progress; + else + this.ctlAuto1.Scean = CtlAuto.eScean.Normal; + } + + private void FAuto_FormClosed(object sender, FormClosedEventArgs e) + { + timer1.Stop(); + PUB.sm.StepChanged -= Sm_StepChanged; + this.ctlAuto1.ButtonClick -= CtlAuto1_ButtonClick; + PUB.AGV.DataReceive -= AGV_DataReceive; + } + + bool tmrun = false; + + private void fAuto_VisibleChanged(object sender, EventArgs e) + { + this.timer1.Enabled = this.Visible; + if (timer1.Enabled) + { + timer1.Start(); + } + else timer1.Stop(); + } + + private void timer1_Tick_1(object sender, EventArgs e) + { + //if (this.Visible == false) return; + //if (tmrun == true) return; + //tmrun = true; + + //this.ctlAuto1.OnUpdateMode = true; + + //if (this.ctlAuto1.Scean == CtlAuto.eScean.Progress) + //{ + // ctlAuto1.ProgressVal = PUB.Result.SMSG_ProgressValue; + // ctlAuto1.ProgressMax = PUB.Result.SMSG_ProgressMax; + // ctlAuto1.StatusMessage = VAR.STR?.Get(eVarString.StatusMessage) ?? string.Empty; + //} + //this.ctlAuto1.StopMessage = string.Empty; + + //if (PUB.sm.Step == StateMachine.eSMStep.RUN) + //{ + // this.ctlAuto1.runStep = PUB.sm.RunStep; + //} + //else + //{ + // this.ctlAuto1.runStep = ERunStep.READY; + //} + //this.ctlAuto1.OnUpdateMode = false; + //this.ctlAuto1.Invalidate(); + + //PUB.mapctl.PredictNextAction(); + + //tmrun = false; + } + + private void HandleRunModeClick(MapNode targetNode) + { + if (targetNode == null) return; + + ENIGProtocol.AGVCommandHE targetCmd = ENIGProtocol.AGVCommandHE.Goto; + string confirmMsg = ""; + + if (targetNode.StationType == StationType.Charger1 || targetNode.StationType == StationType.Charger2) + { + if (MessageBox.Show($"[{targetNode.Id}] 충전기로 이동하여 충전을 진행하시겠습니까?", "작업 확인", MessageBoxButtons.YesNo) == DialogResult.Yes) + { + targetCmd = ENIGProtocol.AGVCommandHE.Charger; + ExecuteManualCommand(targetNode, targetCmd); + } + return; + } + else if (targetNode.isDockingNode) + { + // Loader, Unloader, Buffer, Cleaner - Pick/Drop Selection + ContextMenuStrip menu = new ContextMenuStrip(); + + var pickOn = new ToolStripMenuItem("Pick On (Move & Pick)"); + pickOn.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOnEnter); + menu.Items.Add(pickOn); + + var pickOff = new ToolStripMenuItem("Pick Off (Move & Drop)"); + pickOff.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOffEnter); + menu.Items.Add(pickOff); + + menu.Show(Cursor.Position); + return; + } + else + { + // Normal Node + if (MessageBox.Show($"[{targetNode.Id}] 노드로 이동하시겠습니까?", "이동 확인", MessageBoxButtons.YesNo) == DialogResult.Yes) + { + targetCmd = ENIGProtocol.AGVCommandHE.Goto; + ExecuteManualCommand(targetNode, targetCmd); + } + return; + } + } + } +} diff --git a/Cs_HMI/Project/ViewForm/fAuto.resx b/HMI/Project/ViewForm/fAuto.resx similarity index 97% rename from Cs_HMI/Project/ViewForm/fAuto.resx rename to HMI/Project/ViewForm/fAuto.resx index aac33d5..1f666f2 100644 --- a/Cs_HMI/Project/ViewForm/fAuto.resx +++ b/HMI/Project/ViewForm/fAuto.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fBms.Designer.cs b/HMI/Project/ViewForm/fBms.Designer.cs similarity index 98% rename from Cs_HMI/Project/ViewForm/fBms.Designer.cs rename to HMI/Project/ViewForm/fBms.Designer.cs index e313563..1d8edc4 100644 --- a/Cs_HMI/Project/ViewForm/fBms.Designer.cs +++ b/HMI/Project/ViewForm/fBms.Designer.cs @@ -1,658 +1,658 @@ -namespace Project.ViewForm -{ - partial class fBms - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.lbcvSt = new System.Windows.Forms.Label(); - this.panel11 = new System.Windows.Forms.Panel(); - this.lbtemp2 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.panel10 = new System.Windows.Forms.Panel(); - this.lbTemp1 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.panel9 = new System.Windows.Forms.Panel(); - this.cv8 = new System.Windows.Forms.Label(); - this.label16 = new System.Windows.Forms.Label(); - this.panel8 = new System.Windows.Forms.Panel(); - this.cv7 = new System.Windows.Forms.Label(); - this.label14 = new System.Windows.Forms.Label(); - this.panel7 = new System.Windows.Forms.Panel(); - this.cv6 = new System.Windows.Forms.Label(); - this.label12 = new System.Windows.Forms.Label(); - this.panel6 = new System.Windows.Forms.Panel(); - this.cv5 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.panel5 = new System.Windows.Forms.Panel(); - this.cv4 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.panel4 = new System.Windows.Forms.Panel(); - this.cv3 = new System.Windows.Forms.Label(); - this.label6 = new System.Windows.Forms.Label(); - this.panel3 = new System.Windows.Forms.Panel(); - this.cv2 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.panel2 = new System.Windows.Forms.Panel(); - this.cv1 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.button2 = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.arLabel1 = new arCtl.arLabel(); - this.lbinfost = new System.Windows.Forms.Label(); - this.lbCycle = new System.Windows.Forms.Label(); - this.panel1.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.panel11.SuspendLayout(); - this.panel10.SuspendLayout(); - this.groupBox1.SuspendLayout(); - this.panel9.SuspendLayout(); - this.panel8.SuspendLayout(); - this.panel7.SuspendLayout(); - this.panel6.SuspendLayout(); - this.panel5.SuspendLayout(); - this.panel4.SuspendLayout(); - this.panel3.SuspendLayout(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // timer1 - // - this.timer1.Interval = 200; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - // - // panel1 - // - this.panel1.Controls.Add(this.groupBox2); - this.panel1.Controls.Add(this.groupBox1); - this.panel1.Controls.Add(this.button2); - this.panel1.Controls.Add(this.button1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Left; - this.panel1.Location = new System.Drawing.Point(3, 3); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(187, 577); - this.panel1.TabIndex = 0; - // - // groupBox2 - // - this.groupBox2.Controls.Add(this.lbcvSt); - this.groupBox2.Controls.Add(this.panel11); - this.groupBox2.Controls.Add(this.panel10); - this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox2.ForeColor = System.Drawing.Color.White; - this.groupBox2.Location = new System.Drawing.Point(0, 465); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Size = new System.Drawing.Size(187, 112); - this.groupBox2.TabIndex = 3; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "Temp"; - // - // lbcvSt - // - this.lbcvSt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.lbcvSt.AutoSize = true; - this.lbcvSt.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.lbcvSt.ForeColor = System.Drawing.Color.White; - this.lbcvSt.Location = new System.Drawing.Point(148, 82); - this.lbcvSt.Name = "lbcvSt"; - this.lbcvSt.Size = new System.Drawing.Size(39, 27); - this.lbcvSt.TabIndex = 8; - this.lbcvSt.Text = "●"; - // - // panel11 - // - this.panel11.Controls.Add(this.lbtemp2); - this.panel11.Controls.Add(this.label7); - this.panel11.Dock = System.Windows.Forms.DockStyle.Top; - this.panel11.Location = new System.Drawing.Point(3, 57); - this.panel11.Name = "panel11"; - this.panel11.Size = new System.Drawing.Size(181, 40); - this.panel11.TabIndex = 10; - // - // lbtemp2 - // - this.lbtemp2.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbtemp2.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbtemp2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.lbtemp2.Location = new System.Drawing.Point(47, 0); - this.lbtemp2.Name = "lbtemp2"; - this.lbtemp2.Size = new System.Drawing.Size(134, 40); - this.lbtemp2.TabIndex = 0; - this.lbtemp2.Text = "--"; - this.lbtemp2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label7 - // - this.label7.Dock = System.Windows.Forms.DockStyle.Left; - this.label7.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label7.Location = new System.Drawing.Point(0, 0); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(47, 40); - this.label7.TabIndex = 0; - this.label7.Text = "#2"; - this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel10 - // - this.panel10.Controls.Add(this.lbTemp1); - this.panel10.Controls.Add(this.label3); - this.panel10.Dock = System.Windows.Forms.DockStyle.Top; - this.panel10.Location = new System.Drawing.Point(3, 17); - this.panel10.Name = "panel10"; - this.panel10.Size = new System.Drawing.Size(181, 40); - this.panel10.TabIndex = 9; - // - // lbTemp1 - // - this.lbTemp1.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbTemp1.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbTemp1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.lbTemp1.Location = new System.Drawing.Point(47, 0); - this.lbTemp1.Name = "lbTemp1"; - this.lbTemp1.Size = new System.Drawing.Size(134, 40); - this.lbTemp1.TabIndex = 0; - this.lbTemp1.Text = "--"; - this.lbTemp1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label3 - // - this.label3.Dock = System.Windows.Forms.DockStyle.Left; - this.label3.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label3.Location = new System.Drawing.Point(0, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(47, 40); - this.label3.TabIndex = 0; - this.label3.Text = "#1"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.panel9); - this.groupBox1.Controls.Add(this.panel8); - this.groupBox1.Controls.Add(this.panel7); - this.groupBox1.Controls.Add(this.panel6); - this.groupBox1.Controls.Add(this.panel5); - this.groupBox1.Controls.Add(this.panel4); - this.groupBox1.Controls.Add(this.panel3); - this.groupBox1.Controls.Add(this.panel2); - this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox1.ForeColor = System.Drawing.Color.White; - this.groupBox1.Location = new System.Drawing.Point(0, 118); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(187, 347); - this.groupBox1.TabIndex = 2; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Cell voltage"; - // - // panel9 - // - this.panel9.Controls.Add(this.cv8); - this.panel9.Controls.Add(this.label16); - this.panel9.Dock = System.Windows.Forms.DockStyle.Top; - this.panel9.Location = new System.Drawing.Point(3, 297); - this.panel9.Name = "panel9"; - this.panel9.Size = new System.Drawing.Size(181, 40); - this.panel9.TabIndex = 7; - // - // cv8 - // - this.cv8.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv8.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv8.Location = new System.Drawing.Point(47, 0); - this.cv8.Name = "cv8"; - this.cv8.Size = new System.Drawing.Size(134, 40); - this.cv8.TabIndex = 0; - this.cv8.Text = "--"; - this.cv8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label16 - // - this.label16.Dock = System.Windows.Forms.DockStyle.Left; - this.label16.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label16.Location = new System.Drawing.Point(0, 0); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(47, 40); - this.label16.TabIndex = 0; - this.label16.Text = "#8"; - this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel8 - // - this.panel8.Controls.Add(this.cv7); - this.panel8.Controls.Add(this.label14); - this.panel8.Dock = System.Windows.Forms.DockStyle.Top; - this.panel8.Location = new System.Drawing.Point(3, 257); - this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(181, 40); - this.panel8.TabIndex = 6; - this.panel8.Paint += new System.Windows.Forms.PaintEventHandler(this.panel8_Paint); - // - // cv7 - // - this.cv7.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv7.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv7.Location = new System.Drawing.Point(47, 0); - this.cv7.Name = "cv7"; - this.cv7.Size = new System.Drawing.Size(134, 40); - this.cv7.TabIndex = 0; - this.cv7.Text = "--"; - this.cv7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label14 - // - this.label14.Dock = System.Windows.Forms.DockStyle.Left; - this.label14.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label14.Location = new System.Drawing.Point(0, 0); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(47, 40); - this.label14.TabIndex = 0; - this.label14.Text = "#7"; - this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel7 - // - this.panel7.Controls.Add(this.cv6); - this.panel7.Controls.Add(this.label12); - this.panel7.Dock = System.Windows.Forms.DockStyle.Top; - this.panel7.Location = new System.Drawing.Point(3, 217); - this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(181, 40); - this.panel7.TabIndex = 5; - // - // cv6 - // - this.cv6.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv6.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv6.Location = new System.Drawing.Point(47, 0); - this.cv6.Name = "cv6"; - this.cv6.Size = new System.Drawing.Size(134, 40); - this.cv6.TabIndex = 0; - this.cv6.Text = "--"; - this.cv6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label12 - // - this.label12.Dock = System.Windows.Forms.DockStyle.Left; - this.label12.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label12.Location = new System.Drawing.Point(0, 0); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(47, 40); - this.label12.TabIndex = 0; - this.label12.Text = "#6"; - this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel6 - // - this.panel6.Controls.Add(this.cv5); - this.panel6.Controls.Add(this.label10); - this.panel6.Dock = System.Windows.Forms.DockStyle.Top; - this.panel6.Location = new System.Drawing.Point(3, 177); - this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(181, 40); - this.panel6.TabIndex = 4; - this.panel6.Paint += new System.Windows.Forms.PaintEventHandler(this.panel6_Paint); - // - // cv5 - // - this.cv5.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv5.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv5.Location = new System.Drawing.Point(47, 0); - this.cv5.Name = "cv5"; - this.cv5.Size = new System.Drawing.Size(134, 40); - this.cv5.TabIndex = 0; - this.cv5.Text = "--"; - this.cv5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label10 - // - this.label10.Dock = System.Windows.Forms.DockStyle.Left; - this.label10.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label10.Location = new System.Drawing.Point(0, 0); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(47, 40); - this.label10.TabIndex = 0; - this.label10.Text = "#5"; - this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel5 - // - this.panel5.Controls.Add(this.cv4); - this.panel5.Controls.Add(this.label8); - this.panel5.Dock = System.Windows.Forms.DockStyle.Top; - this.panel5.Location = new System.Drawing.Point(3, 137); - this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(181, 40); - this.panel5.TabIndex = 3; - // - // cv4 - // - this.cv4.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv4.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv4.Location = new System.Drawing.Point(47, 0); - this.cv4.Name = "cv4"; - this.cv4.Size = new System.Drawing.Size(134, 40); - this.cv4.TabIndex = 0; - this.cv4.Text = "--"; - this.cv4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label8 - // - this.label8.Dock = System.Windows.Forms.DockStyle.Left; - this.label8.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label8.Location = new System.Drawing.Point(0, 0); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(47, 40); - this.label8.TabIndex = 0; - this.label8.Text = "#4"; - this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel4 - // - this.panel4.Controls.Add(this.cv3); - this.panel4.Controls.Add(this.label6); - this.panel4.Dock = System.Windows.Forms.DockStyle.Top; - this.panel4.Location = new System.Drawing.Point(3, 97); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(181, 40); - this.panel4.TabIndex = 2; - this.panel4.Paint += new System.Windows.Forms.PaintEventHandler(this.panel4_Paint); - // - // cv3 - // - this.cv3.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv3.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv3.Location = new System.Drawing.Point(47, 0); - this.cv3.Name = "cv3"; - this.cv3.Size = new System.Drawing.Size(134, 40); - this.cv3.TabIndex = 0; - this.cv3.Text = "--"; - this.cv3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label6 - // - this.label6.Dock = System.Windows.Forms.DockStyle.Left; - this.label6.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label6.Location = new System.Drawing.Point(0, 0); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(47, 40); - this.label6.TabIndex = 0; - this.label6.Text = "#3"; - this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel3 - // - this.panel3.Controls.Add(this.cv2); - this.panel3.Controls.Add(this.label4); - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(3, 57); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(181, 40); - this.panel3.TabIndex = 1; - this.panel3.Paint += new System.Windows.Forms.PaintEventHandler(this.panel3_Paint); - // - // cv2 - // - this.cv2.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv2.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv2.Location = new System.Drawing.Point(47, 0); - this.cv2.Name = "cv2"; - this.cv2.Size = new System.Drawing.Size(134, 40); - this.cv2.TabIndex = 0; - this.cv2.Text = "--"; - this.cv2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label4 - // - this.label4.Dock = System.Windows.Forms.DockStyle.Left; - this.label4.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label4.Location = new System.Drawing.Point(0, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(47, 40); - this.label4.TabIndex = 0; - this.label4.Text = "#2"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel2 - // - this.panel2.Controls.Add(this.cv1); - this.panel2.Controls.Add(this.label1); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(3, 17); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(181, 40); - this.panel2.TabIndex = 0; - // - // cv1 - // - this.cv1.Dock = System.Windows.Forms.DockStyle.Fill; - this.cv1.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cv1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.cv1.Location = new System.Drawing.Point(47, 0); - this.cv1.Name = "cv1"; - this.cv1.Size = new System.Drawing.Size(134, 40); - this.cv1.TabIndex = 0; - this.cv1.Text = "--"; - this.cv1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label1 - // - this.label1.Dock = System.Windows.Forms.DockStyle.Left; - this.label1.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); - this.label1.Location = new System.Drawing.Point(0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(47, 40); - this.label1.TabIndex = 0; - this.label1.Text = "#1"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // button2 - // - this.button2.Dock = System.Windows.Forms.DockStyle.Top; - this.button2.Location = new System.Drawing.Point(0, 59); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(187, 59); - this.button2.TabIndex = 1; - this.button2.Text = "Query Cell Voltage"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // button1 - // - this.button1.Dock = System.Windows.Forms.DockStyle.Top; - this.button1.Location = new System.Drawing.Point(0, 0); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(187, 59); - this.button1.TabIndex = 0; - this.button1.Text = "Query Remain"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // arLabel1 - // - this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.arLabel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel1.BorderColor = System.Drawing.Color.Red; - this.arLabel1.BorderColorOver = System.Drawing.Color.Red; - this.arLabel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel1.Cursor = System.Windows.Forms.Cursors.Arrow; - this.arLabel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.arLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 150F, System.Drawing.FontStyle.Bold); - this.arLabel1.ForeColor = System.Drawing.Color.White; - this.arLabel1.GradientEnable = true; - this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.arLabel1.GradientRepeatBG = false; - this.arLabel1.isButton = false; - this.arLabel1.Location = new System.Drawing.Point(190, 3); - this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel1.msg = null; - this.arLabel1.Name = "arLabel1"; - this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black; - this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel1.ProgressEnable = false; - this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel1.ProgressMax = 100F; - this.arLabel1.ProgressMin = 0F; - this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel1.ProgressValue = 0F; - this.arLabel1.ShadowColor = System.Drawing.Color.WhiteSmoke; - this.arLabel1.Sign = "26.5v"; - this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel1.SignColor = System.Drawing.Color.Yellow; - this.arLabel1.SignFont = new System.Drawing.Font("Microsoft Sans Serif", 50F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); - this.arLabel1.Size = new System.Drawing.Size(863, 577); - this.arLabel1.TabIndex = 1; - this.arLabel1.Text = "80%"; - this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel1.TextShadow = false; - this.arLabel1.TextVisible = true; - // - // lbinfost - // - this.lbinfost.AutoSize = true; - this.lbinfost.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.lbinfost.ForeColor = System.Drawing.Color.White; - this.lbinfost.Location = new System.Drawing.Point(194, 8); - this.lbinfost.Name = "lbinfost"; - this.lbinfost.Size = new System.Drawing.Size(39, 27); - this.lbinfost.TabIndex = 2; - this.lbinfost.Text = "●"; - // - // lbCycle - // - this.lbCycle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.lbCycle.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbCycle.ForeColor = System.Drawing.Color.SkyBlue; - this.lbCycle.Location = new System.Drawing.Point(296, 8); - this.lbCycle.Name = "lbCycle"; - this.lbCycle.Size = new System.Drawing.Size(749, 27); - this.lbCycle.TabIndex = 3; - this.lbCycle.Text = "Cycle(2)"; - this.lbCycle.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // fBms - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); - this.ClientSize = new System.Drawing.Size(1056, 583); - this.Controls.Add(this.lbCycle); - this.Controls.Add(this.lbinfost); - this.Controls.Add(this.arLabel1); - this.Controls.Add(this.panel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "fBms"; - this.Padding = new System.Windows.Forms.Padding(3); - this.Text = "fFlag"; - this.Load += new System.EventHandler(this.fFlag_Load); - this.VisibleChanged += new System.EventHandler(this.fAgv_VisibleChanged); - this.panel1.ResumeLayout(false); - this.groupBox2.ResumeLayout(false); - this.groupBox2.PerformLayout(); - this.panel11.ResumeLayout(false); - this.panel10.ResumeLayout(false); - this.groupBox1.ResumeLayout(false); - this.panel9.ResumeLayout(false); - this.panel8.ResumeLayout(false); - this.panel7.ResumeLayout(false); - this.panel6.ResumeLayout(false); - this.panel5.ResumeLayout(false); - this.panel4.ResumeLayout(false); - this.panel3.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button button1; - private arCtl.arLabel arLabel1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label cv1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Panel panel9; - private System.Windows.Forms.Label cv8; - private System.Windows.Forms.Label label16; - private System.Windows.Forms.Panel panel8; - private System.Windows.Forms.Label cv7; - private System.Windows.Forms.Label label14; - private System.Windows.Forms.Panel panel7; - private System.Windows.Forms.Label cv6; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.Panel panel6; - private System.Windows.Forms.Label cv5; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.Panel panel5; - private System.Windows.Forms.Label cv4; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Label cv3; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Label cv2; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label lbinfost; - private System.Windows.Forms.Label lbcvSt; - private System.Windows.Forms.GroupBox groupBox2; - private System.Windows.Forms.Panel panel11; - private System.Windows.Forms.Label lbtemp2; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Panel panel10; - private System.Windows.Forms.Label lbTemp1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label lbCycle; - } +namespace Project.ViewForm +{ + partial class fBms + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.panel1 = new System.Windows.Forms.Panel(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.lbcvSt = new System.Windows.Forms.Label(); + this.panel11 = new System.Windows.Forms.Panel(); + this.lbtemp2 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.panel10 = new System.Windows.Forms.Panel(); + this.lbTemp1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.panel9 = new System.Windows.Forms.Panel(); + this.cv8 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.panel8 = new System.Windows.Forms.Panel(); + this.cv7 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.panel7 = new System.Windows.Forms.Panel(); + this.cv6 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.panel6 = new System.Windows.Forms.Panel(); + this.cv5 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.panel5 = new System.Windows.Forms.Panel(); + this.cv4 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.cv3 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.panel3 = new System.Windows.Forms.Panel(); + this.cv2 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.cv1 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.arLabel1 = new arCtl.arLabel(); + this.lbinfost = new System.Windows.Forms.Label(); + this.lbCycle = new System.Windows.Forms.Label(); + this.panel1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.panel11.SuspendLayout(); + this.panel10.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.panel9.SuspendLayout(); + this.panel8.SuspendLayout(); + this.panel7.SuspendLayout(); + this.panel6.SuspendLayout(); + this.panel5.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // timer1 + // + this.timer1.Interval = 200; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // panel1 + // + this.panel1.Controls.Add(this.groupBox2); + this.panel1.Controls.Add(this.groupBox1); + this.panel1.Controls.Add(this.button2); + this.panel1.Controls.Add(this.button1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Left; + this.panel1.Location = new System.Drawing.Point(3, 3); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(187, 577); + this.panel1.TabIndex = 0; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.lbcvSt); + this.groupBox2.Controls.Add(this.panel11); + this.groupBox2.Controls.Add(this.panel10); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox2.ForeColor = System.Drawing.Color.White; + this.groupBox2.Location = new System.Drawing.Point(0, 465); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(187, 112); + this.groupBox2.TabIndex = 3; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Temp"; + // + // lbcvSt + // + this.lbcvSt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lbcvSt.AutoSize = true; + this.lbcvSt.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbcvSt.ForeColor = System.Drawing.Color.White; + this.lbcvSt.Location = new System.Drawing.Point(148, 82); + this.lbcvSt.Name = "lbcvSt"; + this.lbcvSt.Size = new System.Drawing.Size(39, 27); + this.lbcvSt.TabIndex = 8; + this.lbcvSt.Text = "●"; + // + // panel11 + // + this.panel11.Controls.Add(this.lbtemp2); + this.panel11.Controls.Add(this.label7); + this.panel11.Dock = System.Windows.Forms.DockStyle.Top; + this.panel11.Location = new System.Drawing.Point(3, 57); + this.panel11.Name = "panel11"; + this.panel11.Size = new System.Drawing.Size(181, 40); + this.panel11.TabIndex = 10; + // + // lbtemp2 + // + this.lbtemp2.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbtemp2.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbtemp2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.lbtemp2.Location = new System.Drawing.Point(47, 0); + this.lbtemp2.Name = "lbtemp2"; + this.lbtemp2.Size = new System.Drawing.Size(134, 40); + this.lbtemp2.TabIndex = 0; + this.lbtemp2.Text = "--"; + this.lbtemp2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.Dock = System.Windows.Forms.DockStyle.Left; + this.label7.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label7.Location = new System.Drawing.Point(0, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(47, 40); + this.label7.TabIndex = 0; + this.label7.Text = "#2"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel10 + // + this.panel10.Controls.Add(this.lbTemp1); + this.panel10.Controls.Add(this.label3); + this.panel10.Dock = System.Windows.Forms.DockStyle.Top; + this.panel10.Location = new System.Drawing.Point(3, 17); + this.panel10.Name = "panel10"; + this.panel10.Size = new System.Drawing.Size(181, 40); + this.panel10.TabIndex = 9; + // + // lbTemp1 + // + this.lbTemp1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTemp1.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTemp1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.lbTemp1.Location = new System.Drawing.Point(47, 0); + this.lbTemp1.Name = "lbTemp1"; + this.lbTemp1.Size = new System.Drawing.Size(134, 40); + this.lbTemp1.TabIndex = 0; + this.lbTemp1.Text = "--"; + this.lbTemp1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Left; + this.label3.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label3.Location = new System.Drawing.Point(0, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(47, 40); + this.label3.TabIndex = 0; + this.label3.Text = "#1"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.panel9); + this.groupBox1.Controls.Add(this.panel8); + this.groupBox1.Controls.Add(this.panel7); + this.groupBox1.Controls.Add(this.panel6); + this.groupBox1.Controls.Add(this.panel5); + this.groupBox1.Controls.Add(this.panel4); + this.groupBox1.Controls.Add(this.panel3); + this.groupBox1.Controls.Add(this.panel2); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.ForeColor = System.Drawing.Color.White; + this.groupBox1.Location = new System.Drawing.Point(0, 118); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(187, 347); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Cell voltage"; + // + // panel9 + // + this.panel9.Controls.Add(this.cv8); + this.panel9.Controls.Add(this.label16); + this.panel9.Dock = System.Windows.Forms.DockStyle.Top; + this.panel9.Location = new System.Drawing.Point(3, 297); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(181, 40); + this.panel9.TabIndex = 7; + // + // cv8 + // + this.cv8.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv8.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv8.Location = new System.Drawing.Point(47, 0); + this.cv8.Name = "cv8"; + this.cv8.Size = new System.Drawing.Size(134, 40); + this.cv8.TabIndex = 0; + this.cv8.Text = "--"; + this.cv8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label16 + // + this.label16.Dock = System.Windows.Forms.DockStyle.Left; + this.label16.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label16.Location = new System.Drawing.Point(0, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(47, 40); + this.label16.TabIndex = 0; + this.label16.Text = "#8"; + this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel8 + // + this.panel8.Controls.Add(this.cv7); + this.panel8.Controls.Add(this.label14); + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(3, 257); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(181, 40); + this.panel8.TabIndex = 6; + this.panel8.Paint += new System.Windows.Forms.PaintEventHandler(this.panel8_Paint); + // + // cv7 + // + this.cv7.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv7.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv7.Location = new System.Drawing.Point(47, 0); + this.cv7.Name = "cv7"; + this.cv7.Size = new System.Drawing.Size(134, 40); + this.cv7.TabIndex = 0; + this.cv7.Text = "--"; + this.cv7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label14 + // + this.label14.Dock = System.Windows.Forms.DockStyle.Left; + this.label14.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label14.Location = new System.Drawing.Point(0, 0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(47, 40); + this.label14.TabIndex = 0; + this.label14.Text = "#7"; + this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel7 + // + this.panel7.Controls.Add(this.cv6); + this.panel7.Controls.Add(this.label12); + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(3, 217); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(181, 40); + this.panel7.TabIndex = 5; + // + // cv6 + // + this.cv6.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv6.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv6.Location = new System.Drawing.Point(47, 0); + this.cv6.Name = "cv6"; + this.cv6.Size = new System.Drawing.Size(134, 40); + this.cv6.TabIndex = 0; + this.cv6.Text = "--"; + this.cv6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label12 + // + this.label12.Dock = System.Windows.Forms.DockStyle.Left; + this.label12.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label12.Location = new System.Drawing.Point(0, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(47, 40); + this.label12.TabIndex = 0; + this.label12.Text = "#6"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel6 + // + this.panel6.Controls.Add(this.cv5); + this.panel6.Controls.Add(this.label10); + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(3, 177); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(181, 40); + this.panel6.TabIndex = 4; + this.panel6.Paint += new System.Windows.Forms.PaintEventHandler(this.panel6_Paint); + // + // cv5 + // + this.cv5.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv5.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv5.Location = new System.Drawing.Point(47, 0); + this.cv5.Name = "cv5"; + this.cv5.Size = new System.Drawing.Size(134, 40); + this.cv5.TabIndex = 0; + this.cv5.Text = "--"; + this.cv5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label10 + // + this.label10.Dock = System.Windows.Forms.DockStyle.Left; + this.label10.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label10.Location = new System.Drawing.Point(0, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(47, 40); + this.label10.TabIndex = 0; + this.label10.Text = "#5"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel5 + // + this.panel5.Controls.Add(this.cv4); + this.panel5.Controls.Add(this.label8); + this.panel5.Dock = System.Windows.Forms.DockStyle.Top; + this.panel5.Location = new System.Drawing.Point(3, 137); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(181, 40); + this.panel5.TabIndex = 3; + // + // cv4 + // + this.cv4.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv4.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv4.Location = new System.Drawing.Point(47, 0); + this.cv4.Name = "cv4"; + this.cv4.Size = new System.Drawing.Size(134, 40); + this.cv4.TabIndex = 0; + this.cv4.Text = "--"; + this.cv4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label8 + // + this.label8.Dock = System.Windows.Forms.DockStyle.Left; + this.label8.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label8.Location = new System.Drawing.Point(0, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(47, 40); + this.label8.TabIndex = 0; + this.label8.Text = "#4"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel4 + // + this.panel4.Controls.Add(this.cv3); + this.panel4.Controls.Add(this.label6); + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(3, 97); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(181, 40); + this.panel4.TabIndex = 2; + this.panel4.Paint += new System.Windows.Forms.PaintEventHandler(this.panel4_Paint); + // + // cv3 + // + this.cv3.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv3.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv3.Location = new System.Drawing.Point(47, 0); + this.cv3.Name = "cv3"; + this.cv3.Size = new System.Drawing.Size(134, 40); + this.cv3.TabIndex = 0; + this.cv3.Text = "--"; + this.cv3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label6 + // + this.label6.Dock = System.Windows.Forms.DockStyle.Left; + this.label6.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label6.Location = new System.Drawing.Point(0, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(47, 40); + this.label6.TabIndex = 0; + this.label6.Text = "#3"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel3 + // + this.panel3.Controls.Add(this.cv2); + this.panel3.Controls.Add(this.label4); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(3, 57); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(181, 40); + this.panel3.TabIndex = 1; + this.panel3.Paint += new System.Windows.Forms.PaintEventHandler(this.panel3_Paint); + // + // cv2 + // + this.cv2.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv2.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv2.Location = new System.Drawing.Point(47, 0); + this.cv2.Name = "cv2"; + this.cv2.Size = new System.Drawing.Size(134, 40); + this.cv2.TabIndex = 0; + this.cv2.Text = "--"; + this.cv2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.Dock = System.Windows.Forms.DockStyle.Left; + this.label4.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label4.Location = new System.Drawing.Point(0, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(47, 40); + this.label4.TabIndex = 0; + this.label4.Text = "#2"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.Controls.Add(this.cv1); + this.panel2.Controls.Add(this.label1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(3, 17); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(181, 40); + this.panel2.TabIndex = 0; + // + // cv1 + // + this.cv1.Dock = System.Windows.Forms.DockStyle.Fill; + this.cv1.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.cv1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.cv1.Location = new System.Drawing.Point(47, 0); + this.cv1.Name = "cv1"; + this.cv1.Size = new System.Drawing.Size(134, 40); + this.cv1.TabIndex = 0; + this.cv1.Text = "--"; + this.cv1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(47, 40); + this.label1.TabIndex = 0; + this.label1.Text = "#1"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Top; + this.button2.Location = new System.Drawing.Point(0, 59); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(187, 59); + this.button2.TabIndex = 1; + this.button2.Text = "Query Cell Voltage"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Top; + this.button1.Location = new System.Drawing.Point(0, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(187, 59); + this.button1.TabIndex = 0; + this.button1.Text = "Query Remain"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // arLabel1 + // + this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.arLabel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel1.BorderColor = System.Drawing.Color.Red; + this.arLabel1.BorderColorOver = System.Drawing.Color.Red; + this.arLabel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 150F, System.Drawing.FontStyle.Bold); + this.arLabel1.ForeColor = System.Drawing.Color.White; + this.arLabel1.GradientEnable = true; + this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel1.GradientRepeatBG = false; + this.arLabel1.isButton = false; + this.arLabel1.Location = new System.Drawing.Point(190, 3); + this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel1.msg = null; + this.arLabel1.Name = "arLabel1"; + this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel1.ProgressEnable = false; + this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel1.ProgressMax = 100F; + this.arLabel1.ProgressMin = 0F; + this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel1.ProgressValue = 0F; + this.arLabel1.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel1.Sign = "26.5v"; + this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel1.SignColor = System.Drawing.Color.Yellow; + this.arLabel1.SignFont = new System.Drawing.Font("Microsoft Sans Serif", 50F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.arLabel1.Size = new System.Drawing.Size(863, 577); + this.arLabel1.TabIndex = 1; + this.arLabel1.Text = "80%"; + this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel1.TextShadow = false; + this.arLabel1.TextVisible = true; + // + // lbinfost + // + this.lbinfost.AutoSize = true; + this.lbinfost.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbinfost.ForeColor = System.Drawing.Color.White; + this.lbinfost.Location = new System.Drawing.Point(194, 8); + this.lbinfost.Name = "lbinfost"; + this.lbinfost.Size = new System.Drawing.Size(39, 27); + this.lbinfost.TabIndex = 2; + this.lbinfost.Text = "●"; + // + // lbCycle + // + this.lbCycle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.lbCycle.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCycle.ForeColor = System.Drawing.Color.SkyBlue; + this.lbCycle.Location = new System.Drawing.Point(296, 8); + this.lbCycle.Name = "lbCycle"; + this.lbCycle.Size = new System.Drawing.Size(749, 27); + this.lbCycle.TabIndex = 3; + this.lbCycle.Text = "Cycle(2)"; + this.lbCycle.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // fBms + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1056, 583); + this.Controls.Add(this.lbCycle); + this.Controls.Add(this.lbinfost); + this.Controls.Add(this.arLabel1); + this.Controls.Add(this.panel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "fBms"; + this.Padding = new System.Windows.Forms.Padding(3); + this.Text = "fFlag"; + this.Load += new System.EventHandler(this.fFlag_Load); + this.VisibleChanged += new System.EventHandler(this.fAgv_VisibleChanged); + this.panel1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.panel11.ResumeLayout(false); + this.panel10.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.panel9.ResumeLayout(false); + this.panel8.ResumeLayout(false); + this.panel7.ResumeLayout(false); + this.panel6.ResumeLayout(false); + this.panel5.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button1; + private arCtl.arLabel arLabel1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label cv1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Panel panel9; + private System.Windows.Forms.Label cv8; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Label cv7; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Label cv6; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Label cv5; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Label cv4; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Label cv3; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Label cv2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label lbinfost; + private System.Windows.Forms.Label lbcvSt; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Panel panel11; + private System.Windows.Forms.Label lbtemp2; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Panel panel10; + private System.Windows.Forms.Label lbTemp1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label lbCycle; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fBms.cs b/HMI/Project/ViewForm/fBms.cs similarity index 97% rename from Cs_HMI/Project/ViewForm/fBms.cs rename to HMI/Project/ViewForm/fBms.cs index d1f29f6..7556be5 100644 --- a/Cs_HMI/Project/ViewForm/fBms.cs +++ b/HMI/Project/ViewForm/fBms.cs @@ -1,128 +1,128 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using COMM; - -namespace Project.ViewForm -{ - public partial class fBms : Form - { - public fBms() - { - InitializeComponent(); - - - this.FormClosed += FIO_FormClosed; - PUB.BMS.BMSCellDataReceive += BMS_BMSCellDataReceive; - PUB.BMS.BMSDataReceive += BMS_BMSDataReceive; - } - - private void BMS_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e) - { - if (this.IsDisposed == true || this.Visible == false) return; - this.BeginInvoke(new Action(() => - { - if (lbinfost.ForeColor == Color.FromArgb(32, 32, 32)) - lbinfost.ForeColor = Color.Lime; - else - lbinfost.ForeColor = Color.FromArgb(32, 32, 32); - })); - } - - private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e) - { - if (this.IsDisposed == true || this.Visible == false) return; - this.BeginInvoke(new Action(() => - { - if (lbcvSt.ForeColor == Color.FromArgb(15, 15, 15)) - lbcvSt.ForeColor = Color.Lime; - else - lbcvSt.ForeColor = Color.FromArgb(15, 15, 15); - })); - } - - private void fFlag_Load(object sender, EventArgs e) - { - this.timer1.Start(); - } - - private void FIO_FormClosed(object sender, FormClosedEventArgs e) - { - this.timer1.Stop(); - PUB.BMS.BMSCellDataReceive -= BMS_BMSCellDataReceive; - PUB.BMS.BMSDataReceive -= BMS_BMSDataReceive; - } - - - private void timer1_Tick(object sender, EventArgs e) - { - timer1.Stop(); - var data = PUB.BMS.BMSInformation; - var volt = PUB.BMS.BMSCellVoltage; - if (PUB.BMS.IsOpen == false) - this.lbCycle.Text = "통신이 열려있지 않습니다"; - else if (PUB.BMS.IsValid == false) - this.lbCycle.Text = "데이터가 유효하지 않습니다"; - else - this.lbCycle.Text = $"Average:{volt.Average:N2}v, Delta:{volt.Delta:N0}, Cycle({data.cycleCount})"; - this.arLabel1.Text = $"{data.rsoc}%"; - this.arLabel1.Sign = $"{data.packVoltage}v, {data.watt:N0}w";// PUB.BMS.Current_Volt.ToString() + "v"; - - if (data.watt < 0) this.arLabel1.SignColor = Color.Tomato; - else this.arLabel1.SignColor = Color.Lime; - - this.cv1.Text = volt.Voltage[0].ToString("N3") + "v"; - this.cv2.Text = volt.Voltage[1].ToString("N3") + "v"; - this.cv3.Text = volt.Voltage[2].ToString("N3") + "v"; - this.cv4.Text = volt.Voltage[3].ToString("N3") + "v"; - this.cv5.Text = volt.Voltage[4].ToString("N3") + "v"; - this.cv6.Text = volt.Voltage[5].ToString("N3") + "v"; - this.cv7.Text = volt.Voltage[6].ToString("N3") + "v"; - this.cv8.Text = volt.Voltage[7].ToString("N3") + "v"; - this.lbTemp1.Text = data.ntcTemp[0].ToString() + "℃"; - this.lbtemp2.Text = data.ntcTemp[1].ToString() + "℃"; - timer1.Start(); - } - - private void fAgv_VisibleChanged(object sender, EventArgs e) - { - this.timer1.Enabled = this.Visible; - } - - private void button1_Click(object sender, EventArgs e) - { - PUB.BMS.SendQuery_ReadStatue(); - } - - private void button2_Click(object sender, EventArgs e) - { - PUB.BMS.SendQuery_ReadCellvoltage(); - } - - private void panel3_Paint(object sender, PaintEventArgs e) - { - - } - - private void panel4_Paint(object sender, PaintEventArgs e) - { - - } - - private void panel6_Paint(object sender, PaintEventArgs e) - { - - } - - private void panel8_Paint(object sender, PaintEventArgs e) - { - - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using COMM; + +namespace Project.ViewForm +{ + public partial class fBms : Form + { + public fBms() + { + InitializeComponent(); + + + this.FormClosed += FIO_FormClosed; + PUB.BMS.BMSCellDataReceive += BMS_BMSCellDataReceive; + PUB.BMS.BMSDataReceive += BMS_BMSDataReceive; + } + + private void BMS_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e) + { + if (this.IsDisposed == true || this.Visible == false) return; + this.BeginInvoke(new Action(() => + { + if (lbinfost.ForeColor == Color.FromArgb(32, 32, 32)) + lbinfost.ForeColor = Color.Lime; + else + lbinfost.ForeColor = Color.FromArgb(32, 32, 32); + })); + } + + private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e) + { + if (this.IsDisposed == true || this.Visible == false) return; + this.BeginInvoke(new Action(() => + { + if (lbcvSt.ForeColor == Color.FromArgb(15, 15, 15)) + lbcvSt.ForeColor = Color.Lime; + else + lbcvSt.ForeColor = Color.FromArgb(15, 15, 15); + })); + } + + private void fFlag_Load(object sender, EventArgs e) + { + this.timer1.Start(); + } + + private void FIO_FormClosed(object sender, FormClosedEventArgs e) + { + this.timer1.Stop(); + PUB.BMS.BMSCellDataReceive -= BMS_BMSCellDataReceive; + PUB.BMS.BMSDataReceive -= BMS_BMSDataReceive; + } + + + private void timer1_Tick(object sender, EventArgs e) + { + timer1.Stop(); + var data = PUB.BMS.BMSInformation; + var volt = PUB.BMS.BMSCellVoltage; + if (PUB.BMS.IsOpen == false) + this.lbCycle.Text = "통신이 열려있지 않습니다"; + else if (PUB.BMS.IsValid == false) + this.lbCycle.Text = "데이터가 유효하지 않습니다"; + else + this.lbCycle.Text = $"Average:{volt.Average:N2}v, Delta:{volt.Delta:N0}, Cycle({data.cycleCount})"; + this.arLabel1.Text = $"{data.rsoc}%"; + this.arLabel1.Sign = $"{data.packVoltage}v, {data.watt:N0}w";// PUB.BMS.Current_Volt.ToString() + "v"; + + if (data.watt < 0) this.arLabel1.SignColor = Color.Tomato; + else this.arLabel1.SignColor = Color.Lime; + + this.cv1.Text = volt.Voltage[0].ToString("N3") + "v"; + this.cv2.Text = volt.Voltage[1].ToString("N3") + "v"; + this.cv3.Text = volt.Voltage[2].ToString("N3") + "v"; + this.cv4.Text = volt.Voltage[3].ToString("N3") + "v"; + this.cv5.Text = volt.Voltage[4].ToString("N3") + "v"; + this.cv6.Text = volt.Voltage[5].ToString("N3") + "v"; + this.cv7.Text = volt.Voltage[6].ToString("N3") + "v"; + this.cv8.Text = volt.Voltage[7].ToString("N3") + "v"; + this.lbTemp1.Text = data.ntcTemp[0].ToString() + "℃"; + this.lbtemp2.Text = data.ntcTemp[1].ToString() + "℃"; + timer1.Start(); + } + + private void fAgv_VisibleChanged(object sender, EventArgs e) + { + this.timer1.Enabled = this.Visible; + } + + private void button1_Click(object sender, EventArgs e) + { + PUB.BMS.SendQuery_ReadStatue(); + } + + private void button2_Click(object sender, EventArgs e) + { + PUB.BMS.SendQuery_ReadCellvoltage(); + } + + private void panel3_Paint(object sender, PaintEventArgs e) + { + + } + + private void panel4_Paint(object sender, PaintEventArgs e) + { + + } + + private void panel6_Paint(object sender, PaintEventArgs e) + { + + } + + private void panel8_Paint(object sender, PaintEventArgs e) + { + + } + } +} diff --git a/Cs_HMI/Project/ViewForm/fBms.resx b/HMI/Project/ViewForm/fBms.resx similarity index 97% rename from Cs_HMI/Project/ViewForm/fBms.resx rename to HMI/Project/ViewForm/fBms.resx index aac33d5..1f666f2 100644 --- a/Cs_HMI/Project/ViewForm/fBms.resx +++ b/HMI/Project/ViewForm/fBms.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fFlag.Designer.cs b/HMI/Project/ViewForm/fFlag.Designer.cs similarity index 98% rename from Cs_HMI/Project/ViewForm/fFlag.Designer.cs rename to HMI/Project/ViewForm/fFlag.Designer.cs index 0b5ac2f..4b19a03 100644 --- a/Cs_HMI/Project/ViewForm/fFlag.Designer.cs +++ b/HMI/Project/ViewForm/fFlag.Designer.cs @@ -1,276 +1,276 @@ -namespace Project.ViewForm -{ - partial class fFlag - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.dv1 = new System.Windows.Forms.DataGridView(); - this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dv2 = new System.Windows.Forms.DataGridView(); - this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dv3 = new System.Windows.Forms.DataGridView(); - this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dv4 = new System.Windows.Forms.DataGridView(); - this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.tableLayoutPanel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dv2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dv3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dv4)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 4; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.Controls.Add(this.dv4, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.dv3, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.dv2, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.dv1, 0, 0); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 577); - this.tableLayoutPanel1.TabIndex = 6; - // - // timer1 - // - this.timer1.Interval = 500; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - // - // dv1 - // - this.dv1.AllowUserToAddRows = false; - this.dv1.AllowUserToDeleteRows = false; - this.dv1.AllowUserToResizeRows = false; - this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Column1, - this.Column2}); - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle4.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dv1.DefaultCellStyle = dataGridViewCellStyle4; - this.dv1.Dock = System.Windows.Forms.DockStyle.Fill; - this.dv1.Location = new System.Drawing.Point(3, 3); - this.dv1.Name = "dv1"; - this.dv1.ReadOnly = true; - this.dv1.RowHeadersVisible = false; - this.tableLayoutPanel1.SetRowSpan(this.dv1, 2); - this.dv1.RowTemplate.Height = 23; - this.dv1.Size = new System.Drawing.Size(309, 571); - this.dv1.TabIndex = 1; - // - // Column1 - // - this.Column1.HeaderText = "Column1"; - this.Column1.Name = "Column1"; - this.Column1.ReadOnly = true; - // - // Column2 - // - this.Column2.HeaderText = "Column2"; - this.Column2.Name = "Column2"; - this.Column2.ReadOnly = true; - // - // dv2 - // - this.dv2.AllowUserToAddRows = false; - this.dv2.AllowUserToDeleteRows = false; - this.dv2.AllowUserToResizeRows = false; - this.dv2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dv2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dataGridViewTextBoxColumn1, - this.dataGridViewTextBoxColumn2}); - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle3.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dv2.DefaultCellStyle = dataGridViewCellStyle3; - this.dv2.Dock = System.Windows.Forms.DockStyle.Fill; - this.dv2.Location = new System.Drawing.Point(318, 3); - this.dv2.Name = "dv2"; - this.dv2.ReadOnly = true; - this.dv2.RowHeadersVisible = false; - this.tableLayoutPanel1.SetRowSpan(this.dv2, 2); - this.dv2.RowTemplate.Height = 23; - this.dv2.Size = new System.Drawing.Size(309, 571); - this.dv2.TabIndex = 2; - // - // dataGridViewTextBoxColumn1 - // - this.dataGridViewTextBoxColumn1.HeaderText = "Column1"; - this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; - this.dataGridViewTextBoxColumn1.ReadOnly = true; - // - // dataGridViewTextBoxColumn2 - // - this.dataGridViewTextBoxColumn2.HeaderText = "Column2"; - this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; - this.dataGridViewTextBoxColumn2.ReadOnly = true; - // - // dv3 - // - this.dv3.AllowUserToAddRows = false; - this.dv3.AllowUserToDeleteRows = false; - this.dv3.AllowUserToResizeRows = false; - this.dv3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dv3.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dataGridViewTextBoxColumn3, - this.dataGridViewTextBoxColumn4}); - this.tableLayoutPanel1.SetColumnSpan(this.dv3, 2); - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle2.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dv3.DefaultCellStyle = dataGridViewCellStyle2; - this.dv3.Dock = System.Windows.Forms.DockStyle.Fill; - this.dv3.Location = new System.Drawing.Point(633, 3); - this.dv3.Name = "dv3"; - this.dv3.ReadOnly = true; - this.dv3.RowHeadersVisible = false; - this.dv3.RowTemplate.Height = 23; - this.dv3.Size = new System.Drawing.Size(414, 282); - this.dv3.TabIndex = 3; - // - // dataGridViewTextBoxColumn3 - // - this.dataGridViewTextBoxColumn3.HeaderText = "Column1"; - this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; - this.dataGridViewTextBoxColumn3.ReadOnly = true; - // - // dataGridViewTextBoxColumn4 - // - this.dataGridViewTextBoxColumn4.HeaderText = "Column2"; - this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; - this.dataGridViewTextBoxColumn4.ReadOnly = true; - // - // dv4 - // - this.dv4.AllowUserToAddRows = false; - this.dv4.AllowUserToDeleteRows = false; - this.dv4.AllowUserToResizeRows = false; - this.dv4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dv4.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dataGridViewTextBoxColumn5, - this.dataGridViewTextBoxColumn6}); - this.tableLayoutPanel1.SetColumnSpan(this.dv4, 2); - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle1.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dv4.DefaultCellStyle = dataGridViewCellStyle1; - this.dv4.Dock = System.Windows.Forms.DockStyle.Fill; - this.dv4.Location = new System.Drawing.Point(633, 291); - this.dv4.Name = "dv4"; - this.dv4.ReadOnly = true; - this.dv4.RowHeadersVisible = false; - this.dv4.RowTemplate.Height = 23; - this.dv4.Size = new System.Drawing.Size(414, 283); - this.dv4.TabIndex = 4; - // - // dataGridViewTextBoxColumn5 - // - this.dataGridViewTextBoxColumn5.HeaderText = "Column1"; - this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; - this.dataGridViewTextBoxColumn5.ReadOnly = true; - // - // dataGridViewTextBoxColumn6 - // - this.dataGridViewTextBoxColumn6.HeaderText = "Column2"; - this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; - this.dataGridViewTextBoxColumn6.ReadOnly = true; - // - // fFlag - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); - this.ClientSize = new System.Drawing.Size(1056, 583); - this.Controls.Add(this.tableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "fFlag"; - this.Padding = new System.Windows.Forms.Padding(3); - this.Text = "fFlag"; - this.Load += new System.EventHandler(this.fFlag_Load); - this.VisibleChanged += new System.EventHandler(this.fFlag_VisibleChanged); - this.tableLayoutPanel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dv2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dv3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dv4)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.DataGridView dv4; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; - private System.Windows.Forms.DataGridView dv3; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; - private System.Windows.Forms.DataGridView dv2; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; - private System.Windows.Forms.DataGridView dv1; - private System.Windows.Forms.DataGridViewTextBoxColumn Column1; - private System.Windows.Forms.DataGridViewTextBoxColumn Column2; - } +namespace Project.ViewForm +{ + partial class fFlag + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.dv1 = new System.Windows.Forms.DataGridView(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dv2 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dv3 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dv4 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv4)).BeginInit(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.Controls.Add(this.dv4, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.dv3, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.dv2, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.dv1, 0, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 577); + this.tableLayoutPanel1.TabIndex = 6; + // + // timer1 + // + this.timer1.Interval = 500; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // dv1 + // + this.dv1.AllowUserToAddRows = false; + this.dv1.AllowUserToDeleteRows = false; + this.dv1.AllowUserToResizeRows = false; + this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column1, + this.Column2}); + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv1.DefaultCellStyle = dataGridViewCellStyle4; + this.dv1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv1.Location = new System.Drawing.Point(3, 3); + this.dv1.Name = "dv1"; + this.dv1.ReadOnly = true; + this.dv1.RowHeadersVisible = false; + this.tableLayoutPanel1.SetRowSpan(this.dv1, 2); + this.dv1.RowTemplate.Height = 23; + this.dv1.Size = new System.Drawing.Size(309, 571); + this.dv1.TabIndex = 1; + // + // Column1 + // + this.Column1.HeaderText = "Column1"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + // + // Column2 + // + this.Column2.HeaderText = "Column2"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + // + // dv2 + // + this.dv2.AllowUserToAddRows = false; + this.dv2.AllowUserToDeleteRows = false; + this.dv2.AllowUserToResizeRows = false; + this.dv2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2}); + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle3.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv2.DefaultCellStyle = dataGridViewCellStyle3; + this.dv2.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv2.Location = new System.Drawing.Point(318, 3); + this.dv2.Name = "dv2"; + this.dv2.ReadOnly = true; + this.dv2.RowHeadersVisible = false; + this.tableLayoutPanel1.SetRowSpan(this.dv2, 2); + this.dv2.RowTemplate.Height = 23; + this.dv2.Size = new System.Drawing.Size(309, 571); + this.dv2.TabIndex = 2; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.HeaderText = "Column1"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.HeaderText = "Column2"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.ReadOnly = true; + // + // dv3 + // + this.dv3.AllowUserToAddRows = false; + this.dv3.AllowUserToDeleteRows = false; + this.dv3.AllowUserToResizeRows = false; + this.dv3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv3.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4}); + this.tableLayoutPanel1.SetColumnSpan(this.dv3, 2); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle2.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv3.DefaultCellStyle = dataGridViewCellStyle2; + this.dv3.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv3.Location = new System.Drawing.Point(633, 3); + this.dv3.Name = "dv3"; + this.dv3.ReadOnly = true; + this.dv3.RowHeadersVisible = false; + this.dv3.RowTemplate.Height = 23; + this.dv3.Size = new System.Drawing.Size(414, 282); + this.dv3.TabIndex = 3; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.HeaderText = "Column1"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.ReadOnly = true; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.HeaderText = "Column2"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.ReadOnly = true; + // + // dv4 + // + this.dv4.AllowUserToAddRows = false; + this.dv4.AllowUserToDeleteRows = false; + this.dv4.AllowUserToResizeRows = false; + this.dv4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv4.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6}); + this.tableLayoutPanel1.SetColumnSpan(this.dv4, 2); + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv4.DefaultCellStyle = dataGridViewCellStyle1; + this.dv4.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv4.Location = new System.Drawing.Point(633, 291); + this.dv4.Name = "dv4"; + this.dv4.ReadOnly = true; + this.dv4.RowHeadersVisible = false; + this.dv4.RowTemplate.Height = 23; + this.dv4.Size = new System.Drawing.Size(414, 283); + this.dv4.TabIndex = 4; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.HeaderText = "Column1"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.ReadOnly = true; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.HeaderText = "Column2"; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.ReadOnly = true; + // + // fFlag + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1056, 583); + this.Controls.Add(this.tableLayoutPanel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "fFlag"; + this.Padding = new System.Windows.Forms.Padding(3); + this.Text = "fFlag"; + this.Load += new System.EventHandler(this.fFlag_Load); + this.VisibleChanged += new System.EventHandler(this.fFlag_VisibleChanged); + this.tableLayoutPanel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv4)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.DataGridView dv4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridView dv3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridView dv2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridView dv1; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fFlag.cs b/HMI/Project/ViewForm/fFlag.cs similarity index 96% rename from Cs_HMI/Project/ViewForm/fFlag.cs rename to HMI/Project/ViewForm/fFlag.cs index 5a32e87..d8d368b 100644 --- a/Cs_HMI/Project/ViewForm/fFlag.cs +++ b/HMI/Project/ViewForm/fFlag.cs @@ -1,132 +1,132 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using AR; -using COMM; - -namespace Project.ViewForm -{ - public partial class fFlag : Form - { - public fFlag() - { - InitializeComponent(); - - - this.FormClosed += FIO_FormClosed; - } - - private void fFlag_Load(object sender, EventArgs e) - { - MakeControl(); - this.timer1.Start(); - } - - void MakeControl() - { - DataGridView[] dvs = new DataGridView[] { dv1, dv2, dv3, dv4 }; - - foreach(var lv in dvs) - { - lv.Columns.Clear(); - lv.Columns.Add("idx", "*"); - lv.Columns.Add("Title", "Title"); - lv.Columns.Add("Value", "Value"); - lv.Columns[0].Width = 25; - lv.Columns[1].Width = 150; - lv.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; - - } - Array valuelist; - - valuelist = Enum.GetValues(typeof(COMM.eVarBool)); - foreach (var item in valuelist) - { - var v = (COMM.eVarBool)item; - dv1.Rows.Add($"{(int)v}", item, "--"); - } - - valuelist = Enum.GetValues(typeof(COMM.eVarInt32)); - foreach (var item in valuelist) - { - var v = (COMM.eVarInt32)item; - dv2.Rows.Add($"{(int)v}", item, "--"); - } - - valuelist = Enum.GetValues(typeof(COMM.eVarString)); - foreach (var item in valuelist) - { - var v = (COMM.eVarString)item; - dv3.Rows.Add($"{(int)v}", item, "--"); - } - - valuelist = Enum.GetValues(typeof(COMM.eVarTime)); - foreach (var item in valuelist) - { - var v = (COMM.eVarString)item; - dv4.Rows.Add($"{(int)v}", item, "--"); - } - - foreach (var dv in dvs) - dv.AutoResizeColumns(); - - - } - - private void FIO_FormClosed(object sender, FormClosedEventArgs e) - { - this.timer1.Stop(); - } - - - private void timer1_Tick(object sender, EventArgs e) - { - timer1.Stop(); - foreach(DataGridViewRow item in this.dv1.Rows) - { - var idx = int.Parse(item.Cells["idx"].Value.ToString()); - var v = VAR.BOOL.Get(idx); - item.Cells["value"].Value = v ? "O" : "X"; - } - - foreach (DataGridViewRow item in this.dv2.Rows) - { - var idx = int.Parse(item.Cells["idx"].Value.ToString()); - var v = VAR.I32.Get(idx); - item.Cells["value"].Value = v.ToString(); - } - - foreach (DataGridViewRow item in this.dv3.Rows) - { - var idx = int.Parse(item.Cells["idx"].Value.ToString()); - var v = VAR.STR.Get(idx); - item.Cells["value"].Value = v; - } - foreach (DataGridViewRow item in this.dv4.Rows) - { - var idx = int.Parse(item.Cells["idx"].Value.ToString()); - var v = VAR.TIME.Get(idx); - item.Cells["value"].Value = v.ToString("HH:mm:ss.fff"); - } - timer1.Start(); - } - - private void fFlag_VisibleChanged(object sender, EventArgs e) - { - this.timer1.Enabled = this.Visible; - if (timer1.Enabled) timer1.Start(); - else timer1.Stop(); - } - - private void listView1_SelectedIndexChanged(object sender, EventArgs e) - { - - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; +using COMM; + +namespace Project.ViewForm +{ + public partial class fFlag : Form + { + public fFlag() + { + InitializeComponent(); + + + this.FormClosed += FIO_FormClosed; + } + + private void fFlag_Load(object sender, EventArgs e) + { + MakeControl(); + this.timer1.Start(); + } + + void MakeControl() + { + DataGridView[] dvs = new DataGridView[] { dv1, dv2, dv3, dv4 }; + + foreach(var lv in dvs) + { + lv.Columns.Clear(); + lv.Columns.Add("idx", "*"); + lv.Columns.Add("Title", "Title"); + lv.Columns.Add("Value", "Value"); + lv.Columns[0].Width = 25; + lv.Columns[1].Width = 150; + lv.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; + + } + Array valuelist; + + valuelist = Enum.GetValues(typeof(COMM.eVarBool)); + foreach (var item in valuelist) + { + var v = (COMM.eVarBool)item; + dv1.Rows.Add($"{(int)v}", item, "--"); + } + + valuelist = Enum.GetValues(typeof(COMM.eVarInt32)); + foreach (var item in valuelist) + { + var v = (COMM.eVarInt32)item; + dv2.Rows.Add($"{(int)v}", item, "--"); + } + + valuelist = Enum.GetValues(typeof(COMM.eVarString)); + foreach (var item in valuelist) + { + var v = (COMM.eVarString)item; + dv3.Rows.Add($"{(int)v}", item, "--"); + } + + valuelist = Enum.GetValues(typeof(COMM.eVarTime)); + foreach (var item in valuelist) + { + var v = (COMM.eVarString)item; + dv4.Rows.Add($"{(int)v}", item, "--"); + } + + foreach (var dv in dvs) + dv.AutoResizeColumns(); + + + } + + private void FIO_FormClosed(object sender, FormClosedEventArgs e) + { + this.timer1.Stop(); + } + + + private void timer1_Tick(object sender, EventArgs e) + { + timer1.Stop(); + foreach(DataGridViewRow item in this.dv1.Rows) + { + var idx = int.Parse(item.Cells["idx"].Value.ToString()); + var v = VAR.BOOL.Get(idx); + item.Cells["value"].Value = v ? "O" : "X"; + } + + foreach (DataGridViewRow item in this.dv2.Rows) + { + var idx = int.Parse(item.Cells["idx"].Value.ToString()); + var v = VAR.I32.Get(idx); + item.Cells["value"].Value = v.ToString(); + } + + foreach (DataGridViewRow item in this.dv3.Rows) + { + var idx = int.Parse(item.Cells["idx"].Value.ToString()); + var v = VAR.STR.Get(idx); + item.Cells["value"].Value = v; + } + foreach (DataGridViewRow item in this.dv4.Rows) + { + var idx = int.Parse(item.Cells["idx"].Value.ToString()); + var v = VAR.TIME.Get(idx); + item.Cells["value"].Value = v.ToString("HH:mm:ss.fff"); + } + timer1.Start(); + } + + private void fFlag_VisibleChanged(object sender, EventArgs e) + { + this.timer1.Enabled = this.Visible; + if (timer1.Enabled) timer1.Start(); + else timer1.Stop(); + } + + private void listView1_SelectedIndexChanged(object sender, EventArgs e) + { + + } + } +} diff --git a/Cs_HMI/Project/ViewForm/fFlag.resx b/HMI/Project/ViewForm/fFlag.resx similarity index 98% rename from Cs_HMI/Project/ViewForm/fFlag.resx rename to HMI/Project/ViewForm/fFlag.resx index 67c91da..89a7466 100644 --- a/Cs_HMI/Project/ViewForm/fFlag.resx +++ b/HMI/Project/ViewForm/fFlag.resx @@ -1,147 +1,147 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fIO.Designer.cs b/HMI/Project/ViewForm/fIO.Designer.cs similarity index 98% rename from Cs_HMI/Project/ViewForm/fIO.Designer.cs rename to HMI/Project/ViewForm/fIO.Designer.cs index c002c3f..573119e 100644 --- a/Cs_HMI/Project/ViewForm/fIO.Designer.cs +++ b/HMI/Project/ViewForm/fIO.Designer.cs @@ -1,210 +1,210 @@ -namespace Project.ViewForm -{ - partial class fIO - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem4 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem5 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem6 = new arFrame.Control.ColorListItem(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.HWState = new arFrame.Control.GridView(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.panel3 = new System.Windows.Forms.Panel(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.tableLayoutPanel1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 1; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.Controls.Add(this.HWState, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.panel3, 0, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 58F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1056, 583); - this.tableLayoutPanel1.TabIndex = 5; - // - // HWState - // - this.HWState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); - this.HWState.BorderSize = 0; - colorListItem1.BackColor1 = System.Drawing.Color.Gray; - colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - colorListItem1.Remark = "타이틀바(상)"; - colorListItem2.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - colorListItem2.Remark = "상태표시(하)"; - colorListItem3.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem3.BackColor2 = System.Drawing.Color.Lime; - colorListItem3.Remark = "정상"; - colorListItem4.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem4.BackColor2 = System.Drawing.Color.Red; - colorListItem4.Remark = "오류"; - colorListItem5.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem5.BackColor2 = System.Drawing.Color.Yellow; - colorListItem5.Remark = "오류(깜박)"; - colorListItem6.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem6.BackColor2 = System.Drawing.Color.DarkViolet; - colorListItem6.Remark = "오류(유효)"; - this.HWState.ColorList = new arFrame.Control.ColorListItem[] { - colorListItem1, - colorListItem2, - colorListItem3, - colorListItem4, - colorListItem5, - colorListItem6}; - this.HWState.Dock = System.Windows.Forms.DockStyle.Fill; - this.HWState.Font = new System.Drawing.Font("Consolas", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.HWState.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.HWState.ForeColor = System.Drawing.Color.Moccasin; - this.HWState.ForeColorPin = System.Drawing.Color.Moccasin; - this.HWState.Location = new System.Drawing.Point(0, 525); - this.HWState.Margin = new System.Windows.Forms.Padding(0); - this.HWState.MatrixSize = new System.Drawing.Point(3, 2); - this.HWState.MenuBorderSize = 1; - this.HWState.MenuGap = 5; - this.HWState.MinimumSize = new System.Drawing.Size(100, 0); - this.HWState.Name = "HWState"; - this.HWState.Names = new string[] { - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - ""}; - this.HWState.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); - this.HWState.showDebugInfo = false; - this.HWState.ShowIndexString = false; - this.HWState.Size = new System.Drawing.Size(1056, 58); - this.HWState.TabIndex = 9; - this.HWState.Tags = null; - this.HWState.Text = "gridView3"; - this.HWState.TextAttachToImage = true; - this.HWState.Titles = new string[] { - "AGV|XBE|BAT|", - "C00|C00|C00|"}; - this.HWState.Values = new ushort[] { - ((ushort)(0)), - ((ushort)(0)), - ((ushort)(0)), - ((ushort)(1)), - ((ushort)(1)), - ((ushort)(1))}; - // - // panel1 - // - this.panel1.Controls.Add(this.label1); - this.panel1.Controls.Add(this.label3); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(3, 3); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1050, 14); - this.panel1.TabIndex = 6; - // - // label1 - // - this.label1.Dock = System.Windows.Forms.DockStyle.Fill; - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(650, 14); - this.label1.TabIndex = 5; - this.label1.Text = "label1"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // label3 - // - this.label3.Dock = System.Windows.Forms.DockStyle.Right; - this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.label3.Location = new System.Drawing.Point(650, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(400, 14); - this.label3.TabIndex = 6; - this.label3.Text = "label3"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // panel3 - // - this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel3.Location = new System.Drawing.Point(3, 23); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(1050, 499); - this.panel3.TabIndex = 10; - // - // timer1 - // - this.timer1.Interval = 200; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - // - // fIO - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); - this.ClientSize = new System.Drawing.Size(1056, 583); - this.Controls.Add(this.tableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "fIO"; - this.Text = "fIO"; - this.Load += new System.EventHandler(this.fIO_Load); - this.VisibleChanged += new System.EventHandler(this.fIO_VisibleChanged); - this.tableLayoutPanel1.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Panel panel1; - private arFrame.Control.GridView HWState; - private System.Windows.Forms.Panel panel3; - } +namespace Project.ViewForm +{ + partial class fIO + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem4 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem5 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem6 = new arFrame.Control.ColorListItem(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.HWState = new arFrame.Control.GridView(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.panel3 = new System.Windows.Forms.Panel(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.HWState, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.panel3, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 58F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1056, 583); + this.tableLayoutPanel1.TabIndex = 5; + // + // HWState + // + this.HWState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.HWState.BorderSize = 0; + colorListItem1.BackColor1 = System.Drawing.Color.Gray; + colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + colorListItem1.Remark = "타이틀바(상)"; + colorListItem2.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + colorListItem2.Remark = "상태표시(하)"; + colorListItem3.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem3.BackColor2 = System.Drawing.Color.Lime; + colorListItem3.Remark = "정상"; + colorListItem4.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem4.BackColor2 = System.Drawing.Color.Red; + colorListItem4.Remark = "오류"; + colorListItem5.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem5.BackColor2 = System.Drawing.Color.Yellow; + colorListItem5.Remark = "오류(깜박)"; + colorListItem6.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem6.BackColor2 = System.Drawing.Color.DarkViolet; + colorListItem6.Remark = "오류(유효)"; + this.HWState.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem1, + colorListItem2, + colorListItem3, + colorListItem4, + colorListItem5, + colorListItem6}; + this.HWState.Dock = System.Windows.Forms.DockStyle.Fill; + this.HWState.Font = new System.Drawing.Font("Consolas", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.HWState.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.HWState.ForeColor = System.Drawing.Color.Moccasin; + this.HWState.ForeColorPin = System.Drawing.Color.Moccasin; + this.HWState.Location = new System.Drawing.Point(0, 525); + this.HWState.Margin = new System.Windows.Forms.Padding(0); + this.HWState.MatrixSize = new System.Drawing.Point(3, 2); + this.HWState.MenuBorderSize = 1; + this.HWState.MenuGap = 5; + this.HWState.MinimumSize = new System.Drawing.Size(100, 0); + this.HWState.Name = "HWState"; + this.HWState.Names = new string[] { + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""}; + this.HWState.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.HWState.showDebugInfo = false; + this.HWState.ShowIndexString = false; + this.HWState.Size = new System.Drawing.Size(1056, 58); + this.HWState.TabIndex = 9; + this.HWState.Tags = null; + this.HWState.Text = "gridView3"; + this.HWState.TextAttachToImage = true; + this.HWState.Titles = new string[] { + "AGV|XBE|BAT|", + "C00|C00|C00|"}; + this.HWState.Values = new ushort[] { + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(1)), + ((ushort)(1)), + ((ushort)(1))}; + // + // panel1 + // + this.panel1.Controls.Add(this.label1); + this.panel1.Controls.Add(this.label3); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(3, 3); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1050, 14); + this.panel1.TabIndex = 6; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(650, 14); + this.label1.TabIndex = 5; + this.label1.Text = "label1"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Right; + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.label3.Location = new System.Drawing.Point(650, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(400, 14); + this.label3.TabIndex = 6; + this.label3.Text = "label3"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(3, 23); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1050, 499); + this.panel3.TabIndex = 10; + // + // timer1 + // + this.timer1.Interval = 200; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // fIO + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1056, 583); + this.Controls.Add(this.tableLayoutPanel1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "fIO"; + this.Text = "fIO"; + this.Load += new System.EventHandler(this.fIO_Load); + this.VisibleChanged += new System.EventHandler(this.fIO_VisibleChanged); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Panel panel1; + private arFrame.Control.GridView HWState; + private System.Windows.Forms.Panel panel3; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fIO.cs b/HMI/Project/ViewForm/fIO.cs similarity index 97% rename from Cs_HMI/Project/ViewForm/fIO.cs rename to HMI/Project/ViewForm/fIO.cs index 289b3ff..22b55e6 100644 --- a/Cs_HMI/Project/ViewForm/fIO.cs +++ b/HMI/Project/ViewForm/fIO.cs @@ -1,162 +1,162 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Project.ViewForm -{ - public partial class fIO : Form - { - public fIO() - { - InitializeComponent(); - - - //이름설정 INput #1 - List namearray = new List(32); - List tagarray = new List(32); - - namearray.Clear(); - tagarray.Clear(); - //for (byte i = 0; i < 16; i++) - //{ - // var flagName = ((arDev.FakePLC.DIName)i).ToString(); - // var enumValue = Enum.Parse(typeof(arDev.FakePLC.DIPin), flagName); - // if (flagName == i.ToString()) tagarray.Add(string.Empty); - // else - // { - // //동일한 이름의 pin 번호르 찾아서 할당해준다. - // var eV = (arDev.FakePLC.DIPin)enumValue; - // tagarray.Add(((byte)eV).ToString()); - // } - // namearray.Add(flagName.Replace("_", "\n")); - //} - //for (byte i = 0; i < 8; i++) - //{ - // var flagName = ((arDev.FakePLC.DOName)i).ToString(); - // var enumValue = Enum.Parse(typeof(arDev.FakePLC.DOPin), flagName); - // if (flagName == i.ToString()) tagarray.Add(string.Empty); - // else - // { - // //동일한 이름의 pin 번호르 찾아서 할당해준다. - // var eV = (arDev.FakePLC.DOPin)enumValue; - // tagarray.Add(((byte)eV).ToString()); - // } - // namearray.Add(flagName); - //} - - - this.FormClosed += FIO_FormClosed; - UpdateControl(); - } - void Update_HWStatus() - { - var rownum = 1; - var colIdx = 0; - - - if (PUB.AGV.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); - else HWState.setValue(rownum, colIdx++, 2); // - - if (PUB.XBE.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); - else HWState.setValue(rownum, colIdx++, 2); // - - //if (PUB.PLC.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); - //else HWState.setValue(rownum, colIdx++, 2); // - - if (PUB.BMS.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); - else HWState.setValue(rownum, colIdx++, 2); // - } - void BlinkGridViewItem(arFrame.Control.GridView ctl, int row, int col, int value1, int value2) - { - var curValue = ctl.getValue(row, col); - ctl.setValue(row, col, (byte)(curValue == value1 ? value2 : value1)); // - } - - void UpdateControl() - { - var rowNum = 1; - var colIdx = 0; - HWState.setTitle(0, colIdx++, "AGV"); - HWState.setTitle(0, colIdx++, "XBE"); - //HWState.setTitle(0, colIdx++, "PLC"); - HWState.setTitle(0, colIdx++, "BAT"); - - colIdx = 0; - HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_AGV); - HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_XBE); - //HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_PLC); - HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_BAT); - - HWState.Invalidate(); - - } - private void fIO_Load(object sender, EventArgs e) - { - this.timer1.Start(); - } - private void FIO_FormClosed(object sender, FormClosedEventArgs e) - { - //Pub.plcM.ValueChanged -= Plc1_ValueChanged; - //Pub.plcS.ValueChanged -= Plc2_ValueChanged; - } - - - - - - bool tmrun = false; - private void timer1_Tick(object sender, EventArgs e) - { - if (this.Visible == false) return; - if (tmrun == true) return; - tmrun = true; - - Update_HWStatus(); - - List fgValueM = new List(); - List fgValueS = new List(); - - - tmrun = false; - } - - private void fIO_VisibleChanged(object sender, EventArgs e) - { - this.timer1.Enabled = this.Visible; - if (timer1.Enabled) timer1.Start(); - else timer1.Stop(); - } - - private void button1_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - } - - - private void button2_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.STP); - } - - private void button3_Click_1(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN); - } - - private void button4_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON); - } - - private void button5_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.ViewForm +{ + public partial class fIO : Form + { + public fIO() + { + InitializeComponent(); + + + //이름설정 INput #1 + List namearray = new List(32); + List tagarray = new List(32); + + namearray.Clear(); + tagarray.Clear(); + //for (byte i = 0; i < 16; i++) + //{ + // var flagName = ((arDev.FakePLC.DIName)i).ToString(); + // var enumValue = Enum.Parse(typeof(arDev.FakePLC.DIPin), flagName); + // if (flagName == i.ToString()) tagarray.Add(string.Empty); + // else + // { + // //동일한 이름의 pin 번호르 찾아서 할당해준다. + // var eV = (arDev.FakePLC.DIPin)enumValue; + // tagarray.Add(((byte)eV).ToString()); + // } + // namearray.Add(flagName.Replace("_", "\n")); + //} + //for (byte i = 0; i < 8; i++) + //{ + // var flagName = ((arDev.FakePLC.DOName)i).ToString(); + // var enumValue = Enum.Parse(typeof(arDev.FakePLC.DOPin), flagName); + // if (flagName == i.ToString()) tagarray.Add(string.Empty); + // else + // { + // //동일한 이름의 pin 번호르 찾아서 할당해준다. + // var eV = (arDev.FakePLC.DOPin)enumValue; + // tagarray.Add(((byte)eV).ToString()); + // } + // namearray.Add(flagName); + //} + + + this.FormClosed += FIO_FormClosed; + UpdateControl(); + } + void Update_HWStatus() + { + var rownum = 1; + var colIdx = 0; + + + if (PUB.AGV.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); + else HWState.setValue(rownum, colIdx++, 2); // + + if (PUB.XBE.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); + else HWState.setValue(rownum, colIdx++, 2); // + + //if (PUB.PLC.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); + //else HWState.setValue(rownum, colIdx++, 2); // + + if (PUB.BMS.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4); + else HWState.setValue(rownum, colIdx++, 2); // + } + void BlinkGridViewItem(arFrame.Control.GridView ctl, int row, int col, int value1, int value2) + { + var curValue = ctl.getValue(row, col); + ctl.setValue(row, col, (byte)(curValue == value1 ? value2 : value1)); // + } + + void UpdateControl() + { + var rowNum = 1; + var colIdx = 0; + HWState.setTitle(0, colIdx++, "AGV"); + HWState.setTitle(0, colIdx++, "XBE"); + //HWState.setTitle(0, colIdx++, "PLC"); + HWState.setTitle(0, colIdx++, "BAT"); + + colIdx = 0; + HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_AGV); + HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_XBE); + //HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_PLC); + HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_BAT); + + HWState.Invalidate(); + + } + private void fIO_Load(object sender, EventArgs e) + { + this.timer1.Start(); + } + private void FIO_FormClosed(object sender, FormClosedEventArgs e) + { + //Pub.plcM.ValueChanged -= Plc1_ValueChanged; + //Pub.plcS.ValueChanged -= Plc2_ValueChanged; + } + + + + + + bool tmrun = false; + private void timer1_Tick(object sender, EventArgs e) + { + if (this.Visible == false) return; + if (tmrun == true) return; + tmrun = true; + + Update_HWStatus(); + + List fgValueM = new List(); + List fgValueS = new List(); + + + tmrun = false; + } + + private void fIO_VisibleChanged(object sender, EventArgs e) + { + this.timer1.Enabled = this.Visible; + if (timer1.Enabled) timer1.Start(); + else timer1.Stop(); + } + + private void button1_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + } + + + private void button2_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.STP); + } + + private void button3_Click_1(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN); + } + + private void button4_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON); + } + + private void button5_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF); + } + } +} diff --git a/Cs_HMI/Project/ViewForm/fIO.resx b/HMI/Project/ViewForm/fIO.resx similarity index 97% rename from Cs_HMI/Project/ViewForm/fIO.resx rename to HMI/Project/ViewForm/fIO.resx index aac33d5..1f666f2 100644 --- a/Cs_HMI/Project/ViewForm/fIO.resx +++ b/HMI/Project/ViewForm/fIO.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fManual.Designer.cs b/HMI/Project/ViewForm/fManual.Designer.cs similarity index 98% rename from Cs_HMI/Project/ViewForm/fManual.Designer.cs rename to HMI/Project/ViewForm/fManual.Designer.cs index 356f542..6a33181 100644 --- a/Cs_HMI/Project/ViewForm/fManual.Designer.cs +++ b/HMI/Project/ViewForm/fManual.Designer.cs @@ -1,989 +1,989 @@ -namespace Project.ViewForm -{ - partial class fManual - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.btStart = new arCtl.arLabel(); - this.btRight = new arCtl.arLabel(); - this.btBack = new arCtl.arLabel(); - this.btForward = new arCtl.arLabel(); - this.btLeft = new arCtl.arLabel(); - this.btMarkStop = new System.Windows.Forms.Button(); - this.btchargeOff = new System.Windows.Forms.Button(); - this.btChargeOn = new System.Windows.Forms.Button(); - this.btErrReset = new System.Windows.Forms.Button(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.panel2 = new System.Windows.Forms.Panel(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.btBack180 = new System.Windows.Forms.Button(); - this.btLeft180 = new System.Windows.Forms.Button(); - this.btRight180 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.radpbs2 = new AGVControl.MyRadioButton(); - this.panel9 = new System.Windows.Forms.Panel(); - this.radpbs1 = new AGVControl.MyRadioButton(); - this.panel3 = new System.Windows.Forms.Panel(); - this.radpbs0 = new AGVControl.MyRadioButton(); - this.grpSpeed = new System.Windows.Forms.GroupBox(); - this.radspdh = new AGVControl.MyRadioButton(); - this.panel8 = new System.Windows.Forms.Panel(); - this.radspdm = new AGVControl.MyRadioButton(); - this.panel4 = new System.Windows.Forms.Panel(); - this.radspdl = new AGVControl.MyRadioButton(); - this.grpBunki = new System.Windows.Forms.GroupBox(); - this.radright = new AGVControl.MyRadioButton(); - this.panel7 = new System.Windows.Forms.Panel(); - this.radstrai = new AGVControl.MyRadioButton(); - this.panel5 = new System.Windows.Forms.Panel(); - this.radleft = new AGVControl.MyRadioButton(); - this.groupBox2 = new System.Windows.Forms.GroupBox(); - this.arLabel1 = new arCtl.arLabel(); - this.panel12 = new System.Windows.Forms.Panel(); - this.radbackward = new AGVControl.MyRadioButton(); - this.panel6 = new System.Windows.Forms.Panel(); - this.radforward = new AGVControl.MyRadioButton(); - this.label1 = new System.Windows.Forms.Label(); - this.guideSensor1 = new Narumi.UC.GuideSensor(); - this.tableLayoutPanel1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.groupBox1.SuspendLayout(); - this.grpSpeed.SuspendLayout(); - this.grpBunki.SuspendLayout(); - this.groupBox2.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 3; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.Controls.Add(this.btStart, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.btRight, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.btBack, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.btForward, 1, 2); - this.tableLayoutPanel1.Controls.Add(this.btLeft, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.btMarkStop, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.btchargeOff, 2, 2); - this.tableLayoutPanel1.Controls.Add(this.btChargeOn, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.btErrReset, 2, 0); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left; - this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 21); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(604, 594); - this.tableLayoutPanel1.TabIndex = 7; - // - // btStart - // - this.btStart.BackColor = System.Drawing.Color.Gray; - this.btStart.BackColor2 = System.Drawing.Color.Black; - this.btStart.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btStart.BorderColor = System.Drawing.Color.Black; - this.btStart.BorderColorOver = System.Drawing.Color.DarkBlue; - this.btStart.BorderSize = new System.Windows.Forms.Padding(1); - this.btStart.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btStart.Cursor = System.Windows.Forms.Cursors.Hand; - this.btStart.Dock = System.Windows.Forms.DockStyle.Fill; - this.btStart.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btStart.ForeColor = System.Drawing.Color.White; - this.btStart.GradientEnable = true; - this.btStart.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btStart.GradientRepeatBG = false; - this.btStart.isButton = true; - this.btStart.Location = new System.Drawing.Point(204, 200); - this.btStart.MouseDownColor = System.Drawing.Color.Yellow; - this.btStart.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btStart.msg = new string[] { - "커버", - "UP"}; - this.btStart.Name = "btStart"; - this.btStart.ProgressBorderColor = System.Drawing.Color.Black; - this.btStart.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btStart.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btStart.ProgressEnable = false; - this.btStart.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btStart.ProgressForeColor = System.Drawing.Color.Black; - this.btStart.ProgressMax = 100F; - this.btStart.ProgressMin = 0F; - this.btStart.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btStart.ProgressValue = 0F; - this.btStart.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btStart.Sign = ""; - this.btStart.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btStart.SignColor = System.Drawing.Color.Yellow; - this.btStart.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btStart.Size = new System.Drawing.Size(195, 191); - this.btStart.TabIndex = 6; - this.btStart.Text = "RUN"; - this.btStart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btStart.TextShadow = true; - this.btStart.TextVisible = true; - this.btStart.Click += new System.EventHandler(this.arLabel11_Click); - // - // btRight - // - this.btRight.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); - this.btRight.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); - this.btRight.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btRight.BorderColor = System.Drawing.Color.Black; - this.btRight.BorderColorOver = System.Drawing.Color.DarkBlue; - this.btRight.BorderSize = new System.Windows.Forms.Padding(1); - this.btRight.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btRight.Cursor = System.Windows.Forms.Cursors.Hand; - this.btRight.Dock = System.Windows.Forms.DockStyle.Fill; - this.btRight.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btRight.ForeColor = System.Drawing.Color.White; - this.btRight.GradientEnable = true; - this.btRight.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btRight.GradientRepeatBG = false; - this.btRight.isButton = true; - this.btRight.Location = new System.Drawing.Point(405, 200); - this.btRight.MouseDownColor = System.Drawing.Color.Yellow; - this.btRight.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btRight.msg = null; - this.btRight.Name = "btRight"; - this.btRight.ProgressBorderColor = System.Drawing.Color.Black; - this.btRight.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btRight.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btRight.ProgressEnable = false; - this.btRight.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btRight.ProgressForeColor = System.Drawing.Color.Black; - this.btRight.ProgressMax = 100F; - this.btRight.ProgressMin = 0F; - this.btRight.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btRight.ProgressValue = 0F; - this.btRight.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btRight.Sign = ""; - this.btRight.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btRight.SignColor = System.Drawing.Color.Yellow; - this.btRight.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btRight.Size = new System.Drawing.Size(196, 191); - this.btRight.TabIndex = 0; - this.btRight.Text = "좌회전"; - this.btRight.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btRight.TextShadow = true; - this.btRight.TextVisible = true; - this.btRight.Click += new System.EventHandler(this.arLabel4_Click); - // - // btBack - // - this.btBack.AccessibleDescription = ""; - this.btBack.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); - this.btBack.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); - this.btBack.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btBack.BorderColor = System.Drawing.Color.Black; - this.btBack.BorderColorOver = System.Drawing.Color.DarkBlue; - this.btBack.BorderSize = new System.Windows.Forms.Padding(1); - this.btBack.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btBack.Cursor = System.Windows.Forms.Cursors.Hand; - this.btBack.Dock = System.Windows.Forms.DockStyle.Fill; - this.btBack.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btBack.ForeColor = System.Drawing.Color.White; - this.btBack.GradientEnable = true; - this.btBack.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btBack.GradientRepeatBG = false; - this.btBack.isButton = true; - this.btBack.Location = new System.Drawing.Point(204, 3); - this.btBack.MouseDownColor = System.Drawing.Color.Yellow; - this.btBack.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btBack.msg = null; - this.btBack.Name = "btBack"; - this.btBack.ProgressBorderColor = System.Drawing.Color.Black; - this.btBack.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btBack.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btBack.ProgressEnable = false; - this.btBack.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btBack.ProgressForeColor = System.Drawing.Color.Black; - this.btBack.ProgressMax = 100F; - this.btBack.ProgressMin = 0F; - this.btBack.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btBack.ProgressValue = 0F; - this.btBack.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btBack.Sign = ""; - this.btBack.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btBack.SignColor = System.Drawing.Color.Yellow; - this.btBack.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btBack.Size = new System.Drawing.Size(195, 191); - this.btBack.TabIndex = 0; - this.btBack.Text = "후진"; - this.btBack.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btBack.TextShadow = true; - this.btBack.TextVisible = true; - this.btBack.Click += new System.EventHandler(this.arLabel1_Click); - // - // btForward - // - this.btForward.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); - this.btForward.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); - this.btForward.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btForward.BorderColor = System.Drawing.Color.Black; - this.btForward.BorderColorOver = System.Drawing.Color.DarkBlue; - this.btForward.BorderSize = new System.Windows.Forms.Padding(1); - this.btForward.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btForward.Cursor = System.Windows.Forms.Cursors.Hand; - this.btForward.Dock = System.Windows.Forms.DockStyle.Fill; - this.btForward.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btForward.ForeColor = System.Drawing.Color.White; - this.btForward.GradientEnable = true; - this.btForward.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btForward.GradientRepeatBG = false; - this.btForward.isButton = true; - this.btForward.Location = new System.Drawing.Point(204, 397); - this.btForward.MouseDownColor = System.Drawing.Color.Yellow; - this.btForward.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btForward.msg = null; - this.btForward.Name = "btForward"; - this.btForward.ProgressBorderColor = System.Drawing.Color.Black; - this.btForward.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btForward.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btForward.ProgressEnable = false; - this.btForward.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btForward.ProgressForeColor = System.Drawing.Color.Black; - this.btForward.ProgressMax = 100F; - this.btForward.ProgressMin = 0F; - this.btForward.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btForward.ProgressValue = 0F; - this.btForward.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btForward.Sign = ""; - this.btForward.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btForward.SignColor = System.Drawing.Color.Yellow; - this.btForward.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btForward.Size = new System.Drawing.Size(195, 194); - this.btForward.TabIndex = 0; - this.btForward.Text = "전진"; - this.btForward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btForward.TextShadow = true; - this.btForward.TextVisible = true; - this.btForward.Click += new System.EventHandler(this.arLabel2_Click); - // - // btLeft - // - this.btLeft.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); - this.btLeft.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); - this.btLeft.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btLeft.BorderColor = System.Drawing.Color.Black; - this.btLeft.BorderColorOver = System.Drawing.Color.DarkBlue; - this.btLeft.BorderSize = new System.Windows.Forms.Padding(1); - this.btLeft.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btLeft.Cursor = System.Windows.Forms.Cursors.Hand; - this.btLeft.Dock = System.Windows.Forms.DockStyle.Fill; - this.btLeft.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btLeft.ForeColor = System.Drawing.Color.White; - this.btLeft.GradientEnable = true; - this.btLeft.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btLeft.GradientRepeatBG = false; - this.btLeft.isButton = true; - this.btLeft.Location = new System.Drawing.Point(3, 200); - this.btLeft.MouseDownColor = System.Drawing.Color.Yellow; - this.btLeft.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btLeft.msg = null; - this.btLeft.Name = "btLeft"; - this.btLeft.ProgressBorderColor = System.Drawing.Color.Black; - this.btLeft.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btLeft.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btLeft.ProgressEnable = false; - this.btLeft.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btLeft.ProgressForeColor = System.Drawing.Color.Black; - this.btLeft.ProgressMax = 100F; - this.btLeft.ProgressMin = 0F; - this.btLeft.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btLeft.ProgressValue = 0F; - this.btLeft.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btLeft.Sign = ""; - this.btLeft.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btLeft.SignColor = System.Drawing.Color.Yellow; - this.btLeft.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btLeft.Size = new System.Drawing.Size(195, 191); - this.btLeft.TabIndex = 0; - this.btLeft.Text = "우회전"; - this.btLeft.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btLeft.TextShadow = true; - this.btLeft.TextVisible = true; - this.btLeft.Click += new System.EventHandler(this.arLabel3_Click); - // - // btMarkStop - // - this.btMarkStop.Dock = System.Windows.Forms.DockStyle.Fill; - this.btMarkStop.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btMarkStop.Location = new System.Drawing.Point(3, 3); - this.btMarkStop.Name = "btMarkStop"; - this.btMarkStop.Size = new System.Drawing.Size(195, 191); - this.btMarkStop.TabIndex = 7; - this.btMarkStop.Text = "마크정지"; - this.btMarkStop.UseVisualStyleBackColor = true; - this.btMarkStop.Click += new System.EventHandler(this.button1_Click); - // - // btchargeOff - // - this.btchargeOff.Dock = System.Windows.Forms.DockStyle.Fill; - this.btchargeOff.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btchargeOff.Location = new System.Drawing.Point(405, 397); - this.btchargeOff.Name = "btchargeOff"; - this.btchargeOff.Size = new System.Drawing.Size(196, 194); - this.btchargeOff.TabIndex = 8; - this.btchargeOff.Text = "충전해제"; - this.btchargeOff.UseVisualStyleBackColor = true; - this.btchargeOff.Click += new System.EventHandler(this.btchargeOff_Click); - // - // btChargeOn - // - this.btChargeOn.Dock = System.Windows.Forms.DockStyle.Fill; - this.btChargeOn.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btChargeOn.Location = new System.Drawing.Point(3, 397); - this.btChargeOn.Name = "btChargeOn"; - this.btChargeOn.Size = new System.Drawing.Size(195, 194); - this.btChargeOn.TabIndex = 9; - this.btChargeOn.Text = "충전"; - this.btChargeOn.UseVisualStyleBackColor = true; - this.btChargeOn.Click += new System.EventHandler(this.btChargeOn_Click); - // - // btErrReset - // - this.btErrReset.Dock = System.Windows.Forms.DockStyle.Fill; - this.btErrReset.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btErrReset.Location = new System.Drawing.Point(405, 3); - this.btErrReset.Name = "btErrReset"; - this.btErrReset.Size = new System.Drawing.Size(196, 191); - this.btErrReset.TabIndex = 10; - this.btErrReset.Text = "오류소거"; - this.btErrReset.UseVisualStyleBackColor = true; - this.btErrReset.Click += new System.EventHandler(this.button3_Click); - // - // timer1 - // - this.timer1.Interval = 250; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - // - // panel2 - // - this.panel2.Controls.Add(this.tableLayoutPanel2); - this.panel2.Controls.Add(this.button1); - this.panel2.Controls.Add(this.groupBox1); - this.panel2.Controls.Add(this.grpSpeed); - this.panel2.Controls.Add(this.grpBunki); - this.panel2.Controls.Add(this.groupBox2); - this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel2.Location = new System.Drawing.Point(607, 21); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(404, 556); - this.panel2.TabIndex = 9; - this.panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.panel2_Paint); - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.btBack180, 1, 0); - this.tableLayoutPanel2.Controls.Add(this.btLeft180, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.btRight180, 0, 1); - this.tableLayoutPanel2.Controls.Add(this.button2, 1, 1); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 438); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(404, 118); - this.tableLayoutPanel2.TabIndex = 12; - // - // btBack180 - // - this.btBack180.BackColor = System.Drawing.Color.WhiteSmoke; - this.btBack180.Cursor = System.Windows.Forms.Cursors.Hand; - this.btBack180.Dock = System.Windows.Forms.DockStyle.Fill; - this.btBack180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); - this.btBack180.ForeColor = System.Drawing.Color.Black; - this.btBack180.Location = new System.Drawing.Point(205, 3); - this.btBack180.Name = "btBack180"; - this.btBack180.Size = new System.Drawing.Size(196, 53); - this.btBack180.TabIndex = 15; - this.btBack180.Text = "자석 (ON)"; - this.btBack180.UseVisualStyleBackColor = false; - this.btBack180.Click += new System.EventHandler(this.btBack180_Click); - // - // btLeft180 - // - this.btLeft180.BackColor = System.Drawing.Color.WhiteSmoke; - this.btLeft180.Dock = System.Windows.Forms.DockStyle.Fill; - this.btLeft180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); - this.btLeft180.ForeColor = System.Drawing.Color.Black; - this.btLeft180.Location = new System.Drawing.Point(3, 3); - this.btLeft180.Name = "btLeft180"; - this.btLeft180.Size = new System.Drawing.Size(196, 53); - this.btLeft180.TabIndex = 7; - this.btLeft180.Text = "180도 좌회전"; - this.btLeft180.UseVisualStyleBackColor = false; - this.btLeft180.Click += new System.EventHandler(this.btLeft180_Click); - // - // btRight180 - // - this.btRight180.BackColor = System.Drawing.Color.WhiteSmoke; - this.btRight180.Dock = System.Windows.Forms.DockStyle.Fill; - this.btRight180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); - this.btRight180.ForeColor = System.Drawing.Color.Black; - this.btRight180.Location = new System.Drawing.Point(3, 62); - this.btRight180.Name = "btRight180"; - this.btRight180.Size = new System.Drawing.Size(196, 53); - this.btRight180.TabIndex = 6; - this.btRight180.Text = "180도 우회전"; - this.btRight180.UseVisualStyleBackColor = false; - this.btRight180.Click += new System.EventHandler(this.btRight180_Click); - // - // button2 - // - this.button2.BackColor = System.Drawing.Color.WhiteSmoke; - this.button2.Cursor = System.Windows.Forms.Cursors.Hand; - this.button2.Dock = System.Windows.Forms.DockStyle.Fill; - this.button2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); - this.button2.ForeColor = System.Drawing.Color.Black; - this.button2.Location = new System.Drawing.Point(205, 62); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(196, 53); - this.button2.TabIndex = 15; - this.button2.Text = "자석(OFF)"; - this.button2.UseVisualStyleBackColor = false; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // button1 - // - this.button1.Dock = System.Windows.Forms.DockStyle.Top; - this.button1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.button1.Location = new System.Drawing.Point(0, 380); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(404, 58); - this.button1.TabIndex = 10; - this.button1.Text = "설정 적용"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click_2); - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.radpbs2); - this.groupBox1.Controls.Add(this.panel9); - this.groupBox1.Controls.Add(this.radpbs1); - this.groupBox1.Controls.Add(this.panel3); - this.groupBox1.Controls.Add(this.radpbs0); - this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox1.Location = new System.Drawing.Point(0, 285); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); - this.groupBox1.Size = new System.Drawing.Size(404, 95); - this.groupBox1.TabIndex = 9; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "근접센서(PBS)"; - // - // radpbs2 - // - this.radpbs2.BackColor = System.Drawing.Color.WhiteSmoke; - this.radpbs2.Bordercolor = System.Drawing.Color.DimGray; - this.radpbs2.BorderRadius = 7; - this.radpbs2.BorderSize = 2; - this.radpbs2.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radpbs2.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radpbs2.CheckWidth = 30; - this.radpbs2.Dock = System.Windows.Forms.DockStyle.Left; - this.radpbs2.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radpbs2.Location = new System.Drawing.Point(278, 19); - this.radpbs2.Name = "radpbs2"; - this.radpbs2.Size = new System.Drawing.Size(119, 66); - this.radpbs2.TabIndex = 10; - this.radpbs2.Text = "On(2)"; - this.radpbs2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radpbs2.UseVisualStyleBackColor = false; - // - // panel9 - // - this.panel9.Dock = System.Windows.Forms.DockStyle.Left; - this.panel9.Location = new System.Drawing.Point(263, 19); - this.panel9.Name = "panel9"; - this.panel9.Size = new System.Drawing.Size(15, 66); - this.panel9.TabIndex = 12; - // - // radpbs1 - // - this.radpbs1.BackColor = System.Drawing.Color.WhiteSmoke; - this.radpbs1.Bordercolor = System.Drawing.Color.DimGray; - this.radpbs1.BorderRadius = 7; - this.radpbs1.BorderSize = 2; - this.radpbs1.Checked = true; - this.radpbs1.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radpbs1.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radpbs1.CheckWidth = 30; - this.radpbs1.Dock = System.Windows.Forms.DockStyle.Left; - this.radpbs1.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radpbs1.ForeColor = System.Drawing.Color.Blue; - this.radpbs1.Location = new System.Drawing.Point(144, 19); - this.radpbs1.Name = "radpbs1"; - this.radpbs1.Size = new System.Drawing.Size(119, 66); - this.radpbs1.TabIndex = 9; - this.radpbs1.TabStop = true; - this.radpbs1.Text = "On(1)"; - this.radpbs1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radpbs1.UseVisualStyleBackColor = false; - // - // panel3 - // - this.panel3.Dock = System.Windows.Forms.DockStyle.Left; - this.panel3.Location = new System.Drawing.Point(129, 19); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(15, 66); - this.panel3.TabIndex = 11; - // - // radpbs0 - // - this.radpbs0.BackColor = System.Drawing.Color.WhiteSmoke; - this.radpbs0.Bordercolor = System.Drawing.Color.DimGray; - this.radpbs0.BorderRadius = 7; - this.radpbs0.BorderSize = 2; - this.radpbs0.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radpbs0.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radpbs0.CheckWidth = 30; - this.radpbs0.Dock = System.Windows.Forms.DockStyle.Left; - this.radpbs0.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radpbs0.Location = new System.Drawing.Point(10, 19); - this.radpbs0.Name = "radpbs0"; - this.radpbs0.Size = new System.Drawing.Size(119, 66); - this.radpbs0.TabIndex = 8; - this.radpbs0.Text = "Off(0)"; - this.radpbs0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radpbs0.UseVisualStyleBackColor = false; - // - // grpSpeed - // - this.grpSpeed.Controls.Add(this.radspdh); - this.grpSpeed.Controls.Add(this.panel8); - this.grpSpeed.Controls.Add(this.radspdm); - this.grpSpeed.Controls.Add(this.panel4); - this.grpSpeed.Controls.Add(this.radspdl); - this.grpSpeed.Dock = System.Windows.Forms.DockStyle.Top; - this.grpSpeed.Location = new System.Drawing.Point(0, 190); - this.grpSpeed.Name = "grpSpeed"; - this.grpSpeed.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); - this.grpSpeed.Size = new System.Drawing.Size(404, 95); - this.grpSpeed.TabIndex = 0; - this.grpSpeed.TabStop = false; - this.grpSpeed.Text = "속도"; - // - // radspdh - // - this.radspdh.BackColor = System.Drawing.Color.WhiteSmoke; - this.radspdh.Bordercolor = System.Drawing.Color.DimGray; - this.radspdh.BorderRadius = 7; - this.radspdh.BorderSize = 2; - this.radspdh.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radspdh.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radspdh.CheckWidth = 30; - this.radspdh.Dock = System.Windows.Forms.DockStyle.Left; - this.radspdh.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radspdh.Location = new System.Drawing.Point(278, 19); - this.radspdh.Name = "radspdh"; - this.radspdh.Size = new System.Drawing.Size(119, 66); - this.radspdh.TabIndex = 2; - this.radspdh.Text = "고속"; - this.radspdh.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radspdh.UseVisualStyleBackColor = false; - // - // panel8 - // - this.panel8.Dock = System.Windows.Forms.DockStyle.Left; - this.panel8.Location = new System.Drawing.Point(263, 19); - this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(15, 66); - this.panel8.TabIndex = 13; - // - // radspdm - // - this.radspdm.BackColor = System.Drawing.Color.WhiteSmoke; - this.radspdm.Bordercolor = System.Drawing.Color.DimGray; - this.radspdm.BorderRadius = 7; - this.radspdm.BorderSize = 2; - this.radspdm.Checked = true; - this.radspdm.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radspdm.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radspdm.CheckWidth = 30; - this.radspdm.Dock = System.Windows.Forms.DockStyle.Left; - this.radspdm.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radspdm.ForeColor = System.Drawing.Color.Blue; - this.radspdm.Location = new System.Drawing.Point(144, 19); - this.radspdm.Name = "radspdm"; - this.radspdm.Size = new System.Drawing.Size(119, 66); - this.radspdm.TabIndex = 1; - this.radspdm.TabStop = true; - this.radspdm.Text = "중속"; - this.radspdm.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radspdm.UseVisualStyleBackColor = false; - // - // panel4 - // - this.panel4.Dock = System.Windows.Forms.DockStyle.Left; - this.panel4.Location = new System.Drawing.Point(129, 19); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(15, 66); - this.panel4.TabIndex = 12; - // - // radspdl - // - this.radspdl.BackColor = System.Drawing.Color.WhiteSmoke; - this.radspdl.Bordercolor = System.Drawing.Color.DimGray; - this.radspdl.BorderRadius = 7; - this.radspdl.BorderSize = 2; - this.radspdl.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radspdl.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radspdl.CheckWidth = 30; - this.radspdl.Dock = System.Windows.Forms.DockStyle.Left; - this.radspdl.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radspdl.Location = new System.Drawing.Point(10, 19); - this.radspdl.Name = "radspdl"; - this.radspdl.Size = new System.Drawing.Size(119, 66); - this.radspdl.TabIndex = 0; - this.radspdl.Text = "저속"; - this.radspdl.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radspdl.UseVisualStyleBackColor = false; - // - // grpBunki - // - this.grpBunki.Controls.Add(this.radright); - this.grpBunki.Controls.Add(this.panel7); - this.grpBunki.Controls.Add(this.radstrai); - this.grpBunki.Controls.Add(this.panel5); - this.grpBunki.Controls.Add(this.radleft); - this.grpBunki.Dock = System.Windows.Forms.DockStyle.Top; - this.grpBunki.Location = new System.Drawing.Point(0, 95); - this.grpBunki.Name = "grpBunki"; - this.grpBunki.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); - this.grpBunki.Size = new System.Drawing.Size(404, 95); - this.grpBunki.TabIndex = 1; - this.grpBunki.TabStop = false; - this.grpBunki.Text = "분기"; - // - // radright - // - this.radright.BackColor = System.Drawing.Color.WhiteSmoke; - this.radright.Bordercolor = System.Drawing.Color.DimGray; - this.radright.BorderRadius = 7; - this.radright.BorderSize = 2; - this.radright.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radright.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radright.CheckWidth = 30; - this.radright.Dock = System.Windows.Forms.DockStyle.Left; - this.radright.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radright.Location = new System.Drawing.Point(278, 19); - this.radright.Name = "radright"; - this.radright.Size = new System.Drawing.Size(119, 66); - this.radright.TabIndex = 4; - this.radright.Text = "우측"; - this.radright.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radright.UseVisualStyleBackColor = false; - // - // panel7 - // - this.panel7.Dock = System.Windows.Forms.DockStyle.Left; - this.panel7.Location = new System.Drawing.Point(263, 19); - this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(15, 66); - this.panel7.TabIndex = 13; - // - // radstrai - // - this.radstrai.BackColor = System.Drawing.Color.WhiteSmoke; - this.radstrai.Bordercolor = System.Drawing.Color.DimGray; - this.radstrai.BorderRadius = 7; - this.radstrai.BorderSize = 2; - this.radstrai.Checked = true; - this.radstrai.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radstrai.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radstrai.CheckWidth = 30; - this.radstrai.Dock = System.Windows.Forms.DockStyle.Left; - this.radstrai.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radstrai.ForeColor = System.Drawing.Color.Blue; - this.radstrai.Location = new System.Drawing.Point(144, 19); - this.radstrai.Name = "radstrai"; - this.radstrai.Size = new System.Drawing.Size(119, 66); - this.radstrai.TabIndex = 3; - this.radstrai.TabStop = true; - this.radstrai.Text = "직진"; - this.radstrai.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radstrai.UseVisualStyleBackColor = false; - // - // panel5 - // - this.panel5.Dock = System.Windows.Forms.DockStyle.Left; - this.panel5.Location = new System.Drawing.Point(129, 19); - this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(15, 66); - this.panel5.TabIndex = 12; - // - // radleft - // - this.radleft.BackColor = System.Drawing.Color.WhiteSmoke; - this.radleft.Bordercolor = System.Drawing.Color.DimGray; - this.radleft.BorderRadius = 7; - this.radleft.BorderSize = 2; - this.radleft.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radleft.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radleft.CheckWidth = 30; - this.radleft.Dock = System.Windows.Forms.DockStyle.Left; - this.radleft.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radleft.Location = new System.Drawing.Point(10, 19); - this.radleft.Name = "radleft"; - this.radleft.Size = new System.Drawing.Size(119, 66); - this.radleft.TabIndex = 5; - this.radleft.Text = "좌측"; - this.radleft.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radleft.UseVisualStyleBackColor = false; - // - // groupBox2 - // - this.groupBox2.Controls.Add(this.arLabel1); - this.groupBox2.Controls.Add(this.panel12); - this.groupBox2.Controls.Add(this.radbackward); - this.groupBox2.Controls.Add(this.panel6); - this.groupBox2.Controls.Add(this.radforward); - this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top; - this.groupBox2.Location = new System.Drawing.Point(0, 0); - this.groupBox2.Name = "groupBox2"; - this.groupBox2.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); - this.groupBox2.Size = new System.Drawing.Size(404, 95); - this.groupBox2.TabIndex = 3; - this.groupBox2.TabStop = false; - this.groupBox2.Text = "방향"; - // - // arLabel1 - // - this.arLabel1.BackColor = System.Drawing.Color.Pink; - this.arLabel1.BackColor2 = System.Drawing.Color.Tomato; - this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel1.BorderColor = System.Drawing.Color.Black; - this.arLabel1.BorderColorOver = System.Drawing.Color.DarkBlue; - this.arLabel1.BorderSize = new System.Windows.Forms.Padding(1); - this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel1.Cursor = System.Windows.Forms.Cursors.Hand; - this.arLabel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.arLabel1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.arLabel1.ForeColor = System.Drawing.Color.White; - this.arLabel1.GradientEnable = true; - this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.arLabel1.GradientRepeatBG = false; - this.arLabel1.isButton = true; - this.arLabel1.Location = new System.Drawing.Point(278, 19); - this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel1.msg = new string[] { - "커버", - "UP"}; - this.arLabel1.Name = "arLabel1"; - this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black; - this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel1.ProgressEnable = false; - this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel1.ProgressMax = 100F; - this.arLabel1.ProgressMin = 0F; - this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel1.ProgressValue = 0F; - this.arLabel1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arLabel1.Sign = ""; - this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel1.SignColor = System.Drawing.Color.Yellow; - this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.arLabel1.Size = new System.Drawing.Size(121, 66); - this.arLabel1.TabIndex = 15; - this.arLabel1.Text = "주행속도"; - this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel1.TextShadow = true; - this.arLabel1.TextVisible = true; - this.arLabel1.Click += new System.EventHandler(this.arLabel1_Click_1); - // - // panel12 - // - this.panel12.Dock = System.Windows.Forms.DockStyle.Left; - this.panel12.Location = new System.Drawing.Point(263, 19); - this.panel12.Name = "panel12"; - this.panel12.Size = new System.Drawing.Size(15, 66); - this.panel12.TabIndex = 14; - // - // radbackward - // - this.radbackward.BackColor = System.Drawing.Color.WhiteSmoke; - this.radbackward.Bordercolor = System.Drawing.Color.DimGray; - this.radbackward.BorderRadius = 7; - this.radbackward.BorderSize = 2; - this.radbackward.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radbackward.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radbackward.CheckWidth = 30; - this.radbackward.Dock = System.Windows.Forms.DockStyle.Left; - this.radbackward.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radbackward.Location = new System.Drawing.Point(144, 19); - this.radbackward.Name = "radbackward"; - this.radbackward.Size = new System.Drawing.Size(119, 66); - this.radbackward.TabIndex = 6; - this.radbackward.Text = "후진"; - this.radbackward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radbackward.UseVisualStyleBackColor = false; - // - // panel6 - // - this.panel6.Dock = System.Windows.Forms.DockStyle.Left; - this.panel6.Location = new System.Drawing.Point(129, 19); - this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(15, 66); - this.panel6.TabIndex = 12; - // - // radforward - // - this.radforward.BackColor = System.Drawing.Color.WhiteSmoke; - this.radforward.Bordercolor = System.Drawing.Color.DimGray; - this.radforward.BorderRadius = 7; - this.radforward.BorderSize = 2; - this.radforward.Checked = true; - this.radforward.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.radforward.CheckOnColor = System.Drawing.Color.LimeGreen; - this.radforward.CheckWidth = 30; - this.radforward.Dock = System.Windows.Forms.DockStyle.Left; - this.radforward.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.radforward.ForeColor = System.Drawing.Color.Blue; - this.radforward.Location = new System.Drawing.Point(10, 19); - this.radforward.Name = "radforward"; - this.radforward.Size = new System.Drawing.Size(119, 66); - this.radforward.TabIndex = 7; - this.radforward.TabStop = true; - this.radforward.Text = "전진"; - this.radforward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.radforward.UseVisualStyleBackColor = false; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Blue; - this.label1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.label1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label1.ForeColor = System.Drawing.Color.White; - this.label1.Location = new System.Drawing.Point(607, 577); - this.label1.Name = "label1"; - this.label1.Padding = new System.Windows.Forms.Padding(0, 3, 0, 3); - this.label1.Size = new System.Drawing.Size(404, 38); - this.label1.TabIndex = 9; - this.label1.Text = "----------"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // guideSensor1 - // - this.guideSensor1.Dock = System.Windows.Forms.DockStyle.Top; - this.guideSensor1.LMark = false; - this.guideSensor1.Location = new System.Drawing.Point(3, 3); - this.guideSensor1.Name = "guideSensor1"; - this.guideSensor1.RMark = false; - this.guideSensor1.SensorValue = 0; - this.guideSensor1.Size = new System.Drawing.Size(1008, 18); - this.guideSensor1.TabIndex = 8; - this.guideSensor1.Text = "guideSensor1"; - // - // fManual - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.SlateGray; - this.ClientSize = new System.Drawing.Size(1014, 618); - this.Controls.Add(this.panel2); - this.Controls.Add(this.label1); - this.Controls.Add(this.tableLayoutPanel1); - this.Controls.Add(this.guideSensor1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Name = "fManual"; - this.Padding = new System.Windows.Forms.Padding(3); - this.Text = "fManual"; - this.Load += new System.EventHandler(this.fManual_Load); - this.VisibleChanged += new System.EventHandler(this.fManual_VisibleChanged); - this.tableLayoutPanel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.tableLayoutPanel2.ResumeLayout(false); - this.groupBox1.ResumeLayout(false); - this.grpSpeed.ResumeLayout(false); - this.grpBunki.ResumeLayout(false); - this.groupBox2.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private arCtl.arLabel btBack; - private arCtl.arLabel btForward; - private arCtl.arLabel btLeft; - private arCtl.arLabel btRight; - private arCtl.arLabel btStart; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.Button btMarkStop; - private System.Windows.Forms.Button btchargeOff; - private System.Windows.Forms.Button btChargeOn; - private Narumi.UC.GuideSensor guideSensor1; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Button btErrReset; - private System.Windows.Forms.GroupBox grpSpeed; - private System.Windows.Forms.GroupBox grpBunki; - private System.Windows.Forms.GroupBox groupBox2; - private AGVControl.MyRadioButton radspdl; - private AGVControl.MyRadioButton radspdh; - private AGVControl.MyRadioButton radspdm; - private AGVControl.MyRadioButton radleft; - private AGVControl.MyRadioButton radright; - private AGVControl.MyRadioButton radstrai; - private AGVControl.MyRadioButton radbackward; - private AGVControl.MyRadioButton radforward; - private AGVControl.MyRadioButton radpbs0; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.GroupBox groupBox1; - private AGVControl.MyRadioButton radpbs1; - private AGVControl.MyRadioButton radpbs2; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Panel panel9; - private System.Windows.Forms.Panel panel8; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Panel panel7; - private System.Windows.Forms.Panel panel5; - private System.Windows.Forms.Panel panel6; - private System.Windows.Forms.Button button1; - private arCtl.arLabel arLabel1; - private System.Windows.Forms.Panel panel12; - private System.Windows.Forms.Button btRight180; - private System.Windows.Forms.Button btLeft180; - private System.Windows.Forms.Button btBack180; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.Button button2; - } +namespace Project.ViewForm +{ + partial class fManual + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btStart = new arCtl.arLabel(); + this.btRight = new arCtl.arLabel(); + this.btBack = new arCtl.arLabel(); + this.btForward = new arCtl.arLabel(); + this.btLeft = new arCtl.arLabel(); + this.btMarkStop = new System.Windows.Forms.Button(); + this.btchargeOff = new System.Windows.Forms.Button(); + this.btChargeOn = new System.Windows.Forms.Button(); + this.btErrReset = new System.Windows.Forms.Button(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.panel2 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.btBack180 = new System.Windows.Forms.Button(); + this.btLeft180 = new System.Windows.Forms.Button(); + this.btRight180 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.radpbs2 = new AGVControl.MyRadioButton(); + this.panel9 = new System.Windows.Forms.Panel(); + this.radpbs1 = new AGVControl.MyRadioButton(); + this.panel3 = new System.Windows.Forms.Panel(); + this.radpbs0 = new AGVControl.MyRadioButton(); + this.grpSpeed = new System.Windows.Forms.GroupBox(); + this.radspdh = new AGVControl.MyRadioButton(); + this.panel8 = new System.Windows.Forms.Panel(); + this.radspdm = new AGVControl.MyRadioButton(); + this.panel4 = new System.Windows.Forms.Panel(); + this.radspdl = new AGVControl.MyRadioButton(); + this.grpBunki = new System.Windows.Forms.GroupBox(); + this.radright = new AGVControl.MyRadioButton(); + this.panel7 = new System.Windows.Forms.Panel(); + this.radstrai = new AGVControl.MyRadioButton(); + this.panel5 = new System.Windows.Forms.Panel(); + this.radleft = new AGVControl.MyRadioButton(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.arLabel1 = new arCtl.arLabel(); + this.panel12 = new System.Windows.Forms.Panel(); + this.radbackward = new AGVControl.MyRadioButton(); + this.panel6 = new System.Windows.Forms.Panel(); + this.radforward = new AGVControl.MyRadioButton(); + this.label1 = new System.Windows.Forms.Label(); + this.guideSensor1 = new Narumi.UC.GuideSensor(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.grpSpeed.SuspendLayout(); + this.grpBunki.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Controls.Add(this.btStart, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btRight, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.btBack, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.btForward, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.btLeft, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.btMarkStop, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btchargeOff, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.btChargeOn, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.btErrReset, 2, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 21); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(604, 594); + this.tableLayoutPanel1.TabIndex = 7; + // + // btStart + // + this.btStart.BackColor = System.Drawing.Color.Gray; + this.btStart.BackColor2 = System.Drawing.Color.Black; + this.btStart.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btStart.BorderColor = System.Drawing.Color.Black; + this.btStart.BorderColorOver = System.Drawing.Color.DarkBlue; + this.btStart.BorderSize = new System.Windows.Forms.Padding(1); + this.btStart.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btStart.Cursor = System.Windows.Forms.Cursors.Hand; + this.btStart.Dock = System.Windows.Forms.DockStyle.Fill; + this.btStart.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btStart.ForeColor = System.Drawing.Color.White; + this.btStart.GradientEnable = true; + this.btStart.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btStart.GradientRepeatBG = false; + this.btStart.isButton = true; + this.btStart.Location = new System.Drawing.Point(204, 200); + this.btStart.MouseDownColor = System.Drawing.Color.Yellow; + this.btStart.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btStart.msg = new string[] { + "커버", + "UP"}; + this.btStart.Name = "btStart"; + this.btStart.ProgressBorderColor = System.Drawing.Color.Black; + this.btStart.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btStart.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btStart.ProgressEnable = false; + this.btStart.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btStart.ProgressForeColor = System.Drawing.Color.Black; + this.btStart.ProgressMax = 100F; + this.btStart.ProgressMin = 0F; + this.btStart.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btStart.ProgressValue = 0F; + this.btStart.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btStart.Sign = ""; + this.btStart.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btStart.SignColor = System.Drawing.Color.Yellow; + this.btStart.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btStart.Size = new System.Drawing.Size(195, 191); + this.btStart.TabIndex = 6; + this.btStart.Text = "RUN"; + this.btStart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btStart.TextShadow = true; + this.btStart.TextVisible = true; + this.btStart.Click += new System.EventHandler(this.arLabel11_Click); + // + // btRight + // + this.btRight.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); + this.btRight.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); + this.btRight.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btRight.BorderColor = System.Drawing.Color.Black; + this.btRight.BorderColorOver = System.Drawing.Color.DarkBlue; + this.btRight.BorderSize = new System.Windows.Forms.Padding(1); + this.btRight.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btRight.Cursor = System.Windows.Forms.Cursors.Hand; + this.btRight.Dock = System.Windows.Forms.DockStyle.Fill; + this.btRight.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btRight.ForeColor = System.Drawing.Color.White; + this.btRight.GradientEnable = true; + this.btRight.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btRight.GradientRepeatBG = false; + this.btRight.isButton = true; + this.btRight.Location = new System.Drawing.Point(405, 200); + this.btRight.MouseDownColor = System.Drawing.Color.Yellow; + this.btRight.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btRight.msg = null; + this.btRight.Name = "btRight"; + this.btRight.ProgressBorderColor = System.Drawing.Color.Black; + this.btRight.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btRight.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btRight.ProgressEnable = false; + this.btRight.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btRight.ProgressForeColor = System.Drawing.Color.Black; + this.btRight.ProgressMax = 100F; + this.btRight.ProgressMin = 0F; + this.btRight.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btRight.ProgressValue = 0F; + this.btRight.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btRight.Sign = ""; + this.btRight.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btRight.SignColor = System.Drawing.Color.Yellow; + this.btRight.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btRight.Size = new System.Drawing.Size(196, 191); + this.btRight.TabIndex = 0; + this.btRight.Text = "좌회전"; + this.btRight.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btRight.TextShadow = true; + this.btRight.TextVisible = true; + this.btRight.Click += new System.EventHandler(this.arLabel4_Click); + // + // btBack + // + this.btBack.AccessibleDescription = ""; + this.btBack.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); + this.btBack.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); + this.btBack.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btBack.BorderColor = System.Drawing.Color.Black; + this.btBack.BorderColorOver = System.Drawing.Color.DarkBlue; + this.btBack.BorderSize = new System.Windows.Forms.Padding(1); + this.btBack.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btBack.Cursor = System.Windows.Forms.Cursors.Hand; + this.btBack.Dock = System.Windows.Forms.DockStyle.Fill; + this.btBack.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btBack.ForeColor = System.Drawing.Color.White; + this.btBack.GradientEnable = true; + this.btBack.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btBack.GradientRepeatBG = false; + this.btBack.isButton = true; + this.btBack.Location = new System.Drawing.Point(204, 3); + this.btBack.MouseDownColor = System.Drawing.Color.Yellow; + this.btBack.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btBack.msg = null; + this.btBack.Name = "btBack"; + this.btBack.ProgressBorderColor = System.Drawing.Color.Black; + this.btBack.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btBack.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btBack.ProgressEnable = false; + this.btBack.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btBack.ProgressForeColor = System.Drawing.Color.Black; + this.btBack.ProgressMax = 100F; + this.btBack.ProgressMin = 0F; + this.btBack.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btBack.ProgressValue = 0F; + this.btBack.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btBack.Sign = ""; + this.btBack.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btBack.SignColor = System.Drawing.Color.Yellow; + this.btBack.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btBack.Size = new System.Drawing.Size(195, 191); + this.btBack.TabIndex = 0; + this.btBack.Text = "후진"; + this.btBack.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btBack.TextShadow = true; + this.btBack.TextVisible = true; + this.btBack.Click += new System.EventHandler(this.arLabel1_Click); + // + // btForward + // + this.btForward.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); + this.btForward.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); + this.btForward.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btForward.BorderColor = System.Drawing.Color.Black; + this.btForward.BorderColorOver = System.Drawing.Color.DarkBlue; + this.btForward.BorderSize = new System.Windows.Forms.Padding(1); + this.btForward.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btForward.Cursor = System.Windows.Forms.Cursors.Hand; + this.btForward.Dock = System.Windows.Forms.DockStyle.Fill; + this.btForward.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btForward.ForeColor = System.Drawing.Color.White; + this.btForward.GradientEnable = true; + this.btForward.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btForward.GradientRepeatBG = false; + this.btForward.isButton = true; + this.btForward.Location = new System.Drawing.Point(204, 397); + this.btForward.MouseDownColor = System.Drawing.Color.Yellow; + this.btForward.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btForward.msg = null; + this.btForward.Name = "btForward"; + this.btForward.ProgressBorderColor = System.Drawing.Color.Black; + this.btForward.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btForward.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btForward.ProgressEnable = false; + this.btForward.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btForward.ProgressForeColor = System.Drawing.Color.Black; + this.btForward.ProgressMax = 100F; + this.btForward.ProgressMin = 0F; + this.btForward.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btForward.ProgressValue = 0F; + this.btForward.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btForward.Sign = ""; + this.btForward.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btForward.SignColor = System.Drawing.Color.Yellow; + this.btForward.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btForward.Size = new System.Drawing.Size(195, 194); + this.btForward.TabIndex = 0; + this.btForward.Text = "전진"; + this.btForward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btForward.TextShadow = true; + this.btForward.TextVisible = true; + this.btForward.Click += new System.EventHandler(this.arLabel2_Click); + // + // btLeft + // + this.btLeft.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93))))); + this.btLeft.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64))))); + this.btLeft.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btLeft.BorderColor = System.Drawing.Color.Black; + this.btLeft.BorderColorOver = System.Drawing.Color.DarkBlue; + this.btLeft.BorderSize = new System.Windows.Forms.Padding(1); + this.btLeft.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btLeft.Cursor = System.Windows.Forms.Cursors.Hand; + this.btLeft.Dock = System.Windows.Forms.DockStyle.Fill; + this.btLeft.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btLeft.ForeColor = System.Drawing.Color.White; + this.btLeft.GradientEnable = true; + this.btLeft.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btLeft.GradientRepeatBG = false; + this.btLeft.isButton = true; + this.btLeft.Location = new System.Drawing.Point(3, 200); + this.btLeft.MouseDownColor = System.Drawing.Color.Yellow; + this.btLeft.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btLeft.msg = null; + this.btLeft.Name = "btLeft"; + this.btLeft.ProgressBorderColor = System.Drawing.Color.Black; + this.btLeft.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btLeft.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btLeft.ProgressEnable = false; + this.btLeft.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btLeft.ProgressForeColor = System.Drawing.Color.Black; + this.btLeft.ProgressMax = 100F; + this.btLeft.ProgressMin = 0F; + this.btLeft.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btLeft.ProgressValue = 0F; + this.btLeft.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btLeft.Sign = ""; + this.btLeft.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btLeft.SignColor = System.Drawing.Color.Yellow; + this.btLeft.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btLeft.Size = new System.Drawing.Size(195, 191); + this.btLeft.TabIndex = 0; + this.btLeft.Text = "우회전"; + this.btLeft.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btLeft.TextShadow = true; + this.btLeft.TextVisible = true; + this.btLeft.Click += new System.EventHandler(this.arLabel3_Click); + // + // btMarkStop + // + this.btMarkStop.Dock = System.Windows.Forms.DockStyle.Fill; + this.btMarkStop.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btMarkStop.Location = new System.Drawing.Point(3, 3); + this.btMarkStop.Name = "btMarkStop"; + this.btMarkStop.Size = new System.Drawing.Size(195, 191); + this.btMarkStop.TabIndex = 7; + this.btMarkStop.Text = "마크정지"; + this.btMarkStop.UseVisualStyleBackColor = true; + this.btMarkStop.Click += new System.EventHandler(this.button1_Click); + // + // btchargeOff + // + this.btchargeOff.Dock = System.Windows.Forms.DockStyle.Fill; + this.btchargeOff.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btchargeOff.Location = new System.Drawing.Point(405, 397); + this.btchargeOff.Name = "btchargeOff"; + this.btchargeOff.Size = new System.Drawing.Size(196, 194); + this.btchargeOff.TabIndex = 8; + this.btchargeOff.Text = "충전해제"; + this.btchargeOff.UseVisualStyleBackColor = true; + this.btchargeOff.Click += new System.EventHandler(this.btchargeOff_Click); + // + // btChargeOn + // + this.btChargeOn.Dock = System.Windows.Forms.DockStyle.Fill; + this.btChargeOn.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btChargeOn.Location = new System.Drawing.Point(3, 397); + this.btChargeOn.Name = "btChargeOn"; + this.btChargeOn.Size = new System.Drawing.Size(195, 194); + this.btChargeOn.TabIndex = 9; + this.btChargeOn.Text = "충전"; + this.btChargeOn.UseVisualStyleBackColor = true; + this.btChargeOn.Click += new System.EventHandler(this.btChargeOn_Click); + // + // btErrReset + // + this.btErrReset.Dock = System.Windows.Forms.DockStyle.Fill; + this.btErrReset.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btErrReset.Location = new System.Drawing.Point(405, 3); + this.btErrReset.Name = "btErrReset"; + this.btErrReset.Size = new System.Drawing.Size(196, 191); + this.btErrReset.TabIndex = 10; + this.btErrReset.Text = "오류소거"; + this.btErrReset.UseVisualStyleBackColor = true; + this.btErrReset.Click += new System.EventHandler(this.button3_Click); + // + // timer1 + // + this.timer1.Interval = 250; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // panel2 + // + this.panel2.Controls.Add(this.tableLayoutPanel2); + this.panel2.Controls.Add(this.button1); + this.panel2.Controls.Add(this.groupBox1); + this.panel2.Controls.Add(this.grpSpeed); + this.panel2.Controls.Add(this.grpBunki); + this.panel2.Controls.Add(this.groupBox2); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(607, 21); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(404, 556); + this.panel2.TabIndex = 9; + this.panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.panel2_Paint); + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Controls.Add(this.btBack180, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.btLeft180, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.btRight180, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.button2, 1, 1); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 438); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 2; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(404, 118); + this.tableLayoutPanel2.TabIndex = 12; + // + // btBack180 + // + this.btBack180.BackColor = System.Drawing.Color.WhiteSmoke; + this.btBack180.Cursor = System.Windows.Forms.Cursors.Hand; + this.btBack180.Dock = System.Windows.Forms.DockStyle.Fill; + this.btBack180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btBack180.ForeColor = System.Drawing.Color.Black; + this.btBack180.Location = new System.Drawing.Point(205, 3); + this.btBack180.Name = "btBack180"; + this.btBack180.Size = new System.Drawing.Size(196, 53); + this.btBack180.TabIndex = 15; + this.btBack180.Text = "자석 (ON)"; + this.btBack180.UseVisualStyleBackColor = false; + this.btBack180.Click += new System.EventHandler(this.btBack180_Click); + // + // btLeft180 + // + this.btLeft180.BackColor = System.Drawing.Color.WhiteSmoke; + this.btLeft180.Dock = System.Windows.Forms.DockStyle.Fill; + this.btLeft180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btLeft180.ForeColor = System.Drawing.Color.Black; + this.btLeft180.Location = new System.Drawing.Point(3, 3); + this.btLeft180.Name = "btLeft180"; + this.btLeft180.Size = new System.Drawing.Size(196, 53); + this.btLeft180.TabIndex = 7; + this.btLeft180.Text = "180도 좌회전"; + this.btLeft180.UseVisualStyleBackColor = false; + this.btLeft180.Click += new System.EventHandler(this.btLeft180_Click); + // + // btRight180 + // + this.btRight180.BackColor = System.Drawing.Color.WhiteSmoke; + this.btRight180.Dock = System.Windows.Forms.DockStyle.Fill; + this.btRight180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btRight180.ForeColor = System.Drawing.Color.Black; + this.btRight180.Location = new System.Drawing.Point(3, 62); + this.btRight180.Name = "btRight180"; + this.btRight180.Size = new System.Drawing.Size(196, 53); + this.btRight180.TabIndex = 6; + this.btRight180.Text = "180도 우회전"; + this.btRight180.UseVisualStyleBackColor = false; + this.btRight180.Click += new System.EventHandler(this.btRight180_Click); + // + // button2 + // + this.button2.BackColor = System.Drawing.Color.WhiteSmoke; + this.button2.Cursor = System.Windows.Forms.Cursors.Hand; + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.button2.ForeColor = System.Drawing.Color.Black; + this.button2.Location = new System.Drawing.Point(205, 62); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(196, 53); + this.button2.TabIndex = 15; + this.button2.Text = "자석(OFF)"; + this.button2.UseVisualStyleBackColor = false; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Top; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(0, 380); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(404, 58); + this.button1.TabIndex = 10; + this.button1.Text = "설정 적용"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_2); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.radpbs2); + this.groupBox1.Controls.Add(this.panel9); + this.groupBox1.Controls.Add(this.radpbs1); + this.groupBox1.Controls.Add(this.panel3); + this.groupBox1.Controls.Add(this.radpbs0); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Location = new System.Drawing.Point(0, 285); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); + this.groupBox1.Size = new System.Drawing.Size(404, 95); + this.groupBox1.TabIndex = 9; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "근접센서(PBS)"; + // + // radpbs2 + // + this.radpbs2.BackColor = System.Drawing.Color.WhiteSmoke; + this.radpbs2.Bordercolor = System.Drawing.Color.DimGray; + this.radpbs2.BorderRadius = 7; + this.radpbs2.BorderSize = 2; + this.radpbs2.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radpbs2.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radpbs2.CheckWidth = 30; + this.radpbs2.Dock = System.Windows.Forms.DockStyle.Left; + this.radpbs2.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radpbs2.Location = new System.Drawing.Point(278, 19); + this.radpbs2.Name = "radpbs2"; + this.radpbs2.Size = new System.Drawing.Size(119, 66); + this.radpbs2.TabIndex = 10; + this.radpbs2.Text = "On(2)"; + this.radpbs2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radpbs2.UseVisualStyleBackColor = false; + // + // panel9 + // + this.panel9.Dock = System.Windows.Forms.DockStyle.Left; + this.panel9.Location = new System.Drawing.Point(263, 19); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(15, 66); + this.panel9.TabIndex = 12; + // + // radpbs1 + // + this.radpbs1.BackColor = System.Drawing.Color.WhiteSmoke; + this.radpbs1.Bordercolor = System.Drawing.Color.DimGray; + this.radpbs1.BorderRadius = 7; + this.radpbs1.BorderSize = 2; + this.radpbs1.Checked = true; + this.radpbs1.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radpbs1.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radpbs1.CheckWidth = 30; + this.radpbs1.Dock = System.Windows.Forms.DockStyle.Left; + this.radpbs1.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radpbs1.ForeColor = System.Drawing.Color.Blue; + this.radpbs1.Location = new System.Drawing.Point(144, 19); + this.radpbs1.Name = "radpbs1"; + this.radpbs1.Size = new System.Drawing.Size(119, 66); + this.radpbs1.TabIndex = 9; + this.radpbs1.TabStop = true; + this.radpbs1.Text = "On(1)"; + this.radpbs1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radpbs1.UseVisualStyleBackColor = false; + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Left; + this.panel3.Location = new System.Drawing.Point(129, 19); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(15, 66); + this.panel3.TabIndex = 11; + // + // radpbs0 + // + this.radpbs0.BackColor = System.Drawing.Color.WhiteSmoke; + this.radpbs0.Bordercolor = System.Drawing.Color.DimGray; + this.radpbs0.BorderRadius = 7; + this.radpbs0.BorderSize = 2; + this.radpbs0.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radpbs0.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radpbs0.CheckWidth = 30; + this.radpbs0.Dock = System.Windows.Forms.DockStyle.Left; + this.radpbs0.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radpbs0.Location = new System.Drawing.Point(10, 19); + this.radpbs0.Name = "radpbs0"; + this.radpbs0.Size = new System.Drawing.Size(119, 66); + this.radpbs0.TabIndex = 8; + this.radpbs0.Text = "Off(0)"; + this.radpbs0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radpbs0.UseVisualStyleBackColor = false; + // + // grpSpeed + // + this.grpSpeed.Controls.Add(this.radspdh); + this.grpSpeed.Controls.Add(this.panel8); + this.grpSpeed.Controls.Add(this.radspdm); + this.grpSpeed.Controls.Add(this.panel4); + this.grpSpeed.Controls.Add(this.radspdl); + this.grpSpeed.Dock = System.Windows.Forms.DockStyle.Top; + this.grpSpeed.Location = new System.Drawing.Point(0, 190); + this.grpSpeed.Name = "grpSpeed"; + this.grpSpeed.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); + this.grpSpeed.Size = new System.Drawing.Size(404, 95); + this.grpSpeed.TabIndex = 0; + this.grpSpeed.TabStop = false; + this.grpSpeed.Text = "속도"; + // + // radspdh + // + this.radspdh.BackColor = System.Drawing.Color.WhiteSmoke; + this.radspdh.Bordercolor = System.Drawing.Color.DimGray; + this.radspdh.BorderRadius = 7; + this.radspdh.BorderSize = 2; + this.radspdh.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radspdh.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radspdh.CheckWidth = 30; + this.radspdh.Dock = System.Windows.Forms.DockStyle.Left; + this.radspdh.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radspdh.Location = new System.Drawing.Point(278, 19); + this.radspdh.Name = "radspdh"; + this.radspdh.Size = new System.Drawing.Size(119, 66); + this.radspdh.TabIndex = 2; + this.radspdh.Text = "고속"; + this.radspdh.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radspdh.UseVisualStyleBackColor = false; + // + // panel8 + // + this.panel8.Dock = System.Windows.Forms.DockStyle.Left; + this.panel8.Location = new System.Drawing.Point(263, 19); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(15, 66); + this.panel8.TabIndex = 13; + // + // radspdm + // + this.radspdm.BackColor = System.Drawing.Color.WhiteSmoke; + this.radspdm.Bordercolor = System.Drawing.Color.DimGray; + this.radspdm.BorderRadius = 7; + this.radspdm.BorderSize = 2; + this.radspdm.Checked = true; + this.radspdm.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radspdm.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radspdm.CheckWidth = 30; + this.radspdm.Dock = System.Windows.Forms.DockStyle.Left; + this.radspdm.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radspdm.ForeColor = System.Drawing.Color.Blue; + this.radspdm.Location = new System.Drawing.Point(144, 19); + this.radspdm.Name = "radspdm"; + this.radspdm.Size = new System.Drawing.Size(119, 66); + this.radspdm.TabIndex = 1; + this.radspdm.TabStop = true; + this.radspdm.Text = "중속"; + this.radspdm.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radspdm.UseVisualStyleBackColor = false; + // + // panel4 + // + this.panel4.Dock = System.Windows.Forms.DockStyle.Left; + this.panel4.Location = new System.Drawing.Point(129, 19); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(15, 66); + this.panel4.TabIndex = 12; + // + // radspdl + // + this.radspdl.BackColor = System.Drawing.Color.WhiteSmoke; + this.radspdl.Bordercolor = System.Drawing.Color.DimGray; + this.radspdl.BorderRadius = 7; + this.radspdl.BorderSize = 2; + this.radspdl.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radspdl.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radspdl.CheckWidth = 30; + this.radspdl.Dock = System.Windows.Forms.DockStyle.Left; + this.radspdl.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radspdl.Location = new System.Drawing.Point(10, 19); + this.radspdl.Name = "radspdl"; + this.radspdl.Size = new System.Drawing.Size(119, 66); + this.radspdl.TabIndex = 0; + this.radspdl.Text = "저속"; + this.radspdl.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radspdl.UseVisualStyleBackColor = false; + // + // grpBunki + // + this.grpBunki.Controls.Add(this.radright); + this.grpBunki.Controls.Add(this.panel7); + this.grpBunki.Controls.Add(this.radstrai); + this.grpBunki.Controls.Add(this.panel5); + this.grpBunki.Controls.Add(this.radleft); + this.grpBunki.Dock = System.Windows.Forms.DockStyle.Top; + this.grpBunki.Location = new System.Drawing.Point(0, 95); + this.grpBunki.Name = "grpBunki"; + this.grpBunki.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); + this.grpBunki.Size = new System.Drawing.Size(404, 95); + this.grpBunki.TabIndex = 1; + this.grpBunki.TabStop = false; + this.grpBunki.Text = "분기"; + // + // radright + // + this.radright.BackColor = System.Drawing.Color.WhiteSmoke; + this.radright.Bordercolor = System.Drawing.Color.DimGray; + this.radright.BorderRadius = 7; + this.radright.BorderSize = 2; + this.radright.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radright.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radright.CheckWidth = 30; + this.radright.Dock = System.Windows.Forms.DockStyle.Left; + this.radright.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radright.Location = new System.Drawing.Point(278, 19); + this.radright.Name = "radright"; + this.radright.Size = new System.Drawing.Size(119, 66); + this.radright.TabIndex = 4; + this.radright.Text = "우측"; + this.radright.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radright.UseVisualStyleBackColor = false; + // + // panel7 + // + this.panel7.Dock = System.Windows.Forms.DockStyle.Left; + this.panel7.Location = new System.Drawing.Point(263, 19); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(15, 66); + this.panel7.TabIndex = 13; + // + // radstrai + // + this.radstrai.BackColor = System.Drawing.Color.WhiteSmoke; + this.radstrai.Bordercolor = System.Drawing.Color.DimGray; + this.radstrai.BorderRadius = 7; + this.radstrai.BorderSize = 2; + this.radstrai.Checked = true; + this.radstrai.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radstrai.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radstrai.CheckWidth = 30; + this.radstrai.Dock = System.Windows.Forms.DockStyle.Left; + this.radstrai.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radstrai.ForeColor = System.Drawing.Color.Blue; + this.radstrai.Location = new System.Drawing.Point(144, 19); + this.radstrai.Name = "radstrai"; + this.radstrai.Size = new System.Drawing.Size(119, 66); + this.radstrai.TabIndex = 3; + this.radstrai.TabStop = true; + this.radstrai.Text = "직진"; + this.radstrai.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radstrai.UseVisualStyleBackColor = false; + // + // panel5 + // + this.panel5.Dock = System.Windows.Forms.DockStyle.Left; + this.panel5.Location = new System.Drawing.Point(129, 19); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(15, 66); + this.panel5.TabIndex = 12; + // + // radleft + // + this.radleft.BackColor = System.Drawing.Color.WhiteSmoke; + this.radleft.Bordercolor = System.Drawing.Color.DimGray; + this.radleft.BorderRadius = 7; + this.radleft.BorderSize = 2; + this.radleft.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radleft.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radleft.CheckWidth = 30; + this.radleft.Dock = System.Windows.Forms.DockStyle.Left; + this.radleft.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radleft.Location = new System.Drawing.Point(10, 19); + this.radleft.Name = "radleft"; + this.radleft.Size = new System.Drawing.Size(119, 66); + this.radleft.TabIndex = 5; + this.radleft.Text = "좌측"; + this.radleft.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radleft.UseVisualStyleBackColor = false; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.arLabel1); + this.groupBox2.Controls.Add(this.panel12); + this.groupBox2.Controls.Add(this.radbackward); + this.groupBox2.Controls.Add(this.panel6); + this.groupBox2.Controls.Add(this.radforward); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox2.Location = new System.Drawing.Point(0, 0); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10); + this.groupBox2.Size = new System.Drawing.Size(404, 95); + this.groupBox2.TabIndex = 3; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "방향"; + // + // arLabel1 + // + this.arLabel1.BackColor = System.Drawing.Color.Pink; + this.arLabel1.BackColor2 = System.Drawing.Color.Tomato; + this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel1.BorderColor = System.Drawing.Color.Black; + this.arLabel1.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel1.BorderSize = new System.Windows.Forms.Padding(1); + this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel1.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.arLabel1.ForeColor = System.Drawing.Color.White; + this.arLabel1.GradientEnable = true; + this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel1.GradientRepeatBG = false; + this.arLabel1.isButton = true; + this.arLabel1.Location = new System.Drawing.Point(278, 19); + this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel1.msg = new string[] { + "커버", + "UP"}; + this.arLabel1.Name = "arLabel1"; + this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel1.ProgressEnable = false; + this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel1.ProgressMax = 100F; + this.arLabel1.ProgressMin = 0F; + this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel1.ProgressValue = 0F; + this.arLabel1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel1.Sign = ""; + this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel1.SignColor = System.Drawing.Color.Yellow; + this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel1.Size = new System.Drawing.Size(121, 66); + this.arLabel1.TabIndex = 15; + this.arLabel1.Text = "주행속도"; + this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel1.TextShadow = true; + this.arLabel1.TextVisible = true; + this.arLabel1.Click += new System.EventHandler(this.arLabel1_Click_1); + // + // panel12 + // + this.panel12.Dock = System.Windows.Forms.DockStyle.Left; + this.panel12.Location = new System.Drawing.Point(263, 19); + this.panel12.Name = "panel12"; + this.panel12.Size = new System.Drawing.Size(15, 66); + this.panel12.TabIndex = 14; + // + // radbackward + // + this.radbackward.BackColor = System.Drawing.Color.WhiteSmoke; + this.radbackward.Bordercolor = System.Drawing.Color.DimGray; + this.radbackward.BorderRadius = 7; + this.radbackward.BorderSize = 2; + this.radbackward.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radbackward.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radbackward.CheckWidth = 30; + this.radbackward.Dock = System.Windows.Forms.DockStyle.Left; + this.radbackward.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radbackward.Location = new System.Drawing.Point(144, 19); + this.radbackward.Name = "radbackward"; + this.radbackward.Size = new System.Drawing.Size(119, 66); + this.radbackward.TabIndex = 6; + this.radbackward.Text = "후진"; + this.radbackward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radbackward.UseVisualStyleBackColor = false; + // + // panel6 + // + this.panel6.Dock = System.Windows.Forms.DockStyle.Left; + this.panel6.Location = new System.Drawing.Point(129, 19); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(15, 66); + this.panel6.TabIndex = 12; + // + // radforward + // + this.radforward.BackColor = System.Drawing.Color.WhiteSmoke; + this.radforward.Bordercolor = System.Drawing.Color.DimGray; + this.radforward.BorderRadius = 7; + this.radforward.BorderSize = 2; + this.radforward.Checked = true; + this.radforward.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.radforward.CheckOnColor = System.Drawing.Color.LimeGreen; + this.radforward.CheckWidth = 30; + this.radforward.Dock = System.Windows.Forms.DockStyle.Left; + this.radforward.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.radforward.ForeColor = System.Drawing.Color.Blue; + this.radforward.Location = new System.Drawing.Point(10, 19); + this.radforward.Name = "radforward"; + this.radforward.Size = new System.Drawing.Size(119, 66); + this.radforward.TabIndex = 7; + this.radforward.TabStop = true; + this.radforward.Text = "전진"; + this.radforward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.radforward.UseVisualStyleBackColor = false; + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.Blue; + this.label1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(607, 577); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(0, 3, 0, 3); + this.label1.Size = new System.Drawing.Size(404, 38); + this.label1.TabIndex = 9; + this.label1.Text = "----------"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // guideSensor1 + // + this.guideSensor1.Dock = System.Windows.Forms.DockStyle.Top; + this.guideSensor1.LMark = false; + this.guideSensor1.Location = new System.Drawing.Point(3, 3); + this.guideSensor1.Name = "guideSensor1"; + this.guideSensor1.RMark = false; + this.guideSensor1.SensorValue = 0; + this.guideSensor1.Size = new System.Drawing.Size(1008, 18); + this.guideSensor1.TabIndex = 8; + this.guideSensor1.Text = "guideSensor1"; + // + // fManual + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.SlateGray; + this.ClientSize = new System.Drawing.Size(1014, 618); + this.Controls.Add(this.panel2); + this.Controls.Add(this.label1); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.guideSensor1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "fManual"; + this.Padding = new System.Windows.Forms.Padding(3); + this.Text = "fManual"; + this.Load += new System.EventHandler(this.fManual_Load); + this.VisibleChanged += new System.EventHandler(this.fManual_VisibleChanged); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.grpSpeed.ResumeLayout(false); + this.grpBunki.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private arCtl.arLabel btBack; + private arCtl.arLabel btForward; + private arCtl.arLabel btLeft; + private arCtl.arLabel btRight; + private arCtl.arLabel btStart; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Button btMarkStop; + private System.Windows.Forms.Button btchargeOff; + private System.Windows.Forms.Button btChargeOn; + private Narumi.UC.GuideSensor guideSensor1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button btErrReset; + private System.Windows.Forms.GroupBox grpSpeed; + private System.Windows.Forms.GroupBox grpBunki; + private System.Windows.Forms.GroupBox groupBox2; + private AGVControl.MyRadioButton radspdl; + private AGVControl.MyRadioButton radspdh; + private AGVControl.MyRadioButton radspdm; + private AGVControl.MyRadioButton radleft; + private AGVControl.MyRadioButton radright; + private AGVControl.MyRadioButton radstrai; + private AGVControl.MyRadioButton radbackward; + private AGVControl.MyRadioButton radforward; + private AGVControl.MyRadioButton radpbs0; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox groupBox1; + private AGVControl.MyRadioButton radpbs1; + private AGVControl.MyRadioButton radpbs2; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel9; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Button button1; + private arCtl.arLabel arLabel1; + private System.Windows.Forms.Panel panel12; + private System.Windows.Forms.Button btRight180; + private System.Windows.Forms.Button btLeft180; + private System.Windows.Forms.Button btBack180; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Button button2; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/ViewForm/fManual.cs b/HMI/Project/ViewForm/fManual.cs similarity index 97% rename from Cs_HMI/Project/ViewForm/fManual.cs rename to HMI/Project/ViewForm/fManual.cs index cb35c52..6f9e530 100644 --- a/Cs_HMI/Project/ViewForm/fManual.cs +++ b/HMI/Project/ViewForm/fManual.cs @@ -1,410 +1,410 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using AR; -using arDev; -using COMM; - -namespace Project.ViewForm -{ - public partial class fManual : Form - { - public fManual() - { - InitializeComponent(); - this.FormClosed += FIO_FormClosed; - } - - private void fManual_Load(object sender, EventArgs e) - { - if (PUB.AGV.data.Direction == 'F') radforward.Checked = true; - else radbackward.Checked = false; - - //if (PUB.AGV.data.Sts == 'L') radleft.Checked = true; - //else if (PUB.AGV.data.Sts == 'R') radright.Checked = true; - //else - radstrai.Checked = true; - - if (PUB.AGV.data.Speed == 'H') radspdh.Checked = true; - else if (PUB.AGV.data.Speed == 'L') radspdl.Checked = true; - else radspdm.Checked = true; - - this.timer1.Start(); - } - private void FIO_FormClosed(object sender, FormClosedEventArgs e) - { - timer1.Stop(); - } - - #region "Z축 커버" - - private void arLabel10_Click(object sender, EventArgs e) - { - - } - - - - private void arLabel8_Click(object sender, EventArgs e) - { - - - } - - private void arLabel7_Click(object sender, EventArgs e) - { - - } - #endregion - - #region "AGV 수동 이동" - private void arLabel1_Click(object sender, EventArgs e) - { - //후진 - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) - { - UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); - return; - } - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - { - UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); - return; - } - if (PUB.CheckManualChargeMode() == false) return; - arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; - - if (radspdh.Checked) spd = arDev.Narumi.Speed.High; - else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid; - arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; - if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, spd, ss); - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - - // [Manual Safety] Clear previous auto-task state - PUB._virtualAGV.TargetNode = null; - PUB._virtualAGV.StopPath(); - PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; // Clear ACS Command - PUB.sm.ClearRunStep(); // Clear RunStep sequence - } - - private void arLabel2_Click(object sender, EventArgs e) - { - //전진 - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) - { - UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); - return; - } - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - { - UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); - return; - } - if (PUB.CheckManualChargeMode() == false) return; - arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; - if (radspdh.Checked) spd = arDev.Narumi.Speed.High; - else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid; - arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; - if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, spd, ss); - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - - // [Manual Safety] Clear previous auto-task state - PUB._virtualAGV.TargetNode = null; - PUB._virtualAGV.StopPath(); - PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; - PUB.sm.ClearRunStep(); - } - - private void arLabel3_Click(object sender, EventArgs e) - { - //우회전 - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) - { - UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); - return; - } - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - { - UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); - return; - } - if (PUB.CheckManualChargeMode() == false) return; - arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; - if (radspdh.Checked) spd = arDev.Narumi.Speed.High; - else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid; - arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; - if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, spd, ss); - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - - // [Manual Safety] Clear previous auto-task state - PUB._virtualAGV.TargetNode = null; - PUB._virtualAGV.StopPath(); - PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; - PUB.sm.ClearRunStep(); - } - - private void arLabel4_Click(object sender, EventArgs e) - { - //좌회전 - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) - { - UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); - return; - } - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - { - UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); - return; - } - if (PUB.CheckManualChargeMode() == false) return; - arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; - if (radspdh.Checked) spd = arDev.Narumi.Speed.High; - else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid; - arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; - if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; - PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, spd, ss); - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - - // [Manual Safety] Clear previous auto-task state - PUB._virtualAGV.TargetNode = null; - PUB._virtualAGV.StopPath(); - PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; - PUB.sm.ClearRunStep(); - } - - private void arLabel11_Click(object sender, EventArgs e) - { - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) - { - UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); - return; - } - else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - { - UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); - return; - } - if (PUB.CheckManualChargeMode() == false) return; - PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); - if (PUB.AGV.system1.agv_run == false && PUB.AGV.system1.agv_run_manual == false) - { - var dlg = UTIL.MsgQ("자동 진행을 시작할까요?\n우측 옵션을 확인 하세요"); - if (dlg != DialogResult.Yes) return; - var opt = makeopt(); - if (PUB.AGV.AGVMoveSet(opt) == eNarumiCommandResult.Success) - PUB.AGV.AGVMoveRun(opt.Direction == arDev.Narumi.eMoveDir.Forward ? arDev.Narumi.eRunOpt.Forward : arDev.Narumi.eRunOpt.Backward); - } - else - { - PUB.AGV.AGVMoveStop("fmanual arlabel11_Clcik", arDev.Narumi.eStopOpt.Stop); - } - - } - #endregion - - - bool tmrun = false; - private void timer1_Tick(object sender, EventArgs e) - { - if (this.Visible == false) return; - if (tmrun == true) return; - tmrun = true; - - //충전중이면 수동버튼을 누를수없게한다 - if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) btLeft.Enabled = false; - else btLeft.Enabled = true; - - btRight.Enabled = btLeft.Enabled; - btStart.Enabled = btLeft.Enabled; - btBack.Enabled = btLeft.Enabled; - btForward.Enabled = btLeft.Enabled; - - - - //상태메세지 - label1.Text = VAR.STR[eVarString.StatusMessage]; - - //마크정보 - guideSensor1.SensorValue = PUB.AGV.data.guidesensor; - guideSensor1.LMark = PUB.AGV.signal1.mark_sensor_1; - guideSensor1.RMark = PUB.AGV.signal1.mark_sensor_2; - guideSensor1.Invalidate(); - - if (PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) - { - btStart.Text = "동작\n멈춤"; - btStart.BackColor = Color.Tomato; - btStart.BackColor2 = Color.Orange; - } - else - { - btStart.Text = "자돟\n진행"; - btStart.BackColor = Color.DimGray; - btStart.BackColor2 = Color.Gray; - } - - - //모터전원상태에따라서 배경색상을 변경해준다. - //var Mot_Dir_Backward = PUB.AGV.data.Direction == 'B';// PUB.flag.get(EFlag.FLAG_DIR_CW);// PUB.flag.get(EFlag.FLAG_DIR_CW); - - //if (Mot_Dir_Backward == true) - //{ - // btBack.BackColor = Color.Lime; - // btBack.BackColor2 = Color.Green; - - // btForward.BackColor = Color.FromArgb(23, 55, 93); - // btForward.BackColor2 = Color.FromArgb(12, 36, 64); - //} - //else - //{ - // btForward.BackColor = Color.Lime; - // btForward.BackColor2 = Color.Green; - - // btBack.BackColor = Color.FromArgb(23, 55, 93); - // btBack.BackColor2 = Color.FromArgb(12, 36, 64); - //} - - tmrun = false; - } - - - - - private void button1_Click(object sender, EventArgs e) - { - PUB.AGV.AGVMoveStop("fmanual button1_click", arDev.Narumi.eStopOpt.MarkStop); - //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = true; - - - } - - private void fManual_VisibleChanged(object sender, EventArgs e) - { - this.timer1.Enabled = this.Visible; - if (timer1.Enabled) timer1.Start(); - else timer1.Stop(); - } - - private void button3_Click(object sender, EventArgs e) - { - PUB.AGV.AGVErrorReset(); - } - - private void panel2_Paint(object sender, PaintEventArgs e) - { - - } - - arDev.Narumi.BunkiData makeopt() - { - var p = new arDev.Narumi.BunkiData(); - if (radbackward.Checked) p.Direction = arDev.Narumi.eMoveDir.Backward; - else p.Direction = arDev.Narumi.eMoveDir.Forward; - - if (radleft.Checked) p.Bunki = arDev.Narumi.eBunki.Left; - else if (radright.Checked) p.Bunki = arDev.Narumi.eBunki.Right; - else p.Bunki = arDev.Narumi.eBunki.Strate; - - if (radspdh.Checked) p.Speed = arDev.Narumi.eMoveSpd.High; - else if (radspdl.Checked) p.Speed = arDev.Narumi.eMoveSpd.Low; - else p.Speed = arDev.Narumi.eMoveSpd.Mid; - - if (radpbs1.Checked) p.PBSSensor = 2; - else if (radpbs2.Checked) p.PBSSensor = 2; - else p.PBSSensor = 0; - return p; - } - - private void btchargeOff_Click(object sender, EventArgs e) - { - if (UTIL.MsgQ("충전 해제 명령을 전송 할까요?") == DialogResult.Yes) - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); - } - - private void btChargeOn_Click(object sender, EventArgs e) - { - if (VAR.BOOL[eVarBool.MARK_SENSOR] == false) - { - UTIL.MsgE("마크센서가 확인되지 않아 충전을 시작할 수 없습니다"); - return; - } - var dlg = UTIL.MsgQ("충전 시작 명령을 전송 할까요?"); - if (dlg != DialogResult.Yes) return; - PUB.AGV.AGVCharge(PUB.setting.ChargerID, true); - } - - arDev.Narumi.BunkiData bunkiopt = null; - private void button1_Click_2(object sender, EventArgs e) - { - bunkiopt = makeopt(); - PUB.AGV.AGVMoveSet(bunkiopt); - PUB.log.Add($"사용자 설정 : {bunkiopt}"); - if (PUB.DriveSpeed) - { - if (PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_H.ToString("0000")) == eNarumiCommandResult.Success) - PUB.DriveSpeed = false; - } - - } - - - - private void arLabel1_Click_1(object sender, EventArgs e) - { - - if (PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_DRIVE.ToString("0000")) != eNarumiCommandResult.Success) - { - AR.UTIL.MsgE("고속속도에 주행속도 연결 실패\n잠시 후 다시 시도하세요"); - return; - } - - if (this.bunkiopt == null) bunkiopt = makeopt(); - bunkiopt.Speed = arDev.Narumi.eMoveSpd.High; - if (PUB.AGV.AGVMoveSet(bunkiopt) == eNarumiCommandResult.Success) - { - PUB.log.Add($"고속주행설정 : {bunkiopt}"); - PUB.DriveSpeed = true; - - AR.UTIL.MsgI($"주행속도({PUB.setting.SPD_DRIVE})가 '고속' 속도에 연결되었습니다.\n" + - $"창을 이동하거나 '설정적용'을 누르면 원래속도({PUB.setting.SPD_H})로 변경 됩니다"); - } - else - { - UTIL.MsgE($"고속 속도 설정이 실패되었습니다"); - } - } - - private void btLeft180_Click(object sender, EventArgs e) - { - //[STX] C T L 0 0 0 0 A 3 [ETX] - PUB.AGV.AGVMoveLeft180Turn(); - - } - - private void btRight180_Click(object sender, EventArgs e) - { - //[STX] C T R 0 0 0 0 A 9 [ETX] - PUB.AGV.AGVMoveRight180Turn(); - } - - private void btBack180_Click(object sender, EventArgs e) - { - //[STX] C T B 0 0 0 0 9 9 [ETX] - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);// (;// (true); - } - - private void button2_Click(object sender, EventArgs e) - { - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; +using arDev; +using COMM; + +namespace Project.ViewForm +{ + public partial class fManual : Form + { + public fManual() + { + InitializeComponent(); + this.FormClosed += FIO_FormClosed; + } + + private void fManual_Load(object sender, EventArgs e) + { + if (PUB.AGV.data.Direction == 'F') radforward.Checked = true; + else radbackward.Checked = false; + + //if (PUB.AGV.data.Sts == 'L') radleft.Checked = true; + //else if (PUB.AGV.data.Sts == 'R') radright.Checked = true; + //else + radstrai.Checked = true; + + if (PUB.AGV.data.Speed == 'H') radspdh.Checked = true; + else if (PUB.AGV.data.Speed == 'L') radspdl.Checked = true; + else radspdm.Checked = true; + + this.timer1.Start(); + } + private void FIO_FormClosed(object sender, FormClosedEventArgs e) + { + timer1.Stop(); + } + + #region "Z축 커버" + + private void arLabel10_Click(object sender, EventArgs e) + { + + } + + + + private void arLabel8_Click(object sender, EventArgs e) + { + + + } + + private void arLabel7_Click(object sender, EventArgs e) + { + + } + #endregion + + #region "AGV 수동 이동" + private void arLabel1_Click(object sender, EventArgs e) + { + //후진 + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) + { + UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); + return; + } + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + { + UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); + return; + } + if (PUB.CheckManualChargeMode() == false) return; + arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; + + if (radspdh.Checked) spd = arDev.Narumi.Speed.High; + else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid; + arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; + if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, spd, ss); + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + + // [Manual Safety] Clear previous auto-task state + PUB._virtualAGV.TargetNode = null; + PUB._virtualAGV.StopPath(); + PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; // Clear ACS Command + PUB.sm.ClearRunStep(); // Clear RunStep sequence + } + + private void arLabel2_Click(object sender, EventArgs e) + { + //전진 + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) + { + UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); + return; + } + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + { + UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); + return; + } + if (PUB.CheckManualChargeMode() == false) return; + arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; + if (radspdh.Checked) spd = arDev.Narumi.Speed.High; + else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid; + arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; + if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, spd, ss); + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + + // [Manual Safety] Clear previous auto-task state + PUB._virtualAGV.TargetNode = null; + PUB._virtualAGV.StopPath(); + PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; + PUB.sm.ClearRunStep(); + } + + private void arLabel3_Click(object sender, EventArgs e) + { + //우회전 + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) + { + UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); + return; + } + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + { + UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); + return; + } + if (PUB.CheckManualChargeMode() == false) return; + arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; + if (radspdh.Checked) spd = arDev.Narumi.Speed.High; + else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid; + arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; + if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, spd, ss); + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + + // [Manual Safety] Clear previous auto-task state + PUB._virtualAGV.TargetNode = null; + PUB._virtualAGV.StopPath(); + PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; + PUB.sm.ClearRunStep(); + } + + private void arLabel4_Click(object sender, EventArgs e) + { + //좌회전 + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) + { + UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); + return; + } + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + { + UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); + return; + } + if (PUB.CheckManualChargeMode() == false) return; + arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; + if (radspdh.Checked) spd = arDev.Narumi.Speed.High; + else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid; + arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff; + if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn; + PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, spd, ss); + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + + // [Manual Safety] Clear previous auto-task state + PUB._virtualAGV.TargetNode = null; + PUB._virtualAGV.StopPath(); + PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; + PUB.sm.ClearRunStep(); + } + + private void arLabel11_Click(object sender, EventArgs e) + { + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA]) + { + UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요"); + return; + } + else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + { + UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요"); + return; + } + if (PUB.CheckManualChargeMode() == false) return; + PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE); + if (PUB.AGV.system1.agv_run == false && PUB.AGV.system1.agv_run_manual == false) + { + var dlg = UTIL.MsgQ("자동 진행을 시작할까요?\n우측 옵션을 확인 하세요"); + if (dlg != DialogResult.Yes) return; + var opt = makeopt(); + if (PUB.AGV.AGVMoveSet(opt) == eNarumiCommandResult.Success) + PUB.AGV.AGVMoveRun(opt.Direction == arDev.Narumi.eMoveDir.Forward ? arDev.Narumi.eRunOpt.Forward : arDev.Narumi.eRunOpt.Backward); + } + else + { + PUB.AGV.AGVMoveStop("fmanual arlabel11_Clcik", arDev.Narumi.eStopOpt.Stop); + } + + } + #endregion + + + bool tmrun = false; + private void timer1_Tick(object sender, EventArgs e) + { + if (this.Visible == false) return; + if (tmrun == true) return; + tmrun = true; + + //충전중이면 수동버튼을 누를수없게한다 + if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) btLeft.Enabled = false; + else btLeft.Enabled = true; + + btRight.Enabled = btLeft.Enabled; + btStart.Enabled = btLeft.Enabled; + btBack.Enabled = btLeft.Enabled; + btForward.Enabled = btLeft.Enabled; + + + + //상태메세지 + label1.Text = VAR.STR[eVarString.StatusMessage]; + + //마크정보 + guideSensor1.SensorValue = PUB.AGV.data.guidesensor; + guideSensor1.LMark = PUB.AGV.signal1.mark_sensor_1; + guideSensor1.RMark = PUB.AGV.signal1.mark_sensor_2; + guideSensor1.Invalidate(); + + if (PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) + { + btStart.Text = "동작\n멈춤"; + btStart.BackColor = Color.Tomato; + btStart.BackColor2 = Color.Orange; + } + else + { + btStart.Text = "자돟\n진행"; + btStart.BackColor = Color.DimGray; + btStart.BackColor2 = Color.Gray; + } + + + //모터전원상태에따라서 배경색상을 변경해준다. + //var Mot_Dir_Backward = PUB.AGV.data.Direction == 'B';// PUB.flag.get(EFlag.FLAG_DIR_CW);// PUB.flag.get(EFlag.FLAG_DIR_CW); + + //if (Mot_Dir_Backward == true) + //{ + // btBack.BackColor = Color.Lime; + // btBack.BackColor2 = Color.Green; + + // btForward.BackColor = Color.FromArgb(23, 55, 93); + // btForward.BackColor2 = Color.FromArgb(12, 36, 64); + //} + //else + //{ + // btForward.BackColor = Color.Lime; + // btForward.BackColor2 = Color.Green; + + // btBack.BackColor = Color.FromArgb(23, 55, 93); + // btBack.BackColor2 = Color.FromArgb(12, 36, 64); + //} + + tmrun = false; + } + + + + + private void button1_Click(object sender, EventArgs e) + { + PUB.AGV.AGVMoveStop("fmanual button1_click", arDev.Narumi.eStopOpt.MarkStop); + //VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = true; + + + } + + private void fManual_VisibleChanged(object sender, EventArgs e) + { + this.timer1.Enabled = this.Visible; + if (timer1.Enabled) timer1.Start(); + else timer1.Stop(); + } + + private void button3_Click(object sender, EventArgs e) + { + PUB.AGV.AGVErrorReset(); + } + + private void panel2_Paint(object sender, PaintEventArgs e) + { + + } + + arDev.Narumi.BunkiData makeopt() + { + var p = new arDev.Narumi.BunkiData(); + if (radbackward.Checked) p.Direction = arDev.Narumi.eMoveDir.Backward; + else p.Direction = arDev.Narumi.eMoveDir.Forward; + + if (radleft.Checked) p.Bunki = arDev.Narumi.eBunki.Left; + else if (radright.Checked) p.Bunki = arDev.Narumi.eBunki.Right; + else p.Bunki = arDev.Narumi.eBunki.Strate; + + if (radspdh.Checked) p.Speed = arDev.Narumi.eMoveSpd.High; + else if (radspdl.Checked) p.Speed = arDev.Narumi.eMoveSpd.Low; + else p.Speed = arDev.Narumi.eMoveSpd.Mid; + + if (radpbs1.Checked) p.PBSSensor = 2; + else if (radpbs2.Checked) p.PBSSensor = 2; + else p.PBSSensor = 0; + return p; + } + + private void btchargeOff_Click(object sender, EventArgs e) + { + if (UTIL.MsgQ("충전 해제 명령을 전송 할까요?") == DialogResult.Yes) + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); + } + + private void btChargeOn_Click(object sender, EventArgs e) + { + if (VAR.BOOL[eVarBool.MARK_SENSOR] == false) + { + UTIL.MsgE("마크센서가 확인되지 않아 충전을 시작할 수 없습니다"); + return; + } + var dlg = UTIL.MsgQ("충전 시작 명령을 전송 할까요?"); + if (dlg != DialogResult.Yes) return; + PUB.AGV.AGVCharge(PUB.setting.ChargerID, true); + } + + arDev.Narumi.BunkiData bunkiopt = null; + private void button1_Click_2(object sender, EventArgs e) + { + bunkiopt = makeopt(); + PUB.AGV.AGVMoveSet(bunkiopt); + PUB.log.Add($"사용자 설정 : {bunkiopt}"); + if (PUB.DriveSpeed) + { + if (PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_H.ToString("0000")) == eNarumiCommandResult.Success) + PUB.DriveSpeed = false; + } + + } + + + + private void arLabel1_Click_1(object sender, EventArgs e) + { + + if (PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_DRIVE.ToString("0000")) != eNarumiCommandResult.Success) + { + AR.UTIL.MsgE("고속속도에 주행속도 연결 실패\n잠시 후 다시 시도하세요"); + return; + } + + if (this.bunkiopt == null) bunkiopt = makeopt(); + bunkiopt.Speed = arDev.Narumi.eMoveSpd.High; + if (PUB.AGV.AGVMoveSet(bunkiopt) == eNarumiCommandResult.Success) + { + PUB.log.Add($"고속주행설정 : {bunkiopt}"); + PUB.DriveSpeed = true; + + AR.UTIL.MsgI($"주행속도({PUB.setting.SPD_DRIVE})가 '고속' 속도에 연결되었습니다.\n" + + $"창을 이동하거나 '설정적용'을 누르면 원래속도({PUB.setting.SPD_H})로 변경 됩니다"); + } + else + { + UTIL.MsgE($"고속 속도 설정이 실패되었습니다"); + } + } + + private void btLeft180_Click(object sender, EventArgs e) + { + //[STX] C T L 0 0 0 0 A 3 [ETX] + PUB.AGV.AGVMoveLeft180Turn(); + + } + + private void btRight180_Click(object sender, EventArgs e) + { + //[STX] C T R 0 0 0 0 A 9 [ETX] + PUB.AGV.AGVMoveRight180Turn(); + } + + private void btBack180_Click(object sender, EventArgs e) + { + //[STX] C T B 0 0 0 0 9 9 [ETX] + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);// (;// (true); + } + + private void button2_Click(object sender, EventArgs e) + { + PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF); + } + } +} diff --git a/Cs_HMI/Project/ViewForm/fManual.resx b/HMI/Project/ViewForm/fManual.resx similarity index 97% rename from Cs_HMI/Project/ViewForm/fManual.resx rename to HMI/Project/ViewForm/fManual.resx index aac33d5..1f666f2 100644 --- a/Cs_HMI/Project/ViewForm/fManual.resx +++ b/HMI/Project/ViewForm/fManual.resx @@ -1,123 +1,123 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/app.config b/HMI/Project/app.config similarity index 98% rename from Cs_HMI/Project/app.config rename to HMI/Project/app.config index 5b6a276..349fe19 100644 --- a/Cs_HMI/Project/app.config +++ b/HMI/Project/app.config @@ -1,37 +1,37 @@ - - - - -
-
- - - - - - - - - asdfasdfasdf -asdfasdfasdf -asdf - - - - - asdfasdfasdf -asdfasdfasdf -asdf - - - - - - - - - - - - - + + + + +
+
+ + + + + + + + + asdfasdfasdf +asdfasdfasdf +asdf + + + + + asdfasdfasdf +asdfasdfasdf +asdf + + + + + + + + + + + + + diff --git a/Cs_HMI/Project/fMain.Designer.cs b/HMI/Project/fMain.Designer.cs similarity index 98% rename from Cs_HMI/Project/fMain.Designer.cs rename to HMI/Project/fMain.Designer.cs index 096e164..4dcf8bf 100644 --- a/Cs_HMI/Project/fMain.Designer.cs +++ b/HMI/Project/fMain.Designer.cs @@ -1,2104 +1,2104 @@ -using System.Drawing; -using System.Windows.Forms; - -namespace Project -{ - partial class fMain - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMain)); - arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem4 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem5 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem6 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem7 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem8 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem9 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem10 = new arFrame.Control.ColorListItem(); - arFrame.Control.ColorListItem colorListItem11 = new arFrame.Control.ColorListItem(); - this.tmDisplay = new System.Windows.Forms.Timer(this.components); - this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); - this.MenuLift = new System.Windows.Forms.Button(); - this.MenuMAN = new System.Windows.Forms.Button(); - this.MenuFlag = new System.Windows.Forms.Button(); - this.MenuAuto = new System.Windows.Forms.Button(); - this.MenuLog = new System.Windows.Forms.Button(); - this.MenuAGV = new System.Windows.Forms.Button(); - this.MenuBMS = new System.Windows.Forms.Button(); - this.btAutoRun = new arCtl.arLabel(); - this.btChargeA = new arCtl.arLabel(); - this.lbTime = new arCtl.arLabel(); - this.btDebug = new arCtl.arLabel(); - this.btOpenDir = new arCtl.arLabel(); - this.btMReset = new arCtl.arLabel(); - this.btCapture = new arCtl.arLabel(); - this.btShowManual = new arCtl.arLabel(); - this.btTopMenu_Volume = new arCtl.arLabel(); - this.arLabel5 = new arCtl.arLabel(); - this.btClose = new arCtl.arLabel(); - this.systemParameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); - this.demoRunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setZValidToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.gridviewTestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.으ㅆㄷㄴㅅToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.messageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.errorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.informationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.attentionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.reloadLotListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.moveSourceListToDestListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.needShowUploadTrueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.선택상태보기ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.idxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.stripIdDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.oKDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.nGDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.mISSDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.fileMapDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.mapOriginDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.mapArrayDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.panRight = new System.Windows.Forms.Panel(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.btHome = new arCtl.arLabel(); - this.btChargeM = new arCtl.arLabel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.panel4 = new System.Windows.Forms.Panel(); - this.lbCntQA = new arCtl.arLabel(); - this.arLabel4 = new arCtl.arLabel(); - this.lbCntQC = new arCtl.arLabel(); - this.arLabel9 = new arCtl.arLabel(); - this.panel16 = new System.Windows.Forms.Panel(); - this.lbCntDN = new arCtl.arLabel(); - this.arLabel7 = new arCtl.arLabel(); - this.lbCNtUP = new arCtl.arLabel(); - this.arLabel8 = new arCtl.arLabel(); - this.panel5 = new System.Windows.Forms.Panel(); - this.panel3 = new System.Windows.Forms.Panel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.lbIDLE = new arCtl.arLabel(); - this.lbStStep = new arCtl.arLabel(); - this.panTopMenu = new System.Windows.Forms.Panel(); - this.lbBat = new AGVControl.BatteryLevelGauge(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.cmDebug = new System.Windows.Forms.ContextMenuStrip(this.components); - this.mapFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.demoListLotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); - this.refreshListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.debugtestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pandBottomDIO = new System.Windows.Forms.Panel(); - this.panel9 = new System.Windows.Forms.Panel(); - this.IOState = new arFrame.Control.GridView(); - this.SSInfo = new arFrame.Control.GridView(); - this.panDlg = new System.Windows.Forms.Panel(); - this.arPanel2 = new arCtl.arPanel(); - this.arPanel1 = new arCtl.arPanel(); - this.xbeeSettingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.panRight.SuspendLayout(); - this.tableLayoutPanel1.SuspendLayout(); - this.panel4.SuspendLayout(); - this.panel16.SuspendLayout(); - this.panel1.SuspendLayout(); - this.panTopMenu.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.cmDebug.SuspendLayout(); - this.pandBottomDIO.SuspendLayout(); - this.panel9.SuspendLayout(); - this.SuspendLayout(); - // - // tmDisplay - // - this.tmDisplay.Interval = 300; - // - // MenuLift - // - this.MenuLift.AutoSize = true; - this.MenuLift.Dock = System.Windows.Forms.DockStyle.Left; - this.MenuLift.FlatAppearance.BorderSize = 0; - this.MenuLift.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.MenuLift.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.MenuLift.ForeColor = System.Drawing.Color.Red; - this.MenuLift.Location = new System.Drawing.Point(285, 0); - this.MenuLift.Name = "MenuLift"; - this.MenuLift.Size = new System.Drawing.Size(92, 50); - this.MenuLift.TabIndex = 6; - this.MenuLift.Text = "LIFT"; - this.toolTip1.SetToolTip(this.MenuLift, "I/O 및 FLAG를 확인 합니다"); - this.MenuLift.UseVisualStyleBackColor = true; - this.MenuLift.Visible = false; - this.MenuLift.Click += new System.EventHandler(this.MenuLift_Click); - // - // MenuMAN - // - this.MenuMAN.AutoSize = true; - this.MenuMAN.Dock = System.Windows.Forms.DockStyle.Left; - this.MenuMAN.FlatAppearance.BorderSize = 0; - this.MenuMAN.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.MenuMAN.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.MenuMAN.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.MenuMAN.Location = new System.Drawing.Point(154, 0); - this.MenuMAN.Name = "MenuMAN"; - this.MenuMAN.Size = new System.Drawing.Size(131, 50); - this.MenuMAN.TabIndex = 1; - this.MenuMAN.Text = "MANUAL"; - this.toolTip1.SetToolTip(this.MenuMAN, "작업 내역을 확인 합니다"); - this.MenuMAN.UseVisualStyleBackColor = true; - this.MenuMAN.Click += new System.EventHandler(this.ManualMan_Click); - // - // MenuFlag - // - this.MenuFlag.AutoSize = true; - this.MenuFlag.Dock = System.Windows.Forms.DockStyle.Left; - this.MenuFlag.FlatAppearance.BorderSize = 0; - this.MenuFlag.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.MenuFlag.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.MenuFlag.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.MenuFlag.Location = new System.Drawing.Point(561, 0); - this.MenuFlag.Name = "MenuFlag"; - this.MenuFlag.Size = new System.Drawing.Size(92, 50); - this.MenuFlag.TabIndex = 17; - this.MenuFlag.Text = "FLAG"; - this.toolTip1.SetToolTip(this.MenuFlag, "I/O 및 FLAG를 확인 합니다"); - this.MenuFlag.UseVisualStyleBackColor = true; - this.MenuFlag.Click += new System.EventHandler(this.btMenuFlag_Click); - // - // MenuAuto - // - this.MenuAuto.AutoSize = true; - this.MenuAuto.Dock = System.Windows.Forms.DockStyle.Left; - this.MenuAuto.FlatAppearance.BorderSize = 0; - this.MenuAuto.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.MenuAuto.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.MenuAuto.ForeColor = System.Drawing.Color.Gold; - this.MenuAuto.Location = new System.Drawing.Point(49, 0); - this.MenuAuto.Name = "MenuAuto"; - this.MenuAuto.Size = new System.Drawing.Size(105, 50); - this.MenuAuto.TabIndex = 18; - this.MenuAuto.Text = "AUTO"; - this.toolTip1.SetToolTip(this.MenuAuto, "작업 내역을 확인 합니다"); - this.MenuAuto.UseVisualStyleBackColor = true; - this.MenuAuto.Click += new System.EventHandler(this.btMenuAuto_Click); - // - // MenuLog - // - this.MenuLog.AutoSize = true; - this.MenuLog.Dock = System.Windows.Forms.DockStyle.Left; - this.MenuLog.FlatAppearance.BorderSize = 0; - this.MenuLog.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.MenuLog.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.MenuLog.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.MenuLog.Location = new System.Drawing.Point(653, 0); - this.MenuLog.Name = "MenuLog"; - this.MenuLog.Size = new System.Drawing.Size(92, 50); - this.MenuLog.TabIndex = 19; - this.MenuLog.Text = "LOG"; - this.toolTip1.SetToolTip(this.MenuLog, "I/O 및 FLAG를 확인 합니다"); - this.MenuLog.UseVisualStyleBackColor = true; - this.MenuLog.Click += new System.EventHandler(this.btLog_Click); - // - // MenuAGV - // - this.MenuAGV.AutoSize = true; - this.MenuAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.MenuAGV.Dock = System.Windows.Forms.DockStyle.Left; - this.MenuAGV.FlatAppearance.BorderSize = 0; - this.MenuAGV.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.MenuAGV.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.MenuAGV.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.MenuAGV.Location = new System.Drawing.Point(377, 0); - this.MenuAGV.Name = "MenuAGV"; - this.MenuAGV.Size = new System.Drawing.Size(92, 50); - this.MenuAGV.TabIndex = 21; - this.MenuAGV.Text = "AGV"; - this.toolTip1.SetToolTip(this.MenuAGV, "I/O 및 FLAG를 확인 합니다"); - this.MenuAGV.UseVisualStyleBackColor = false; - this.MenuAGV.Click += new System.EventHandler(this.btMenuAGV_Click_1); - // - // MenuBMS - // - this.MenuBMS.AutoSize = true; - this.MenuBMS.Dock = System.Windows.Forms.DockStyle.Left; - this.MenuBMS.FlatAppearance.BorderSize = 0; - this.MenuBMS.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.MenuBMS.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); - this.MenuBMS.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.MenuBMS.Location = new System.Drawing.Point(469, 0); - this.MenuBMS.Name = "MenuBMS"; - this.MenuBMS.Size = new System.Drawing.Size(92, 50); - this.MenuBMS.TabIndex = 22; - this.MenuBMS.Text = "BMS"; - this.toolTip1.SetToolTip(this.MenuBMS, "I/O 및 FLAG를 확인 합니다"); - this.MenuBMS.UseVisualStyleBackColor = true; - this.MenuBMS.Click += new System.EventHandler(this.btMenuBMS_Click_1); - // - // btAutoRun - // - this.btAutoRun.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btAutoRun.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.btAutoRun.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btAutoRun.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btAutoRun.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btAutoRun.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); - this.btAutoRun.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.tableLayoutPanel1.SetColumnSpan(this.btAutoRun, 2); - this.btAutoRun.Cursor = System.Windows.Forms.Cursors.Hand; - this.btAutoRun.Dock = System.Windows.Forms.DockStyle.Fill; - this.btAutoRun.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btAutoRun.ForeColor = System.Drawing.Color.WhiteSmoke; - this.btAutoRun.GradientEnable = true; - this.btAutoRun.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btAutoRun.GradientRepeatBG = false; - this.btAutoRun.isButton = true; - this.btAutoRun.Location = new System.Drawing.Point(0, 360); - this.btAutoRun.Margin = new System.Windows.Forms.Padding(0); - this.btAutoRun.MouseDownColor = System.Drawing.Color.Empty; - this.btAutoRun.MouseOverColor = System.Drawing.Color.Empty; - this.btAutoRun.msg = null; - this.btAutoRun.Name = "btAutoRun"; - this.btAutoRun.ProgressBorderColor = System.Drawing.Color.Black; - this.btAutoRun.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btAutoRun.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btAutoRun.ProgressEnable = false; - this.btAutoRun.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btAutoRun.ProgressForeColor = System.Drawing.Color.Black; - this.btAutoRun.ProgressMax = 100F; - this.btAutoRun.ProgressMin = 0F; - this.btAutoRun.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btAutoRun.ProgressValue = 0F; - this.btAutoRun.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btAutoRun.Sign = ""; - this.btAutoRun.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btAutoRun.SignColor = System.Drawing.Color.Yellow; - this.btAutoRun.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btAutoRun.Size = new System.Drawing.Size(259, 180); - this.btAutoRun.TabIndex = 22; - this.btAutoRun.Text = "수동"; - this.btAutoRun.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btAutoRun.TextShadow = true; - this.btAutoRun.TextVisible = true; - this.toolTip1.SetToolTip(this.btAutoRun, "작업상태(자동/수동)를 표시 합니다"); - this.btAutoRun.Click += new System.EventHandler(this.btAutorun_Click); - // - // btChargeA - // - this.btChargeA.BackColor = System.Drawing.Color.LightSalmon; - this.btChargeA.BackColor2 = System.Drawing.Color.Tomato; - this.btChargeA.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btChargeA.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btChargeA.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btChargeA.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); - this.btChargeA.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btChargeA.Cursor = System.Windows.Forms.Cursors.Hand; - this.btChargeA.Dock = System.Windows.Forms.DockStyle.Fill; - this.btChargeA.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.btChargeA.ForeColor = System.Drawing.Color.WhiteSmoke; - this.btChargeA.GradientEnable = true; - this.btChargeA.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btChargeA.GradientRepeatBG = false; - this.btChargeA.isButton = true; - this.btChargeA.Location = new System.Drawing.Point(116, 0); - this.btChargeA.Margin = new System.Windows.Forms.Padding(0); - this.btChargeA.MouseDownColor = System.Drawing.Color.Yellow; - this.btChargeA.MouseOverColor = System.Drawing.Color.Lime; - this.btChargeA.msg = null; - this.btChargeA.Name = "btChargeA"; - this.btChargeA.ProgressBorderColor = System.Drawing.Color.Black; - this.btChargeA.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btChargeA.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btChargeA.ProgressEnable = false; - this.btChargeA.ProgressFont = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.btChargeA.ProgressForeColor = System.Drawing.Color.Black; - this.btChargeA.ProgressMax = 100F; - this.btChargeA.ProgressMin = 0F; - this.btChargeA.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btChargeA.ProgressValue = 0F; - this.btChargeA.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btChargeA.Sign = ""; - this.btChargeA.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btChargeA.SignColor = System.Drawing.Color.Yellow; - this.btChargeA.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btChargeA.Size = new System.Drawing.Size(143, 180); - this.btChargeA.TabIndex = 141; - this.btChargeA.Text = "자동충전"; - this.btChargeA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btChargeA.TextShadow = true; - this.btChargeA.TextVisible = true; - this.toolTip1.SetToolTip(this.btChargeA, "도어 상태"); - this.btChargeA.Click += new System.EventHandler(this.btCharge_Click); - // - // lbTime - // - this.lbTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - this.lbTime.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); - this.lbTime.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbTime.BorderColor = System.Drawing.Color.Red; - this.lbTime.BorderColorOver = System.Drawing.Color.Red; - this.lbTime.BorderSize = new System.Windows.Forms.Padding(0); - this.lbTime.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbTime.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbTime.Dock = System.Windows.Forms.DockStyle.Bottom; - this.lbTime.Font = new System.Drawing.Font("Consolas", 12.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbTime.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.lbTime.GradientEnable = false; - this.lbTime.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.lbTime.GradientRepeatBG = false; - this.lbTime.isButton = false; - this.lbTime.Location = new System.Drawing.Point(5, 681); - this.lbTime.Margin = new System.Windows.Forms.Padding(0); - this.lbTime.MouseDownColor = System.Drawing.Color.Yellow; - this.lbTime.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbTime.msg = null; - this.lbTime.Name = "lbTime"; - this.lbTime.ProgressBorderColor = System.Drawing.Color.Black; - this.lbTime.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbTime.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbTime.ProgressEnable = false; - this.lbTime.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbTime.ProgressForeColor = System.Drawing.Color.Black; - this.lbTime.ProgressMax = 100F; - this.lbTime.ProgressMin = 0F; - this.lbTime.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbTime.ProgressValue = 0F; - this.lbTime.ShadowColor = System.Drawing.Color.WhiteSmoke; - this.lbTime.Sign = ""; - this.lbTime.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbTime.SignColor = System.Drawing.Color.Yellow; - this.lbTime.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbTime.Size = new System.Drawing.Size(259, 25); - this.lbTime.TabIndex = 0; - this.lbTime.Text = "1982-11-23 00:00:00"; - this.lbTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbTime.TextShadow = false; - this.lbTime.TextVisible = true; - this.toolTip1.SetToolTip(this.lbTime, "현재 시간"); - // - // btDebug - // - this.btDebug.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btDebug.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btDebug.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btDebug.BackgroundImage"))); - this.btDebug.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btDebug.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btDebug.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btDebug.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btDebug.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btDebug.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btDebug.Cursor = System.Windows.Forms.Cursors.Hand; - this.btDebug.Dock = System.Windows.Forms.DockStyle.Right; - this.btDebug.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btDebug.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btDebug.GradientEnable = false; - this.btDebug.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btDebug.GradientRepeatBG = false; - this.btDebug.isButton = true; - this.btDebug.Location = new System.Drawing.Point(878, 0); - this.btDebug.Margin = new System.Windows.Forms.Padding(0); - this.btDebug.MouseDownColor = System.Drawing.Color.Yellow; - this.btDebug.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btDebug.msg = null; - this.btDebug.Name = "btDebug"; - this.btDebug.ProgressBorderColor = System.Drawing.Color.Black; - this.btDebug.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btDebug.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btDebug.ProgressEnable = false; - this.btDebug.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btDebug.ProgressForeColor = System.Drawing.Color.Black; - this.btDebug.ProgressMax = 100F; - this.btDebug.ProgressMin = 0F; - this.btDebug.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btDebug.ProgressValue = 0F; - this.btDebug.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btDebug.Sign = ""; - this.btDebug.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btDebug.SignColor = System.Drawing.Color.Yellow; - this.btDebug.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btDebug.Size = new System.Drawing.Size(50, 50); - this.btDebug.TabIndex = 15; - this.btDebug.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btDebug.TextShadow = true; - this.btDebug.TextVisible = true; - this.toolTip1.SetToolTip(this.btDebug, "개발자 메뉴"); - this.btDebug.Visible = false; - this.btDebug.Click += new System.EventHandler(this.btDebug_Click); - // - // btOpenDir - // - this.btOpenDir.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btOpenDir.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btOpenDir.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btOpenDir.BackgroundImage"))); - this.btOpenDir.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btOpenDir.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btOpenDir.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btOpenDir.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btOpenDir.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btOpenDir.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btOpenDir.Cursor = System.Windows.Forms.Cursors.Hand; - this.btOpenDir.Dock = System.Windows.Forms.DockStyle.Right; - this.btOpenDir.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btOpenDir.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btOpenDir.GradientEnable = false; - this.btOpenDir.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btOpenDir.GradientRepeatBG = false; - this.btOpenDir.isButton = true; - this.btOpenDir.Location = new System.Drawing.Point(928, 0); - this.btOpenDir.Margin = new System.Windows.Forms.Padding(0); - this.btOpenDir.MouseDownColor = System.Drawing.Color.Yellow; - this.btOpenDir.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btOpenDir.msg = null; - this.btOpenDir.Name = "btOpenDir"; - this.btOpenDir.ProgressBorderColor = System.Drawing.Color.Black; - this.btOpenDir.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btOpenDir.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btOpenDir.ProgressEnable = false; - this.btOpenDir.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btOpenDir.ProgressForeColor = System.Drawing.Color.Black; - this.btOpenDir.ProgressMax = 100F; - this.btOpenDir.ProgressMin = 0F; - this.btOpenDir.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btOpenDir.ProgressValue = 0F; - this.btOpenDir.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btOpenDir.Sign = ""; - this.btOpenDir.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btOpenDir.SignColor = System.Drawing.Color.Yellow; - this.btOpenDir.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btOpenDir.Size = new System.Drawing.Size(50, 50); - this.btOpenDir.TabIndex = 16; - this.btOpenDir.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btOpenDir.TextShadow = true; - this.btOpenDir.TextVisible = true; - this.toolTip1.SetToolTip(this.btOpenDir, "폴더 열기"); - this.btOpenDir.Click += new System.EventHandler(this.btOpenDir_Click); - // - // btMReset - // - this.btMReset.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btMReset.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btMReset.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btMReset.BackgroundImage"))); - this.btMReset.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btMReset.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btMReset.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btMReset.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btMReset.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btMReset.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btMReset.Cursor = System.Windows.Forms.Cursors.Hand; - this.btMReset.Dock = System.Windows.Forms.DockStyle.Right; - this.btMReset.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btMReset.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btMReset.GradientEnable = false; - this.btMReset.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btMReset.GradientRepeatBG = false; - this.btMReset.isButton = true; - this.btMReset.Location = new System.Drawing.Point(978, 0); - this.btMReset.Margin = new System.Windows.Forms.Padding(0); - this.btMReset.MouseDownColor = System.Drawing.Color.Yellow; - this.btMReset.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btMReset.msg = null; - this.btMReset.Name = "btMReset"; - this.btMReset.ProgressBorderColor = System.Drawing.Color.Black; - this.btMReset.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btMReset.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btMReset.ProgressEnable = false; - this.btMReset.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btMReset.ProgressForeColor = System.Drawing.Color.Black; - this.btMReset.ProgressMax = 100F; - this.btMReset.ProgressMin = 0F; - this.btMReset.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btMReset.ProgressValue = 0F; - this.btMReset.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btMReset.Sign = ""; - this.btMReset.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btMReset.SignColor = System.Drawing.Color.Yellow; - this.btMReset.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btMReset.Size = new System.Drawing.Size(50, 50); - this.btMReset.TabIndex = 13; - this.btMReset.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btMReset.TextShadow = true; - this.btMReset.TextVisible = true; - this.toolTip1.SetToolTip(this.btMReset, "장치 초기화"); - this.btMReset.Click += new System.EventHandler(this.btMReset_Click); - // - // btCapture - // - this.btCapture.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btCapture.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btCapture.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btCapture.BackgroundImage"))); - this.btCapture.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btCapture.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btCapture.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btCapture.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btCapture.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btCapture.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btCapture.Cursor = System.Windows.Forms.Cursors.Hand; - this.btCapture.Dock = System.Windows.Forms.DockStyle.Right; - this.btCapture.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btCapture.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btCapture.GradientEnable = false; - this.btCapture.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btCapture.GradientRepeatBG = false; - this.btCapture.isButton = true; - this.btCapture.Location = new System.Drawing.Point(1028, 0); - this.btCapture.Margin = new System.Windows.Forms.Padding(0); - this.btCapture.MouseDownColor = System.Drawing.Color.Yellow; - this.btCapture.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btCapture.msg = null; - this.btCapture.Name = "btCapture"; - this.btCapture.ProgressBorderColor = System.Drawing.Color.Black; - this.btCapture.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btCapture.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btCapture.ProgressEnable = false; - this.btCapture.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btCapture.ProgressForeColor = System.Drawing.Color.Black; - this.btCapture.ProgressMax = 100F; - this.btCapture.ProgressMin = 0F; - this.btCapture.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btCapture.ProgressValue = 0F; - this.btCapture.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btCapture.Sign = ""; - this.btCapture.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btCapture.SignColor = System.Drawing.Color.Yellow; - this.btCapture.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btCapture.Size = new System.Drawing.Size(50, 50); - this.btCapture.TabIndex = 12; - this.btCapture.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btCapture.TextShadow = true; - this.btCapture.TextVisible = true; - this.toolTip1.SetToolTip(this.btCapture, "화면 캡쳐"); - this.btCapture.Click += new System.EventHandler(this.btCapture_Click); - // - // btShowManual - // - this.btShowManual.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btShowManual.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btShowManual.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btShowManual.BackgroundImage"))); - this.btShowManual.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btShowManual.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btShowManual.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btShowManual.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btShowManual.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btShowManual.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btShowManual.Cursor = System.Windows.Forms.Cursors.Hand; - this.btShowManual.Dock = System.Windows.Forms.DockStyle.Right; - this.btShowManual.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btShowManual.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btShowManual.GradientEnable = false; - this.btShowManual.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btShowManual.GradientRepeatBG = false; - this.btShowManual.isButton = true; - this.btShowManual.Location = new System.Drawing.Point(1078, 0); - this.btShowManual.Margin = new System.Windows.Forms.Padding(0); - this.btShowManual.MouseDownColor = System.Drawing.Color.Yellow; - this.btShowManual.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btShowManual.msg = null; - this.btShowManual.Name = "btShowManual"; - this.btShowManual.ProgressBorderColor = System.Drawing.Color.Black; - this.btShowManual.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btShowManual.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btShowManual.ProgressEnable = false; - this.btShowManual.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btShowManual.ProgressForeColor = System.Drawing.Color.Black; - this.btShowManual.ProgressMax = 100F; - this.btShowManual.ProgressMin = 0F; - this.btShowManual.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btShowManual.ProgressValue = 0F; - this.btShowManual.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btShowManual.Sign = ""; - this.btShowManual.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btShowManual.SignColor = System.Drawing.Color.Yellow; - this.btShowManual.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btShowManual.Size = new System.Drawing.Size(50, 50); - this.btShowManual.TabIndex = 10; - this.btShowManual.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btShowManual.TextShadow = true; - this.btShowManual.TextVisible = true; - this.toolTip1.SetToolTip(this.btShowManual, "메뉴얼 보기"); - this.btShowManual.Click += new System.EventHandler(this.btShowManual_Click); - // - // btTopMenu_Volume - // - this.btTopMenu_Volume.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btTopMenu_Volume.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btTopMenu_Volume.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btTopMenu_Volume.BackgroundImage"))); - this.btTopMenu_Volume.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btTopMenu_Volume.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btTopMenu_Volume.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btTopMenu_Volume.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btTopMenu_Volume.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btTopMenu_Volume.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btTopMenu_Volume.Cursor = System.Windows.Forms.Cursors.Hand; - this.btTopMenu_Volume.Dock = System.Windows.Forms.DockStyle.Right; - this.btTopMenu_Volume.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btTopMenu_Volume.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btTopMenu_Volume.GradientEnable = false; - this.btTopMenu_Volume.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btTopMenu_Volume.GradientRepeatBG = false; - this.btTopMenu_Volume.isButton = true; - this.btTopMenu_Volume.Location = new System.Drawing.Point(1128, 0); - this.btTopMenu_Volume.Margin = new System.Windows.Forms.Padding(0); - this.btTopMenu_Volume.MouseDownColor = System.Drawing.Color.Yellow; - this.btTopMenu_Volume.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btTopMenu_Volume.msg = null; - this.btTopMenu_Volume.Name = "btTopMenu_Volume"; - this.btTopMenu_Volume.ProgressBorderColor = System.Drawing.Color.Black; - this.btTopMenu_Volume.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btTopMenu_Volume.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btTopMenu_Volume.ProgressEnable = false; - this.btTopMenu_Volume.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btTopMenu_Volume.ProgressForeColor = System.Drawing.Color.Black; - this.btTopMenu_Volume.ProgressMax = 100F; - this.btTopMenu_Volume.ProgressMin = 0F; - this.btTopMenu_Volume.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btTopMenu_Volume.ProgressValue = 0F; - this.btTopMenu_Volume.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btTopMenu_Volume.Sign = ""; - this.btTopMenu_Volume.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btTopMenu_Volume.SignColor = System.Drawing.Color.Yellow; - this.btTopMenu_Volume.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btTopMenu_Volume.Size = new System.Drawing.Size(50, 50); - this.btTopMenu_Volume.TabIndex = 20; - this.btTopMenu_Volume.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btTopMenu_Volume.TextShadow = true; - this.btTopMenu_Volume.TextVisible = true; - this.toolTip1.SetToolTip(this.btTopMenu_Volume, "개발자 메뉴"); - this.btTopMenu_Volume.Click += new System.EventHandler(this.btTopMenu_Volume_Click_1); - // - // arLabel5 - // - this.arLabel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.arLabel5.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("arLabel5.BackgroundImage"))); - this.arLabel5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel5.BorderColorOver = System.Drawing.Color.SkyBlue; - this.arLabel5.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel5.Cursor = System.Windows.Forms.Cursors.Hand; - this.arLabel5.Dock = System.Windows.Forms.DockStyle.Right; - this.arLabel5.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.arLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.arLabel5.GradientEnable = false; - this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.arLabel5.GradientRepeatBG = false; - this.arLabel5.isButton = true; - this.arLabel5.Location = new System.Drawing.Point(1178, 0); - this.arLabel5.Margin = new System.Windows.Forms.Padding(0); - this.arLabel5.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel5.msg = null; - this.arLabel5.Name = "arLabel5"; - this.arLabel5.ProgressBorderColor = System.Drawing.Color.Black; - this.arLabel5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel5.ProgressEnable = false; - this.arLabel5.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel5.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel5.ProgressMax = 100F; - this.arLabel5.ProgressMin = 0F; - this.arLabel5.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel5.ProgressValue = 0F; - this.arLabel5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arLabel5.Sign = ""; - this.arLabel5.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel5.SignColor = System.Drawing.Color.Yellow; - this.arLabel5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.arLabel5.Size = new System.Drawing.Size(50, 50); - this.arLabel5.TabIndex = 9; - this.arLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel5.TextShadow = true; - this.arLabel5.TextVisible = true; - this.toolTip1.SetToolTip(this.arLabel5, "프로그램 설정"); - this.arLabel5.Click += new System.EventHandler(this.arLabel5_Click); - // - // btClose - // - this.btClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btClose.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btClose.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btClose.BackgroundImage"))); - this.btClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btClose.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btClose.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btClose.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btClose.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btClose.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btClose.Cursor = System.Windows.Forms.Cursors.Hand; - this.btClose.Dock = System.Windows.Forms.DockStyle.Right; - this.btClose.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btClose.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btClose.GradientEnable = false; - this.btClose.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btClose.GradientRepeatBG = false; - this.btClose.isButton = true; - this.btClose.Location = new System.Drawing.Point(1228, 0); - this.btClose.Margin = new System.Windows.Forms.Padding(0); - this.btClose.MouseDownColor = System.Drawing.Color.Yellow; - this.btClose.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btClose.msg = null; - this.btClose.Name = "btClose"; - this.btClose.ProgressBorderColor = System.Drawing.Color.Black; - this.btClose.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btClose.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btClose.ProgressEnable = false; - this.btClose.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btClose.ProgressForeColor = System.Drawing.Color.Black; - this.btClose.ProgressMax = 100F; - this.btClose.ProgressMin = 0F; - this.btClose.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btClose.ProgressValue = 0F; - this.btClose.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btClose.Sign = ""; - this.btClose.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btClose.SignColor = System.Drawing.Color.Yellow; - this.btClose.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btClose.Size = new System.Drawing.Size(50, 50); - this.btClose.TabIndex = 7; - this.btClose.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btClose.TextShadow = true; - this.btClose.TextVisible = true; - this.toolTip1.SetToolTip(this.btClose, "프로그램 종료"); - this.btClose.Click += new System.EventHandler(this.btClose_Click); - // - // systemParameterToolStripMenuItem - // - this.systemParameterToolStripMenuItem.Name = "systemParameterToolStripMenuItem"; - this.systemParameterToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.systemParameterToolStripMenuItem.Text = "System Parameter"; - // - // toolStripMenuItem4 - // - this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(225, 6); - // - // demoRunToolStripMenuItem - // - this.demoRunToolStripMenuItem.Name = "demoRunToolStripMenuItem"; - this.demoRunToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.demoRunToolStripMenuItem.Text = "Demo Run"; - this.demoRunToolStripMenuItem.Click += new System.EventHandler(this.demoRunToolStripMenuItem_Click); - // - // setZValidToolStripMenuItem - // - this.setZValidToolStripMenuItem.Name = "setZValidToolStripMenuItem"; - this.setZValidToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.setZValidToolStripMenuItem.Text = "Set A-Valid On"; - this.setZValidToolStripMenuItem.Click += new System.EventHandler(this.setZValidToolStripMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(225, 6); - // - // gridviewTestToolStripMenuItem - // - this.gridviewTestToolStripMenuItem.Name = "gridviewTestToolStripMenuItem"; - this.gridviewTestToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.gridviewTestToolStripMenuItem.Text = "GridviewTest"; - // - // 으ㅆㄷㄴㅅToolStripMenuItem - // - this.으ㅆㄷㄴㅅToolStripMenuItem.Name = "으ㅆㄷㄴㅅToolStripMenuItem"; - this.으ㅆㄷㄴㅅToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.으ㅆㄷㄴㅅToolStripMenuItem.Text = "Test DataMatrix StripID"; - // - // messageToolStripMenuItem - // - this.messageToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.errorToolStripMenuItem, - this.informationToolStripMenuItem, - this.attentionToolStripMenuItem}); - this.messageToolStripMenuItem.Name = "messageToolStripMenuItem"; - this.messageToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.messageToolStripMenuItem.Text = "Message"; - // - // errorToolStripMenuItem - // - this.errorToolStripMenuItem.Name = "errorToolStripMenuItem"; - this.errorToolStripMenuItem.Size = new System.Drawing.Size(137, 22); - this.errorToolStripMenuItem.Text = "Error"; - this.errorToolStripMenuItem.Click += new System.EventHandler(this.errorToolStripMenuItem_Click); - // - // informationToolStripMenuItem - // - this.informationToolStripMenuItem.Name = "informationToolStripMenuItem"; - this.informationToolStripMenuItem.Size = new System.Drawing.Size(137, 22); - this.informationToolStripMenuItem.Text = "Information"; - this.informationToolStripMenuItem.Click += new System.EventHandler(this.informationToolStripMenuItem_Click); - // - // attentionToolStripMenuItem - // - this.attentionToolStripMenuItem.Name = "attentionToolStripMenuItem"; - this.attentionToolStripMenuItem.Size = new System.Drawing.Size(137, 22); - this.attentionToolStripMenuItem.Text = "Attention"; - this.attentionToolStripMenuItem.Click += new System.EventHandler(this.attentionToolStripMenuItem_Click); - // - // reloadLotListToolStripMenuItem - // - this.reloadLotListToolStripMenuItem.Name = "reloadLotListToolStripMenuItem"; - this.reloadLotListToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.reloadLotListToolStripMenuItem.Text = "Reload Lot List"; - // - // moveSourceListToDestListToolStripMenuItem - // - this.moveSourceListToDestListToolStripMenuItem.Name = "moveSourceListToDestListToolStripMenuItem"; - this.moveSourceListToDestListToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.moveSourceListToDestListToolStripMenuItem.Text = "Move Source List to DestList"; - // - // needShowUploadTrueToolStripMenuItem - // - this.needShowUploadTrueToolStripMenuItem.Name = "needShowUploadTrueToolStripMenuItem"; - this.needShowUploadTrueToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.needShowUploadTrueToolStripMenuItem.Text = "Need Show Upload = True"; - // - // 선택상태보기ToolStripMenuItem - // - this.선택상태보기ToolStripMenuItem.Name = "선택상태보기ToolStripMenuItem"; - this.선택상태보기ToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.선택상태보기ToolStripMenuItem.Text = "선택 상태 보기"; - // - // idxDataGridViewTextBoxColumn - // - this.idxDataGridViewTextBoxColumn.DataPropertyName = "idx"; - this.idxDataGridViewTextBoxColumn.HeaderText = "idx"; - this.idxDataGridViewTextBoxColumn.Name = "idxDataGridViewTextBoxColumn"; - this.idxDataGridViewTextBoxColumn.Width = 5; - // - // stripIdDataGridViewTextBoxColumn2 - // - this.stripIdDataGridViewTextBoxColumn2.DataPropertyName = "StripId"; - this.stripIdDataGridViewTextBoxColumn2.HeaderText = "StripId"; - this.stripIdDataGridViewTextBoxColumn2.Name = "stripIdDataGridViewTextBoxColumn2"; - this.stripIdDataGridViewTextBoxColumn2.Width = 5; - // - // oKDataGridViewTextBoxColumn2 - // - this.oKDataGridViewTextBoxColumn2.DataPropertyName = "OK"; - this.oKDataGridViewTextBoxColumn2.HeaderText = "OK"; - this.oKDataGridViewTextBoxColumn2.Name = "oKDataGridViewTextBoxColumn2"; - this.oKDataGridViewTextBoxColumn2.Width = 5; - // - // nGDataGridViewTextBoxColumn2 - // - this.nGDataGridViewTextBoxColumn2.DataPropertyName = "NG"; - this.nGDataGridViewTextBoxColumn2.HeaderText = "NG"; - this.nGDataGridViewTextBoxColumn2.Name = "nGDataGridViewTextBoxColumn2"; - this.nGDataGridViewTextBoxColumn2.Width = 5; - // - // mISSDataGridViewTextBoxColumn2 - // - this.mISSDataGridViewTextBoxColumn2.DataPropertyName = "MISS"; - this.mISSDataGridViewTextBoxColumn2.HeaderText = "MISS"; - this.mISSDataGridViewTextBoxColumn2.Name = "mISSDataGridViewTextBoxColumn2"; - this.mISSDataGridViewTextBoxColumn2.Width = 5; - // - // fileMapDataGridViewTextBoxColumn - // - this.fileMapDataGridViewTextBoxColumn.DataPropertyName = "FileMap"; - this.fileMapDataGridViewTextBoxColumn.HeaderText = "FileMap"; - this.fileMapDataGridViewTextBoxColumn.Name = "fileMapDataGridViewTextBoxColumn"; - this.fileMapDataGridViewTextBoxColumn.Width = 5; - // - // dataPathDataGridViewTextBoxColumn - // - this.dataPathDataGridViewTextBoxColumn.DataPropertyName = "DataPath"; - this.dataPathDataGridViewTextBoxColumn.HeaderText = "DataPath"; - this.dataPathDataGridViewTextBoxColumn.Name = "dataPathDataGridViewTextBoxColumn"; - this.dataPathDataGridViewTextBoxColumn.Width = 5; - // - // mapOriginDataGridViewTextBoxColumn - // - this.mapOriginDataGridViewTextBoxColumn.DataPropertyName = "MapOrigin"; - this.mapOriginDataGridViewTextBoxColumn.HeaderText = "MapOrigin"; - this.mapOriginDataGridViewTextBoxColumn.Name = "mapOriginDataGridViewTextBoxColumn"; - this.mapOriginDataGridViewTextBoxColumn.Width = 5; - // - // mapArrayDataGridViewTextBoxColumn - // - this.mapArrayDataGridViewTextBoxColumn.DataPropertyName = "MapArray"; - this.mapArrayDataGridViewTextBoxColumn.HeaderText = "MapArray"; - this.mapArrayDataGridViewTextBoxColumn.Name = "mapArrayDataGridViewTextBoxColumn"; - this.mapArrayDataGridViewTextBoxColumn.Width = 5; - // - // panRight - // - this.panRight.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - this.panRight.Controls.Add(this.tableLayoutPanel1); - this.panRight.Controls.Add(this.panel2); - this.panRight.Controls.Add(this.panel4); - this.panRight.Controls.Add(this.panel16); - this.panRight.Controls.Add(this.panel5); - this.panRight.Controls.Add(this.lbTime); - this.panRight.Controls.Add(this.panel3); - this.panRight.Controls.Add(this.panel1); - this.panRight.Dock = System.Windows.Forms.DockStyle.Right; - this.panRight.Location = new System.Drawing.Point(1015, 58); - this.panRight.Name = "panRight"; - this.panRight.Padding = new System.Windows.Forms.Padding(5, 0, 0, 0); - this.panRight.Size = new System.Drawing.Size(264, 706); - this.panRight.TabIndex = 131; - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F)); - this.tableLayoutPanel1.Controls.Add(this.btAutoRun, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.btHome, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.btChargeA, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.btChargeM, 1, 1); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 136); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 3; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(259, 540); - this.tableLayoutPanel1.TabIndex = 0; - // - // btHome - // - this.btHome.BackColor = System.Drawing.Color.Aqua; - this.btHome.BackColor2 = System.Drawing.Color.Teal; - this.btHome.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btHome.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btHome.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btHome.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); - this.btHome.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btHome.Cursor = System.Windows.Forms.Cursors.Hand; - this.btHome.Dock = System.Windows.Forms.DockStyle.Fill; - this.btHome.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.btHome.ForeColor = System.Drawing.Color.WhiteSmoke; - this.btHome.GradientEnable = true; - this.btHome.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btHome.GradientRepeatBG = false; - this.btHome.isButton = true; - this.btHome.Location = new System.Drawing.Point(0, 0); - this.btHome.Margin = new System.Windows.Forms.Padding(0); - this.btHome.MouseDownColor = System.Drawing.Color.Yellow; - this.btHome.MouseOverColor = System.Drawing.Color.Lime; - this.btHome.msg = null; - this.btHome.Name = "btHome"; - this.btHome.ProgressBorderColor = System.Drawing.Color.Black; - this.btHome.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btHome.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btHome.ProgressEnable = false; - this.btHome.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btHome.ProgressForeColor = System.Drawing.Color.Black; - this.btHome.ProgressMax = 100F; - this.btHome.ProgressMin = 0F; - this.btHome.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btHome.ProgressValue = 0F; - this.tableLayoutPanel1.SetRowSpan(this.btHome, 2); - this.btHome.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btHome.Sign = ""; - this.btHome.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btHome.SignColor = System.Drawing.Color.Yellow; - this.btHome.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btHome.Size = new System.Drawing.Size(116, 360); - this.btHome.TabIndex = 141; - this.btHome.Text = "홈"; - this.btHome.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btHome.TextShadow = true; - this.btHome.TextVisible = true; - this.btHome.Click += new System.EventHandler(this.brHome_Click); - // - // btChargeM - // - this.btChargeM.BackColor = System.Drawing.Color.LightSalmon; - this.btChargeM.BackColor2 = System.Drawing.Color.Tomato; - this.btChargeM.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btChargeM.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btChargeM.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btChargeM.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); - this.btChargeM.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btChargeM.Cursor = System.Windows.Forms.Cursors.Hand; - this.btChargeM.Dock = System.Windows.Forms.DockStyle.Fill; - this.btChargeM.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); - this.btChargeM.ForeColor = System.Drawing.Color.WhiteSmoke; - this.btChargeM.GradientEnable = true; - this.btChargeM.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btChargeM.GradientRepeatBG = false; - this.btChargeM.isButton = true; - this.btChargeM.Location = new System.Drawing.Point(116, 180); - this.btChargeM.Margin = new System.Windows.Forms.Padding(0); - this.btChargeM.MouseDownColor = System.Drawing.Color.Yellow; - this.btChargeM.MouseOverColor = System.Drawing.Color.Lime; - this.btChargeM.msg = null; - this.btChargeM.Name = "btChargeM"; - this.btChargeM.ProgressBorderColor = System.Drawing.Color.Black; - this.btChargeM.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btChargeM.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btChargeM.ProgressEnable = false; - this.btChargeM.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btChargeM.ProgressForeColor = System.Drawing.Color.Black; - this.btChargeM.ProgressMax = 100F; - this.btChargeM.ProgressMin = 0F; - this.btChargeM.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btChargeM.ProgressValue = 0F; - this.btChargeM.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btChargeM.Sign = ""; - this.btChargeM.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btChargeM.SignColor = System.Drawing.Color.Yellow; - this.btChargeM.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btChargeM.Size = new System.Drawing.Size(143, 180); - this.btChargeM.TabIndex = 141; - this.btChargeM.Text = "수동충전"; - this.btChargeM.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btChargeM.TextShadow = true; - this.btChargeM.TextVisible = true; - this.btChargeM.Click += new System.EventHandler(this.btChargeM_Click); - // - // panel2 - // - this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(5, 131); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(259, 5); - this.panel2.TabIndex = 139; - // - // panel4 - // - this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.panel4.Controls.Add(this.lbCntQA); - this.panel4.Controls.Add(this.arLabel4); - this.panel4.Controls.Add(this.lbCntQC); - this.panel4.Controls.Add(this.arLabel9); - this.panel4.Dock = System.Windows.Forms.DockStyle.Top; - this.panel4.Location = new System.Drawing.Point(5, 82); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(259, 49); - this.panel4.TabIndex = 145; - // - // lbCntQA - // - this.lbCntQA.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCntQA.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCntQA.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbCntQA.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbCntQA.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbCntQA.BorderSize = new System.Windows.Forms.Padding(0); - this.lbCntQA.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbCntQA.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbCntQA.Dock = System.Windows.Forms.DockStyle.Left; - this.lbCntQA.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbCntQA.ForeColor = System.Drawing.Color.Gray; - this.lbCntQA.GradientEnable = true; - this.lbCntQA.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbCntQA.GradientRepeatBG = false; - this.lbCntQA.isButton = false; - this.lbCntQA.Location = new System.Drawing.Point(180, 0); - this.lbCntQA.Margin = new System.Windows.Forms.Padding(0); - this.lbCntQA.MouseDownColor = System.Drawing.Color.Yellow; - this.lbCntQA.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbCntQA.msg = null; - this.lbCntQA.Name = "lbCntQA"; - this.lbCntQA.ProgressBorderColor = System.Drawing.Color.Black; - this.lbCntQA.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbCntQA.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbCntQA.ProgressEnable = false; - this.lbCntQA.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbCntQA.ProgressForeColor = System.Drawing.Color.Black; - this.lbCntQA.ProgressMax = 100F; - this.lbCntQA.ProgressMin = 0F; - this.lbCntQA.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbCntQA.ProgressValue = 0F; - this.lbCntQA.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbCntQA.Sign = ""; - this.lbCntQA.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbCntQA.SignColor = System.Drawing.Color.Yellow; - this.lbCntQA.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbCntQA.Size = new System.Drawing.Size(78, 49); - this.lbCntQA.TabIndex = 6; - this.lbCntQA.Text = "0000"; - this.lbCntQA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbCntQA.TextShadow = true; - this.lbCntQA.TextVisible = true; - // - // arLabel4 - // - this.arLabel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.arLabel4.BorderColorOver = System.Drawing.Color.DarkBlue; - this.arLabel4.BorderSize = new System.Windows.Forms.Padding(0); - this.arLabel4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel4.Cursor = System.Windows.Forms.Cursors.Arrow; - this.arLabel4.Dock = System.Windows.Forms.DockStyle.Left; - this.arLabel4.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.arLabel4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.arLabel4.GradientEnable = true; - this.arLabel4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.arLabel4.GradientRepeatBG = false; - this.arLabel4.isButton = false; - this.arLabel4.Location = new System.Drawing.Point(129, 0); - this.arLabel4.Margin = new System.Windows.Forms.Padding(0); - this.arLabel4.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel4.msg = null; - this.arLabel4.Name = "arLabel4"; - this.arLabel4.ProgressBorderColor = System.Drawing.Color.Black; - this.arLabel4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel4.ProgressEnable = false; - this.arLabel4.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel4.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel4.ProgressMax = 100F; - this.arLabel4.ProgressMin = 0F; - this.arLabel4.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel4.ProgressValue = 0F; - this.arLabel4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arLabel4.Sign = ""; - this.arLabel4.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel4.SignColor = System.Drawing.Color.Yellow; - this.arLabel4.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); - this.arLabel4.Size = new System.Drawing.Size(51, 49); - this.arLabel4.TabIndex = 5; - this.arLabel4.Text = "CHARGER"; - this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel4.TextShadow = true; - this.arLabel4.TextVisible = true; - // - // lbCntQC - // - this.lbCntQC.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCntQC.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCntQC.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbCntQC.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbCntQC.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbCntQC.BorderSize = new System.Windows.Forms.Padding(0); - this.lbCntQC.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbCntQC.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbCntQC.Dock = System.Windows.Forms.DockStyle.Left; - this.lbCntQC.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbCntQC.ForeColor = System.Drawing.Color.Gray; - this.lbCntQC.GradientEnable = true; - this.lbCntQC.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbCntQC.GradientRepeatBG = false; - this.lbCntQC.isButton = false; - this.lbCntQC.Location = new System.Drawing.Point(51, 0); - this.lbCntQC.Margin = new System.Windows.Forms.Padding(0); - this.lbCntQC.MouseDownColor = System.Drawing.Color.Yellow; - this.lbCntQC.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbCntQC.msg = null; - this.lbCntQC.Name = "lbCntQC"; - this.lbCntQC.ProgressBorderColor = System.Drawing.Color.Black; - this.lbCntQC.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbCntQC.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbCntQC.ProgressEnable = false; - this.lbCntQC.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbCntQC.ProgressForeColor = System.Drawing.Color.Black; - this.lbCntQC.ProgressMax = 100F; - this.lbCntQC.ProgressMin = 0F; - this.lbCntQC.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbCntQC.ProgressValue = 0F; - this.lbCntQC.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbCntQC.Sign = ""; - this.lbCntQC.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbCntQC.SignColor = System.Drawing.Color.Yellow; - this.lbCntQC.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbCntQC.Size = new System.Drawing.Size(78, 49); - this.lbCntQC.TabIndex = 4; - this.lbCntQC.Text = "0000"; - this.lbCntQC.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbCntQC.TextShadow = true; - this.lbCntQC.TextVisible = true; - // - // arLabel9 - // - this.arLabel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel9.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.arLabel9.BorderColorOver = System.Drawing.Color.DarkBlue; - this.arLabel9.BorderSize = new System.Windows.Forms.Padding(0); - this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel9.Cursor = System.Windows.Forms.Cursors.Arrow; - this.arLabel9.Dock = System.Windows.Forms.DockStyle.Left; - this.arLabel9.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.arLabel9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.arLabel9.GradientEnable = true; - this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.arLabel9.GradientRepeatBG = false; - this.arLabel9.isButton = false; - this.arLabel9.Location = new System.Drawing.Point(0, 0); - this.arLabel9.Margin = new System.Windows.Forms.Padding(0); - this.arLabel9.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel9.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel9.msg = null; - this.arLabel9.Name = "arLabel9"; - this.arLabel9.ProgressBorderColor = System.Drawing.Color.Black; - this.arLabel9.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel9.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel9.ProgressEnable = false; - this.arLabel9.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel9.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel9.ProgressMax = 100F; - this.arLabel9.ProgressMin = 0F; - this.arLabel9.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel9.ProgressValue = 0F; - this.arLabel9.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arLabel9.Sign = ""; - this.arLabel9.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel9.SignColor = System.Drawing.Color.Yellow; - this.arLabel9.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); - this.arLabel9.Size = new System.Drawing.Size(51, 49); - this.arLabel9.TabIndex = 4; - this.arLabel9.Text = "UNLOADER"; - this.arLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel9.TextShadow = true; - this.arLabel9.TextVisible = true; - // - // panel16 - // - this.panel16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.panel16.Controls.Add(this.lbCntDN); - this.panel16.Controls.Add(this.arLabel7); - this.panel16.Controls.Add(this.lbCNtUP); - this.panel16.Controls.Add(this.arLabel8); - this.panel16.Dock = System.Windows.Forms.DockStyle.Top; - this.panel16.Location = new System.Drawing.Point(5, 33); - this.panel16.Name = "panel16"; - this.panel16.Size = new System.Drawing.Size(259, 49); - this.panel16.TabIndex = 16; - // - // lbCntDN - // - this.lbCntDN.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCntDN.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCntDN.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbCntDN.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbCntDN.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbCntDN.BorderSize = new System.Windows.Forms.Padding(0); - this.lbCntDN.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbCntDN.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbCntDN.Dock = System.Windows.Forms.DockStyle.Left; - this.lbCntDN.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbCntDN.ForeColor = System.Drawing.Color.Gray; - this.lbCntDN.GradientEnable = true; - this.lbCntDN.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbCntDN.GradientRepeatBG = false; - this.lbCntDN.isButton = false; - this.lbCntDN.Location = new System.Drawing.Point(180, 0); - this.lbCntDN.Margin = new System.Windows.Forms.Padding(0); - this.lbCntDN.MouseDownColor = System.Drawing.Color.Yellow; - this.lbCntDN.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbCntDN.msg = null; - this.lbCntDN.Name = "lbCntDN"; - this.lbCntDN.ProgressBorderColor = System.Drawing.Color.Black; - this.lbCntDN.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbCntDN.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbCntDN.ProgressEnable = false; - this.lbCntDN.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbCntDN.ProgressForeColor = System.Drawing.Color.Black; - this.lbCntDN.ProgressMax = 100F; - this.lbCntDN.ProgressMin = 0F; - this.lbCntDN.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbCntDN.ProgressValue = 0F; - this.lbCntDN.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbCntDN.Sign = ""; - this.lbCntDN.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbCntDN.SignColor = System.Drawing.Color.Yellow; - this.lbCntDN.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbCntDN.Size = new System.Drawing.Size(78, 49); - this.lbCntDN.TabIndex = 4; - this.lbCntDN.Text = "0000"; - this.lbCntDN.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbCntDN.TextShadow = true; - this.lbCntDN.TextVisible = true; - this.lbCntDN.Click += new System.EventHandler(this.lbCNtUp_Click); - // - // arLabel7 - // - this.arLabel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.arLabel7.BorderColorOver = System.Drawing.Color.DarkBlue; - this.arLabel7.BorderSize = new System.Windows.Forms.Padding(0); - this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel7.Cursor = System.Windows.Forms.Cursors.Arrow; - this.arLabel7.Dock = System.Windows.Forms.DockStyle.Left; - this.arLabel7.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.arLabel7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); - this.arLabel7.GradientEnable = true; - this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.arLabel7.GradientRepeatBG = false; - this.arLabel7.isButton = false; - this.arLabel7.Location = new System.Drawing.Point(129, 0); - this.arLabel7.Margin = new System.Windows.Forms.Padding(0); - this.arLabel7.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel7.msg = null; - this.arLabel7.Name = "arLabel7"; - this.arLabel7.ProgressBorderColor = System.Drawing.Color.Black; - this.arLabel7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel7.ProgressEnable = false; - this.arLabel7.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel7.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel7.ProgressMax = 100F; - this.arLabel7.ProgressMin = 0F; - this.arLabel7.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel7.ProgressValue = 0F; - this.arLabel7.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arLabel7.Sign = ""; - this.arLabel7.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel7.SignColor = System.Drawing.Color.Yellow; - this.arLabel7.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); - this.arLabel7.Size = new System.Drawing.Size(51, 49); - this.arLabel7.TabIndex = 4; - this.arLabel7.Text = "CLEANNER"; - this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel7.TextShadow = true; - this.arLabel7.TextVisible = true; - // - // lbCNtUP - // - this.lbCNtUP.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCNtUP.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbCNtUP.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbCNtUP.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbCNtUP.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbCNtUP.BorderSize = new System.Windows.Forms.Padding(0); - this.lbCNtUP.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbCNtUP.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbCNtUP.Dock = System.Windows.Forms.DockStyle.Left; - this.lbCNtUP.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbCNtUP.ForeColor = System.Drawing.Color.Gray; - this.lbCNtUP.GradientEnable = true; - this.lbCNtUP.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbCNtUP.GradientRepeatBG = false; - this.lbCNtUP.isButton = false; - this.lbCNtUP.Location = new System.Drawing.Point(51, 0); - this.lbCNtUP.Margin = new System.Windows.Forms.Padding(0); - this.lbCNtUP.MouseDownColor = System.Drawing.Color.Yellow; - this.lbCNtUP.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbCNtUP.msg = null; - this.lbCNtUP.Name = "lbCNtUP"; - this.lbCNtUP.ProgressBorderColor = System.Drawing.Color.Black; - this.lbCNtUP.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbCNtUP.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbCNtUP.ProgressEnable = false; - this.lbCNtUP.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbCNtUP.ProgressForeColor = System.Drawing.Color.Black; - this.lbCNtUP.ProgressMax = 100F; - this.lbCNtUP.ProgressMin = 0F; - this.lbCNtUP.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbCNtUP.ProgressValue = 0F; - this.lbCNtUP.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbCNtUP.Sign = ""; - this.lbCNtUP.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbCNtUP.SignColor = System.Drawing.Color.Yellow; - this.lbCNtUP.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbCNtUP.Size = new System.Drawing.Size(78, 49); - this.lbCNtUP.TabIndex = 4; - this.lbCNtUP.Text = "0000"; - this.lbCNtUP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbCNtUP.TextShadow = true; - this.lbCNtUP.TextVisible = true; - this.lbCNtUP.Click += new System.EventHandler(this.lbCNtUp_Click); - // - // arLabel8 - // - this.arLabel8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel8.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.arLabel8.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.arLabel8.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.arLabel8.BorderColorOver = System.Drawing.Color.DarkBlue; - this.arLabel8.BorderSize = new System.Windows.Forms.Padding(0); - this.arLabel8.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.arLabel8.Cursor = System.Windows.Forms.Cursors.Arrow; - this.arLabel8.Dock = System.Windows.Forms.DockStyle.Left; - this.arLabel8.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.arLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); - this.arLabel8.GradientEnable = true; - this.arLabel8.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.arLabel8.GradientRepeatBG = false; - this.arLabel8.isButton = false; - this.arLabel8.Location = new System.Drawing.Point(0, 0); - this.arLabel8.Margin = new System.Windows.Forms.Padding(0); - this.arLabel8.MouseDownColor = System.Drawing.Color.Yellow; - this.arLabel8.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.arLabel8.msg = null; - this.arLabel8.Name = "arLabel8"; - this.arLabel8.ProgressBorderColor = System.Drawing.Color.Black; - this.arLabel8.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arLabel8.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arLabel8.ProgressEnable = false; - this.arLabel8.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.arLabel8.ProgressForeColor = System.Drawing.Color.Black; - this.arLabel8.ProgressMax = 100F; - this.arLabel8.ProgressMin = 0F; - this.arLabel8.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arLabel8.ProgressValue = 0F; - this.arLabel8.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arLabel8.Sign = ""; - this.arLabel8.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.arLabel8.SignColor = System.Drawing.Color.Yellow; - this.arLabel8.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); - this.arLabel8.Size = new System.Drawing.Size(51, 49); - this.arLabel8.TabIndex = 4; - this.arLabel8.Text = "LOADER"; - this.arLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.arLabel8.TextShadow = true; - this.arLabel8.TextVisible = true; - // - // panel5 - // - this.panel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); - this.panel5.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel5.Location = new System.Drawing.Point(5, 676); - this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(259, 5); - this.panel5.TabIndex = 142; - // - // panel3 - // - this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(5, 28); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(259, 5); - this.panel3.TabIndex = 144; - // - // panel1 - // - this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.panel1.Controls.Add(this.lbIDLE); - this.panel1.Controls.Add(this.lbStStep); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(5, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(259, 28); - this.panel1.TabIndex = 143; - // - // lbIDLE - // - this.lbIDLE.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbIDLE.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbIDLE.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbIDLE.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbIDLE.BorderColorOver = System.Drawing.Color.DodgerBlue; - this.lbIDLE.BorderSize = new System.Windows.Forms.Padding(0); - this.lbIDLE.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbIDLE.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbIDLE.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbIDLE.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbIDLE.ForeColor = System.Drawing.Color.Gold; - this.lbIDLE.GradientEnable = true; - this.lbIDLE.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbIDLE.GradientRepeatBG = false; - this.lbIDLE.isButton = false; - this.lbIDLE.Location = new System.Drawing.Point(70, 0); - this.lbIDLE.Margin = new System.Windows.Forms.Padding(0); - this.lbIDLE.MouseDownColor = System.Drawing.Color.Yellow; - this.lbIDLE.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbIDLE.msg = null; - this.lbIDLE.Name = "lbIDLE"; - this.lbIDLE.ProgressBorderColor = System.Drawing.Color.Black; - this.lbIDLE.ProgressColor1 = System.Drawing.Color.DarkCyan; - this.lbIDLE.ProgressColor2 = System.Drawing.Color.DarkTurquoise; - this.lbIDLE.ProgressEnable = true; - this.lbIDLE.ProgressFont = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbIDLE.ProgressForeColor = System.Drawing.Color.DimGray; - this.lbIDLE.ProgressMax = 100F; - this.lbIDLE.ProgressMin = 0F; - this.lbIDLE.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbIDLE.ProgressValue = 50F; - this.lbIDLE.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbIDLE.Sign = ""; - this.lbIDLE.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbIDLE.SignColor = System.Drawing.Color.Yellow; - this.lbIDLE.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbIDLE.Size = new System.Drawing.Size(189, 28); - this.lbIDLE.TabIndex = 4; - this.lbIDLE.Text = "75%"; - this.lbIDLE.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbIDLE.TextShadow = true; - this.lbIDLE.TextVisible = true; - // - // lbStStep - // - this.lbStStep.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbStStep.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.lbStStep.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.lbStStep.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.lbStStep.BorderColorOver = System.Drawing.Color.DarkBlue; - this.lbStStep.BorderSize = new System.Windows.Forms.Padding(0); - this.lbStStep.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.lbStStep.Cursor = System.Windows.Forms.Cursors.Arrow; - this.lbStStep.Dock = System.Windows.Forms.DockStyle.Left; - this.lbStStep.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbStStep.ForeColor = System.Drawing.Color.White; - this.lbStStep.GradientEnable = true; - this.lbStStep.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.lbStStep.GradientRepeatBG = false; - this.lbStStep.isButton = false; - this.lbStStep.Location = new System.Drawing.Point(0, 0); - this.lbStStep.Margin = new System.Windows.Forms.Padding(0); - this.lbStStep.MouseDownColor = System.Drawing.Color.Yellow; - this.lbStStep.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lbStStep.msg = null; - this.lbStStep.Name = "lbStStep"; - this.lbStStep.ProgressBorderColor = System.Drawing.Color.Black; - this.lbStStep.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.lbStStep.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.lbStStep.ProgressEnable = false; - this.lbStStep.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.lbStStep.ProgressForeColor = System.Drawing.Color.Black; - this.lbStStep.ProgressMax = 100F; - this.lbStStep.ProgressMin = 0F; - this.lbStStep.ProgressPadding = new System.Windows.Forms.Padding(0); - this.lbStStep.ProgressValue = 0F; - this.lbStStep.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.lbStStep.Sign = ""; - this.lbStStep.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.lbStStep.SignColor = System.Drawing.Color.Yellow; - this.lbStStep.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.lbStStep.Size = new System.Drawing.Size(70, 28); - this.lbStStep.TabIndex = 4; - this.lbStStep.Text = "--"; - this.lbStStep.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.lbStStep.TextShadow = true; - this.lbStStep.TextVisible = true; - // - // panTopMenu - // - this.panTopMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.panTopMenu.Controls.Add(this.lbBat); - this.panTopMenu.Controls.Add(this.MenuLog); - this.panTopMenu.Controls.Add(this.MenuFlag); - this.panTopMenu.Controls.Add(this.MenuBMS); - this.panTopMenu.Controls.Add(this.MenuAGV); - this.panTopMenu.Controls.Add(this.btDebug); - this.panTopMenu.Controls.Add(this.btOpenDir); - this.panTopMenu.Controls.Add(this.btMReset); - this.panTopMenu.Controls.Add(this.btCapture); - this.panTopMenu.Controls.Add(this.btShowManual); - this.panTopMenu.Controls.Add(this.MenuLift); - this.panTopMenu.Controls.Add(this.MenuMAN); - this.panTopMenu.Controls.Add(this.MenuAuto); - this.panTopMenu.Controls.Add(this.pictureBox1); - this.panTopMenu.Controls.Add(this.btTopMenu_Volume); - this.panTopMenu.Controls.Add(this.arLabel5); - this.panTopMenu.Controls.Add(this.btClose); - this.panTopMenu.Dock = System.Windows.Forms.DockStyle.Top; - this.panTopMenu.Location = new System.Drawing.Point(1, 1); - this.panTopMenu.Name = "panTopMenu"; - this.panTopMenu.Size = new System.Drawing.Size(1278, 50); - this.panTopMenu.TabIndex = 134; - // - // lbBat - // - this.lbBat.BorderColor = System.Drawing.Color.DimGray; - this.lbBat.CurA = 0F; - this.lbBat.Dock = System.Windows.Forms.DockStyle.Right; - this.lbBat.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lbBat.ForeColor = System.Drawing.Color.Gray; - this.lbBat.IsOpen = true; - this.lbBat.Location = new System.Drawing.Point(830, 0); - this.lbBat.MaxA = 0F; - this.lbBat.Name = "lbBat"; - this.lbBat.Padding = new System.Windows.Forms.Padding(0, 12, 0, 12); - this.lbBat.sign = "%"; - this.lbBat.Size = new System.Drawing.Size(48, 50); - this.lbBat.TabIndex = 23; - this.lbBat.Text = "12"; - this.lbBat.VLevel = 50F; - this.lbBat.Volt = 0F; - this.lbBat.Click += new System.EventHandler(this.lbBat_Click); - // - // pictureBox1 - // - this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left; - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(0, 0); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(49, 50); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); - // - // cmDebug - // - this.cmDebug.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mapFileToolStripMenuItem, - this.systemParameterToolStripMenuItem, - this.toolStripMenuItem4, - this.demoRunToolStripMenuItem, - this.setZValidToolStripMenuItem, - this.toolStripMenuItem1, - this.gridviewTestToolStripMenuItem, - this.으ㅆㄷㄴㅅToolStripMenuItem, - this.messageToolStripMenuItem, - this.reloadLotListToolStripMenuItem, - this.moveSourceListToDestListToolStripMenuItem, - this.needShowUploadTrueToolStripMenuItem, - this.선택상태보기ToolStripMenuItem, - this.demoListLotToolStripMenuItem, - this.toolStripMenuItem5, - this.refreshListToolStripMenuItem, - this.xbeeSettingToolStripMenuItem}); - this.cmDebug.Name = "cmVision"; - this.cmDebug.Size = new System.Drawing.Size(229, 368); - // - // mapFileToolStripMenuItem - // - this.mapFileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.saveToolStripMenuItem, - this.loadToolStripMenuItem, - this.editorToolStripMenuItem}); - this.mapFileToolStripMenuItem.Name = "mapFileToolStripMenuItem"; - this.mapFileToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.mapFileToolStripMenuItem.Text = "Map File"; - // - // saveToolStripMenuItem - // - this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(105, 22); - this.saveToolStripMenuItem.Text = "Save"; - this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); - // - // loadToolStripMenuItem - // - this.loadToolStripMenuItem.Name = "loadToolStripMenuItem"; - this.loadToolStripMenuItem.Size = new System.Drawing.Size(105, 22); - this.loadToolStripMenuItem.Text = "Load"; - this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click); - // - // editorToolStripMenuItem - // - this.editorToolStripMenuItem.Name = "editorToolStripMenuItem"; - this.editorToolStripMenuItem.Size = new System.Drawing.Size(105, 22); - this.editorToolStripMenuItem.Text = "Editor"; - this.editorToolStripMenuItem.Click += new System.EventHandler(this.editorToolStripMenuItem_Click); - // - // demoListLotToolStripMenuItem - // - this.demoListLotToolStripMenuItem.Name = "demoListLotToolStripMenuItem"; - this.demoListLotToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.demoListLotToolStripMenuItem.Text = "demo List (Lot)"; - // - // toolStripMenuItem5 - // - this.toolStripMenuItem5.Name = "toolStripMenuItem5"; - this.toolStripMenuItem5.Size = new System.Drawing.Size(228, 22); - this.toolStripMenuItem5.Text = "--"; - // - // refreshListToolStripMenuItem - // - this.refreshListToolStripMenuItem.Name = "refreshListToolStripMenuItem"; - this.refreshListToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.refreshListToolStripMenuItem.Text = "Refresh List"; - // - // debugtestToolStripMenuItem - // - this.debugtestToolStripMenuItem.Name = "debugtestToolStripMenuItem"; - this.debugtestToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.debugtestToolStripMenuItem.Text = "debugtest"; - // - // pandBottomDIO - // - this.pandBottomDIO.Controls.Add(this.panel9); - this.pandBottomDIO.Dock = System.Windows.Forms.DockStyle.Bottom; - this.pandBottomDIO.Location = new System.Drawing.Point(1, 764); - this.pandBottomDIO.Margin = new System.Windows.Forms.Padding(0); - this.pandBottomDIO.Name = "pandBottomDIO"; - this.pandBottomDIO.Size = new System.Drawing.Size(1278, 35); - this.pandBottomDIO.TabIndex = 136; - // - // panel9 - // - this.panel9.Controls.Add(this.IOState); - this.panel9.Controls.Add(this.SSInfo); - this.panel9.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel9.Location = new System.Drawing.Point(0, 0); - this.panel9.Margin = new System.Windows.Forms.Padding(0); - this.panel9.Name = "panel9"; - this.panel9.Size = new System.Drawing.Size(1278, 35); - this.panel9.TabIndex = 0; - // - // IOState - // - this.IOState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.IOState.BorderSize = 0; - colorListItem1.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem1.Remark = ""; - colorListItem2.BackColor1 = System.Drawing.Color.ForestGreen; - colorListItem2.BackColor2 = System.Drawing.Color.ForestGreen; - colorListItem2.Remark = ""; - colorListItem3.BackColor1 = System.Drawing.Color.Firebrick; - colorListItem3.BackColor2 = System.Drawing.Color.Firebrick; - colorListItem3.Remark = ""; - colorListItem4.BackColor1 = System.Drawing.Color.Purple; - colorListItem4.BackColor2 = System.Drawing.Color.Purple; - colorListItem4.Remark = ""; - colorListItem5.BackColor1 = System.Drawing.Color.SteelBlue; - colorListItem5.BackColor2 = System.Drawing.Color.SteelBlue; - colorListItem5.Remark = ""; - colorListItem6.BackColor1 = System.Drawing.Color.DarkGoldenrod; - colorListItem6.BackColor2 = System.Drawing.Color.DarkGoldenrod; - colorListItem6.Remark = ""; - colorListItem7.BackColor1 = System.Drawing.Color.Teal; - colorListItem7.BackColor2 = System.Drawing.Color.Teal; - colorListItem7.Remark = ""; - this.IOState.ColorList = new arFrame.Control.ColorListItem[] { - colorListItem1, - colorListItem2, - colorListItem3, - colorListItem4, - colorListItem5, - colorListItem6, - colorListItem7}; - this.IOState.Dock = System.Windows.Forms.DockStyle.Fill; - this.IOState.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); - this.IOState.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); - this.IOState.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); - this.IOState.ForeColorPin = System.Drawing.Color.WhiteSmoke; - this.IOState.Location = new System.Drawing.Point(0, 0); - this.IOState.MatrixSize = new System.Drawing.Point(11, 1); - this.IOState.MenuBorderSize = 1; - this.IOState.MenuGap = 5; - this.IOState.MinimumSize = new System.Drawing.Size(100, 0); - this.IOState.Name = "IOState"; - this.IOState.Names = new string[] { - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - ""}; - this.IOState.ShadowColor = System.Drawing.Color.Transparent; - this.IOState.showDebugInfo = false; - this.IOState.ShowIndexString = false; - this.IOState.Size = new System.Drawing.Size(1151, 35); - this.IOState.TabIndex = 6; - this.IOState.Tags = null; - this.IOState.Text = "gridView2"; - this.IOState.TextAttachToImage = true; - this.IOState.Titles = new string[] { - "EMG|TAG|DIR|STS|SPD|SEN|CAL|RUN|MARK|CHG|ITM"}; - this.IOState.Values = new ushort[] { - ((ushort)(0)), - ((ushort)(1)), - ((ushort)(2)), - ((ushort)(3)), - ((ushort)(4)), - ((ushort)(5)), - ((ushort)(6)), - ((ushort)(7)), - ((ushort)(8)), - ((ushort)(8)), - ((ushort)(8))}; - this.IOState.ItemClick += new System.EventHandler(this.IOState_ItemClick_1); - // - // SSInfo - // - this.SSInfo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.SSInfo.BorderSize = 0; - colorListItem8.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem8.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - colorListItem8.Remark = ""; - colorListItem9.BackColor1 = System.Drawing.Color.Lime; - colorListItem9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - colorListItem9.Remark = ""; - colorListItem10.BackColor1 = System.Drawing.Color.Red; - colorListItem10.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - colorListItem10.Remark = ""; - colorListItem11.BackColor1 = System.Drawing.Color.DarkViolet; - colorListItem11.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - colorListItem11.Remark = ""; - this.SSInfo.ColorList = new arFrame.Control.ColorListItem[] { - colorListItem8, - colorListItem9, - colorListItem10, - colorListItem11}; - this.SSInfo.Dock = System.Windows.Forms.DockStyle.Right; - this.SSInfo.Font = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Bold); - this.SSInfo.FontPin = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Bold); - this.SSInfo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); - this.SSInfo.ForeColorPin = System.Drawing.Color.WhiteSmoke; - this.SSInfo.Location = new System.Drawing.Point(1151, 0); - this.SSInfo.MatrixSize = new System.Drawing.Point(2, 2); - this.SSInfo.MenuBorderSize = 1; - this.SSInfo.MenuGap = 5; - this.SSInfo.MinimumSize = new System.Drawing.Size(100, 0); - this.SSInfo.Name = "SSInfo"; - this.SSInfo.Names = new string[] { - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - ""}; - this.SSInfo.ShadowColor = System.Drawing.Color.Transparent; - this.SSInfo.showDebugInfo = false; - this.SSInfo.ShowIndexString = false; - this.SSInfo.Size = new System.Drawing.Size(127, 35); - this.SSInfo.TabIndex = 10; - this.SSInfo.Tags = null; - this.SSInfo.Text = "gridView3"; - this.SSInfo.TextAttachToImage = true; - this.SSInfo.Titles = new string[] { - "STEPINFO|FREESPACE", - "INFO1|INFO2"}; - this.SSInfo.Values = new ushort[] { - ((ushort)(0)), - ((ushort)(0)), - ((ushort)(0)), - ((ushort)(0))}; - this.SSInfo.Click += new System.EventHandler(this.SSInfo_Click); - // - // panDlg - // - this.panDlg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); - this.panDlg.Dock = System.Windows.Forms.DockStyle.Fill; - this.panDlg.Location = new System.Drawing.Point(1, 58); - this.panDlg.Margin = new System.Windows.Forms.Padding(0); - this.panDlg.Name = "panDlg"; - this.panDlg.Size = new System.Drawing.Size(1014, 706); - this.panDlg.TabIndex = 146; - // - // arPanel2 - // - this.arPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5))))); - this.arPanel2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arPanel2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); - this.arPanel2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5); - this.arPanel2.Dock = System.Windows.Forms.DockStyle.Top; - this.arPanel2.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); - this.arPanel2.ForeColor = System.Drawing.Color.Khaki; - this.arPanel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.arPanel2.GradientRepeatBG = false; - this.arPanel2.Location = new System.Drawing.Point(1, 55); - this.arPanel2.Name = "arPanel2"; - this.arPanel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arPanel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arPanel2.ProgressMax = 100F; - this.arPanel2.ProgressMin = 0F; - this.arPanel2.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arPanel2.ProgressValue = 0F; - this.arPanel2.ShadowColor = System.Drawing.Color.Black; - this.arPanel2.ShowBorder = true; - this.arPanel2.Size = new System.Drawing.Size(1278, 3); - this.arPanel2.TabIndex = 145; - this.arPanel2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.arPanel2.TextShadow = false; - this.arPanel2.UseProgressBar = false; - // - // arPanel1 - // - this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5))))); - this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.arPanel1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); - this.arPanel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5); - this.arPanel1.Dock = System.Windows.Forms.DockStyle.Top; - this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); - this.arPanel1.ForeColor = System.Drawing.Color.Khaki; - this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.arPanel1.GradientRepeatBG = false; - this.arPanel1.Location = new System.Drawing.Point(1, 51); - this.arPanel1.Name = "arPanel1"; - this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.arPanel1.ProgressMax = 100F; - this.arPanel1.ProgressMin = 0F; - this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.arPanel1.ProgressValue = 0F; - this.arPanel1.ShadowColor = System.Drawing.Color.Black; - this.arPanel1.ShowBorder = true; - this.arPanel1.Size = new System.Drawing.Size(1278, 4); - this.arPanel1.TabIndex = 135; - this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - this.arPanel1.TextShadow = false; - this.arPanel1.UseProgressBar = false; - // - // xbeeSettingToolStripMenuItem - // - this.xbeeSettingToolStripMenuItem.Name = "xbeeSettingToolStripMenuItem"; - this.xbeeSettingToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.xbeeSettingToolStripMenuItem.Text = "xbee setting"; - this.xbeeSettingToolStripMenuItem.Click += new System.EventHandler(this.xbeeSettingToolStripMenuItem_Click); - // - // fMain - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); - this.ClientSize = new System.Drawing.Size(1280, 800); - this.Controls.Add(this.panDlg); - this.Controls.Add(this.panRight); - this.Controls.Add(this.arPanel2); - this.Controls.Add(this.pandBottomDIO); - this.Controls.Add(this.arPanel1); - this.Controls.Add(this.panTopMenu); - this.DoubleBuffered = true; - this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.KeyPreview = true; - this.Name = "fMain"; - this.Padding = new System.Windows.Forms.Padding(1); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.@__Load); - this.panRight.ResumeLayout(false); - this.tableLayoutPanel1.ResumeLayout(false); - this.panel4.ResumeLayout(false); - this.panel16.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.panTopMenu.ResumeLayout(false); - this.panTopMenu.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.cmDebug.ResumeLayout(false); - this.pandBottomDIO.ResumeLayout(false); - this.panel9.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Timer tmDisplay; - private System.Windows.Forms.ToolTip toolTip1; - private System.Windows.Forms.ToolStripMenuItem systemParameterToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; - private System.Windows.Forms.ToolStripMenuItem demoRunToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem setZValidToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem gridviewTestToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem 으ㅆㄷㄴㅅToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem messageToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem errorToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem informationToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem attentionToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem reloadLotListToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem moveSourceListToDestListToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem needShowUploadTrueToolStripMenuItem; - private System.Windows.Forms.DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn stripIdDataGridViewTextBoxColumn2; - private System.Windows.Forms.DataGridViewTextBoxColumn oKDataGridViewTextBoxColumn2; - private System.Windows.Forms.DataGridViewTextBoxColumn nGDataGridViewTextBoxColumn2; - private System.Windows.Forms.DataGridViewTextBoxColumn mISSDataGridViewTextBoxColumn2; - private System.Windows.Forms.DataGridViewTextBoxColumn fileMapDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn dataPathDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn mapOriginDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn mapArrayDataGridViewTextBoxColumn; - private System.Windows.Forms.Panel panRight; - private System.Windows.Forms.ToolStripMenuItem 선택상태보기ToolStripMenuItem; - private System.Windows.Forms.Panel panTopMenu; - private arCtl.arLabel btDebug; - private arCtl.arLabel btOpenDir; - private arCtl.arLabel btMReset; - private arCtl.arLabel btCapture; - private arCtl.arLabel btShowManual; - private arCtl.arLabel arLabel5; - private arCtl.arLabel btClose; - private System.Windows.Forms.Button MenuLift; - private System.Windows.Forms.Button MenuMAN; - private System.Windows.Forms.PictureBox pictureBox1; - private arCtl.arPanel arPanel1; - private System.Windows.Forms.ContextMenuStrip cmDebug; - private System.Windows.Forms.ToolStripMenuItem debugtestToolStripMenuItem; - private System.Windows.Forms.Panel pandBottomDIO; - private System.Windows.Forms.Panel panel9; - private arFrame.Control.GridView IOState; - private System.Windows.Forms.Panel panel16; - private arCtl.arLabel lbCntDN; - private arCtl.arLabel arLabel7; - private arCtl.arLabel lbCNtUP; - private arCtl.arLabel arLabel8; - private arCtl.arLabel lbTime; - private arFrame.Control.GridView SSInfo; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5; - private System.Windows.Forms.ToolStripMenuItem demoListLotToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem refreshListToolStripMenuItem; - private arCtl.arLabel btChargeA; - private System.Windows.Forms.Panel panel5; - private arCtl.arPanel arPanel2; - private System.Windows.Forms.Button MenuFlag; - private System.Windows.Forms.Button MenuAuto; - private System.Windows.Forms.Panel panDlg; - private System.Windows.Forms.Button MenuLog; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private arCtl.arLabel btHome; - private arCtl.arLabel btTopMenu_Volume; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Panel panel1; - private arCtl.arLabel lbIDLE; - private arCtl.arLabel lbStStep; - private arCtl.arLabel btAutoRun; - private System.Windows.Forms.Button MenuBMS; - private System.Windows.Forms.Button MenuAGV; - private AGVControl.BatteryLevelGauge lbBat; - private arCtl.arLabel btChargeM; - private System.Windows.Forms.Panel panel4; - private arCtl.arLabel lbCntQA; - private arCtl.arLabel arLabel4; - private arCtl.arLabel lbCntQC; - private arCtl.arLabel arLabel9; - private ToolStripMenuItem mapFileToolStripMenuItem; - private ToolStripMenuItem saveToolStripMenuItem; - private ToolStripMenuItem loadToolStripMenuItem; - private ToolStripMenuItem editorToolStripMenuItem; - private ToolStripMenuItem xbeeSettingToolStripMenuItem; - } -} - +using System.Drawing; +using System.Windows.Forms; + +namespace Project +{ + partial class fMain + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMain)); + arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem4 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem5 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem6 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem7 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem8 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem9 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem10 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem11 = new arFrame.Control.ColorListItem(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.MenuLift = new System.Windows.Forms.Button(); + this.MenuMAN = new System.Windows.Forms.Button(); + this.MenuFlag = new System.Windows.Forms.Button(); + this.MenuAuto = new System.Windows.Forms.Button(); + this.MenuLog = new System.Windows.Forms.Button(); + this.MenuAGV = new System.Windows.Forms.Button(); + this.MenuBMS = new System.Windows.Forms.Button(); + this.btAutoRun = new arCtl.arLabel(); + this.btChargeA = new arCtl.arLabel(); + this.lbTime = new arCtl.arLabel(); + this.btDebug = new arCtl.arLabel(); + this.btOpenDir = new arCtl.arLabel(); + this.btMReset = new arCtl.arLabel(); + this.btCapture = new arCtl.arLabel(); + this.btShowManual = new arCtl.arLabel(); + this.btTopMenu_Volume = new arCtl.arLabel(); + this.arLabel5 = new arCtl.arLabel(); + this.btClose = new arCtl.arLabel(); + this.systemParameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); + this.demoRunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.setZValidToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.gridviewTestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.으ㅆㄷㄴㅅToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.messageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.errorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.informationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.attentionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.reloadLotListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.moveSourceListToDestListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.needShowUploadTrueToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.선택상태보기ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.idxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.stripIdDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.oKDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.nGDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mISSDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.fileMapDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mapOriginDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mapArrayDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.panRight = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btHome = new arCtl.arLabel(); + this.btChargeM = new arCtl.arLabel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.lbCntQA = new arCtl.arLabel(); + this.arLabel4 = new arCtl.arLabel(); + this.lbCntQC = new arCtl.arLabel(); + this.arLabel9 = new arCtl.arLabel(); + this.panel16 = new System.Windows.Forms.Panel(); + this.lbCntDN = new arCtl.arLabel(); + this.arLabel7 = new arCtl.arLabel(); + this.lbCNtUP = new arCtl.arLabel(); + this.arLabel8 = new arCtl.arLabel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.lbIDLE = new arCtl.arLabel(); + this.lbStStep = new arCtl.arLabel(); + this.panTopMenu = new System.Windows.Forms.Panel(); + this.lbBat = new AGVControl.BatteryLevelGauge(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.cmDebug = new System.Windows.Forms.ContextMenuStrip(this.components); + this.mapFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.editorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.demoListLotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); + this.refreshListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.debugtestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pandBottomDIO = new System.Windows.Forms.Panel(); + this.panel9 = new System.Windows.Forms.Panel(); + this.IOState = new arFrame.Control.GridView(); + this.SSInfo = new arFrame.Control.GridView(); + this.panDlg = new System.Windows.Forms.Panel(); + this.arPanel2 = new arCtl.arPanel(); + this.arPanel1 = new arCtl.arPanel(); + this.xbeeSettingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panRight.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel16.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panTopMenu.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.cmDebug.SuspendLayout(); + this.pandBottomDIO.SuspendLayout(); + this.panel9.SuspendLayout(); + this.SuspendLayout(); + // + // tmDisplay + // + this.tmDisplay.Interval = 300; + // + // MenuLift + // + this.MenuLift.AutoSize = true; + this.MenuLift.Dock = System.Windows.Forms.DockStyle.Left; + this.MenuLift.FlatAppearance.BorderSize = 0; + this.MenuLift.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.MenuLift.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.MenuLift.ForeColor = System.Drawing.Color.Red; + this.MenuLift.Location = new System.Drawing.Point(285, 0); + this.MenuLift.Name = "MenuLift"; + this.MenuLift.Size = new System.Drawing.Size(92, 50); + this.MenuLift.TabIndex = 6; + this.MenuLift.Text = "LIFT"; + this.toolTip1.SetToolTip(this.MenuLift, "I/O 및 FLAG를 확인 합니다"); + this.MenuLift.UseVisualStyleBackColor = true; + this.MenuLift.Visible = false; + this.MenuLift.Click += new System.EventHandler(this.MenuLift_Click); + // + // MenuMAN + // + this.MenuMAN.AutoSize = true; + this.MenuMAN.Dock = System.Windows.Forms.DockStyle.Left; + this.MenuMAN.FlatAppearance.BorderSize = 0; + this.MenuMAN.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.MenuMAN.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.MenuMAN.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.MenuMAN.Location = new System.Drawing.Point(154, 0); + this.MenuMAN.Name = "MenuMAN"; + this.MenuMAN.Size = new System.Drawing.Size(131, 50); + this.MenuMAN.TabIndex = 1; + this.MenuMAN.Text = "MANUAL"; + this.toolTip1.SetToolTip(this.MenuMAN, "작업 내역을 확인 합니다"); + this.MenuMAN.UseVisualStyleBackColor = true; + this.MenuMAN.Click += new System.EventHandler(this.ManualMan_Click); + // + // MenuFlag + // + this.MenuFlag.AutoSize = true; + this.MenuFlag.Dock = System.Windows.Forms.DockStyle.Left; + this.MenuFlag.FlatAppearance.BorderSize = 0; + this.MenuFlag.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.MenuFlag.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.MenuFlag.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.MenuFlag.Location = new System.Drawing.Point(561, 0); + this.MenuFlag.Name = "MenuFlag"; + this.MenuFlag.Size = new System.Drawing.Size(92, 50); + this.MenuFlag.TabIndex = 17; + this.MenuFlag.Text = "FLAG"; + this.toolTip1.SetToolTip(this.MenuFlag, "I/O 및 FLAG를 확인 합니다"); + this.MenuFlag.UseVisualStyleBackColor = true; + this.MenuFlag.Click += new System.EventHandler(this.btMenuFlag_Click); + // + // MenuAuto + // + this.MenuAuto.AutoSize = true; + this.MenuAuto.Dock = System.Windows.Forms.DockStyle.Left; + this.MenuAuto.FlatAppearance.BorderSize = 0; + this.MenuAuto.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.MenuAuto.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.MenuAuto.ForeColor = System.Drawing.Color.Gold; + this.MenuAuto.Location = new System.Drawing.Point(49, 0); + this.MenuAuto.Name = "MenuAuto"; + this.MenuAuto.Size = new System.Drawing.Size(105, 50); + this.MenuAuto.TabIndex = 18; + this.MenuAuto.Text = "AUTO"; + this.toolTip1.SetToolTip(this.MenuAuto, "작업 내역을 확인 합니다"); + this.MenuAuto.UseVisualStyleBackColor = true; + this.MenuAuto.Click += new System.EventHandler(this.btMenuAuto_Click); + // + // MenuLog + // + this.MenuLog.AutoSize = true; + this.MenuLog.Dock = System.Windows.Forms.DockStyle.Left; + this.MenuLog.FlatAppearance.BorderSize = 0; + this.MenuLog.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.MenuLog.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.MenuLog.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.MenuLog.Location = new System.Drawing.Point(653, 0); + this.MenuLog.Name = "MenuLog"; + this.MenuLog.Size = new System.Drawing.Size(92, 50); + this.MenuLog.TabIndex = 19; + this.MenuLog.Text = "LOG"; + this.toolTip1.SetToolTip(this.MenuLog, "I/O 및 FLAG를 확인 합니다"); + this.MenuLog.UseVisualStyleBackColor = true; + this.MenuLog.Click += new System.EventHandler(this.btLog_Click); + // + // MenuAGV + // + this.MenuAGV.AutoSize = true; + this.MenuAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.MenuAGV.Dock = System.Windows.Forms.DockStyle.Left; + this.MenuAGV.FlatAppearance.BorderSize = 0; + this.MenuAGV.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.MenuAGV.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.MenuAGV.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.MenuAGV.Location = new System.Drawing.Point(377, 0); + this.MenuAGV.Name = "MenuAGV"; + this.MenuAGV.Size = new System.Drawing.Size(92, 50); + this.MenuAGV.TabIndex = 21; + this.MenuAGV.Text = "AGV"; + this.toolTip1.SetToolTip(this.MenuAGV, "I/O 및 FLAG를 확인 합니다"); + this.MenuAGV.UseVisualStyleBackColor = false; + this.MenuAGV.Click += new System.EventHandler(this.btMenuAGV_Click_1); + // + // MenuBMS + // + this.MenuBMS.AutoSize = true; + this.MenuBMS.Dock = System.Windows.Forms.DockStyle.Left; + this.MenuBMS.FlatAppearance.BorderSize = 0; + this.MenuBMS.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.MenuBMS.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.MenuBMS.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.MenuBMS.Location = new System.Drawing.Point(469, 0); + this.MenuBMS.Name = "MenuBMS"; + this.MenuBMS.Size = new System.Drawing.Size(92, 50); + this.MenuBMS.TabIndex = 22; + this.MenuBMS.Text = "BMS"; + this.toolTip1.SetToolTip(this.MenuBMS, "I/O 및 FLAG를 확인 합니다"); + this.MenuBMS.UseVisualStyleBackColor = true; + this.MenuBMS.Click += new System.EventHandler(this.btMenuBMS_Click_1); + // + // btAutoRun + // + this.btAutoRun.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btAutoRun.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btAutoRun.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btAutoRun.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btAutoRun.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btAutoRun.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); + this.btAutoRun.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.tableLayoutPanel1.SetColumnSpan(this.btAutoRun, 2); + this.btAutoRun.Cursor = System.Windows.Forms.Cursors.Hand; + this.btAutoRun.Dock = System.Windows.Forms.DockStyle.Fill; + this.btAutoRun.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btAutoRun.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btAutoRun.GradientEnable = true; + this.btAutoRun.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btAutoRun.GradientRepeatBG = false; + this.btAutoRun.isButton = true; + this.btAutoRun.Location = new System.Drawing.Point(0, 360); + this.btAutoRun.Margin = new System.Windows.Forms.Padding(0); + this.btAutoRun.MouseDownColor = System.Drawing.Color.Empty; + this.btAutoRun.MouseOverColor = System.Drawing.Color.Empty; + this.btAutoRun.msg = null; + this.btAutoRun.Name = "btAutoRun"; + this.btAutoRun.ProgressBorderColor = System.Drawing.Color.Black; + this.btAutoRun.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btAutoRun.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btAutoRun.ProgressEnable = false; + this.btAutoRun.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btAutoRun.ProgressForeColor = System.Drawing.Color.Black; + this.btAutoRun.ProgressMax = 100F; + this.btAutoRun.ProgressMin = 0F; + this.btAutoRun.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btAutoRun.ProgressValue = 0F; + this.btAutoRun.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btAutoRun.Sign = ""; + this.btAutoRun.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btAutoRun.SignColor = System.Drawing.Color.Yellow; + this.btAutoRun.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btAutoRun.Size = new System.Drawing.Size(259, 180); + this.btAutoRun.TabIndex = 22; + this.btAutoRun.Text = "수동"; + this.btAutoRun.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btAutoRun.TextShadow = true; + this.btAutoRun.TextVisible = true; + this.toolTip1.SetToolTip(this.btAutoRun, "작업상태(자동/수동)를 표시 합니다"); + this.btAutoRun.Click += new System.EventHandler(this.btAutorun_Click); + // + // btChargeA + // + this.btChargeA.BackColor = System.Drawing.Color.LightSalmon; + this.btChargeA.BackColor2 = System.Drawing.Color.Tomato; + this.btChargeA.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btChargeA.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btChargeA.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btChargeA.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); + this.btChargeA.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btChargeA.Cursor = System.Windows.Forms.Cursors.Hand; + this.btChargeA.Dock = System.Windows.Forms.DockStyle.Fill; + this.btChargeA.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.btChargeA.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btChargeA.GradientEnable = true; + this.btChargeA.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btChargeA.GradientRepeatBG = false; + this.btChargeA.isButton = true; + this.btChargeA.Location = new System.Drawing.Point(116, 0); + this.btChargeA.Margin = new System.Windows.Forms.Padding(0); + this.btChargeA.MouseDownColor = System.Drawing.Color.Yellow; + this.btChargeA.MouseOverColor = System.Drawing.Color.Lime; + this.btChargeA.msg = null; + this.btChargeA.Name = "btChargeA"; + this.btChargeA.ProgressBorderColor = System.Drawing.Color.Black; + this.btChargeA.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btChargeA.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btChargeA.ProgressEnable = false; + this.btChargeA.ProgressFont = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.btChargeA.ProgressForeColor = System.Drawing.Color.Black; + this.btChargeA.ProgressMax = 100F; + this.btChargeA.ProgressMin = 0F; + this.btChargeA.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btChargeA.ProgressValue = 0F; + this.btChargeA.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btChargeA.Sign = ""; + this.btChargeA.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btChargeA.SignColor = System.Drawing.Color.Yellow; + this.btChargeA.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btChargeA.Size = new System.Drawing.Size(143, 180); + this.btChargeA.TabIndex = 141; + this.btChargeA.Text = "자동충전"; + this.btChargeA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btChargeA.TextShadow = true; + this.btChargeA.TextVisible = true; + this.toolTip1.SetToolTip(this.btChargeA, "도어 상태"); + this.btChargeA.Click += new System.EventHandler(this.btCharge_Click); + // + // lbTime + // + this.lbTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.lbTime.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbTime.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTime.BorderColor = System.Drawing.Color.Red; + this.lbTime.BorderColorOver = System.Drawing.Color.Red; + this.lbTime.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTime.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTime.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTime.Dock = System.Windows.Forms.DockStyle.Bottom; + this.lbTime.Font = new System.Drawing.Font("Consolas", 12.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTime.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.lbTime.GradientEnable = false; + this.lbTime.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTime.GradientRepeatBG = false; + this.lbTime.isButton = false; + this.lbTime.Location = new System.Drawing.Point(5, 681); + this.lbTime.Margin = new System.Windows.Forms.Padding(0); + this.lbTime.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTime.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTime.msg = null; + this.lbTime.Name = "lbTime"; + this.lbTime.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTime.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTime.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTime.ProgressEnable = false; + this.lbTime.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTime.ProgressForeColor = System.Drawing.Color.Black; + this.lbTime.ProgressMax = 100F; + this.lbTime.ProgressMin = 0F; + this.lbTime.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTime.ProgressValue = 0F; + this.lbTime.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTime.Sign = ""; + this.lbTime.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTime.SignColor = System.Drawing.Color.Yellow; + this.lbTime.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTime.Size = new System.Drawing.Size(259, 25); + this.lbTime.TabIndex = 0; + this.lbTime.Text = "1982-11-23 00:00:00"; + this.lbTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTime.TextShadow = false; + this.lbTime.TextVisible = true; + this.toolTip1.SetToolTip(this.lbTime, "현재 시간"); + // + // btDebug + // + this.btDebug.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btDebug.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btDebug.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btDebug.BackgroundImage"))); + this.btDebug.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btDebug.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btDebug.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btDebug.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btDebug.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btDebug.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btDebug.Cursor = System.Windows.Forms.Cursors.Hand; + this.btDebug.Dock = System.Windows.Forms.DockStyle.Right; + this.btDebug.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btDebug.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btDebug.GradientEnable = false; + this.btDebug.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btDebug.GradientRepeatBG = false; + this.btDebug.isButton = true; + this.btDebug.Location = new System.Drawing.Point(878, 0); + this.btDebug.Margin = new System.Windows.Forms.Padding(0); + this.btDebug.MouseDownColor = System.Drawing.Color.Yellow; + this.btDebug.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btDebug.msg = null; + this.btDebug.Name = "btDebug"; + this.btDebug.ProgressBorderColor = System.Drawing.Color.Black; + this.btDebug.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btDebug.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btDebug.ProgressEnable = false; + this.btDebug.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btDebug.ProgressForeColor = System.Drawing.Color.Black; + this.btDebug.ProgressMax = 100F; + this.btDebug.ProgressMin = 0F; + this.btDebug.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btDebug.ProgressValue = 0F; + this.btDebug.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btDebug.Sign = ""; + this.btDebug.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btDebug.SignColor = System.Drawing.Color.Yellow; + this.btDebug.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btDebug.Size = new System.Drawing.Size(50, 50); + this.btDebug.TabIndex = 15; + this.btDebug.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btDebug.TextShadow = true; + this.btDebug.TextVisible = true; + this.toolTip1.SetToolTip(this.btDebug, "개발자 메뉴"); + this.btDebug.Visible = false; + this.btDebug.Click += new System.EventHandler(this.btDebug_Click); + // + // btOpenDir + // + this.btOpenDir.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btOpenDir.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btOpenDir.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btOpenDir.BackgroundImage"))); + this.btOpenDir.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btOpenDir.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btOpenDir.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btOpenDir.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btOpenDir.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btOpenDir.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btOpenDir.Cursor = System.Windows.Forms.Cursors.Hand; + this.btOpenDir.Dock = System.Windows.Forms.DockStyle.Right; + this.btOpenDir.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btOpenDir.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btOpenDir.GradientEnable = false; + this.btOpenDir.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btOpenDir.GradientRepeatBG = false; + this.btOpenDir.isButton = true; + this.btOpenDir.Location = new System.Drawing.Point(928, 0); + this.btOpenDir.Margin = new System.Windows.Forms.Padding(0); + this.btOpenDir.MouseDownColor = System.Drawing.Color.Yellow; + this.btOpenDir.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btOpenDir.msg = null; + this.btOpenDir.Name = "btOpenDir"; + this.btOpenDir.ProgressBorderColor = System.Drawing.Color.Black; + this.btOpenDir.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btOpenDir.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btOpenDir.ProgressEnable = false; + this.btOpenDir.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btOpenDir.ProgressForeColor = System.Drawing.Color.Black; + this.btOpenDir.ProgressMax = 100F; + this.btOpenDir.ProgressMin = 0F; + this.btOpenDir.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btOpenDir.ProgressValue = 0F; + this.btOpenDir.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btOpenDir.Sign = ""; + this.btOpenDir.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btOpenDir.SignColor = System.Drawing.Color.Yellow; + this.btOpenDir.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btOpenDir.Size = new System.Drawing.Size(50, 50); + this.btOpenDir.TabIndex = 16; + this.btOpenDir.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btOpenDir.TextShadow = true; + this.btOpenDir.TextVisible = true; + this.toolTip1.SetToolTip(this.btOpenDir, "폴더 열기"); + this.btOpenDir.Click += new System.EventHandler(this.btOpenDir_Click); + // + // btMReset + // + this.btMReset.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btMReset.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btMReset.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btMReset.BackgroundImage"))); + this.btMReset.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btMReset.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btMReset.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btMReset.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btMReset.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btMReset.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btMReset.Cursor = System.Windows.Forms.Cursors.Hand; + this.btMReset.Dock = System.Windows.Forms.DockStyle.Right; + this.btMReset.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btMReset.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btMReset.GradientEnable = false; + this.btMReset.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btMReset.GradientRepeatBG = false; + this.btMReset.isButton = true; + this.btMReset.Location = new System.Drawing.Point(978, 0); + this.btMReset.Margin = new System.Windows.Forms.Padding(0); + this.btMReset.MouseDownColor = System.Drawing.Color.Yellow; + this.btMReset.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btMReset.msg = null; + this.btMReset.Name = "btMReset"; + this.btMReset.ProgressBorderColor = System.Drawing.Color.Black; + this.btMReset.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btMReset.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btMReset.ProgressEnable = false; + this.btMReset.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btMReset.ProgressForeColor = System.Drawing.Color.Black; + this.btMReset.ProgressMax = 100F; + this.btMReset.ProgressMin = 0F; + this.btMReset.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btMReset.ProgressValue = 0F; + this.btMReset.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btMReset.Sign = ""; + this.btMReset.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btMReset.SignColor = System.Drawing.Color.Yellow; + this.btMReset.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btMReset.Size = new System.Drawing.Size(50, 50); + this.btMReset.TabIndex = 13; + this.btMReset.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btMReset.TextShadow = true; + this.btMReset.TextVisible = true; + this.toolTip1.SetToolTip(this.btMReset, "장치 초기화"); + this.btMReset.Click += new System.EventHandler(this.btMReset_Click); + // + // btCapture + // + this.btCapture.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btCapture.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btCapture.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btCapture.BackgroundImage"))); + this.btCapture.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btCapture.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btCapture.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btCapture.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btCapture.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btCapture.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btCapture.Cursor = System.Windows.Forms.Cursors.Hand; + this.btCapture.Dock = System.Windows.Forms.DockStyle.Right; + this.btCapture.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btCapture.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btCapture.GradientEnable = false; + this.btCapture.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btCapture.GradientRepeatBG = false; + this.btCapture.isButton = true; + this.btCapture.Location = new System.Drawing.Point(1028, 0); + this.btCapture.Margin = new System.Windows.Forms.Padding(0); + this.btCapture.MouseDownColor = System.Drawing.Color.Yellow; + this.btCapture.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btCapture.msg = null; + this.btCapture.Name = "btCapture"; + this.btCapture.ProgressBorderColor = System.Drawing.Color.Black; + this.btCapture.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btCapture.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btCapture.ProgressEnable = false; + this.btCapture.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btCapture.ProgressForeColor = System.Drawing.Color.Black; + this.btCapture.ProgressMax = 100F; + this.btCapture.ProgressMin = 0F; + this.btCapture.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btCapture.ProgressValue = 0F; + this.btCapture.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btCapture.Sign = ""; + this.btCapture.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btCapture.SignColor = System.Drawing.Color.Yellow; + this.btCapture.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btCapture.Size = new System.Drawing.Size(50, 50); + this.btCapture.TabIndex = 12; + this.btCapture.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btCapture.TextShadow = true; + this.btCapture.TextVisible = true; + this.toolTip1.SetToolTip(this.btCapture, "화면 캡쳐"); + this.btCapture.Click += new System.EventHandler(this.btCapture_Click); + // + // btShowManual + // + this.btShowManual.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btShowManual.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btShowManual.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btShowManual.BackgroundImage"))); + this.btShowManual.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btShowManual.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btShowManual.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btShowManual.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btShowManual.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btShowManual.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btShowManual.Cursor = System.Windows.Forms.Cursors.Hand; + this.btShowManual.Dock = System.Windows.Forms.DockStyle.Right; + this.btShowManual.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btShowManual.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btShowManual.GradientEnable = false; + this.btShowManual.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btShowManual.GradientRepeatBG = false; + this.btShowManual.isButton = true; + this.btShowManual.Location = new System.Drawing.Point(1078, 0); + this.btShowManual.Margin = new System.Windows.Forms.Padding(0); + this.btShowManual.MouseDownColor = System.Drawing.Color.Yellow; + this.btShowManual.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btShowManual.msg = null; + this.btShowManual.Name = "btShowManual"; + this.btShowManual.ProgressBorderColor = System.Drawing.Color.Black; + this.btShowManual.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btShowManual.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btShowManual.ProgressEnable = false; + this.btShowManual.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btShowManual.ProgressForeColor = System.Drawing.Color.Black; + this.btShowManual.ProgressMax = 100F; + this.btShowManual.ProgressMin = 0F; + this.btShowManual.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btShowManual.ProgressValue = 0F; + this.btShowManual.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btShowManual.Sign = ""; + this.btShowManual.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btShowManual.SignColor = System.Drawing.Color.Yellow; + this.btShowManual.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btShowManual.Size = new System.Drawing.Size(50, 50); + this.btShowManual.TabIndex = 10; + this.btShowManual.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btShowManual.TextShadow = true; + this.btShowManual.TextVisible = true; + this.toolTip1.SetToolTip(this.btShowManual, "메뉴얼 보기"); + this.btShowManual.Click += new System.EventHandler(this.btShowManual_Click); + // + // btTopMenu_Volume + // + this.btTopMenu_Volume.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btTopMenu_Volume.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btTopMenu_Volume.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btTopMenu_Volume.BackgroundImage"))); + this.btTopMenu_Volume.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btTopMenu_Volume.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btTopMenu_Volume.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btTopMenu_Volume.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btTopMenu_Volume.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btTopMenu_Volume.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btTopMenu_Volume.Cursor = System.Windows.Forms.Cursors.Hand; + this.btTopMenu_Volume.Dock = System.Windows.Forms.DockStyle.Right; + this.btTopMenu_Volume.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btTopMenu_Volume.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btTopMenu_Volume.GradientEnable = false; + this.btTopMenu_Volume.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btTopMenu_Volume.GradientRepeatBG = false; + this.btTopMenu_Volume.isButton = true; + this.btTopMenu_Volume.Location = new System.Drawing.Point(1128, 0); + this.btTopMenu_Volume.Margin = new System.Windows.Forms.Padding(0); + this.btTopMenu_Volume.MouseDownColor = System.Drawing.Color.Yellow; + this.btTopMenu_Volume.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btTopMenu_Volume.msg = null; + this.btTopMenu_Volume.Name = "btTopMenu_Volume"; + this.btTopMenu_Volume.ProgressBorderColor = System.Drawing.Color.Black; + this.btTopMenu_Volume.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btTopMenu_Volume.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btTopMenu_Volume.ProgressEnable = false; + this.btTopMenu_Volume.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btTopMenu_Volume.ProgressForeColor = System.Drawing.Color.Black; + this.btTopMenu_Volume.ProgressMax = 100F; + this.btTopMenu_Volume.ProgressMin = 0F; + this.btTopMenu_Volume.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btTopMenu_Volume.ProgressValue = 0F; + this.btTopMenu_Volume.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btTopMenu_Volume.Sign = ""; + this.btTopMenu_Volume.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btTopMenu_Volume.SignColor = System.Drawing.Color.Yellow; + this.btTopMenu_Volume.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btTopMenu_Volume.Size = new System.Drawing.Size(50, 50); + this.btTopMenu_Volume.TabIndex = 20; + this.btTopMenu_Volume.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btTopMenu_Volume.TextShadow = true; + this.btTopMenu_Volume.TextVisible = true; + this.toolTip1.SetToolTip(this.btTopMenu_Volume, "개발자 메뉴"); + this.btTopMenu_Volume.Click += new System.EventHandler(this.btTopMenu_Volume_Click_1); + // + // arLabel5 + // + this.arLabel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arLabel5.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("arLabel5.BackgroundImage"))); + this.arLabel5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel5.BorderColorOver = System.Drawing.Color.SkyBlue; + this.arLabel5.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel5.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel5.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel5.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.arLabel5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.arLabel5.GradientEnable = false; + this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel5.GradientRepeatBG = false; + this.arLabel5.isButton = true; + this.arLabel5.Location = new System.Drawing.Point(1178, 0); + this.arLabel5.Margin = new System.Windows.Forms.Padding(0); + this.arLabel5.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel5.msg = null; + this.arLabel5.Name = "arLabel5"; + this.arLabel5.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel5.ProgressEnable = false; + this.arLabel5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel5.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel5.ProgressMax = 100F; + this.arLabel5.ProgressMin = 0F; + this.arLabel5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel5.ProgressValue = 0F; + this.arLabel5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel5.Sign = ""; + this.arLabel5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel5.SignColor = System.Drawing.Color.Yellow; + this.arLabel5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel5.Size = new System.Drawing.Size(50, 50); + this.arLabel5.TabIndex = 9; + this.arLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel5.TextShadow = true; + this.arLabel5.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel5, "프로그램 설정"); + this.arLabel5.Click += new System.EventHandler(this.arLabel5_Click); + // + // btClose + // + this.btClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btClose.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btClose.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btClose.BackgroundImage"))); + this.btClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btClose.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btClose.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btClose.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btClose.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btClose.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btClose.Cursor = System.Windows.Forms.Cursors.Hand; + this.btClose.Dock = System.Windows.Forms.DockStyle.Right; + this.btClose.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btClose.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btClose.GradientEnable = false; + this.btClose.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btClose.GradientRepeatBG = false; + this.btClose.isButton = true; + this.btClose.Location = new System.Drawing.Point(1228, 0); + this.btClose.Margin = new System.Windows.Forms.Padding(0); + this.btClose.MouseDownColor = System.Drawing.Color.Yellow; + this.btClose.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btClose.msg = null; + this.btClose.Name = "btClose"; + this.btClose.ProgressBorderColor = System.Drawing.Color.Black; + this.btClose.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btClose.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btClose.ProgressEnable = false; + this.btClose.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btClose.ProgressForeColor = System.Drawing.Color.Black; + this.btClose.ProgressMax = 100F; + this.btClose.ProgressMin = 0F; + this.btClose.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btClose.ProgressValue = 0F; + this.btClose.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btClose.Sign = ""; + this.btClose.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btClose.SignColor = System.Drawing.Color.Yellow; + this.btClose.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btClose.Size = new System.Drawing.Size(50, 50); + this.btClose.TabIndex = 7; + this.btClose.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btClose.TextShadow = true; + this.btClose.TextVisible = true; + this.toolTip1.SetToolTip(this.btClose, "프로그램 종료"); + this.btClose.Click += new System.EventHandler(this.btClose_Click); + // + // systemParameterToolStripMenuItem + // + this.systemParameterToolStripMenuItem.Name = "systemParameterToolStripMenuItem"; + this.systemParameterToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.systemParameterToolStripMenuItem.Text = "System Parameter"; + // + // toolStripMenuItem4 + // + this.toolStripMenuItem4.Name = "toolStripMenuItem4"; + this.toolStripMenuItem4.Size = new System.Drawing.Size(225, 6); + // + // demoRunToolStripMenuItem + // + this.demoRunToolStripMenuItem.Name = "demoRunToolStripMenuItem"; + this.demoRunToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.demoRunToolStripMenuItem.Text = "Demo Run"; + this.demoRunToolStripMenuItem.Click += new System.EventHandler(this.demoRunToolStripMenuItem_Click); + // + // setZValidToolStripMenuItem + // + this.setZValidToolStripMenuItem.Name = "setZValidToolStripMenuItem"; + this.setZValidToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.setZValidToolStripMenuItem.Text = "Set A-Valid On"; + this.setZValidToolStripMenuItem.Click += new System.EventHandler(this.setZValidToolStripMenuItem_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(225, 6); + // + // gridviewTestToolStripMenuItem + // + this.gridviewTestToolStripMenuItem.Name = "gridviewTestToolStripMenuItem"; + this.gridviewTestToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.gridviewTestToolStripMenuItem.Text = "GridviewTest"; + // + // 으ㅆㄷㄴㅅToolStripMenuItem + // + this.으ㅆㄷㄴㅅToolStripMenuItem.Name = "으ㅆㄷㄴㅅToolStripMenuItem"; + this.으ㅆㄷㄴㅅToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.으ㅆㄷㄴㅅToolStripMenuItem.Text = "Test DataMatrix StripID"; + // + // messageToolStripMenuItem + // + this.messageToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.errorToolStripMenuItem, + this.informationToolStripMenuItem, + this.attentionToolStripMenuItem}); + this.messageToolStripMenuItem.Name = "messageToolStripMenuItem"; + this.messageToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.messageToolStripMenuItem.Text = "Message"; + // + // errorToolStripMenuItem + // + this.errorToolStripMenuItem.Name = "errorToolStripMenuItem"; + this.errorToolStripMenuItem.Size = new System.Drawing.Size(137, 22); + this.errorToolStripMenuItem.Text = "Error"; + this.errorToolStripMenuItem.Click += new System.EventHandler(this.errorToolStripMenuItem_Click); + // + // informationToolStripMenuItem + // + this.informationToolStripMenuItem.Name = "informationToolStripMenuItem"; + this.informationToolStripMenuItem.Size = new System.Drawing.Size(137, 22); + this.informationToolStripMenuItem.Text = "Information"; + this.informationToolStripMenuItem.Click += new System.EventHandler(this.informationToolStripMenuItem_Click); + // + // attentionToolStripMenuItem + // + this.attentionToolStripMenuItem.Name = "attentionToolStripMenuItem"; + this.attentionToolStripMenuItem.Size = new System.Drawing.Size(137, 22); + this.attentionToolStripMenuItem.Text = "Attention"; + this.attentionToolStripMenuItem.Click += new System.EventHandler(this.attentionToolStripMenuItem_Click); + // + // reloadLotListToolStripMenuItem + // + this.reloadLotListToolStripMenuItem.Name = "reloadLotListToolStripMenuItem"; + this.reloadLotListToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.reloadLotListToolStripMenuItem.Text = "Reload Lot List"; + // + // moveSourceListToDestListToolStripMenuItem + // + this.moveSourceListToDestListToolStripMenuItem.Name = "moveSourceListToDestListToolStripMenuItem"; + this.moveSourceListToDestListToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.moveSourceListToDestListToolStripMenuItem.Text = "Move Source List to DestList"; + // + // needShowUploadTrueToolStripMenuItem + // + this.needShowUploadTrueToolStripMenuItem.Name = "needShowUploadTrueToolStripMenuItem"; + this.needShowUploadTrueToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.needShowUploadTrueToolStripMenuItem.Text = "Need Show Upload = True"; + // + // 선택상태보기ToolStripMenuItem + // + this.선택상태보기ToolStripMenuItem.Name = "선택상태보기ToolStripMenuItem"; + this.선택상태보기ToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.선택상태보기ToolStripMenuItem.Text = "선택 상태 보기"; + // + // idxDataGridViewTextBoxColumn + // + this.idxDataGridViewTextBoxColumn.DataPropertyName = "idx"; + this.idxDataGridViewTextBoxColumn.HeaderText = "idx"; + this.idxDataGridViewTextBoxColumn.Name = "idxDataGridViewTextBoxColumn"; + this.idxDataGridViewTextBoxColumn.Width = 5; + // + // stripIdDataGridViewTextBoxColumn2 + // + this.stripIdDataGridViewTextBoxColumn2.DataPropertyName = "StripId"; + this.stripIdDataGridViewTextBoxColumn2.HeaderText = "StripId"; + this.stripIdDataGridViewTextBoxColumn2.Name = "stripIdDataGridViewTextBoxColumn2"; + this.stripIdDataGridViewTextBoxColumn2.Width = 5; + // + // oKDataGridViewTextBoxColumn2 + // + this.oKDataGridViewTextBoxColumn2.DataPropertyName = "OK"; + this.oKDataGridViewTextBoxColumn2.HeaderText = "OK"; + this.oKDataGridViewTextBoxColumn2.Name = "oKDataGridViewTextBoxColumn2"; + this.oKDataGridViewTextBoxColumn2.Width = 5; + // + // nGDataGridViewTextBoxColumn2 + // + this.nGDataGridViewTextBoxColumn2.DataPropertyName = "NG"; + this.nGDataGridViewTextBoxColumn2.HeaderText = "NG"; + this.nGDataGridViewTextBoxColumn2.Name = "nGDataGridViewTextBoxColumn2"; + this.nGDataGridViewTextBoxColumn2.Width = 5; + // + // mISSDataGridViewTextBoxColumn2 + // + this.mISSDataGridViewTextBoxColumn2.DataPropertyName = "MISS"; + this.mISSDataGridViewTextBoxColumn2.HeaderText = "MISS"; + this.mISSDataGridViewTextBoxColumn2.Name = "mISSDataGridViewTextBoxColumn2"; + this.mISSDataGridViewTextBoxColumn2.Width = 5; + // + // fileMapDataGridViewTextBoxColumn + // + this.fileMapDataGridViewTextBoxColumn.DataPropertyName = "FileMap"; + this.fileMapDataGridViewTextBoxColumn.HeaderText = "FileMap"; + this.fileMapDataGridViewTextBoxColumn.Name = "fileMapDataGridViewTextBoxColumn"; + this.fileMapDataGridViewTextBoxColumn.Width = 5; + // + // dataPathDataGridViewTextBoxColumn + // + this.dataPathDataGridViewTextBoxColumn.DataPropertyName = "DataPath"; + this.dataPathDataGridViewTextBoxColumn.HeaderText = "DataPath"; + this.dataPathDataGridViewTextBoxColumn.Name = "dataPathDataGridViewTextBoxColumn"; + this.dataPathDataGridViewTextBoxColumn.Width = 5; + // + // mapOriginDataGridViewTextBoxColumn + // + this.mapOriginDataGridViewTextBoxColumn.DataPropertyName = "MapOrigin"; + this.mapOriginDataGridViewTextBoxColumn.HeaderText = "MapOrigin"; + this.mapOriginDataGridViewTextBoxColumn.Name = "mapOriginDataGridViewTextBoxColumn"; + this.mapOriginDataGridViewTextBoxColumn.Width = 5; + // + // mapArrayDataGridViewTextBoxColumn + // + this.mapArrayDataGridViewTextBoxColumn.DataPropertyName = "MapArray"; + this.mapArrayDataGridViewTextBoxColumn.HeaderText = "MapArray"; + this.mapArrayDataGridViewTextBoxColumn.Name = "mapArrayDataGridViewTextBoxColumn"; + this.mapArrayDataGridViewTextBoxColumn.Width = 5; + // + // panRight + // + this.panRight.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.panRight.Controls.Add(this.tableLayoutPanel1); + this.panRight.Controls.Add(this.panel2); + this.panRight.Controls.Add(this.panel4); + this.panRight.Controls.Add(this.panel16); + this.panRight.Controls.Add(this.panel5); + this.panRight.Controls.Add(this.lbTime); + this.panRight.Controls.Add(this.panel3); + this.panRight.Controls.Add(this.panel1); + this.panRight.Dock = System.Windows.Forms.DockStyle.Right; + this.panRight.Location = new System.Drawing.Point(1015, 58); + this.panRight.Name = "panRight"; + this.panRight.Padding = new System.Windows.Forms.Padding(5, 0, 0, 0); + this.panRight.Size = new System.Drawing.Size(264, 706); + this.panRight.TabIndex = 131; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F)); + this.tableLayoutPanel1.Controls.Add(this.btAutoRun, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.btHome, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btChargeA, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.btChargeM, 1, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 136); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(259, 540); + this.tableLayoutPanel1.TabIndex = 0; + // + // btHome + // + this.btHome.BackColor = System.Drawing.Color.Aqua; + this.btHome.BackColor2 = System.Drawing.Color.Teal; + this.btHome.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btHome.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btHome.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btHome.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); + this.btHome.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btHome.Cursor = System.Windows.Forms.Cursors.Hand; + this.btHome.Dock = System.Windows.Forms.DockStyle.Fill; + this.btHome.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.btHome.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btHome.GradientEnable = true; + this.btHome.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btHome.GradientRepeatBG = false; + this.btHome.isButton = true; + this.btHome.Location = new System.Drawing.Point(0, 0); + this.btHome.Margin = new System.Windows.Forms.Padding(0); + this.btHome.MouseDownColor = System.Drawing.Color.Yellow; + this.btHome.MouseOverColor = System.Drawing.Color.Lime; + this.btHome.msg = null; + this.btHome.Name = "btHome"; + this.btHome.ProgressBorderColor = System.Drawing.Color.Black; + this.btHome.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btHome.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btHome.ProgressEnable = false; + this.btHome.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btHome.ProgressForeColor = System.Drawing.Color.Black; + this.btHome.ProgressMax = 100F; + this.btHome.ProgressMin = 0F; + this.btHome.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btHome.ProgressValue = 0F; + this.tableLayoutPanel1.SetRowSpan(this.btHome, 2); + this.btHome.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btHome.Sign = ""; + this.btHome.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btHome.SignColor = System.Drawing.Color.Yellow; + this.btHome.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btHome.Size = new System.Drawing.Size(116, 360); + this.btHome.TabIndex = 141; + this.btHome.Text = "홈"; + this.btHome.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btHome.TextShadow = true; + this.btHome.TextVisible = true; + this.btHome.Click += new System.EventHandler(this.brHome_Click); + // + // btChargeM + // + this.btChargeM.BackColor = System.Drawing.Color.LightSalmon; + this.btChargeM.BackColor2 = System.Drawing.Color.Tomato; + this.btChargeM.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btChargeM.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btChargeM.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btChargeM.BorderSize = new System.Windows.Forms.Padding(0, 0, 1, 1); + this.btChargeM.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btChargeM.Cursor = System.Windows.Forms.Cursors.Hand; + this.btChargeM.Dock = System.Windows.Forms.DockStyle.Fill; + this.btChargeM.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.btChargeM.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btChargeM.GradientEnable = true; + this.btChargeM.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btChargeM.GradientRepeatBG = false; + this.btChargeM.isButton = true; + this.btChargeM.Location = new System.Drawing.Point(116, 180); + this.btChargeM.Margin = new System.Windows.Forms.Padding(0); + this.btChargeM.MouseDownColor = System.Drawing.Color.Yellow; + this.btChargeM.MouseOverColor = System.Drawing.Color.Lime; + this.btChargeM.msg = null; + this.btChargeM.Name = "btChargeM"; + this.btChargeM.ProgressBorderColor = System.Drawing.Color.Black; + this.btChargeM.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btChargeM.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btChargeM.ProgressEnable = false; + this.btChargeM.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btChargeM.ProgressForeColor = System.Drawing.Color.Black; + this.btChargeM.ProgressMax = 100F; + this.btChargeM.ProgressMin = 0F; + this.btChargeM.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btChargeM.ProgressValue = 0F; + this.btChargeM.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btChargeM.Sign = ""; + this.btChargeM.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btChargeM.SignColor = System.Drawing.Color.Yellow; + this.btChargeM.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btChargeM.Size = new System.Drawing.Size(143, 180); + this.btChargeM.TabIndex = 141; + this.btChargeM.Text = "수동충전"; + this.btChargeM.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btChargeM.TextShadow = true; + this.btChargeM.TextVisible = true; + this.btChargeM.Click += new System.EventHandler(this.btChargeM_Click); + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(5, 131); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(259, 5); + this.panel2.TabIndex = 139; + // + // panel4 + // + this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel4.Controls.Add(this.lbCntQA); + this.panel4.Controls.Add(this.arLabel4); + this.panel4.Controls.Add(this.lbCntQC); + this.panel4.Controls.Add(this.arLabel9); + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(5, 82); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(259, 49); + this.panel4.TabIndex = 145; + // + // lbCntQA + // + this.lbCntQA.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCntQA.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCntQA.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbCntQA.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbCntQA.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbCntQA.BorderSize = new System.Windows.Forms.Padding(0); + this.lbCntQA.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbCntQA.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbCntQA.Dock = System.Windows.Forms.DockStyle.Left; + this.lbCntQA.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCntQA.ForeColor = System.Drawing.Color.Gray; + this.lbCntQA.GradientEnable = true; + this.lbCntQA.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbCntQA.GradientRepeatBG = false; + this.lbCntQA.isButton = false; + this.lbCntQA.Location = new System.Drawing.Point(180, 0); + this.lbCntQA.Margin = new System.Windows.Forms.Padding(0); + this.lbCntQA.MouseDownColor = System.Drawing.Color.Yellow; + this.lbCntQA.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbCntQA.msg = null; + this.lbCntQA.Name = "lbCntQA"; + this.lbCntQA.ProgressBorderColor = System.Drawing.Color.Black; + this.lbCntQA.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbCntQA.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbCntQA.ProgressEnable = false; + this.lbCntQA.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbCntQA.ProgressForeColor = System.Drawing.Color.Black; + this.lbCntQA.ProgressMax = 100F; + this.lbCntQA.ProgressMin = 0F; + this.lbCntQA.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbCntQA.ProgressValue = 0F; + this.lbCntQA.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbCntQA.Sign = ""; + this.lbCntQA.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbCntQA.SignColor = System.Drawing.Color.Yellow; + this.lbCntQA.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbCntQA.Size = new System.Drawing.Size(78, 49); + this.lbCntQA.TabIndex = 6; + this.lbCntQA.Text = "0000"; + this.lbCntQA.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbCntQA.TextShadow = true; + this.lbCntQA.TextVisible = true; + // + // arLabel4 + // + this.arLabel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel4.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel4.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel4.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel4.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.arLabel4.GradientEnable = true; + this.arLabel4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel4.GradientRepeatBG = false; + this.arLabel4.isButton = false; + this.arLabel4.Location = new System.Drawing.Point(129, 0); + this.arLabel4.Margin = new System.Windows.Forms.Padding(0); + this.arLabel4.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel4.msg = null; + this.arLabel4.Name = "arLabel4"; + this.arLabel4.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel4.ProgressEnable = false; + this.arLabel4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel4.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel4.ProgressMax = 100F; + this.arLabel4.ProgressMin = 0F; + this.arLabel4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel4.ProgressValue = 0F; + this.arLabel4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel4.Sign = ""; + this.arLabel4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel4.SignColor = System.Drawing.Color.Yellow; + this.arLabel4.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.arLabel4.Size = new System.Drawing.Size(51, 49); + this.arLabel4.TabIndex = 5; + this.arLabel4.Text = "CHARGER"; + this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel4.TextShadow = true; + this.arLabel4.TextVisible = true; + // + // lbCntQC + // + this.lbCntQC.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCntQC.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCntQC.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbCntQC.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbCntQC.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbCntQC.BorderSize = new System.Windows.Forms.Padding(0); + this.lbCntQC.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbCntQC.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbCntQC.Dock = System.Windows.Forms.DockStyle.Left; + this.lbCntQC.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCntQC.ForeColor = System.Drawing.Color.Gray; + this.lbCntQC.GradientEnable = true; + this.lbCntQC.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbCntQC.GradientRepeatBG = false; + this.lbCntQC.isButton = false; + this.lbCntQC.Location = new System.Drawing.Point(51, 0); + this.lbCntQC.Margin = new System.Windows.Forms.Padding(0); + this.lbCntQC.MouseDownColor = System.Drawing.Color.Yellow; + this.lbCntQC.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbCntQC.msg = null; + this.lbCntQC.Name = "lbCntQC"; + this.lbCntQC.ProgressBorderColor = System.Drawing.Color.Black; + this.lbCntQC.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbCntQC.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbCntQC.ProgressEnable = false; + this.lbCntQC.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbCntQC.ProgressForeColor = System.Drawing.Color.Black; + this.lbCntQC.ProgressMax = 100F; + this.lbCntQC.ProgressMin = 0F; + this.lbCntQC.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbCntQC.ProgressValue = 0F; + this.lbCntQC.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbCntQC.Sign = ""; + this.lbCntQC.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbCntQC.SignColor = System.Drawing.Color.Yellow; + this.lbCntQC.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbCntQC.Size = new System.Drawing.Size(78, 49); + this.lbCntQC.TabIndex = 4; + this.lbCntQC.Text = "0000"; + this.lbCntQC.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbCntQC.TextShadow = true; + this.lbCntQC.TextVisible = true; + // + // arLabel9 + // + this.arLabel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel9.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel9.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel9.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel9.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel9.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel9.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.arLabel9.GradientEnable = true; + this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel9.GradientRepeatBG = false; + this.arLabel9.isButton = false; + this.arLabel9.Location = new System.Drawing.Point(0, 0); + this.arLabel9.Margin = new System.Windows.Forms.Padding(0); + this.arLabel9.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel9.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel9.msg = null; + this.arLabel9.Name = "arLabel9"; + this.arLabel9.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel9.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel9.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel9.ProgressEnable = false; + this.arLabel9.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel9.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel9.ProgressMax = 100F; + this.arLabel9.ProgressMin = 0F; + this.arLabel9.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel9.ProgressValue = 0F; + this.arLabel9.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel9.Sign = ""; + this.arLabel9.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel9.SignColor = System.Drawing.Color.Yellow; + this.arLabel9.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.arLabel9.Size = new System.Drawing.Size(51, 49); + this.arLabel9.TabIndex = 4; + this.arLabel9.Text = "UNLOADER"; + this.arLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel9.TextShadow = true; + this.arLabel9.TextVisible = true; + // + // panel16 + // + this.panel16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel16.Controls.Add(this.lbCntDN); + this.panel16.Controls.Add(this.arLabel7); + this.panel16.Controls.Add(this.lbCNtUP); + this.panel16.Controls.Add(this.arLabel8); + this.panel16.Dock = System.Windows.Forms.DockStyle.Top; + this.panel16.Location = new System.Drawing.Point(5, 33); + this.panel16.Name = "panel16"; + this.panel16.Size = new System.Drawing.Size(259, 49); + this.panel16.TabIndex = 16; + // + // lbCntDN + // + this.lbCntDN.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCntDN.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCntDN.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbCntDN.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbCntDN.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbCntDN.BorderSize = new System.Windows.Forms.Padding(0); + this.lbCntDN.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbCntDN.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbCntDN.Dock = System.Windows.Forms.DockStyle.Left; + this.lbCntDN.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCntDN.ForeColor = System.Drawing.Color.Gray; + this.lbCntDN.GradientEnable = true; + this.lbCntDN.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbCntDN.GradientRepeatBG = false; + this.lbCntDN.isButton = false; + this.lbCntDN.Location = new System.Drawing.Point(180, 0); + this.lbCntDN.Margin = new System.Windows.Forms.Padding(0); + this.lbCntDN.MouseDownColor = System.Drawing.Color.Yellow; + this.lbCntDN.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbCntDN.msg = null; + this.lbCntDN.Name = "lbCntDN"; + this.lbCntDN.ProgressBorderColor = System.Drawing.Color.Black; + this.lbCntDN.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbCntDN.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbCntDN.ProgressEnable = false; + this.lbCntDN.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbCntDN.ProgressForeColor = System.Drawing.Color.Black; + this.lbCntDN.ProgressMax = 100F; + this.lbCntDN.ProgressMin = 0F; + this.lbCntDN.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbCntDN.ProgressValue = 0F; + this.lbCntDN.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbCntDN.Sign = ""; + this.lbCntDN.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbCntDN.SignColor = System.Drawing.Color.Yellow; + this.lbCntDN.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbCntDN.Size = new System.Drawing.Size(78, 49); + this.lbCntDN.TabIndex = 4; + this.lbCntDN.Text = "0000"; + this.lbCntDN.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbCntDN.TextShadow = true; + this.lbCntDN.TextVisible = true; + this.lbCntDN.Click += new System.EventHandler(this.lbCNtUp_Click); + // + // arLabel7 + // + this.arLabel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel7.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel7.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel7.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel7.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel7.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.arLabel7.GradientEnable = true; + this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel7.GradientRepeatBG = false; + this.arLabel7.isButton = false; + this.arLabel7.Location = new System.Drawing.Point(129, 0); + this.arLabel7.Margin = new System.Windows.Forms.Padding(0); + this.arLabel7.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel7.msg = null; + this.arLabel7.Name = "arLabel7"; + this.arLabel7.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel7.ProgressEnable = false; + this.arLabel7.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel7.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel7.ProgressMax = 100F; + this.arLabel7.ProgressMin = 0F; + this.arLabel7.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel7.ProgressValue = 0F; + this.arLabel7.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel7.Sign = ""; + this.arLabel7.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel7.SignColor = System.Drawing.Color.Yellow; + this.arLabel7.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.arLabel7.Size = new System.Drawing.Size(51, 49); + this.arLabel7.TabIndex = 4; + this.arLabel7.Text = "CLEANNER"; + this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel7.TextShadow = true; + this.arLabel7.TextVisible = true; + // + // lbCNtUP + // + this.lbCNtUP.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCNtUP.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbCNtUP.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbCNtUP.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbCNtUP.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbCNtUP.BorderSize = new System.Windows.Forms.Padding(0); + this.lbCNtUP.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbCNtUP.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbCNtUP.Dock = System.Windows.Forms.DockStyle.Left; + this.lbCNtUP.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCNtUP.ForeColor = System.Drawing.Color.Gray; + this.lbCNtUP.GradientEnable = true; + this.lbCNtUP.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbCNtUP.GradientRepeatBG = false; + this.lbCNtUP.isButton = false; + this.lbCNtUP.Location = new System.Drawing.Point(51, 0); + this.lbCNtUP.Margin = new System.Windows.Forms.Padding(0); + this.lbCNtUP.MouseDownColor = System.Drawing.Color.Yellow; + this.lbCNtUP.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbCNtUP.msg = null; + this.lbCNtUP.Name = "lbCNtUP"; + this.lbCNtUP.ProgressBorderColor = System.Drawing.Color.Black; + this.lbCNtUP.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbCNtUP.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbCNtUP.ProgressEnable = false; + this.lbCNtUP.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbCNtUP.ProgressForeColor = System.Drawing.Color.Black; + this.lbCNtUP.ProgressMax = 100F; + this.lbCNtUP.ProgressMin = 0F; + this.lbCNtUP.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbCNtUP.ProgressValue = 0F; + this.lbCNtUP.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbCNtUP.Sign = ""; + this.lbCNtUP.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbCNtUP.SignColor = System.Drawing.Color.Yellow; + this.lbCNtUP.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbCNtUP.Size = new System.Drawing.Size(78, 49); + this.lbCNtUP.TabIndex = 4; + this.lbCNtUP.Text = "0000"; + this.lbCNtUP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbCNtUP.TextShadow = true; + this.lbCNtUP.TextVisible = true; + this.lbCNtUP.Click += new System.EventHandler(this.lbCNtUp_Click); + // + // arLabel8 + // + this.arLabel8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel8.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel8.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel8.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel8.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel8.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel8.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel8.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel8.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel8.Font = new System.Drawing.Font("Bahnschrift Condensed", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.arLabel8.GradientEnable = true; + this.arLabel8.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel8.GradientRepeatBG = false; + this.arLabel8.isButton = false; + this.arLabel8.Location = new System.Drawing.Point(0, 0); + this.arLabel8.Margin = new System.Windows.Forms.Padding(0); + this.arLabel8.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel8.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel8.msg = null; + this.arLabel8.Name = "arLabel8"; + this.arLabel8.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel8.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel8.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel8.ProgressEnable = false; + this.arLabel8.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel8.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel8.ProgressMax = 100F; + this.arLabel8.ProgressMin = 0F; + this.arLabel8.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel8.ProgressValue = 0F; + this.arLabel8.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel8.Sign = ""; + this.arLabel8.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel8.SignColor = System.Drawing.Color.Yellow; + this.arLabel8.SignFont = new System.Drawing.Font("Consolas", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.arLabel8.Size = new System.Drawing.Size(51, 49); + this.arLabel8.TabIndex = 4; + this.arLabel8.Text = "LOADER"; + this.arLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel8.TextShadow = true; + this.arLabel8.TextVisible = true; + // + // panel5 + // + this.panel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.panel5.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel5.Location = new System.Drawing.Point(5, 676); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(259, 5); + this.panel5.TabIndex = 142; + // + // panel3 + // + this.panel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(5, 28); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(259, 5); + this.panel3.TabIndex = 144; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel1.Controls.Add(this.lbIDLE); + this.panel1.Controls.Add(this.lbStStep); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(5, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(259, 28); + this.panel1.TabIndex = 143; + // + // lbIDLE + // + this.lbIDLE.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbIDLE.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbIDLE.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbIDLE.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbIDLE.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbIDLE.BorderSize = new System.Windows.Forms.Padding(0); + this.lbIDLE.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbIDLE.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbIDLE.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbIDLE.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbIDLE.ForeColor = System.Drawing.Color.Gold; + this.lbIDLE.GradientEnable = true; + this.lbIDLE.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbIDLE.GradientRepeatBG = false; + this.lbIDLE.isButton = false; + this.lbIDLE.Location = new System.Drawing.Point(70, 0); + this.lbIDLE.Margin = new System.Windows.Forms.Padding(0); + this.lbIDLE.MouseDownColor = System.Drawing.Color.Yellow; + this.lbIDLE.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbIDLE.msg = null; + this.lbIDLE.Name = "lbIDLE"; + this.lbIDLE.ProgressBorderColor = System.Drawing.Color.Black; + this.lbIDLE.ProgressColor1 = System.Drawing.Color.DarkCyan; + this.lbIDLE.ProgressColor2 = System.Drawing.Color.DarkTurquoise; + this.lbIDLE.ProgressEnable = true; + this.lbIDLE.ProgressFont = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbIDLE.ProgressForeColor = System.Drawing.Color.DimGray; + this.lbIDLE.ProgressMax = 100F; + this.lbIDLE.ProgressMin = 0F; + this.lbIDLE.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbIDLE.ProgressValue = 50F; + this.lbIDLE.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbIDLE.Sign = ""; + this.lbIDLE.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbIDLE.SignColor = System.Drawing.Color.Yellow; + this.lbIDLE.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbIDLE.Size = new System.Drawing.Size(189, 28); + this.lbIDLE.TabIndex = 4; + this.lbIDLE.Text = "75%"; + this.lbIDLE.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbIDLE.TextShadow = true; + this.lbIDLE.TextVisible = true; + // + // lbStStep + // + this.lbStStep.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbStStep.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbStStep.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbStStep.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbStStep.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbStStep.BorderSize = new System.Windows.Forms.Padding(0); + this.lbStStep.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbStStep.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbStStep.Dock = System.Windows.Forms.DockStyle.Left; + this.lbStStep.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbStStep.ForeColor = System.Drawing.Color.White; + this.lbStStep.GradientEnable = true; + this.lbStStep.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbStStep.GradientRepeatBG = false; + this.lbStStep.isButton = false; + this.lbStStep.Location = new System.Drawing.Point(0, 0); + this.lbStStep.Margin = new System.Windows.Forms.Padding(0); + this.lbStStep.MouseDownColor = System.Drawing.Color.Yellow; + this.lbStStep.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbStStep.msg = null; + this.lbStStep.Name = "lbStStep"; + this.lbStStep.ProgressBorderColor = System.Drawing.Color.Black; + this.lbStStep.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbStStep.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbStStep.ProgressEnable = false; + this.lbStStep.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbStStep.ProgressForeColor = System.Drawing.Color.Black; + this.lbStStep.ProgressMax = 100F; + this.lbStStep.ProgressMin = 0F; + this.lbStStep.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbStStep.ProgressValue = 0F; + this.lbStStep.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbStStep.Sign = ""; + this.lbStStep.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbStStep.SignColor = System.Drawing.Color.Yellow; + this.lbStStep.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbStStep.Size = new System.Drawing.Size(70, 28); + this.lbStStep.TabIndex = 4; + this.lbStStep.Text = "--"; + this.lbStStep.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbStStep.TextShadow = true; + this.lbStStep.TextVisible = true; + // + // panTopMenu + // + this.panTopMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panTopMenu.Controls.Add(this.lbBat); + this.panTopMenu.Controls.Add(this.MenuLog); + this.panTopMenu.Controls.Add(this.MenuFlag); + this.panTopMenu.Controls.Add(this.MenuBMS); + this.panTopMenu.Controls.Add(this.MenuAGV); + this.panTopMenu.Controls.Add(this.btDebug); + this.panTopMenu.Controls.Add(this.btOpenDir); + this.panTopMenu.Controls.Add(this.btMReset); + this.panTopMenu.Controls.Add(this.btCapture); + this.panTopMenu.Controls.Add(this.btShowManual); + this.panTopMenu.Controls.Add(this.MenuLift); + this.panTopMenu.Controls.Add(this.MenuMAN); + this.panTopMenu.Controls.Add(this.MenuAuto); + this.panTopMenu.Controls.Add(this.pictureBox1); + this.panTopMenu.Controls.Add(this.btTopMenu_Volume); + this.panTopMenu.Controls.Add(this.arLabel5); + this.panTopMenu.Controls.Add(this.btClose); + this.panTopMenu.Dock = System.Windows.Forms.DockStyle.Top; + this.panTopMenu.Location = new System.Drawing.Point(1, 1); + this.panTopMenu.Name = "panTopMenu"; + this.panTopMenu.Size = new System.Drawing.Size(1278, 50); + this.panTopMenu.TabIndex = 134; + // + // lbBat + // + this.lbBat.BorderColor = System.Drawing.Color.DimGray; + this.lbBat.CurA = 0F; + this.lbBat.Dock = System.Windows.Forms.DockStyle.Right; + this.lbBat.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbBat.ForeColor = System.Drawing.Color.Gray; + this.lbBat.IsOpen = true; + this.lbBat.Location = new System.Drawing.Point(830, 0); + this.lbBat.MaxA = 0F; + this.lbBat.Name = "lbBat"; + this.lbBat.Padding = new System.Windows.Forms.Padding(0, 12, 0, 12); + this.lbBat.sign = "%"; + this.lbBat.Size = new System.Drawing.Size(48, 50); + this.lbBat.TabIndex = 23; + this.lbBat.Text = "12"; + this.lbBat.VLevel = 50F; + this.lbBat.Volt = 0F; + this.lbBat.Click += new System.EventHandler(this.lbBat_Click); + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(0, 0); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(49, 50); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); + // + // cmDebug + // + this.cmDebug.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mapFileToolStripMenuItem, + this.systemParameterToolStripMenuItem, + this.toolStripMenuItem4, + this.demoRunToolStripMenuItem, + this.setZValidToolStripMenuItem, + this.toolStripMenuItem1, + this.gridviewTestToolStripMenuItem, + this.으ㅆㄷㄴㅅToolStripMenuItem, + this.messageToolStripMenuItem, + this.reloadLotListToolStripMenuItem, + this.moveSourceListToDestListToolStripMenuItem, + this.needShowUploadTrueToolStripMenuItem, + this.선택상태보기ToolStripMenuItem, + this.demoListLotToolStripMenuItem, + this.toolStripMenuItem5, + this.refreshListToolStripMenuItem, + this.xbeeSettingToolStripMenuItem}); + this.cmDebug.Name = "cmVision"; + this.cmDebug.Size = new System.Drawing.Size(229, 368); + // + // mapFileToolStripMenuItem + // + this.mapFileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.saveToolStripMenuItem, + this.loadToolStripMenuItem, + this.editorToolStripMenuItem}); + this.mapFileToolStripMenuItem.Name = "mapFileToolStripMenuItem"; + this.mapFileToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.mapFileToolStripMenuItem.Text = "Map File"; + // + // saveToolStripMenuItem + // + this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; + this.saveToolStripMenuItem.Size = new System.Drawing.Size(105, 22); + this.saveToolStripMenuItem.Text = "Save"; + this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); + // + // loadToolStripMenuItem + // + this.loadToolStripMenuItem.Name = "loadToolStripMenuItem"; + this.loadToolStripMenuItem.Size = new System.Drawing.Size(105, 22); + this.loadToolStripMenuItem.Text = "Load"; + this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click); + // + // editorToolStripMenuItem + // + this.editorToolStripMenuItem.Name = "editorToolStripMenuItem"; + this.editorToolStripMenuItem.Size = new System.Drawing.Size(105, 22); + this.editorToolStripMenuItem.Text = "Editor"; + this.editorToolStripMenuItem.Click += new System.EventHandler(this.editorToolStripMenuItem_Click); + // + // demoListLotToolStripMenuItem + // + this.demoListLotToolStripMenuItem.Name = "demoListLotToolStripMenuItem"; + this.demoListLotToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.demoListLotToolStripMenuItem.Text = "demo List (Lot)"; + // + // toolStripMenuItem5 + // + this.toolStripMenuItem5.Name = "toolStripMenuItem5"; + this.toolStripMenuItem5.Size = new System.Drawing.Size(228, 22); + this.toolStripMenuItem5.Text = "--"; + // + // refreshListToolStripMenuItem + // + this.refreshListToolStripMenuItem.Name = "refreshListToolStripMenuItem"; + this.refreshListToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.refreshListToolStripMenuItem.Text = "Refresh List"; + // + // debugtestToolStripMenuItem + // + this.debugtestToolStripMenuItem.Name = "debugtestToolStripMenuItem"; + this.debugtestToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.debugtestToolStripMenuItem.Text = "debugtest"; + // + // pandBottomDIO + // + this.pandBottomDIO.Controls.Add(this.panel9); + this.pandBottomDIO.Dock = System.Windows.Forms.DockStyle.Bottom; + this.pandBottomDIO.Location = new System.Drawing.Point(1, 764); + this.pandBottomDIO.Margin = new System.Windows.Forms.Padding(0); + this.pandBottomDIO.Name = "pandBottomDIO"; + this.pandBottomDIO.Size = new System.Drawing.Size(1278, 35); + this.pandBottomDIO.TabIndex = 136; + // + // panel9 + // + this.panel9.Controls.Add(this.IOState); + this.panel9.Controls.Add(this.SSInfo); + this.panel9.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel9.Location = new System.Drawing.Point(0, 0); + this.panel9.Margin = new System.Windows.Forms.Padding(0); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(1278, 35); + this.panel9.TabIndex = 0; + // + // IOState + // + this.IOState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.IOState.BorderSize = 0; + colorListItem1.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem1.Remark = ""; + colorListItem2.BackColor1 = System.Drawing.Color.ForestGreen; + colorListItem2.BackColor2 = System.Drawing.Color.ForestGreen; + colorListItem2.Remark = ""; + colorListItem3.BackColor1 = System.Drawing.Color.Firebrick; + colorListItem3.BackColor2 = System.Drawing.Color.Firebrick; + colorListItem3.Remark = ""; + colorListItem4.BackColor1 = System.Drawing.Color.Purple; + colorListItem4.BackColor2 = System.Drawing.Color.Purple; + colorListItem4.Remark = ""; + colorListItem5.BackColor1 = System.Drawing.Color.SteelBlue; + colorListItem5.BackColor2 = System.Drawing.Color.SteelBlue; + colorListItem5.Remark = ""; + colorListItem6.BackColor1 = System.Drawing.Color.DarkGoldenrod; + colorListItem6.BackColor2 = System.Drawing.Color.DarkGoldenrod; + colorListItem6.Remark = ""; + colorListItem7.BackColor1 = System.Drawing.Color.Teal; + colorListItem7.BackColor2 = System.Drawing.Color.Teal; + colorListItem7.Remark = ""; + this.IOState.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem1, + colorListItem2, + colorListItem3, + colorListItem4, + colorListItem5, + colorListItem6, + colorListItem7}; + this.IOState.Dock = System.Windows.Forms.DockStyle.Fill; + this.IOState.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.IOState.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.IOState.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.IOState.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.IOState.Location = new System.Drawing.Point(0, 0); + this.IOState.MatrixSize = new System.Drawing.Point(11, 1); + this.IOState.MenuBorderSize = 1; + this.IOState.MenuGap = 5; + this.IOState.MinimumSize = new System.Drawing.Size(100, 0); + this.IOState.Name = "IOState"; + this.IOState.Names = new string[] { + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""}; + this.IOState.ShadowColor = System.Drawing.Color.Transparent; + this.IOState.showDebugInfo = false; + this.IOState.ShowIndexString = false; + this.IOState.Size = new System.Drawing.Size(1151, 35); + this.IOState.TabIndex = 6; + this.IOState.Tags = null; + this.IOState.Text = "gridView2"; + this.IOState.TextAttachToImage = true; + this.IOState.Titles = new string[] { + "EMG|TAG|DIR|STS|SPD|SEN|CAL|RUN|MARK|CHG|ITM"}; + this.IOState.Values = new ushort[] { + ((ushort)(0)), + ((ushort)(1)), + ((ushort)(2)), + ((ushort)(3)), + ((ushort)(4)), + ((ushort)(5)), + ((ushort)(6)), + ((ushort)(7)), + ((ushort)(8)), + ((ushort)(8)), + ((ushort)(8))}; + this.IOState.ItemClick += new System.EventHandler(this.IOState_ItemClick_1); + // + // SSInfo + // + this.SSInfo.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.SSInfo.BorderSize = 0; + colorListItem8.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem8.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem8.Remark = ""; + colorListItem9.BackColor1 = System.Drawing.Color.Lime; + colorListItem9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + colorListItem9.Remark = ""; + colorListItem10.BackColor1 = System.Drawing.Color.Red; + colorListItem10.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + colorListItem10.Remark = ""; + colorListItem11.BackColor1 = System.Drawing.Color.DarkViolet; + colorListItem11.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + colorListItem11.Remark = ""; + this.SSInfo.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem8, + colorListItem9, + colorListItem10, + colorListItem11}; + this.SSInfo.Dock = System.Windows.Forms.DockStyle.Right; + this.SSInfo.Font = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Bold); + this.SSInfo.FontPin = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Bold); + this.SSInfo.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.SSInfo.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.SSInfo.Location = new System.Drawing.Point(1151, 0); + this.SSInfo.MatrixSize = new System.Drawing.Point(2, 2); + this.SSInfo.MenuBorderSize = 1; + this.SSInfo.MenuGap = 5; + this.SSInfo.MinimumSize = new System.Drawing.Size(100, 0); + this.SSInfo.Name = "SSInfo"; + this.SSInfo.Names = new string[] { + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""}; + this.SSInfo.ShadowColor = System.Drawing.Color.Transparent; + this.SSInfo.showDebugInfo = false; + this.SSInfo.ShowIndexString = false; + this.SSInfo.Size = new System.Drawing.Size(127, 35); + this.SSInfo.TabIndex = 10; + this.SSInfo.Tags = null; + this.SSInfo.Text = "gridView3"; + this.SSInfo.TextAttachToImage = true; + this.SSInfo.Titles = new string[] { + "STEPINFO|FREESPACE", + "INFO1|INFO2"}; + this.SSInfo.Values = new ushort[] { + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0))}; + this.SSInfo.Click += new System.EventHandler(this.SSInfo_Click); + // + // panDlg + // + this.panDlg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.panDlg.Dock = System.Windows.Forms.DockStyle.Fill; + this.panDlg.Location = new System.Drawing.Point(1, 58); + this.panDlg.Margin = new System.Windows.Forms.Padding(0); + this.panDlg.Name = "panDlg"; + this.panDlg.Size = new System.Drawing.Size(1014, 706); + this.panDlg.TabIndex = 146; + // + // arPanel2 + // + this.arPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5))))); + this.arPanel2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arPanel2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); + this.arPanel2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5); + this.arPanel2.Dock = System.Windows.Forms.DockStyle.Top; + this.arPanel2.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel2.ForeColor = System.Drawing.Color.Khaki; + this.arPanel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel2.GradientRepeatBG = false; + this.arPanel2.Location = new System.Drawing.Point(1, 55); + this.arPanel2.Name = "arPanel2"; + this.arPanel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel2.ProgressMax = 100F; + this.arPanel2.ProgressMin = 0F; + this.arPanel2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel2.ProgressValue = 0F; + this.arPanel2.ShadowColor = System.Drawing.Color.Black; + this.arPanel2.ShowBorder = true; + this.arPanel2.Size = new System.Drawing.Size(1278, 3); + this.arPanel2.TabIndex = 145; + this.arPanel2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel2.TextShadow = false; + this.arPanel2.UseProgressBar = false; + // + // arPanel1 + // + this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5))))); + this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arPanel1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25))))); + this.arPanel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5); + this.arPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel1.ForeColor = System.Drawing.Color.Khaki; + this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel1.GradientRepeatBG = false; + this.arPanel1.Location = new System.Drawing.Point(1, 51); + this.arPanel1.Name = "arPanel1"; + this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel1.ProgressMax = 100F; + this.arPanel1.ProgressMin = 0F; + this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel1.ProgressValue = 0F; + this.arPanel1.ShadowColor = System.Drawing.Color.Black; + this.arPanel1.ShowBorder = true; + this.arPanel1.Size = new System.Drawing.Size(1278, 4); + this.arPanel1.TabIndex = 135; + this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel1.TextShadow = false; + this.arPanel1.UseProgressBar = false; + // + // xbeeSettingToolStripMenuItem + // + this.xbeeSettingToolStripMenuItem.Name = "xbeeSettingToolStripMenuItem"; + this.xbeeSettingToolStripMenuItem.Size = new System.Drawing.Size(228, 22); + this.xbeeSettingToolStripMenuItem.Text = "xbee setting"; + this.xbeeSettingToolStripMenuItem.Click += new System.EventHandler(this.xbeeSettingToolStripMenuItem_Click); + // + // fMain + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1280, 800); + this.Controls.Add(this.panDlg); + this.Controls.Add(this.panRight); + this.Controls.Add(this.arPanel2); + this.Controls.Add(this.pandBottomDIO); + this.Controls.Add(this.arPanel1); + this.Controls.Add(this.panTopMenu); + this.DoubleBuffered = true; + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "fMain"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.@__Load); + this.panRight.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel16.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panTopMenu.ResumeLayout(false); + this.panTopMenu.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.cmDebug.ResumeLayout(false); + this.pandBottomDIO.ResumeLayout(false); + this.panel9.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ToolStripMenuItem systemParameterToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; + private System.Windows.Forms.ToolStripMenuItem demoRunToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem setZValidToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem gridviewTestToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 으ㅆㄷㄴㅅToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem messageToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem errorToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem informationToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem attentionToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem reloadLotListToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem moveSourceListToDestListToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem needShowUploadTrueToolStripMenuItem; + private System.Windows.Forms.DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn stripIdDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn oKDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn nGDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn mISSDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn fileMapDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn dataPathDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn mapOriginDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn mapArrayDataGridViewTextBoxColumn; + private System.Windows.Forms.Panel panRight; + private System.Windows.Forms.ToolStripMenuItem 선택상태보기ToolStripMenuItem; + private System.Windows.Forms.Panel panTopMenu; + private arCtl.arLabel btDebug; + private arCtl.arLabel btOpenDir; + private arCtl.arLabel btMReset; + private arCtl.arLabel btCapture; + private arCtl.arLabel btShowManual; + private arCtl.arLabel arLabel5; + private arCtl.arLabel btClose; + private System.Windows.Forms.Button MenuLift; + private System.Windows.Forms.Button MenuMAN; + private System.Windows.Forms.PictureBox pictureBox1; + private arCtl.arPanel arPanel1; + private System.Windows.Forms.ContextMenuStrip cmDebug; + private System.Windows.Forms.ToolStripMenuItem debugtestToolStripMenuItem; + private System.Windows.Forms.Panel pandBottomDIO; + private System.Windows.Forms.Panel panel9; + private arFrame.Control.GridView IOState; + private System.Windows.Forms.Panel panel16; + private arCtl.arLabel lbCntDN; + private arCtl.arLabel arLabel7; + private arCtl.arLabel lbCNtUP; + private arCtl.arLabel arLabel8; + private arCtl.arLabel lbTime; + private arFrame.Control.GridView SSInfo; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5; + private System.Windows.Forms.ToolStripMenuItem demoListLotToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem refreshListToolStripMenuItem; + private arCtl.arLabel btChargeA; + private System.Windows.Forms.Panel panel5; + private arCtl.arPanel arPanel2; + private System.Windows.Forms.Button MenuFlag; + private System.Windows.Forms.Button MenuAuto; + private System.Windows.Forms.Panel panDlg; + private System.Windows.Forms.Button MenuLog; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private arCtl.arLabel btHome; + private arCtl.arLabel btTopMenu_Volume; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel1; + private arCtl.arLabel lbIDLE; + private arCtl.arLabel lbStStep; + private arCtl.arLabel btAutoRun; + private System.Windows.Forms.Button MenuBMS; + private System.Windows.Forms.Button MenuAGV; + private AGVControl.BatteryLevelGauge lbBat; + private arCtl.arLabel btChargeM; + private System.Windows.Forms.Panel panel4; + private arCtl.arLabel lbCntQA; + private arCtl.arLabel arLabel4; + private arCtl.arLabel lbCntQC; + private arCtl.arLabel arLabel9; + private ToolStripMenuItem mapFileToolStripMenuItem; + private ToolStripMenuItem saveToolStripMenuItem; + private ToolStripMenuItem loadToolStripMenuItem; + private ToolStripMenuItem editorToolStripMenuItem; + private ToolStripMenuItem xbeeSettingToolStripMenuItem; + } +} + diff --git a/Cs_HMI/Project/fMain.cs b/HMI/Project/fMain.cs similarity index 97% rename from Cs_HMI/Project/fMain.cs rename to HMI/Project/fMain.cs index eec827e..abe35b1 100644 --- a/Cs_HMI/Project/fMain.cs +++ b/HMI/Project/fMain.cs @@ -1,1050 +1,1050 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using COMM; -using System.CodeDom; -using AR; -using Project.StateMachine; -using System.Security.Cryptography.X509Certificates; -using AGVNavigationCore.Models; -using System.IO; - -namespace Project -{ - public partial class fMain : Form - { - double freeSpaceRate = 0.0; - - //뷰어용화면 - ViewForm.fAuto form_auto = null; - ViewForm.fManual form_manu = null; - ViewForm.fIO form_zlift = null; - ViewForm.fFlag form_flag = null; - ViewForm.fAgv form_agv = null; - ViewForm.fBms form_bms = null; - Dialog.fLog form_log = null; - - bool remoteClose = false; - bool forceClose = false; - - public fMain() - { - InitializeComponent(); - VAR.Init(128); - PUB.initCore(); - UTIL.MessgeBoxLegacyMode = false; - this.KeyDown += (s1, e1) => - { - if (e1.KeyCode == Keys.Escape) this.Close(); - else if (e1.KeyCode == Keys.F1 && e1.Control && e1.Shift) - { - - } - else if (e1.KeyCode == Keys.F5) btAutoRun.PerformClick(); - else if (e1.KeyCode == Keys.F9) btAutoRun.PerformClick(); - else if (e1.KeyCode == Keys.F11 && System.Diagnostics.Debugger.IsAttached) - { - // F11: 모든 스레드 상태 덤프 - DumpAllThreadsState(); - } - - if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; - }; - - PUB._mapCanvas = new AGVNavigationCore.Controls.UnifiedAGVCanvas(); - PUB._mapCanvas.Dock = DockStyle.Fill; - PUB._mapCanvas.ShowGrid = false; - PUB._mapCanvas.BackColor = Color.FromArgb(32, 32, 32); - PUB._mapCanvas.ForeColor = Color.White; - PUB._mapCanvas.Mode = AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run; - - this.panTopMenu.MouseMove += LbTitle_MouseMove; - this.panTopMenu.MouseUp += LbTitle_MouseUp; - this.panTopMenu.MouseDown += LbTitle_MouseDown; - this.panTopMenu.DoubleClick += LbTitle_DoubleClick; - - this.MouseMove += (s1, e1) => { if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; }; - this.FormClosing += __Closing; - - if (PUB.setting.FullScreen) this.WindowState = FormWindowState.Maximized; - - } - - - private void __Closing(object sender, FormClosingEventArgs e) - { - // 장치 관리 태스크는 _STEP_CLOSING_START에서 종료됨 - - PUB.popup.needClose = true; - if (remoteClose == true) - { - PUB.log.Add("패치로 인해 프로그램을 종료 합니다"); - PUB.sm.SetNewStep(eSMStep.IDLE); - //_Close_Start(); - _STEP_CLOSING_START(PUB.sm.Step); - PUB.sm.Stop(); - - var patchfile = new System.IO.FileInfo(System.IO.Path.Combine(UTIL.CurrentPath, "SWPatch.exe")); - if (patchfile.Exists == false) - { - UTIL.MsgE("패치파일(" + patchfile.Name + ")이 없습니다.\n프로그램을 다시 실행해주세요", true); - } - else - { - UTIL.RunProcess(patchfile.FullName); - } - } - else if (forceClose == true) - { - PUB.log.Add("강제 종료"); - PUB.sm.SetNewStep(eSMStep.IDLE); - //_Close_Start(); - _STEP_CLOSING_START(PUB.sm.Step); - PUB.sm.Stop(); - - - } - else - { - if (PUB.sm.Step == eSMStep.RUN) - { - UTIL.MsgE("동작 중에는 종료 할 수 없습니다."); - e.Cancel = true; - return; - } - if (PUB.sm.Step < eSMStep.CLOSING) - { - var rlt = UTIL.MsgQ("종료하시겠습니까"); - if (rlt == System.Windows.Forms.DialogResult.Yes) - { - //비젼의 측정상태가 변경된 경우 - PUB.sm.SetNewStep(eSMStep.CLOSING, true); - - } - e.Cancel = true; - return; - //_Close_Start(); - } - } - - } - - private Dictionary FlagMap = new Dictionary(); - private void __Load(object sender, EventArgs e) - { - this.Text = Application.ProductName + " ver " + Application.ProductVersion; - PUB.init(); - if (PUB.setting.FullScreen) - { - this.FormBorderStyle = FormBorderStyle.None; - this.WindowState = FormWindowState.Maximized; - } - this.Show(); - Application.DoEvents(); - - VAR.STR[eVarString.SWVersion] = Application.ProductVersion; - - - AutoLoadMapData(); - - //SETTING H/W - this.IOState.ItemClick += gridView2_ItemClick; - VAR.BOOL.PropertyChanged += BOOL_PropertyChanged; - - //지그비통신 - PUB.XBE = new Device.Xbee(); - PUB.XBE.MessageReceived += XBE_MessageReceived; - PUB.XBE.ProtocReceived += XBE_ProtocReceived; - - //AGV - PUB.AGV = new arDev.Narumi(); - PUB.AGV.Message += AGV_Message; - PUB.AGV.DataReceive += AGV_DataReceive; - - //배터리관리시스템 - PUB.BMS = new arDev.BMS(); - PUB.BMS.BMSDataReceive += Bms_BMSDataReceive; - PUB.BMS.BMSCellDataReceive += BMS_BMSCellDataReceive; - PUB.BMS.Message += Bms_Message; - PUB.BMS.ChargeDetect += BMS_ChargeDetect; - PUB.BMS.ScanInterval = PUB.setting.interval_bms;// - - //디버그메세지 출력용 소켓 - PUB.sock_debug = new Device.Socket(); - PUB.sock_debug.GetMessage += socket_GetMessage; - PUB.sock_debug.RecvMessage += socket_RecvMessage; - PUB.sock_debug.SendMessage += socket_SendMessage; - - //clear - Resultclear(); - - //충전이 시작되지 않도록 기본값을 넣는다 - VAR.TIME[eVarTime.ChargeTry] = DateTime.Now; - VAR.TIME[eVarTime.ChargeSearch] = DateTime.Now; - - PUB.sm.SetMsgOptOff(); //모든 메세지출력을 해제한다. (이벤트는 동작함) - - PUB.log.Add("State Machine Start"); - - try - { - PUB.sm = new StateMachine.StateMachine(); - PUB.log.Add("StateMachine", $"객체 생성 완료 - Type: {PUB.sm.GetType().FullName}"); - - // StateMachine 객체의 속성 확인 - var smType = PUB.sm.GetType(); - var properties = smType.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); - PUB.log.Add("StateMachine", $"Public Properties: {properties.Length}개"); - - var methods = smType.GetMethods(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly); - PUB.log.Add("StateMachine", $"Public Methods: {methods.Length}개"); - } - catch (Exception ex) - { - PUB.log.AddE($"StateMachine 객체 생성 실패: {ex.Message}"); - PUB.log.AddE($"StackTrace: {ex.StackTrace}"); - throw; - } - - PUB.sm.StepChanged += sm_StepChanged; - PUB.sm.Message += sm_Message; - PUB.sm.Running += sm_Running; - PUB.sm.SPS += sm_SPS; - PUB.sm.Start(); - PUB.log.Add("StateMachine", "SM 이벤트 등록 완료"); - - // 스레드 시작 대기 (최대 3초) - for (int i = 0; i < 30; i++) - { - System.Threading.Thread.Sleep(100); - if (PUB.sm.IsThreadRun) - { - PUB.log.Add("StateMachine", $"스레드 시작 확인됨 ({i * 100}ms 소요)"); - break; - } - } - - if (!PUB.sm.IsThreadRun) - { - PUB.log.AddE("경고: 3초 대기 후에도 스레드가 시작되지 않음!"); - System.Windows.Forms.MessageBox.Show( - "상태머신 스레드가 시작되지 않았습니다.\n" + - "로그 파일을 확인하세요.", - "오류", - System.Windows.Forms.MessageBoxButtons.OK, - System.Windows.Forms.MessageBoxIcon.Error); - } - - tmDisplay.Tick += tmDisplay_Tick; - tmDisplay.Start(); //start Display - PUB.log.Add("Display", "Display Timer 시작 완료"); - - this.btDebug.Visible = System.Diagnostics.Debugger.IsAttached || PUB.setting.UseDebugMode; - PUB.log.Add("Program Start"); - - //수량표시 - PUB.counter.PropertyChanged += (s1, e1) => Update_Count(); - Update_Count(); - - PUB.log.Add("프로그램 실행 기록 추가"); - PUB.CheckNRegister3(Application.ProductName, "chi", Application.ProductVersion); - - if (PUB.setting.StartLog) - MenuLog.PerformClick(); - - PUB.AddEEDB("프로그램 시작"); - } - - void AutoLoadMapData() - { - //auto load - var mapPath = new System.IO.DirectoryInfo("route"); - if (mapPath.Exists == false) mapPath.Create(); - - //맵파일로딩 - var basefile = System.IO.Path.Combine(mapPath.FullName, "default.json"); - if (System.IO.File.Exists(basefile) == false) - if (PUB.setting.LastMapFile.isEmpty() == false) basefile = PUB.setting.LastMapFile; - - System.IO.FileInfo filePath = new System.IO.FileInfo(basefile); - if (filePath.Exists == false) //그래도없다면 맵폴더에서 파일을 찾아본다. - { - var files = mapPath.GetFiles("*.json"); - if (files.Any()) filePath = files[0]; - } - - if (filePath.Exists) - { - var result = MapLoader.LoadMapFromFile(filePath.FullName); - - if (result.Success) - { - PUB._mapCanvas.SetMapLoadResult(result); - PUB._mapCanvas.MapFileName = filePath.FullName; - - // 🔥 가상 AGV 초기화 (첫 노드 위치에 생성) - if (PUB._virtualAGV == null && PUB._mapCanvas.Nodes.Count > 0) - { - var startNode = PUB._mapCanvas.Nodes.FirstOrDefault(n => n.IsNavigationNode()); - if (startNode != null) - { - PUB._virtualAGV = new VirtualAGV(PUB.setting.MCID, startNode.Position, AgvDirection.Forward); - PUB._virtualAGV.LowBatteryThreshold = PUB.setting.BatteryLimit_Low; - PUB._virtualAGV.SetPosition(startNode, AgvDirection.Forward); - - // 캔버스에 AGV 리스트 설정 - var agvList = new System.Collections.Generic.List { PUB._virtualAGV }; - PUB._mapCanvas.AGVList = agvList; - - PUB.log.Add($"가상 AGV 생성: {startNode.Id} 위치"); - } - } - else if (PUB._virtualAGV != null) - { - PUB._virtualAGV.LowBatteryThreshold = PUB.setting.BatteryLimit_Low; - // 기존 AGV가 있으면 캔버스에 다시 연결 - var agvList = new System.Collections.Generic.List { PUB._virtualAGV }; - PUB._mapCanvas.AGVList = agvList; - } - PUB.log.Add($"맵 파일 로드 완료: {filePath.Name}, 노드 수: {result.Nodes.Count}"); - } - else - { - PUB.log.Add($"맵 파일 로딩 실패: {result.ErrorMessage}"); - MessageBox.Show($"맵 파일 로딩 실패: {result.ErrorMessage}", "오류", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - else - { - PUB.log.Add($"맵 파일을 찾을 수 없습니다: {filePath.FullName}"); - } - - } - - #region "Mouse Form Move" - - private Boolean fMove = false; - private Point MDownPos; - - private void LbTitle_DoubleClick(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; - else this.WindowState = FormWindowState.Maximized; - } - private void LbTitle_MouseMove(object sender, MouseEventArgs e) - { - if (fMove) - { - Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); - this.Left += offset.X; - this.Top += offset.Y; - //offset = new Point(0, 0); - } - } - private void LbTitle_MouseUp(object sender, MouseEventArgs e) - { - fMove = false; - } - private void LbTitle_MouseDown(object sender, MouseEventArgs e) - { - MDownPos = new Point(e.X, e.Y); - fMove = true; - } - - #endregion - void socket_SendMessage(object sender, Device.Socket.SocketMessageEventArgs e) - { - //핑로그가 꺼져있는 상황일때 핑로그는 로그를 기록하지 않는다. 181205 - if (!PUB.setting.Log_Ping && e.Message.Type == Device.Socket.eType.REPLY && e.Message.SType == Device.Socket.eSType.STATUS) - { - return; - } - PUB.log.Add("WS << " + e.rawData); - } - - void socket_RecvMessage(object sender, Device.Socket.SocketMessageEventArgs e) - { - if (e.Message.isError) - PUB.log.AddE("WS >> " + e.Message.ErrorMessage + ",RAW=" + e.rawData); - else - { - - switch (e.Message.Type) - { - case Device.Socket.eType.REQUEST: - if (e.Message.SType == Device.Socket.eSType.STATUS) - { - var packet = PUB.sock_debug.makeReplyStatus(Device.Socket.eStatus.IDLE); - var rlt = PUB.sock_debug.Send(PUB.setting.Asset, Device.Socket.eType.REPLY, Device.Socket.eSType.STATUS, packet); - if (!rlt) - { - PUB.log.AddE("Status Reply Error"); - } - else - { - if (PUB.setting.Log_Ping) PUB.log.AddI("Server Status Reply OK"); - } - } - else - { - PUB.log.Add("WS >> " + e.rawData); - } - break; - } - } - } - - void socket_GetMessage(object sender, Device.Socket.MesasgeEventArgs e) - { - if (e.isError) PUB.log.AddE("WS:" + e.Message); - else PUB.log.Add("WS:" + e.Message); - } - delegate void SelectModelHandler(string modelName); - void SelectModelM(string modelName) - { - if (this.InvokeRequired) - { - this.Invoke(new SelectModelHandler(SelectModelM), new object[] { modelName }); - return; - } - } - - void func_sw_start(bool Prompt = false) - { - if (PUB.sm.Step == eSMStep.SYNC) - { - UTIL.MsgE("초기화 중에는 사용할 수 없습니다\n초기화가 완료 된 후 시도하세요"); - return; - } - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) //자동상태가 아니라면 - { - ResetSystemError(); - if (Prompt) - { - if (UTIL.MsgQ("AGV상태를 자동으로 전환 할까요?") != DialogResult.Yes) return; - } - - //충전상태확인 - if (PUB.CheckManualChargeMode() == false) return; - PUB.popup.needClose = true; - PUB.sm.SetNewStep(eSMStep.RUN); - PUB.Speak(Lang.자동전환, addlog: false); - - PUB.log.Add($"자동전환 이전스텝:{PUB.sm.RunStep},IDX:{PUB.sm.RunStepSeq}]"); - PUB._mapCanvas.SetAlertMessage("START"); - } - else - { - PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); //230425 수동전환하면 충전 해제한다 - PUB.sm.SetNewStep(eSMStep.IDLE); - PUB.Speak(Lang.작업종료); - } - } - - void Resultclear() - { - PUB.Result.Clear(); - PUB.log.AddI("Clear Resultclear"); - } - - public void ResetSystemError() - { - PUB.AGV.AGVErrorReset(); - Resultclear(); - PUB.log.AddI("System Error Reset"); - } - - - void CheckFreeSpace() - { - try - { - - if (PUB.path.FullName.StartsWith("\\")) - { - SSInfo.setTitle(0, 1, "UNC Path Detected"); - SSInfo.setValue(0, 1, 2); - } - else - { - double freeSpaceRate_ = PUB.GetFreeSpace(); - this.freeSpaceRate = freeSpaceRate_; - SSInfo.setTitle(0, 1, "FREE(" + PUB.path.FullName.Substring(0, 1) + ") : " + freeSpaceRate.ToString("N2") + "%"); - if (freeSpaceRate < PUB.setting.AutoDeleteThreshold) - { - VAR.BOOL[eVarBool.MINSPACE] = true; - SSInfo.setValue(0, 1, 2); //lbFreeSpace.ForeColor = Color.Tomato; - } - else - { - VAR.BOOL[eVarBool.MINSPACE] = false; - SSInfo.setValue(0, 1, 3);// lbFreeSpace.ForeColor = Color.White; - } - } - - //Pub.log.Add("남은디스크공간확인:" + freeSpaceRate.ToString("N2") + "%"); 190129 - } - catch (Exception ex) - { - SSInfo.setTitle(0, 1, "FREE SPACE : -ERROR-"); - PUB.log.AddE("check free space : " + ex.Message); - } - } - - - private void demoRunToolStripMenuItem_Click(object sender, EventArgs e) - { - PUB.Result.JobEndTime = DateTime.Now; - } - - private void setZValidToolStripMenuItem_Click(object sender, EventArgs e) - { - PUB.log.Add("user set z-home set on"); - } - - private void errorToolStripMenuItem_Click(object sender, EventArgs e) - { - PUB.popup.setMessage("error\berror message"); - } - - private void informationToolStripMenuItem_Click(object sender, EventArgs e) - { - PUB.popup.setMessage("info\ninformation message", MessageWindow.eWindowType.information); - } - - private void attentionToolStripMenuItem_Click(object sender, EventArgs e) - { - PUB.popup.setMessage("attention\nattention message", MessageWindow.eWindowType.attention); - } - - - private void btShowManual_Click(object sender, EventArgs e) - { - string file = System.IO.Path.Combine(UTIL.CurrentPath, "manual.pdf"); - if (System.IO.File.Exists(file) == false) - { - UTIL.MsgE("사용설명서 파일이 존재하지 않습니다\n" + - "문의 : T8567 (장비기술 1파트)\n" + - "파일명 : " + file); - return; - } - UTIL.RunExplorer(file); - } - - private void btClose_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void arLabel5_Click(object sender, EventArgs e) - { - //SetScreen(form_setup); - - - var popmsg = PUB.popup.Visible; - PUB.popup.Visible = false; - VAR.BOOL[eVarBool.FLAG_SETUP] = true; - using (var f = new fSetup()) - if (f.ShowDialog() == DialogResult.OK) - { - - - //AGV정보 싱크 - PUB.sm.ResetRunStepSeq(); - PUB.sm.SetNewStep(eSMStep.SYNC); - } - - VAR.BOOL[eVarBool.FLAG_SETUP] = false;// VAR.BOOL[eVarBool.FLAG_SETUP] = false;//VAR.BOOL[eVarBool.FLAG_SETUP] = false; - - if (popmsg) PUB.popup.Visible = true; - } - - private void btMReset_Click(object sender, EventArgs e) - { - - //if (Pub.sm.Step != eSMStep.IDLE) - //{ - var dlg = UTIL.MsgQ( - "프로그램 상태를 초기화 하시겠습니까?\n" + - "진행 중인 사항은 모두 취소 됩니다"); - if (dlg != System.Windows.Forms.DialogResult.Yes) return; - //} - //else Pub.log.AddAT("대기상태일때에는 초기화 할 수 없습니다"); - - PUB.log.Add("User Click : initialize", false); - PUB.sm.ClearRunStep(); - PUB.sm.SetNewStep(eSMStep.RESET); - PUB.sm.bPause = false; - if (PUB.mplayer != null && PUB.mplayer.SoundLocation.isEmpty() == false) - { - PUB.mplayer.Stop(); - PUB.bPlayMusic = false; - } - } - - private void btCapture_Click(object sender, EventArgs e) - { - UTIL.ScreenCapture(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, new Point(0, 0)); - } - - private void btOpenDir_Click(object sender, EventArgs e) - { - UTIL.RunExplorer(UTIL.CurrentPath); - } - - private void ManualMan_Click(object sender, EventArgs e) - { - SetScreen(form_manu); - MenuMAN.ForeColor = Color.Gold; - } - - private void MenuLift_Click(object sender, EventArgs e) - { - SetScreen(form_zlift); - MenuLift.ForeColor = Color.Gold; - } - - private void btDebug_Click(object sender, EventArgs e) - { - arCtl.arLabel ctl = sender as arCtl.arLabel; - this.cmDebug.Show(ctl, new Point((int)(ctl.Width / 1.5), (int)(ctl.Height / 1.5))); - } - - private void btAutorun_Click(object sender, EventArgs e) - { - var ctl = sender as arCtl.arLabel; - if (ctl.Enabled == false) return; - PUB.log.Add("User Click : Start", false); - func_sw_start(true); - } - - private void btMenuAuto_Click(object sender, EventArgs e) - { - SetScreen(form_auto); - MenuAuto.ForeColor = Color.Gold; - } - - private void btMenuFlag_Click(object sender, EventArgs e) - { - SetScreen(form_flag); - MenuFlag.ForeColor = Color.Gold; - } - - private void btLog_Click(object sender, EventArgs e) - { - if (form_log == null || form_log.IsDisposed || form_log.Disposing) - form_log = new Dialog.fLog(); - - form_log.Show(); - form_log.Activate(); - if (form_log.WindowState == FormWindowState.Minimized) - form_log.WindowState = FormWindowState.Normal; - } - - - private void btCharge_Click(object sender, EventArgs e) - { - var bCharge = - (PUB.sm.RunStep == ERunStep.GOCHARGE || PUB.sm.RunStep == ERunStep.CHARGECHECK || VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true); - - if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - { - UTIL.MsgE("수동 충전 상태이므로 진행 할 수 없습니다"); - return; - } - - //충전을 시작해라ㅏ - if (bCharge == true) - { - var dlg = UTIL.MsgQ("충전을 중지할까요?"); - if (dlg == DialogResult.Yes) - { - PUB.sm.ClearRunStep(); - //대상노드를 충전기로하고 - PUB._virtualAGV.StartNode = null; - PUB._virtualAGV.TargetNode = null; - PUB.sm.SetNewRunStep(ERunStep.GOTO); - PUB.sm.SetNewStep(eSMStep.RUN); - PUB.log.Add("사용자 충전 해제"); - } - } - else - { - var dlg = UTIL.MsgQ("충전을 시작할까요?"); - if (dlg == DialogResult.Yes) - { - PUB.sm.ClearRunStep(); - PUB.sm.SetNewRunStep(ERunStep.GOCHARGE); - PUB.sm.SetNewStep(eSMStep.RUN); - PUB.log.Add("충전(사용자)작업 시작"); - } - } - } - - private void pictureBox1_Click(object sender, EventArgs e) - { - using (var f = new Dialog.fSystem()) - { - f.ShowDialog(); - if (f.shutdown) - { - forceClose = true; - this.Close(); - } - } - - } - - private void SSInfo_Click(object sender, EventArgs e) - { - PUB.Speak("고경석 수석님 밥은 드셨습니까?", true); - UpdateProgressStatus(20, 100, "progre"); - } - private void brHome_Click(object sender, EventArgs e) - { - if (PUB.CheckManualChargeMode() == false) return; - - var bHome = PUB.sm.Step == eSMStep.RUN && (PUB.sm.RunStep == ERunStep.GOHOME); - if (bHome == true) - { - var dlg = UTIL.MsgQ("홈 이동을 취소 할까요?"); - if (dlg == DialogResult.Yes) - { - PUB.sm.ClearRunStep(); - PUB.sm.SetNewStep(eSMStep.IDLE); - PUB.AGV.AGVMoveStop("user home cancle", arDev.Narumi.eStopOpt.Stop); - PUB.log.Add("사용자 홈 이동 취소"); - } - } - else - { - var dlg = UTIL.MsgQ("홈 이동을 실행 할까요?"); - if (dlg == DialogResult.Yes) - { - PUB.sm.ClearRunStep(); - PUB.sm.SetNewRunStep(ERunStep.GOHOME); - PUB.sm.SetNewStep(eSMStep.RUN); - PUB.log.Add("사용자 홈 이동 실행"); - } - } - } - - - private void btTopMenu_Volume_Click_1(object sender, EventArgs e) - { - using (var f = new Dialog.fVolume()) - f.ShowDialog(); - } - - private void lbCNtUp_Click(object sender, EventArgs e) - { - //down,up둘다 연결해야함 - using (var f = new Dialog.fCounter()) - f.ShowDialog(); - } - - private void btMenuAGV_Click_1(object sender, EventArgs e) - { - SetScreen(form_agv); - MenuAGV.ForeColor = Color.Gold; - } - - private void btMenuBMS_Click_1(object sender, EventArgs e) - { - SetScreen(form_bms); - MenuBMS.ForeColor = Color.Gold; - } - - private void lbBat_Click(object sender, EventArgs e) - { - var bat = (int)PUB.BMS.BMSInformation.rsoc; - var msg = $"{bat}퍼센트"; - PUB.Speak(msg, false, false); - PUB.counter.CountQA += 1; - } - private void IOState_ItemClick_1(object sender, arFrame.Control.GridView.ItemClickEventArgs e) - { - var title = IOState.Titles[e.idx]; - switch (title.ToLower()) - { - case "emg": - ResetSystemError(); - break; - case "itm": - var itemon = VAR.BOOL[eVarBool.ITEMON]; - VAR.BOOL[eVarBool.ITEMON] = !itemon; - break; - } - } - - private void btChargeM_Click(object sender, EventArgs e) - { - if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) - { - if (PUB.BMS.IsValid && PUB.BMS.IsCharging) - { - UTIL.MsgE("현재 배터리에서 충전 상태가 감지되고 있어 해제할 수 없습니다"); - return; - } - - var dlg = UTIL.MsgQ("수동 충전을 해제 할까요?"); - if (dlg != DialogResult.Yes) return; - VAR.BOOL[eVarBool.FLAG_CHARGEONM] = false; - PUB.log.Add("수동 충전 실행"); - } - else - { - if (PUB.AGV.system1.Battery_charging) - { - UTIL.MsgE("현재 자동 충전 중이라 진행 할 수 없습니다"); - return; - } - var dlg = UTIL.MsgQ("수동 충전을 진행 할까요?"); - if (dlg != DialogResult.Yes) return; - VAR.BOOL[eVarBool.FLAG_CHARGEONM] = true; - PUB.log.Add("수동 충전 실행"); - } - } - - private void saveToolStripMenuItem_Click(object sender, EventArgs e) - { - //mapsave - using (var sd = new SaveFileDialog()) - { - sd.Filter = "AGV Map Files (*.json)|*.json|All Files (*.*)|*.*"; - sd.DefaultExt = "json"; - sd.FileName = PUB._mapCanvas.MapFileName; - if (sd.ShowDialog() == DialogResult.OK) - { - SaveMapToFile(sd.FileName); - } - } - } - - private void loadToolStripMenuItem_Click(object sender, EventArgs e) - { - //load - - var od = new OpenFileDialog - { - Filter = "AGV Map Files (*.json)|*.json|All Files (*.*)|*.*", - DefaultExt = "json", - FileName = PUB._mapCanvas.MapFileName, - }; - - if (od.ShowDialog() == DialogResult.OK) - { - try - { - LoadMapFromFile(od.FileName); - } - catch (Exception ex) - { - MessageBox.Show($"맵 로드 중 오류가 발생했습니다: {ex.Message}", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - } - - private void LoadMapFromFile(string filePath) - { - var result = MapLoader.LoadMapFromFile(filePath); - - if (result.Success) - { - var _mapCanvas = PUB._mapCanvas; - _mapCanvas.SetMapLoadResult(result); - PUB.log.Add($"Set _mapNodes"); - - // 설정에 마지막 맵 파일 경로 저장 - PUB.setting.LastMapFile = filePath; - PUB.setting.Save(); - - // 맵 로드 후 자동으로 맵에 맞춤 - _mapCanvas.FitToNodes(); - } - else - { - MessageBox.Show($"맵 파일 로딩 실패: {result.ErrorMessage}", "오류", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - - private void SaveMapToFile(string filePath) - { - // 🔥 백업 파일 생성 (기존 파일이 있을 경우) - if (File.Exists(filePath)) - { - try - { - // 날짜시간 포함 백업 파일명 생성 - var directory = Path.GetDirectoryName(filePath); - var fileNameWithoutExt = Path.GetFileNameWithoutExtension(filePath); - var extension = Path.GetExtension(filePath); - var timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss"); - var backupFileName = $"{fileNameWithoutExt}_{timestamp}{extension}.bak"; - var backupFilePath = Path.Combine(directory, backupFileName); - - // 기존 파일을 백업 파일로 복사 - File.Copy(filePath, backupFilePath, true); - } - catch (Exception ex) - { - // 백업 파일 생성 실패 시 경고만 표시하고 계속 진행 - MessageBox.Show($"백업 파일 생성 실패: {ex.Message}\n원본 파일은 계속 저장됩니다.", "백업 경고", - MessageBoxButtons.OK, MessageBoxIcon.Warning); - } - } - - var _mapCanvas = PUB._mapCanvas; - - - // 🔥 현재 캔버스 설정을 맵 파일에 저장 - var settings = new MapLoader.MapSettings - { - BackgroundColorArgb = _mapCanvas.BackColor.ToArgb(), - ShowGrid = _mapCanvas.ShowGrid - }; - - if (MapLoader.SaveMapToFile(filePath, - _mapCanvas.Nodes, _mapCanvas.Labels, - _mapCanvas.Images, _mapCanvas.Marks, - _mapCanvas.Magnets, - settings)) - { - // 설정에 마지막 맵 파일 경로 저장 - PUB.setting.LastMapFile = filePath; - PUB.setting.Save(); - } - else - { - MessageBox.Show("맵 파일 저장 실패", "오류", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - - private void DumpAllThreadsState() - { - try - { - var sb = new System.Text.StringBuilder(); - sb.AppendLine("===== 스레드 상태 덤프 ====="); - sb.AppendLine($"시간: {DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}"); - //sb.AppendLine($"마지막 sm_Running 호출: {(DateTime.Now - lastSmRunningTime).TotalSeconds:F1}초 전"); - //sb.AppendLine($"sm_Running 호출 횟수: {sm_Running_CallCount}"); - sb.AppendLine($"IsThreadRun: {PUB.sm.IsThreadRun}"); - sb.AppendLine($"Current Step: {PUB.sm.Step}"); - sb.AppendLine($"Current RunStep: {PUB.sm.RunStep}"); - sb.AppendLine(); - - var process = System.Diagnostics.Process.GetCurrentProcess(); - sb.AppendLine($"총 스레드 수: {process.Threads.Count}"); - sb.AppendLine(); - - foreach (System.Diagnostics.ProcessThread thread in process.Threads) - { - sb.AppendLine($"Thread {thread.Id}:"); - sb.AppendLine($" State: {thread.ThreadState}"); - sb.AppendLine($" Priority: {thread.PriorityLevel}"); - if (thread.ThreadState == System.Diagnostics.ThreadState.Wait) - { - sb.AppendLine($" WaitReason: {thread.WaitReason}"); - } - sb.AppendLine(); - } - - var dump = sb.ToString(); - PUB.log.Add("THREAD_DUMP", dump); - Console.WriteLine(dump); - - MessageBox.Show( - $"스레드 덤프 완료\n로그 파일에 저장되었습니다.\n\n" + - //$"마지막 sm_Running: {(DateTime.Now - lastSmRunningTime).TotalSeconds:F1}초 전\n" + - $"IsThreadRun: {PUB.sm.IsThreadRun}", - "스레드 덤프", - MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - catch (Exception ex) - { - PUB.log.AddE($"DumpAllThreadsState 오류: {ex.Message}"); - } - } - - private void stateMachineDebugToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - var debugForm = new Dialog.fStateMachineDebug(); - debugForm.Show(); - } - catch (Exception ex) - { - MessageBox.Show($"디버그 창을 열 수 없습니다:\n{ex.Message}", "오류", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - - private void editorToolStripMenuItem_Click(object sender, EventArgs e) - { - try - { - // MapEditor 실행 파일 경로 확인 - string mapEditorPath = "AGVMapEditor.exe"; - - // 경로가 설정되지 않았거나 파일이 없는 경우 사용자에게 선택을 요청 - if (string.IsNullOrEmpty(mapEditorPath) || !File.Exists(mapEditorPath)) - { - using (var openDialog = new OpenFileDialog()) - { - openDialog.Filter = "실행 파일 (*.exe)|*.exe|모든 파일 (*.*)|*.*"; - openDialog.Title = "AGV MapEditor 실행 파일 선택"; - openDialog.InitialDirectory = Application.StartupPath; - - if (openDialog.ShowDialog() == DialogResult.OK) - { - mapEditorPath = openDialog.FileName; - } - else - { - return; // 사용자가 취소함 - } - } - } - - // MapEditor 실행 - var startInfo = new System.Diagnostics.ProcessStartInfo - { - FileName = mapEditorPath, - UseShellExecute = true - }; - - // 현재 로드된 맵 파일이 있으면 파라미터로 전달 - var _currentMapFilePath = PUB._mapCanvas.MapFileName; - if (!string.IsNullOrEmpty(_currentMapFilePath) && File.Exists(_currentMapFilePath)) - { - startInfo.Arguments = $"\"{_currentMapFilePath}\""; - } - - System.Diagnostics.Process.Start(startInfo); - } - catch (Exception ex) - { - MessageBox.Show($"MapEditor를 실행할 수 없습니다:\n{ex.Message}", "오류", - MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - - private void xbeeSettingToolStripMenuItem_Click(object sender, EventArgs e) - { - var f = new Dialog.fXbeeSetting(); - f.Show(); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Runtime.InteropServices; +using COMM; +using System.CodeDom; +using AR; +using Project.StateMachine; +using System.Security.Cryptography.X509Certificates; +using AGVNavigationCore.Models; +using System.IO; + +namespace Project +{ + public partial class fMain : Form + { + double freeSpaceRate = 0.0; + + //뷰어용화면 + ViewForm.fAuto form_auto = null; + ViewForm.fManual form_manu = null; + ViewForm.fIO form_zlift = null; + ViewForm.fFlag form_flag = null; + ViewForm.fAgv form_agv = null; + ViewForm.fBms form_bms = null; + Dialog.fLog form_log = null; + + bool remoteClose = false; + bool forceClose = false; + + public fMain() + { + InitializeComponent(); + VAR.Init(128); + PUB.initCore(); + UTIL.MessgeBoxLegacyMode = false; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + else if (e1.KeyCode == Keys.F1 && e1.Control && e1.Shift) + { + + } + else if (e1.KeyCode == Keys.F5) btAutoRun.PerformClick(); + else if (e1.KeyCode == Keys.F9) btAutoRun.PerformClick(); + else if (e1.KeyCode == Keys.F11 && System.Diagnostics.Debugger.IsAttached) + { + // F11: 모든 스레드 상태 덤프 + DumpAllThreadsState(); + } + + if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; + }; + + PUB._mapCanvas = new AGVNavigationCore.Controls.UnifiedAGVCanvas(); + PUB._mapCanvas.Dock = DockStyle.Fill; + PUB._mapCanvas.ShowGrid = false; + PUB._mapCanvas.BackColor = Color.FromArgb(32, 32, 32); + PUB._mapCanvas.ForeColor = Color.White; + PUB._mapCanvas.Mode = AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run; + + this.panTopMenu.MouseMove += LbTitle_MouseMove; + this.panTopMenu.MouseUp += LbTitle_MouseUp; + this.panTopMenu.MouseDown += LbTitle_MouseDown; + this.panTopMenu.DoubleClick += LbTitle_DoubleClick; + + this.MouseMove += (s1, e1) => { if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; }; + this.FormClosing += __Closing; + + if (PUB.setting.FullScreen) this.WindowState = FormWindowState.Maximized; + + } + + + private void __Closing(object sender, FormClosingEventArgs e) + { + // 장치 관리 태스크는 _STEP_CLOSING_START에서 종료됨 + + PUB.popup.needClose = true; + if (remoteClose == true) + { + PUB.log.Add("패치로 인해 프로그램을 종료 합니다"); + PUB.sm.SetNewStep(eSMStep.IDLE); + //_Close_Start(); + _STEP_CLOSING_START(PUB.sm.Step); + PUB.sm.Stop(); + + var patchfile = new System.IO.FileInfo(System.IO.Path.Combine(UTIL.CurrentPath, "SWPatch.exe")); + if (patchfile.Exists == false) + { + UTIL.MsgE("패치파일(" + patchfile.Name + ")이 없습니다.\n프로그램을 다시 실행해주세요", true); + } + else + { + UTIL.RunProcess(patchfile.FullName); + } + } + else if (forceClose == true) + { + PUB.log.Add("강제 종료"); + PUB.sm.SetNewStep(eSMStep.IDLE); + //_Close_Start(); + _STEP_CLOSING_START(PUB.sm.Step); + PUB.sm.Stop(); + + + } + else + { + if (PUB.sm.Step == eSMStep.RUN) + { + UTIL.MsgE("동작 중에는 종료 할 수 없습니다."); + e.Cancel = true; + return; + } + if (PUB.sm.Step < eSMStep.CLOSING) + { + var rlt = UTIL.MsgQ("종료하시겠습니까"); + if (rlt == System.Windows.Forms.DialogResult.Yes) + { + //비젼의 측정상태가 변경된 경우 + PUB.sm.SetNewStep(eSMStep.CLOSING, true); + + } + e.Cancel = true; + return; + //_Close_Start(); + } + } + + } + + private Dictionary FlagMap = new Dictionary(); + private void __Load(object sender, EventArgs e) + { + this.Text = Application.ProductName + " ver " + Application.ProductVersion; + PUB.init(); + if (PUB.setting.FullScreen) + { + this.FormBorderStyle = FormBorderStyle.None; + this.WindowState = FormWindowState.Maximized; + } + this.Show(); + Application.DoEvents(); + + VAR.STR[eVarString.SWVersion] = Application.ProductVersion; + + + AutoLoadMapData(); + + //SETTING H/W + this.IOState.ItemClick += gridView2_ItemClick; + VAR.BOOL.PropertyChanged += BOOL_PropertyChanged; + + //지그비통신 + PUB.XBE = new Device.Xbee(); + PUB.XBE.MessageReceived += XBE_MessageReceived; + PUB.XBE.ProtocReceived += XBE_ProtocReceived; + + //AGV + PUB.AGV = new arDev.Narumi(); + PUB.AGV.Message += AGV_Message; + PUB.AGV.DataReceive += AGV_DataReceive; + + //배터리관리시스템 + PUB.BMS = new arDev.BMS(); + PUB.BMS.BMSDataReceive += Bms_BMSDataReceive; + PUB.BMS.BMSCellDataReceive += BMS_BMSCellDataReceive; + PUB.BMS.Message += Bms_Message; + PUB.BMS.ChargeDetect += BMS_ChargeDetect; + PUB.BMS.ScanInterval = PUB.setting.interval_bms;// + + //디버그메세지 출력용 소켓 + PUB.sock_debug = new Device.Socket(); + PUB.sock_debug.GetMessage += socket_GetMessage; + PUB.sock_debug.RecvMessage += socket_RecvMessage; + PUB.sock_debug.SendMessage += socket_SendMessage; + + //clear + Resultclear(); + + //충전이 시작되지 않도록 기본값을 넣는다 + VAR.TIME[eVarTime.ChargeTry] = DateTime.Now; + VAR.TIME[eVarTime.ChargeSearch] = DateTime.Now; + + PUB.sm.SetMsgOptOff(); //모든 메세지출력을 해제한다. (이벤트는 동작함) + + PUB.log.Add("State Machine Start"); + + try + { + PUB.sm = new StateMachine.StateMachine(); + PUB.log.Add("StateMachine", $"객체 생성 완료 - Type: {PUB.sm.GetType().FullName}"); + + // StateMachine 객체의 속성 확인 + var smType = PUB.sm.GetType(); + var properties = smType.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); + PUB.log.Add("StateMachine", $"Public Properties: {properties.Length}개"); + + var methods = smType.GetMethods(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly); + PUB.log.Add("StateMachine", $"Public Methods: {methods.Length}개"); + } + catch (Exception ex) + { + PUB.log.AddE($"StateMachine 객체 생성 실패: {ex.Message}"); + PUB.log.AddE($"StackTrace: {ex.StackTrace}"); + throw; + } + + PUB.sm.StepChanged += sm_StepChanged; + PUB.sm.Message += sm_Message; + PUB.sm.Running += sm_Running; + PUB.sm.SPS += sm_SPS; + PUB.sm.Start(); + PUB.log.Add("StateMachine", "SM 이벤트 등록 완료"); + + // 스레드 시작 대기 (최대 3초) + for (int i = 0; i < 30; i++) + { + System.Threading.Thread.Sleep(100); + if (PUB.sm.IsThreadRun) + { + PUB.log.Add("StateMachine", $"스레드 시작 확인됨 ({i * 100}ms 소요)"); + break; + } + } + + if (!PUB.sm.IsThreadRun) + { + PUB.log.AddE("경고: 3초 대기 후에도 스레드가 시작되지 않음!"); + System.Windows.Forms.MessageBox.Show( + "상태머신 스레드가 시작되지 않았습니다.\n" + + "로그 파일을 확인하세요.", + "오류", + System.Windows.Forms.MessageBoxButtons.OK, + System.Windows.Forms.MessageBoxIcon.Error); + } + + tmDisplay.Tick += tmDisplay_Tick; + tmDisplay.Start(); //start Display + PUB.log.Add("Display", "Display Timer 시작 완료"); + + this.btDebug.Visible = System.Diagnostics.Debugger.IsAttached || PUB.setting.UseDebugMode; + PUB.log.Add("Program Start"); + + //수량표시 + PUB.counter.PropertyChanged += (s1, e1) => Update_Count(); + Update_Count(); + + PUB.log.Add("프로그램 실행 기록 추가"); + PUB.CheckNRegister3(Application.ProductName, "chi", Application.ProductVersion); + + if (PUB.setting.StartLog) + MenuLog.PerformClick(); + + PUB.AddEEDB("프로그램 시작"); + } + + void AutoLoadMapData() + { + //auto load + var mapPath = new System.IO.DirectoryInfo("route"); + if (mapPath.Exists == false) mapPath.Create(); + + //맵파일로딩 + var basefile = System.IO.Path.Combine(mapPath.FullName, "default.json"); + if (System.IO.File.Exists(basefile) == false) + if (PUB.setting.LastMapFile.isEmpty() == false) basefile = PUB.setting.LastMapFile; + + System.IO.FileInfo filePath = new System.IO.FileInfo(basefile); + if (filePath.Exists == false) //그래도없다면 맵폴더에서 파일을 찾아본다. + { + var files = mapPath.GetFiles("*.json"); + if (files.Any()) filePath = files[0]; + } + + if (filePath.Exists) + { + var result = MapLoader.LoadMapFromFile(filePath.FullName); + + if (result.Success) + { + PUB._mapCanvas.SetMapLoadResult(result); + PUB._mapCanvas.MapFileName = filePath.FullName; + + // 🔥 가상 AGV 초기화 (첫 노드 위치에 생성) + if (PUB._virtualAGV == null && PUB._mapCanvas.Nodes.Count > 0) + { + var startNode = PUB._mapCanvas.Nodes.FirstOrDefault(n => n.IsNavigationNode()); + if (startNode != null) + { + PUB._virtualAGV = new VirtualAGV(PUB.setting.MCID, startNode.Position, AgvDirection.Forward); + PUB._virtualAGV.LowBatteryThreshold = PUB.setting.BatteryLimit_Low; + PUB._virtualAGV.SetPosition(startNode, AgvDirection.Forward); + + // 캔버스에 AGV 리스트 설정 + var agvList = new System.Collections.Generic.List { PUB._virtualAGV }; + PUB._mapCanvas.AGVList = agvList; + + PUB.log.Add($"가상 AGV 생성: {startNode.Id} 위치"); + } + } + else if (PUB._virtualAGV != null) + { + PUB._virtualAGV.LowBatteryThreshold = PUB.setting.BatteryLimit_Low; + // 기존 AGV가 있으면 캔버스에 다시 연결 + var agvList = new System.Collections.Generic.List { PUB._virtualAGV }; + PUB._mapCanvas.AGVList = agvList; + } + PUB.log.Add($"맵 파일 로드 완료: {filePath.Name}, 노드 수: {result.Nodes.Count}"); + } + else + { + PUB.log.Add($"맵 파일 로딩 실패: {result.ErrorMessage}"); + MessageBox.Show($"맵 파일 로딩 실패: {result.ErrorMessage}", "오류", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + else + { + PUB.log.Add($"맵 파일을 찾을 수 없습니다: {filePath.FullName}"); + } + + } + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + + private void LbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + //offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + void socket_SendMessage(object sender, Device.Socket.SocketMessageEventArgs e) + { + //핑로그가 꺼져있는 상황일때 핑로그는 로그를 기록하지 않는다. 181205 + if (!PUB.setting.Log_Ping && e.Message.Type == Device.Socket.eType.REPLY && e.Message.SType == Device.Socket.eSType.STATUS) + { + return; + } + PUB.log.Add("WS << " + e.rawData); + } + + void socket_RecvMessage(object sender, Device.Socket.SocketMessageEventArgs e) + { + if (e.Message.isError) + PUB.log.AddE("WS >> " + e.Message.ErrorMessage + ",RAW=" + e.rawData); + else + { + + switch (e.Message.Type) + { + case Device.Socket.eType.REQUEST: + if (e.Message.SType == Device.Socket.eSType.STATUS) + { + var packet = PUB.sock_debug.makeReplyStatus(Device.Socket.eStatus.IDLE); + var rlt = PUB.sock_debug.Send(PUB.setting.Asset, Device.Socket.eType.REPLY, Device.Socket.eSType.STATUS, packet); + if (!rlt) + { + PUB.log.AddE("Status Reply Error"); + } + else + { + if (PUB.setting.Log_Ping) PUB.log.AddI("Server Status Reply OK"); + } + } + else + { + PUB.log.Add("WS >> " + e.rawData); + } + break; + } + } + } + + void socket_GetMessage(object sender, Device.Socket.MesasgeEventArgs e) + { + if (e.isError) PUB.log.AddE("WS:" + e.Message); + else PUB.log.Add("WS:" + e.Message); + } + delegate void SelectModelHandler(string modelName); + void SelectModelM(string modelName) + { + if (this.InvokeRequired) + { + this.Invoke(new SelectModelHandler(SelectModelM), new object[] { modelName }); + return; + } + } + + void func_sw_start(bool Prompt = false) + { + if (PUB.sm.Step == eSMStep.SYNC) + { + UTIL.MsgE("초기화 중에는 사용할 수 없습니다\n초기화가 완료 된 후 시도하세요"); + return; + } + if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false) //자동상태가 아니라면 + { + ResetSystemError(); + if (Prompt) + { + if (UTIL.MsgQ("AGV상태를 자동으로 전환 할까요?") != DialogResult.Yes) return; + } + + //충전상태확인 + if (PUB.CheckManualChargeMode() == false) return; + PUB.popup.needClose = true; + PUB.sm.SetNewStep(eSMStep.RUN); + PUB.Speak(Lang.자동전환, addlog: false); + + PUB.log.Add($"자동전환 이전스텝:{PUB.sm.RunStep},IDX:{PUB.sm.RunStepSeq}]"); + PUB._mapCanvas.SetAlertMessage("START"); + } + else + { + PUB.AGV.AGVCharge(PUB.setting.ChargerID, false); //230425 수동전환하면 충전 해제한다 + PUB.sm.SetNewStep(eSMStep.IDLE); + PUB.Speak(Lang.작업종료); + } + } + + void Resultclear() + { + PUB.Result.Clear(); + PUB.log.AddI("Clear Resultclear"); + } + + public void ResetSystemError() + { + PUB.AGV.AGVErrorReset(); + Resultclear(); + PUB.log.AddI("System Error Reset"); + } + + + void CheckFreeSpace() + { + try + { + + if (PUB.path.FullName.StartsWith("\\")) + { + SSInfo.setTitle(0, 1, "UNC Path Detected"); + SSInfo.setValue(0, 1, 2); + } + else + { + double freeSpaceRate_ = PUB.GetFreeSpace(); + this.freeSpaceRate = freeSpaceRate_; + SSInfo.setTitle(0, 1, "FREE(" + PUB.path.FullName.Substring(0, 1) + ") : " + freeSpaceRate.ToString("N2") + "%"); + if (freeSpaceRate < PUB.setting.AutoDeleteThreshold) + { + VAR.BOOL[eVarBool.MINSPACE] = true; + SSInfo.setValue(0, 1, 2); //lbFreeSpace.ForeColor = Color.Tomato; + } + else + { + VAR.BOOL[eVarBool.MINSPACE] = false; + SSInfo.setValue(0, 1, 3);// lbFreeSpace.ForeColor = Color.White; + } + } + + //Pub.log.Add("남은디스크공간확인:" + freeSpaceRate.ToString("N2") + "%"); 190129 + } + catch (Exception ex) + { + SSInfo.setTitle(0, 1, "FREE SPACE : -ERROR-"); + PUB.log.AddE("check free space : " + ex.Message); + } + } + + + private void demoRunToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.Result.JobEndTime = DateTime.Now; + } + + private void setZValidToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.log.Add("user set z-home set on"); + } + + private void errorToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.popup.setMessage("error\berror message"); + } + + private void informationToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.popup.setMessage("info\ninformation message", MessageWindow.eWindowType.information); + } + + private void attentionToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.popup.setMessage("attention\nattention message", MessageWindow.eWindowType.attention); + } + + + private void btShowManual_Click(object sender, EventArgs e) + { + string file = System.IO.Path.Combine(UTIL.CurrentPath, "manual.pdf"); + if (System.IO.File.Exists(file) == false) + { + UTIL.MsgE("사용설명서 파일이 존재하지 않습니다\n" + + "문의 : T8567 (장비기술 1파트)\n" + + "파일명 : " + file); + return; + } + UTIL.RunExplorer(file); + } + + private void btClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void arLabel5_Click(object sender, EventArgs e) + { + //SetScreen(form_setup); + + + var popmsg = PUB.popup.Visible; + PUB.popup.Visible = false; + VAR.BOOL[eVarBool.FLAG_SETUP] = true; + using (var f = new fSetup()) + if (f.ShowDialog() == DialogResult.OK) + { + + + //AGV정보 싱크 + PUB.sm.ResetRunStepSeq(); + PUB.sm.SetNewStep(eSMStep.SYNC); + } + + VAR.BOOL[eVarBool.FLAG_SETUP] = false;// VAR.BOOL[eVarBool.FLAG_SETUP] = false;//VAR.BOOL[eVarBool.FLAG_SETUP] = false; + + if (popmsg) PUB.popup.Visible = true; + } + + private void btMReset_Click(object sender, EventArgs e) + { + + //if (Pub.sm.Step != eSMStep.IDLE) + //{ + var dlg = UTIL.MsgQ( + "프로그램 상태를 초기화 하시겠습니까?\n" + + "진행 중인 사항은 모두 취소 됩니다"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + //} + //else Pub.log.AddAT("대기상태일때에는 초기화 할 수 없습니다"); + + PUB.log.Add("User Click : initialize", false); + PUB.sm.ClearRunStep(); + PUB.sm.SetNewStep(eSMStep.RESET); + PUB.sm.bPause = false; + if (PUB.mplayer != null && PUB.mplayer.SoundLocation.isEmpty() == false) + { + PUB.mplayer.Stop(); + PUB.bPlayMusic = false; + } + } + + private void btCapture_Click(object sender, EventArgs e) + { + UTIL.ScreenCapture(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, new Point(0, 0)); + } + + private void btOpenDir_Click(object sender, EventArgs e) + { + UTIL.RunExplorer(UTIL.CurrentPath); + } + + private void ManualMan_Click(object sender, EventArgs e) + { + SetScreen(form_manu); + MenuMAN.ForeColor = Color.Gold; + } + + private void MenuLift_Click(object sender, EventArgs e) + { + SetScreen(form_zlift); + MenuLift.ForeColor = Color.Gold; + } + + private void btDebug_Click(object sender, EventArgs e) + { + arCtl.arLabel ctl = sender as arCtl.arLabel; + this.cmDebug.Show(ctl, new Point((int)(ctl.Width / 1.5), (int)(ctl.Height / 1.5))); + } + + private void btAutorun_Click(object sender, EventArgs e) + { + var ctl = sender as arCtl.arLabel; + if (ctl.Enabled == false) return; + PUB.log.Add("User Click : Start", false); + func_sw_start(true); + } + + private void btMenuAuto_Click(object sender, EventArgs e) + { + SetScreen(form_auto); + MenuAuto.ForeColor = Color.Gold; + } + + private void btMenuFlag_Click(object sender, EventArgs e) + { + SetScreen(form_flag); + MenuFlag.ForeColor = Color.Gold; + } + + private void btLog_Click(object sender, EventArgs e) + { + if (form_log == null || form_log.IsDisposed || form_log.Disposing) + form_log = new Dialog.fLog(); + + form_log.Show(); + form_log.Activate(); + if (form_log.WindowState == FormWindowState.Minimized) + form_log.WindowState = FormWindowState.Normal; + } + + + private void btCharge_Click(object sender, EventArgs e) + { + var bCharge = + (PUB.sm.RunStep == ERunStep.GOCHARGE || PUB.sm.RunStep == ERunStep.CHARGECHECK || VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true); + + if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + { + UTIL.MsgE("수동 충전 상태이므로 진행 할 수 없습니다"); + return; + } + + //충전을 시작해라ㅏ + if (bCharge == true) + { + var dlg = UTIL.MsgQ("충전을 중지할까요?"); + if (dlg == DialogResult.Yes) + { + PUB.sm.ClearRunStep(); + //대상노드를 충전기로하고 + PUB._virtualAGV.StartNode = null; + PUB._virtualAGV.TargetNode = null; + PUB.sm.SetNewRunStep(ERunStep.GOTO); + PUB.sm.SetNewStep(eSMStep.RUN); + PUB.log.Add("사용자 충전 해제"); + } + } + else + { + var dlg = UTIL.MsgQ("충전을 시작할까요?"); + if (dlg == DialogResult.Yes) + { + PUB.sm.ClearRunStep(); + PUB.sm.SetNewRunStep(ERunStep.GOCHARGE); + PUB.sm.SetNewStep(eSMStep.RUN); + PUB.log.Add("충전(사용자)작업 시작"); + } + } + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + using (var f = new Dialog.fSystem()) + { + f.ShowDialog(); + if (f.shutdown) + { + forceClose = true; + this.Close(); + } + } + + } + + private void SSInfo_Click(object sender, EventArgs e) + { + PUB.Speak("고경석 수석님 밥은 드셨습니까?", true); + UpdateProgressStatus(20, 100, "progre"); + } + private void brHome_Click(object sender, EventArgs e) + { + if (PUB.CheckManualChargeMode() == false) return; + + var bHome = PUB.sm.Step == eSMStep.RUN && (PUB.sm.RunStep == ERunStep.GOHOME); + if (bHome == true) + { + var dlg = UTIL.MsgQ("홈 이동을 취소 할까요?"); + if (dlg == DialogResult.Yes) + { + PUB.sm.ClearRunStep(); + PUB.sm.SetNewStep(eSMStep.IDLE); + PUB.AGV.AGVMoveStop("user home cancle", arDev.Narumi.eStopOpt.Stop); + PUB.log.Add("사용자 홈 이동 취소"); + } + } + else + { + var dlg = UTIL.MsgQ("홈 이동을 실행 할까요?"); + if (dlg == DialogResult.Yes) + { + PUB.sm.ClearRunStep(); + PUB.sm.SetNewRunStep(ERunStep.GOHOME); + PUB.sm.SetNewStep(eSMStep.RUN); + PUB.log.Add("사용자 홈 이동 실행"); + } + } + } + + + private void btTopMenu_Volume_Click_1(object sender, EventArgs e) + { + using (var f = new Dialog.fVolume()) + f.ShowDialog(); + } + + private void lbCNtUp_Click(object sender, EventArgs e) + { + //down,up둘다 연결해야함 + using (var f = new Dialog.fCounter()) + f.ShowDialog(); + } + + private void btMenuAGV_Click_1(object sender, EventArgs e) + { + SetScreen(form_agv); + MenuAGV.ForeColor = Color.Gold; + } + + private void btMenuBMS_Click_1(object sender, EventArgs e) + { + SetScreen(form_bms); + MenuBMS.ForeColor = Color.Gold; + } + + private void lbBat_Click(object sender, EventArgs e) + { + var bat = (int)PUB.BMS.BMSInformation.rsoc; + var msg = $"{bat}퍼센트"; + PUB.Speak(msg, false, false); + PUB.counter.CountQA += 1; + } + private void IOState_ItemClick_1(object sender, arFrame.Control.GridView.ItemClickEventArgs e) + { + var title = IOState.Titles[e.idx]; + switch (title.ToLower()) + { + case "emg": + ResetSystemError(); + break; + case "itm": + var itemon = VAR.BOOL[eVarBool.ITEMON]; + VAR.BOOL[eVarBool.ITEMON] = !itemon; + break; + } + } + + private void btChargeM_Click(object sender, EventArgs e) + { + if (VAR.BOOL[eVarBool.FLAG_CHARGEONM]) + { + if (PUB.BMS.IsValid && PUB.BMS.IsCharging) + { + UTIL.MsgE("현재 배터리에서 충전 상태가 감지되고 있어 해제할 수 없습니다"); + return; + } + + var dlg = UTIL.MsgQ("수동 충전을 해제 할까요?"); + if (dlg != DialogResult.Yes) return; + VAR.BOOL[eVarBool.FLAG_CHARGEONM] = false; + PUB.log.Add("수동 충전 실행"); + } + else + { + if (PUB.AGV.system1.Battery_charging) + { + UTIL.MsgE("현재 자동 충전 중이라 진행 할 수 없습니다"); + return; + } + var dlg = UTIL.MsgQ("수동 충전을 진행 할까요?"); + if (dlg != DialogResult.Yes) return; + VAR.BOOL[eVarBool.FLAG_CHARGEONM] = true; + PUB.log.Add("수동 충전 실행"); + } + } + + private void saveToolStripMenuItem_Click(object sender, EventArgs e) + { + //mapsave + using (var sd = new SaveFileDialog()) + { + sd.Filter = "AGV Map Files (*.json)|*.json|All Files (*.*)|*.*"; + sd.DefaultExt = "json"; + sd.FileName = PUB._mapCanvas.MapFileName; + if (sd.ShowDialog() == DialogResult.OK) + { + SaveMapToFile(sd.FileName); + } + } + } + + private void loadToolStripMenuItem_Click(object sender, EventArgs e) + { + //load + + var od = new OpenFileDialog + { + Filter = "AGV Map Files (*.json)|*.json|All Files (*.*)|*.*", + DefaultExt = "json", + FileName = PUB._mapCanvas.MapFileName, + }; + + if (od.ShowDialog() == DialogResult.OK) + { + try + { + LoadMapFromFile(od.FileName); + } + catch (Exception ex) + { + MessageBox.Show($"맵 로드 중 오류가 발생했습니다: {ex.Message}", "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } + + private void LoadMapFromFile(string filePath) + { + var result = MapLoader.LoadMapFromFile(filePath); + + if (result.Success) + { + var _mapCanvas = PUB._mapCanvas; + _mapCanvas.SetMapLoadResult(result); + PUB.log.Add($"Set _mapNodes"); + + // 설정에 마지막 맵 파일 경로 저장 + PUB.setting.LastMapFile = filePath; + PUB.setting.Save(); + + // 맵 로드 후 자동으로 맵에 맞춤 + _mapCanvas.FitToNodes(); + } + else + { + MessageBox.Show($"맵 파일 로딩 실패: {result.ErrorMessage}", "오류", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void SaveMapToFile(string filePath) + { + // 🔥 백업 파일 생성 (기존 파일이 있을 경우) + if (File.Exists(filePath)) + { + try + { + // 날짜시간 포함 백업 파일명 생성 + var directory = Path.GetDirectoryName(filePath); + var fileNameWithoutExt = Path.GetFileNameWithoutExtension(filePath); + var extension = Path.GetExtension(filePath); + var timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss"); + var backupFileName = $"{fileNameWithoutExt}_{timestamp}{extension}.bak"; + var backupFilePath = Path.Combine(directory, backupFileName); + + // 기존 파일을 백업 파일로 복사 + File.Copy(filePath, backupFilePath, true); + } + catch (Exception ex) + { + // 백업 파일 생성 실패 시 경고만 표시하고 계속 진행 + MessageBox.Show($"백업 파일 생성 실패: {ex.Message}\n원본 파일은 계속 저장됩니다.", "백업 경고", + MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + } + + var _mapCanvas = PUB._mapCanvas; + + + // 🔥 현재 캔버스 설정을 맵 파일에 저장 + var settings = new MapLoader.MapSettings + { + BackgroundColorArgb = _mapCanvas.BackColor.ToArgb(), + ShowGrid = _mapCanvas.ShowGrid + }; + + if (MapLoader.SaveMapToFile(filePath, + _mapCanvas.Nodes, _mapCanvas.Labels, + _mapCanvas.Images, _mapCanvas.Marks, + _mapCanvas.Magnets, + settings)) + { + // 설정에 마지막 맵 파일 경로 저장 + PUB.setting.LastMapFile = filePath; + PUB.setting.Save(); + } + else + { + MessageBox.Show("맵 파일 저장 실패", "오류", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void DumpAllThreadsState() + { + try + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine("===== 스레드 상태 덤프 ====="); + sb.AppendLine($"시간: {DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}"); + //sb.AppendLine($"마지막 sm_Running 호출: {(DateTime.Now - lastSmRunningTime).TotalSeconds:F1}초 전"); + //sb.AppendLine($"sm_Running 호출 횟수: {sm_Running_CallCount}"); + sb.AppendLine($"IsThreadRun: {PUB.sm.IsThreadRun}"); + sb.AppendLine($"Current Step: {PUB.sm.Step}"); + sb.AppendLine($"Current RunStep: {PUB.sm.RunStep}"); + sb.AppendLine(); + + var process = System.Diagnostics.Process.GetCurrentProcess(); + sb.AppendLine($"총 스레드 수: {process.Threads.Count}"); + sb.AppendLine(); + + foreach (System.Diagnostics.ProcessThread thread in process.Threads) + { + sb.AppendLine($"Thread {thread.Id}:"); + sb.AppendLine($" State: {thread.ThreadState}"); + sb.AppendLine($" Priority: {thread.PriorityLevel}"); + if (thread.ThreadState == System.Diagnostics.ThreadState.Wait) + { + sb.AppendLine($" WaitReason: {thread.WaitReason}"); + } + sb.AppendLine(); + } + + var dump = sb.ToString(); + PUB.log.Add("THREAD_DUMP", dump); + Console.WriteLine(dump); + + MessageBox.Show( + $"스레드 덤프 완료\n로그 파일에 저장되었습니다.\n\n" + + //$"마지막 sm_Running: {(DateTime.Now - lastSmRunningTime).TotalSeconds:F1}초 전\n" + + $"IsThreadRun: {PUB.sm.IsThreadRun}", + "스레드 덤프", + MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + catch (Exception ex) + { + PUB.log.AddE($"DumpAllThreadsState 오류: {ex.Message}"); + } + } + + private void stateMachineDebugToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + var debugForm = new Dialog.fStateMachineDebug(); + debugForm.Show(); + } + catch (Exception ex) + { + MessageBox.Show($"디버그 창을 열 수 없습니다:\n{ex.Message}", "오류", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void editorToolStripMenuItem_Click(object sender, EventArgs e) + { + try + { + // MapEditor 실행 파일 경로 확인 + string mapEditorPath = "AGVMapEditor.exe"; + + // 경로가 설정되지 않았거나 파일이 없는 경우 사용자에게 선택을 요청 + if (string.IsNullOrEmpty(mapEditorPath) || !File.Exists(mapEditorPath)) + { + using (var openDialog = new OpenFileDialog()) + { + openDialog.Filter = "실행 파일 (*.exe)|*.exe|모든 파일 (*.*)|*.*"; + openDialog.Title = "AGV MapEditor 실행 파일 선택"; + openDialog.InitialDirectory = Application.StartupPath; + + if (openDialog.ShowDialog() == DialogResult.OK) + { + mapEditorPath = openDialog.FileName; + } + else + { + return; // 사용자가 취소함 + } + } + } + + // MapEditor 실행 + var startInfo = new System.Diagnostics.ProcessStartInfo + { + FileName = mapEditorPath, + UseShellExecute = true + }; + + // 현재 로드된 맵 파일이 있으면 파라미터로 전달 + var _currentMapFilePath = PUB._mapCanvas.MapFileName; + if (!string.IsNullOrEmpty(_currentMapFilePath) && File.Exists(_currentMapFilePath)) + { + startInfo.Arguments = $"\"{_currentMapFilePath}\""; + } + + System.Diagnostics.Process.Start(startInfo); + } + catch (Exception ex) + { + MessageBox.Show($"MapEditor를 실행할 수 없습니다:\n{ex.Message}", "오류", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void xbeeSettingToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fXbeeSetting(); + f.Show(); + } + } +} diff --git a/Cs_HMI/Project/fMain.resx b/HMI/Project/fMain.resx similarity index 98% rename from Cs_HMI/Project/fMain.resx rename to HMI/Project/fMain.resx index ca93129..ba5941e 100644 --- a/Cs_HMI/Project/fMain.resx +++ b/HMI/Project/fMain.resx @@ -1,581 +1,581 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 124, 17 - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAA2xJREFUWEfV - l01IVFEUx1+fFEQQVASVRBFREYVGVKvCaldEYIsQWgQRmNgyClxkRQTZok0fRknYx1BoQaugiQKZRp0Z - x2bbh5HtjMJIzZp+53oc38cd51Yk9Ic/955zz/mfM/e9d98b779GZ2fnDKGak4eurq7V8AnFvwtlLj5d - /rdIJBJLKNoHX8OMUuZ9sqZh/w7t7e2z8/n8VDULEJ+sqfl7oPsGeFBNK6QAMbs6Ojou6vbLL+9VZvQy - NLK+09agH8QcIueUmuaa3sd5Rc0IWK8g4RXMO7IHlmt6BKxdlZpqmgLXaeCumgEQXAY/QVuhidifTCaX - qkwArN2DTWqaLTmDI6FmAPjPQVsBF55VmQDwv4QNahrHXvgNRp5pfK3QJu7CVpUpAJ+cHYP86D3q8rzu - 7u6FOOV53q2uAvC3QJu4C1tUpgApjH84lUotUNco5B6ggWfcwVPUZUCw7E4ajkBbkWIcQu+wyhiIttRg - 7ba6xsENs5aFr7BeXV4ul5uJPV/nc+i6kkZP4mtGSB7FBHzB/CHjDcbTjFXErIrH49ONiA+s1cMBdNao - KwgE9hMgx2sb8xrGz1B+zTsYg3UkbwlvnzTKD1iEfz151TRwntjHMMf8FuMBxkeMw7BK0+wgcJMGy26E - tzXMfjgQ8tkoMW00uFHLlAYJF3wCf0W5NCrrDpIu2cT+hGg1qqwdmUxmMdu+3E8SXR6/H0rbmp8tYX2p - aYpj7LAkuLJOaVsrSe6JSi8Wi03jDt7ANlX4SWNyJ1sTx0hctdC25qdo+bWFUlNqm12wgcTtYaEwpbjQ - tuYnDWxTWXdwkMwieewcsNKxgS+ipbLuIFFewymfUISODYhGmcqWBtdmKwlx+BPKCSijTdi1gQ9QNJ4S - u1nL2EHACQJHuGZyfK5T32XmNmGXBm6KBmM5cXcY5YV2XHwRUPQoi4ME7lOXAV+6c/G/gZECJRrozWaz - 81TGAF8VHIJH1DUKebnglLO/Vl0B0JwcTG9hoMgEDbxPp9MrNT0A4o+xLu8G85Y1wKiF8q1f9F8OgstI - ThJTKFSkgefSsKZFoK/4j+TVqMs00IRj/Cu1COQdj7h8UmelWKiBHpmHP2hsQOMB8dfUNA00w8KHiAuI - XyHnuVDm6naC1JKaanrmONbppEB2abJrFoHn/QK21s0ynEiLrwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAb9JREFUWEft - lr8vBEEUxxchEST8ARIkOo1KqFwpUQgKdFRKKoVG+AtUSirFSkiuVCk2m9zt7e7dJtcIkVxFcK4QCYld - 3517e9ZkHGLfRuEln8zsvLf7/e7M7A/tP8rlckehUFgCG03IUHnygYsfgeALfMuy5uiUZAMXf5bEPqOa - y+UG6bTkQiHUjCq4/CU2ZnOK5H9sICkedF1vUxnwgQuOgc6JYRg9soFbMBaOlUqlLs/z+jgJgqD1gwGs - yyIYQf8iGmOmBr2FyMCLaZqdaA/pOC1uIgMuzcYVHadFJTKw77puL9pwE8pFbGAJssKAbdtraDPxZErs - CANwMgnWpSQ70JwPDfjhY4H2IJ5MAyz7sNh4tAGL8WQKPIp3ATon9En+7kcpETD9ZnjjGjpbYFRVxMye - MIDODAysSMk0WBUGsBEGcLArJdlxHGdcGMBGaMF74ExVxMgr9l13wwAGalIBN+dCPAys/5CigBud5DUN - 0z+rKGAFN71J8uIp2JYLuMFNT5O8WIKsqoiTfD7fT/JiBipyATP3JF0PDNxJBdycknQ9sB7LGHySiri4 - xvRPkPR7INEu/7Vy0PgT/juhaW/ZS5SxdhC40QAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAABAlJREFUWEft - V91vFFUU3wiC6AMBY0xIgb13ltJAjBoJMSF+BYkPIgkJH/ogxo8QP6ha1MDandn7qAkxmsiDoYkhJoUA - LyQYQwj1BfkPeFAeBLozszWh0PJR0XbX3296ZvbOfnVteewvOdmZc37nzJk7555zNzOP/4uqyTxQctWT - ZaO3Bq56L3D1+77n7C6Z7FPVvc88KLT7D991NvlF/WPg6b8g1RYyFhb1scCo58Vt7ghNbh0Cn6l7UCcy - RF8JMztwaRHothX0Hyz5Ofx+UvL05tDNrS8Z3Y1P8Zzvqn2w/QzbvxZ/wnf1OxIuE+Zzj3WcVOg5X1iB - KkFR/zRSyDlibonQZLNI5KTlS8kP93Utwe8IpOIb/bLQm8P39BskivN44DnbxdQxUDOvw3dMYlQR08TX - kD6hNWK4oNeA8LcQbwVGbxBTCpfM+kVXD65aRuG1qFMI3ewLiDEhseIXap8AjHHBVXxPvSbqBqA+eoXX - MiCSXwXbKYvXlp9hMcUkbidRJwg81Y+l/J7fE1vycBKwqI5e7s0txvW35AidL/NHwklLiwSKzhEhTAX9 - arWoIwSuU7ACXIPcs+5Z+VeTe1d9Oe2jzya6tDQmwC4Gww0SsHXOizoB3vI7K0BbwQ5y6VPdmVnAXTFi - urUtowf00iiojcBke5IgrvOxqBP8abIPwdauC8ZyZVYt2TdqWxwExbdF1Oj9Ly7kG4WeOg6bXckXOBM4 - A3D9m6Xn5xikD30lzMxA8bwpASrXzMoVosbKrHhY9Cnhw4WSkSQaOPQVSoTQ1R9C/03588cfEVUN053K - OYTl3yuqCC0TwEOFgqaTe7oZx07A73dWxnqszluinhlRIbnOntDTX8F5MgmOZWcSfDg+z0VLf48FyxlA - XwmDFc6+EnPa9ZeWGDZdy+E8GgdpI8P1S09gS34aczjARF0Dt0b9dikXVqv4LTiMrIfMJANRUAvoDb+K - 7XrT4oShTwhpQTOhPRq3tV3AphP3eAqbEpsTryvkRkEFfBHopyJ7Uf0g6jRgbJ6Ap38XCka0+oi1wJ6A - Vv11zGFbjnSwkSP0BCjuEwkXJytRpwFjswROcaAIJQU87IOYx8Ek6gZwlMc8FPNpUTcCBDuBeKknOFKF - kkJH49iojYhxR2LdbXugASFJoO7wMMYDitA6Bj7FTvjekhhToat2iak50BxeIhES8I3wmxfnacExi4NF - 6C3BA010Mq6tYgXJfCbm9vALam0p3/Oo3PJo9jYC3JVAlElsp1+iHYGjN/k8mHJ2IMH9nKLg2IfScXyG - HRJudpBj+ZAVtCNhwTFBCTN3yGlpEHLTflCdlCEDZZN9VtzuPzjrOQlZVFh2/C1T72JLvlp29RP82ya0 - eXSITOY/N4AkP6QQbUkAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAkNJREFUWEft - lU1LVFEYx6+F0KKXhRKR9QVSVxLoQqJoUdjCiAgl3CpKi/AjiGG0KVfRIiVoM34DC2Yzi7nz1sxiKkjQ - xahEazVfp98znYnT47nTmRgHIg/8OM88/3PO87/n3HsmOG7/TIvH46cymcxsNptN0Ue1EJ5Bq5nWuMai - c1D2ZNZM82+xWOxkOp3ugpsaFhxTBf7EHjv10LUWdEktU/Zny+VyfUxaUYscJcsY7K0UTyQSZ0isqQHN - oFQsFk8Hsi0OUThw5BqK1A7krBzCY/pWtDdaM+ybr+GtYOJ9o3kjtZ0GyPXI8WBkVGl78DyVSl0QPQzD - NkFiyaG9MGPsOZFEGoCP5J/Sf7NyG+Ru0Z+DJ7Bq8kIJs9PJZPIs/W1+b1haJLUMHIJxD3jKy8SftWbx - CROX6IdV3kk9BhbL5fIJxspZu3SbpIxlJ947tN/wNsBi9wSX5oI179Lf13mNtwFoh3mViwSzrwuFwnmX - ZuNrYJctbfHZ0iqs+U7mEO9qzcZ7B+TGol/Q+RrEzA3r0n7hbYAx/fSPdD4Kxk/wxVxzaTb1GHgp3zjx - V605WDdP/0rlD+FtAHZ4ok7G3iDeUprNJlyHbtgxuUjqMSB84W/7Ikau8kKmHXrIWj0yhnhJaU7qNSCU - YMDc/Z34GBIoekVyrHUH3b6ia/I3Bqp8gCmKjwgSQ95o3lQMEAxqoYkMBvl8voNgWwnN4Lu8L3J0cgwT - JLz/xxuA3JDjleLVRkI+nUmYOWKkRrcpe9z++xYEPwDT4GdbjzYebAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAP5JREFUWEft - lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiBKfrrcIK3gDfSNTDZk2WQj65IQ9sFHZObtzCMkQc/J - qTdKkmQax/G1gQs4gVUYhhM+JkQ16rGHvKoZX2gXHyuFhg/eLXlFUbTmoxR+QzXJ04TPR0tRUTJpQYg9 - rge53oL/BDDAeoAjoHl1M60HEAsUvUpfiIqSyYTOA+gYeAC8njdciw+PyjP8Z8AFcAG6DdCH11BHDwPg - ts0VRiukaTrjtaWCIBih+ZDNFrjTLl5bVZZlY/y/24EzjMVDVMcTFEPpt8oj4Jlb2sHrzISBSwzMmQWX - nZx+lOd9AOxqphdZ7gKgAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAABHFJREFUWEe1 - mFtIXFcUhifk8pqSPORCSGn7VPIcaFpCA+lDSUjfpIRCI97vKN5vGUEUhEFFRGkfRBEVa0GtdzQ+WBE1 - EPRF0XhDJAreo45Dra78a7tncs6e7ajjnAUfnnPW2mv97r32uYzNXwsODv4iPDz8+8jIyN9BVERERBzO - Q8BPYWFh92SYtRYdHf01CueBd+AQkA/mQQWLlsMDZ0j6AMn/BqeJOIlR8Fym89+CgoKuIVER+E8mvij/ - xMTE3Jbpz2chISF3kYD/M13ii7CCHnssy5zNMOgbwD2gSxgI9tEGv8hyvg3Bd8CcYbBVuKKiop7IsnrL - y8u7gsB/lYFWshEaGvqlLO9tCMhVBlyI2NhYyszM1Prc4B72BqUvHSswGBrtKwQ41QGnkZ6eToODg1RU - VOTlKygoIKfTSTU1NV4+IxD1Usr4bLj4py74JBBPVVVVtLu7S2xtbW0mPwvlv/n5+bS9vS1ijX6F97jF - XJZSbDZM7U1cdClBJ5KVlUWTk5NCiNtUQUtLS9TX10doXCosLKS9vT0xzhhjxLTrcBKjC1LhWamtrSWX - yyVlfDZVUHJyMs3NzVF7e7s47+npoZGREVOMEWhoknKEoA5dUFxcHBUXF1NJSQmVl5fT/Py8LO9tbkH1 - 9fVi9hITEykjI0Msqd1up7S0NDo4OKCUlBSvOpKP4CrruYSDbYPDAxc5q7kF4QFMo6OjNDw8LM67u7up - t7dXHE9PT1N1dbUnvwom5iFv9fuqww0nOqsZlywhIUHMTE5Ojmjq9fV1cb2lpYUGBgY8cRpe8XZ/rHEI - /BXEDA0NUWNjo+i7w8NDsfy806ampkxxCnbe7s80DsFFBDU3N4tdxsebm5titrgfFxcXTXEKDssE8e7q - 7OwUx7zls7OzqbS0lGZnZ01xCg7Llmx8fFw0MPeTccnGxsZMcQp2S5qab4D7+/uUlJREFRUV4n7E13kJ - Ozo6PHEaXvnc9rzmExMTgpmZGVlab25BLIb7hHuIz3lG+GbKxysrK+RwODz5VcS2Z8NJu+rUUVZWRhsb - G1KC2dyCFhYWqLW1VeyuyspK8RzjZWMha2tr4lGi5pV4bowsKNrg8An3At/sjo6OpJRjU3uIZ3dnZ0f8 - EyyCm7murs4Uo/CXEMOGl6QbuHDmhyvDrxvLy8tSjllQQ0MDbW1tCTF83tXVJQT5mB2e0RdSzrHh4h9q - 0GnwCxg/NHkXNTU1ea7zErEvPj6e+vv7aXV1lVJTU01jFaZNrx9s/CoJx7lf0Bh+98HnjekaP+15lrip - +djoU8Hs/CplmA3ObDXYX7ipc3NztT6FXlne23jakOiNZpBVrIP7srze+MsSQbOGQVbB32Y/yrK+DcH8 - oWjlt5nTa1edZhjEH4zDhiSB4gO2/w+yzPkMg6+CAhCoHxua8TC/JdP7b0jyLaa4EQn9+jkGvTKC8T/L - dIEz/phE8tco8hb8byyqYQaUQ8gjOdxaQ7HrEPgdBP6Gou6f9IJx/JR/ypFh5zSb7RMJw7xfBlQNxwAA - AABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAlxJREFUWEfV - l81u00AUhcOrIMGqgg0sYEMFe1QE5QlQd63oug/QbstT0B2UVgEKgW1+7GxoWSAeghKJSgGF70bHlpnc - cYbW5edIn6LcuefesT0e263/Ur1e7/pgMHiZZdmB0e/327Cg4fMXzTdhUoUJbGj4/MVRP3cm8FTDzYiC - DyjcodkVhUoR/1RtLg41XMq8xDvUuq9QmjA+xDhW4RP+P55MJhdsjOt/i9h3jVUZ53l+w3Isl/9r8K0Y - g2UbmyubrQxhg3fwIYh55NR448THSWeCpF3H3Ai2dtQmLiZwkeTj0NwAo263e1lt6sVMV5wCZ+WRys+X - LaLIdTwV1GqrdJq0ij+GhQJM2yIDL2cKZ7Sn0mnidrrjFRJfOKK7Si1FfAmia8e2b6XOSnv7lu6Az/Cj - MIZ4zQtxpPc8j7C9wzawZ7DJQV6TbTr7ffBMv0DzvixRkVd7OSrsyzK99dpOgse2LFGR8yTwuFhPWf6B - CRDYCxMiZLJERc4w8MTYk2V6BhZgg+AOHIH3LChYkm1G1LDniOcxrOYh7Fgv6ynbrFjNtyvGkGNb7Uot - peZfg9yS2tswVOJGlINdb6P2tP/2RmQTwPTeK3ZKXltNlZ8vTue6U+SsrKp8vWxxkFy8yTTJCbvfVbWJ - i8ROYGySt2oTl1bzzG3ImjjgN+mVDF4FMSPtlcxE8rIZZBzRfEVDNsFFYt7DasytdlNpxUvNqBiDtJfS - QjZb2B0Oh5cUKkUxe2KGEzjScCnzWo3kI08VzV4EzW1vb/bDpE403HIm8Oc+zfQC8/c+TptTq/UT/J7v - URSJG9cAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAsRJREFUWEft - lz9TU0EUxdOovWKv9Golo59AsRMr0ELQRjsHO4n4CWD8A/oNUD9IZpKQxCYVIg1gKTYChejvvDmbbN57 - IS8gY8OZOZPHuefe3b27+xJKpzgKqtXqhdXV1Sv1ev0OHNezNIdPBgw0Cl8xWAv+6cNmo9GYZzKXnXZ8 - NJvNixR+A/ejgQZR3tdwxGWOBlZzgyLbLhq4g77C5xyfD0U/S9uxJ3Cbro253HAg8R4FdqNiX9Em+Txj - SwaKwSm4DkPeLpObsKUYSNDKO4Mz8Lt2u33W4YGQl7ylkA93C3fCe/49JJP4zKGhQf5sqAO3Ct0UjDpw - SRKdeGs5QZECaQ91lkM9FrNoOR8YRjGG074et53O3ETTIXtsKQPF5JHXUmltbe0c2jeomvuHXlEmoHse - ZjtpWYVHYDjhv2FmEtIck0fezhWkkw+siy8tZ0Hwi0076UPHhGbQwwAH8KlDebEnDiXgb92OH443LPdC - e2eD9n7Fcg+IxatMOpGn2d4D9E/2HFQqlfOWu2Dfrtmg9r+wnAHx9IADBxeIzdmnBV613AWD6kslGKYt - 5yLVcjHT9jScE+rfttyFxGCQ2XIu+kygcybyQM6j4GesW5a7+O9bEB9CJvDRcg+IHecQfrYn/xAKBJs2 - FbmGnT3PifVsh19GPxXHW7ecBa2ZdxFxyrIm9i9fRGXLWeg1ieEkXsUbUDX3Wq3WJYfygUm/ZMJslywn - SH/R5CHtocb7UI9OLFjuD4xqd/wraNahoUHu86jOZpEFJOCcjJEQ/xpaVisdHgh5We2HKP9XrVa77nAx - UGCCxHgSG2j307cjhmI+cGHPk8HR7toyHNyJraiYqOukL5YyhadFPVtLrlrEzaFXnob2jYksUmyYn+V7 - TGyh8J4XAcV0RbXSRjRQmoqVB16140KvUgbSv2bjop77vl5PcShKpb/SGsNeH5IytgAAAABJRU5ErkJg - gg== - - - - - iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAA5hJREFUaEPt - mvtTElEUx/3v+lea6X9oppnGV5LV+EABUSRG8f3gvaZGagaakuIDFdPR0nykaZqv0/1eASmuAstursbX - +fyye45zvnDv2XN3KMhLq3poefzgke2J/i6BmmPlXwk3rBNt1DHbeydArag5Vv6VcBEB3uW+OwFqzRvR - EnkjWiNvRA0axuxUM9x4I9aJVmGuZow4FjxU5jXS1Nr8jZR4aoT5mjFSNWSh8NoCpZPmjRS59HTB/qC1 - 3Q3htwE0beQ1Gy96Q/3cBMw8dVQJ9wfQ9B4p9dbSwfEhNxJanWUFW4VxN3HrRrrnXaQftHET0AupnpyL - HmHsTdy6kQp/Ay1sfuYmdg/3SddnFMal41aNeJYlKnbXcBNQc8BB9qkuYWw6ZBkxjNqoTDKk8Ixhn868 - EAt7APrCQ9zE2fk5M6UXxmWCLCNogSLtHx2wpWEQ5ogo9lTT0ckxzw1EQ2RiH5AoLhMUNQJV9lupJ+IW - 5iXTOesg07uWWBaRzmci15JPGJsJsowUsSXQNu5O0D7u4d8GNL8RpUq2gUV5ybwcMNPqzhees7G3ReVv - TMK4TJFlpCfiovaZ3gT1Y83UEnTzoqASdy15o6l5cdxLEpV6DLFoosaRTmoL9whjM0WWERGFrmq2Yc94 - Yf2zo9QQtAvjQF2gifyRII89ZTnXjR3ZoJgRI9uoI4sfL4s7O2Wf+PXFFTPTJywG8kcCZA42CeOyQTEj - 7qiPdGwMj8v6vpNaw90pcVhCFraU4sISQ+7fcdmimBGADbyyvc4L3PqxK9zAuPZ17xuPwZT7atCcEiMH - RY10zTnJ4LfzIqFyyfzH3ORm7fW5VBe7S7z9og0n/w+5KGoEYOMeHP/khYZW50ifNMliIvjAHnzQ8ekv - KvHmvsnjKG4k+WwBYZbCTIV7ha6qRGeTZobZiNKSki8XxY0AtOKLi8vTnvPTID8MYQbDUBhXumdNtqhi - BCe5yZUZXjBmKRycdJKRdg6/82uLmytU8Tb90z8bVDHiXPSyA5KZFw1hU+PAFJd+wManA1GuXFQxAtBm - N/e3eeFoszjCQmgEpT62rAQ5uaCakcsHXwcvPlloBGgIopxcUM0IwEEJbTZZmJzjXUxJVDWCV6BS7AQI - Ta9HqHoo+zckmaCqEbTXIqc+8XJN5zXxV6PC2BxR1wjDNtmWeLmGb0gUowSqG/lX5I1ojbwRrfF/GLkX - P+G4Nz+qyUsTKij4DaqNxnRXLBhpAAAAAElFTkSuQmCC - - - - 221, 17 - - - 84 - - - - AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqUeEVyo - H1Bbpx59W6gepVunH8xbqB7gW6gf7lqoH/1aqB/9W6gf7luoHuBaqB/LW6gepVunHn1apyBPX68fEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2n - ISZaqB+BW6cfzFunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1unH/xaqB/LWqgfgVypHCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA/vwAEW6keXFunHsZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cexlupHlw/vwAEAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAD+/AARaqR5lWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf3FqnHmM/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFynHjpapx7QW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gezluoHzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX58fCFqnHpVbpx/+W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfkUi2 - JAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUbJVunHs9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB7OWaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqgfQVun - HvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnHu9ZqSA/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqge91um - H1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAWqcfUlunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bpx/8W6YdTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXKYeQlunHvlbqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unHvhcph5CAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6kgJ1unHvBbqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//Zq4u/3CzPP9cqSH/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce8Fyp - HCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVKkcCVqn - HtBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9cqCD/u9uj//7+/f//////5PHa/3O1QP9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9apx/NSLYkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAFuoHpZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//k8Zr//////////////////// - ///P5r7/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmqHTxbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7bY - nP//////////////////////8fjt/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfOAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/AARbqB7RW6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1unHs9VqgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbqCBnW6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6geZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAA/vwAEWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo/////////////// - ////////9fry/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH9w/vwAEAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAXKgdXluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//WageWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHshbqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1unHsYAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhbqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo///////////////////////9fry/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//XKkcJAAAAAAAAAAAAAAAAAAA - AABaqB6EW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/+726P///////// - //////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qo - H4EAAAAAAAAAAAAAAAAAAAAAW6gezluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v///////////////////////////6nRif9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAFumH1FbqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////////////////////// - ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9apyBPAAAAAAAA - AABbpx+AW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// - ///2+vP/1+rJ//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6cefgAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D3 - 6v/////////////////2+vP/gLxS/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFuoHs5bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//X6ok/83lu/////////////// - ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAABapx7hW6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo - H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqce4QAA - AAAAAAAAW6ce8FuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1qnHu8AAAAAAAAAAFqoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// - ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// - ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/8AAAAAAAAAABaqB/9W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9gqyb/q9KM/3a2RP9bqB//W6gf/1uoH/9bqB//dbZC//D3 - 6v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1+qJP+o0Yj/e7lL/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/AAAAAAAAAAAW6ce8Fuo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//kMRn///////z+e7/erhJ/1uo - H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1+q - JP/O5bz//////9Dmv/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qn - Hu8AAAAAAAAAAFqnHuFbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7PX - l/////////////P57v97uUr/dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// - ////////qdGJ/1+qJP/O5bz////////////y+O3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9apx7hAAAAAAAAAABbqB7OW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH//W6cf/////////////////8/nu//D36v/////////////////2+vP/gLxS/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9fqiT/zeW7///////////////////////l8dv//////////////////////3K0P/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqgfywAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9dqSL/9/v0//////////////////////////////////// - ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv///////////////////////////////////////// - //+Uxm3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFun - H4BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//ebhH//////////////////// - ///////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// - ////////////////////////uNmd/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bpx5+AAAAAAAAAABapx9SW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/5vK - dv//////////////////////////////////////8fjt/3m4SP9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/12p - Iv/E4K7//////////////////////////////////////9rszf9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//WqcgTwAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/+/3af////////////////////////////////////////////x+O3/ebhI/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/12pIv/E4K7////////////////////////////////////////////6/Pj/X6ok/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAAAAAABapx7QW6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//4e/W//////////////////////////////////// - //////////////H47f91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH//C36z///////////////////////////////////////// - /////////////3y5TP9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH8wAAAAAAAAAAAAA - AAAAAAAAWqgehVuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Yqwp//3+/P////////////// - ////////////////////////////////////////ptCG/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9hqyj//P37//////////////////// - //////////////////////////////////+gzX3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9aqB+CAAAAAAAAAAAAAAAAAAAAAF2nHylbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/4O9 - Vf//////////////////////////////////////8ffs/87lvP+r043/iMBc/16pI/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/3W2 - Qv+gzX3/w9+t/+by3f/+//7/////////////////////////////////wd6r/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//WaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAWqcfyluoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/+Wx3D////////////5/Pf/2evL/7bYnP+Uxmz/cLM8/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Za0t/4nAXf+r043/zuW8//H47f///////////9jq - yf9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqcexwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqn - H2BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Xqoj/5DEaP97uUv/Xqkj/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//cLM8/5PGa/91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1upHlwAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA/vwAEW6ge31uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H90/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFuoH2pbqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9apx5mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqcf01uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx7PP78ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAFunHT1bpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+XKceOgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cel1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gflAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGayGQpbqB7RW6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gezl+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAWaUfKFunHvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6ce8F2nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcph5CW6ce+VuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+VymHkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHlVbpx/8W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FumH1EAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+Fum - HlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbpx5DWqce8luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//Wqge8VqoH0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhapx/TW6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6cez12nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAVKkcCVqnHphbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+W6cel1+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cdPVqnH9NbqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB7RWqgeOwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqYea1uo - Ht9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH95bqCBnP78ABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABmmTMFW6kgX1unHslbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqcex1up - IF8/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUfKFunHoZapx7QWqgf/Vuo - H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqgf/Vuo - Hs5aqB6EWaUfKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAF2uGhNapx9SW6cfgFunHqdapx/NW6ge4luoH+5bpx/+W6cf/luoH+5bqB7iWqcfzVun - Hqdbpx+AW6YfUV2uGhMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA//////////////8AAP//////+AAAH//////AAAAD/////wAAAAD////+AAAAAH////gAAAAA - H///8AAAAAAP///gAAAAAAf//8AAAAAAA///gAAAAAAB//8AAAAAAAD//gAAAAAAAH/8AAAAAAAAP/wA - AAAAAAA/+AAAAAAAAB/wAAAAAAAAD/AAAAAAAAAP4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAHwAAAAAAA - AAPAAAAAAAAAA8AAAAAAAAADgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA - AAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAA - AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAHAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AA - AAAAAAAH4AAAAAAAAAfwAAAAAAAAD/AAAAAAAAAP+AAAAAAAAB/8AAAAAAAAP/wAAAAAAAA//gAAAAAA - AH//AAAAAAAA//+AAAAAAAH//8AAAAAAA///4AAAAAAH///wAAAAAA////gAAAAAH////gAAAAB///// - AAAAAP/////AAAAD//////gAAB///////wAA//////////////8= - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 124, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAA2xJREFUWEfV + l01IVFEUx1+fFEQQVASVRBFREYVGVKvCaldEYIsQWgQRmNgyClxkRQTZok0fRknYx1BoQaugiQKZRp0Z + x2bbh5HtjMJIzZp+53oc38cd51Yk9Ic/955zz/mfM/e9d98b779GZ2fnDKGak4eurq7V8AnFvwtlLj5d + /rdIJBJLKNoHX8OMUuZ9sqZh/w7t7e2z8/n8VDULEJ+sqfl7oPsGeFBNK6QAMbs6Ojou6vbLL+9VZvQy + NLK+09agH8QcIueUmuaa3sd5Rc0IWK8g4RXMO7IHlmt6BKxdlZpqmgLXaeCumgEQXAY/QVuhidifTCaX + qkwArN2DTWqaLTmDI6FmAPjPQVsBF55VmQDwv4QNahrHXvgNRp5pfK3QJu7CVpUpAJ+cHYP86D3q8rzu + 7u6FOOV53q2uAvC3QJu4C1tUpgApjH84lUotUNco5B6ggWfcwVPUZUCw7E4ajkBbkWIcQu+wyhiIttRg + 7ba6xsENs5aFr7BeXV4ul5uJPV/nc+i6kkZP4mtGSB7FBHzB/CHjDcbTjFXErIrH49ONiA+s1cMBdNao + KwgE9hMgx2sb8xrGz1B+zTsYg3UkbwlvnzTKD1iEfz151TRwntjHMMf8FuMBxkeMw7BK0+wgcJMGy26E + tzXMfjgQ8tkoMW00uFHLlAYJF3wCf0W5NCrrDpIu2cT+hGg1qqwdmUxmMdu+3E8SXR6/H0rbmp8tYX2p + aYpj7LAkuLJOaVsrSe6JSi8Wi03jDt7ANlX4SWNyJ1sTx0hctdC25qdo+bWFUlNqm12wgcTtYaEwpbjQ + tuYnDWxTWXdwkMwieewcsNKxgS+ipbLuIFFewymfUISODYhGmcqWBtdmKwlx+BPKCSijTdi1gQ9QNJ4S + u1nL2EHACQJHuGZyfK5T32XmNmGXBm6KBmM5cXcY5YV2XHwRUPQoi4ME7lOXAV+6c/G/gZECJRrozWaz + 81TGAF8VHIJH1DUKebnglLO/Vl0B0JwcTG9hoMgEDbxPp9MrNT0A4o+xLu8G85Y1wKiF8q1f9F8OgstI + ThJTKFSkgefSsKZFoK/4j+TVqMs00IRj/Cu1COQdj7h8UmelWKiBHpmHP2hsQOMB8dfUNA00w8KHiAuI + XyHnuVDm6naC1JKaanrmONbppEB2abJrFoHn/QK21s0ynEiLrwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAb9JREFUWEft + lr8vBEEUxxchEST8ARIkOo1KqFwpUQgKdFRKKoVG+AtUSirFSkiuVCk2m9zt7e7dJtcIkVxFcK4QCYld + 3517e9ZkHGLfRuEln8zsvLf7/e7M7A/tP8rlckehUFgCG03IUHnygYsfgeALfMuy5uiUZAMXf5bEPqOa + y+UG6bTkQiHUjCq4/CU2ZnOK5H9sICkedF1vUxnwgQuOgc6JYRg9soFbMBaOlUqlLs/z+jgJgqD1gwGs + yyIYQf8iGmOmBr2FyMCLaZqdaA/pOC1uIgMuzcYVHadFJTKw77puL9pwE8pFbGAJssKAbdtraDPxZErs + CANwMgnWpSQ70JwPDfjhY4H2IJ5MAyz7sNh4tAGL8WQKPIp3ATon9En+7kcpETD9ZnjjGjpbYFRVxMye + MIDODAysSMk0WBUGsBEGcLArJdlxHGdcGMBGaMF74ExVxMgr9l13wwAGalIBN+dCPAys/5CigBud5DUN + 0z+rKGAFN71J8uIp2JYLuMFNT5O8WIKsqoiTfD7fT/JiBipyATP3JF0PDNxJBdycknQ9sB7LGHySiri4 + xvRPkPR7INEu/7Vy0PgT/juhaW/ZS5SxdhC40QAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAABAlJREFUWEft + V91vFFUU3wiC6AMBY0xIgb13ltJAjBoJMSF+BYkPIgkJH/ogxo8QP6ha1MDandn7qAkxmsiDoYkhJoUA + LyQYQwj1BfkPeFAeBLozszWh0PJR0XbX3296ZvbOfnVteewvOdmZc37nzJk7555zNzOP/4uqyTxQctWT + ZaO3Bq56L3D1+77n7C6Z7FPVvc88KLT7D991NvlF/WPg6b8g1RYyFhb1scCo58Vt7ghNbh0Cn6l7UCcy + RF8JMztwaRHothX0Hyz5Ofx+UvL05tDNrS8Z3Y1P8Zzvqn2w/QzbvxZ/wnf1OxIuE+Zzj3WcVOg5X1iB + KkFR/zRSyDlibonQZLNI5KTlS8kP93Utwe8IpOIb/bLQm8P39BskivN44DnbxdQxUDOvw3dMYlQR08TX + kD6hNWK4oNeA8LcQbwVGbxBTCpfM+kVXD65aRuG1qFMI3ewLiDEhseIXap8AjHHBVXxPvSbqBqA+eoXX + MiCSXwXbKYvXlp9hMcUkbidRJwg81Y+l/J7fE1vycBKwqI5e7s0txvW35AidL/NHwklLiwSKzhEhTAX9 + arWoIwSuU7ACXIPcs+5Z+VeTe1d9Oe2jzya6tDQmwC4Gww0SsHXOizoB3vI7K0BbwQ5y6VPdmVnAXTFi + urUtowf00iiojcBke5IgrvOxqBP8abIPwdauC8ZyZVYt2TdqWxwExbdF1Oj9Ly7kG4WeOg6bXckXOBM4 + A3D9m6Xn5xikD30lzMxA8bwpASrXzMoVosbKrHhY9Cnhw4WSkSQaOPQVSoTQ1R9C/03588cfEVUN053K + OYTl3yuqCC0TwEOFgqaTe7oZx07A73dWxnqszluinhlRIbnOntDTX8F5MgmOZWcSfDg+z0VLf48FyxlA + XwmDFc6+EnPa9ZeWGDZdy+E8GgdpI8P1S09gS34aczjARF0Dt0b9dikXVqv4LTiMrIfMJANRUAvoDb+K + 7XrT4oShTwhpQTOhPRq3tV3AphP3eAqbEpsTryvkRkEFfBHopyJ7Uf0g6jRgbJ6Ap38XCka0+oi1wJ6A + Vv11zGFbjnSwkSP0BCjuEwkXJytRpwFjswROcaAIJQU87IOYx8Ek6gZwlMc8FPNpUTcCBDuBeKknOFKF + kkJH49iojYhxR2LdbXugASFJoO7wMMYDitA6Bj7FTvjekhhToat2iak50BxeIhES8I3wmxfnacExi4NF + 6C3BA010Mq6tYgXJfCbm9vALam0p3/Oo3PJo9jYC3JVAlElsp1+iHYGjN/k8mHJ2IMH9nKLg2IfScXyG + HRJudpBj+ZAVtCNhwTFBCTN3yGlpEHLTflCdlCEDZZN9VtzuPzjrOQlZVFh2/C1T72JLvlp29RP82ya0 + eXSITOY/N4AkP6QQbUkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAkNJREFUWEft + lU1LVFEYx6+F0KKXhRKR9QVSVxLoQqJoUdjCiAgl3CpKi/AjiGG0KVfRIiVoM34DC2Yzi7nz1sxiKkjQ + xahEazVfp98znYnT47nTmRgHIg/8OM88/3PO87/n3HsmOG7/TIvH46cymcxsNptN0Ue1EJ5Bq5nWuMai + c1D2ZNZM82+xWOxkOp3ugpsaFhxTBf7EHjv10LUWdEktU/Zny+VyfUxaUYscJcsY7K0UTyQSZ0isqQHN + oFQsFk8Hsi0OUThw5BqK1A7krBzCY/pWtDdaM+ybr+GtYOJ9o3kjtZ0GyPXI8WBkVGl78DyVSl0QPQzD + NkFiyaG9MGPsOZFEGoCP5J/Sf7NyG+Ru0Z+DJ7Bq8kIJs9PJZPIs/W1+b1haJLUMHIJxD3jKy8SftWbx + CROX6IdV3kk9BhbL5fIJxspZu3SbpIxlJ947tN/wNsBi9wSX5oI179Lf13mNtwFoh3mViwSzrwuFwnmX + ZuNrYJctbfHZ0iqs+U7mEO9qzcZ7B+TGol/Q+RrEzA3r0n7hbYAx/fSPdD4Kxk/wxVxzaTb1GHgp3zjx + V605WDdP/0rlD+FtAHZ4ok7G3iDeUprNJlyHbtgxuUjqMSB84W/7Ikau8kKmHXrIWj0yhnhJaU7qNSCU + YMDc/Z34GBIoekVyrHUH3b6ia/I3Bqp8gCmKjwgSQ95o3lQMEAxqoYkMBvl8voNgWwnN4Lu8L3J0cgwT + JLz/xxuA3JDjleLVRkI+nUmYOWKkRrcpe9z++xYEPwDT4GdbjzYebAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAP5JREFUWEft + lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiBKfrrcIK3gDfSNTDZk2WQj65IQ9sFHZObtzCMkQc/J + qTdKkmQax/G1gQs4gVUYhhM+JkQ16rGHvKoZX2gXHyuFhg/eLXlFUbTmoxR+QzXJ04TPR0tRUTJpQYg9 + rge53oL/BDDAeoAjoHl1M60HEAsUvUpfiIqSyYTOA+gYeAC8njdciw+PyjP8Z8AFcAG6DdCH11BHDwPg + ts0VRiukaTrjtaWCIBih+ZDNFrjTLl5bVZZlY/y/24EzjMVDVMcTFEPpt8oj4Jlb2sHrzISBSwzMmQWX + nZx+lOd9AOxqphdZ7gKgAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAABHFJREFUWEe1 + mFtIXFcUhifk8pqSPORCSGn7VPIcaFpCA+lDSUjfpIRCI97vKN5vGUEUhEFFRGkfRBEVa0GtdzQ+WBE1 + EPRF0XhDJAreo45Dra78a7tncs6e7ajjnAUfnnPW2mv97r32uYzNXwsODv4iPDz8+8jIyN9BVERERBzO + Q8BPYWFh92SYtRYdHf01CueBd+AQkA/mQQWLlsMDZ0j6AMn/BqeJOIlR8Fym89+CgoKuIVER+E8mvij/ + xMTE3Jbpz2chISF3kYD/M13ii7CCHnssy5zNMOgbwD2gSxgI9tEGv8hyvg3Bd8CcYbBVuKKiop7IsnrL + y8u7gsB/lYFWshEaGvqlLO9tCMhVBlyI2NhYyszM1Prc4B72BqUvHSswGBrtKwQ41QGnkZ6eToODg1RU + VOTlKygoIKfTSTU1NV4+IxD1Usr4bLj4py74JBBPVVVVtLu7S2xtbW0mPwvlv/n5+bS9vS1ijX6F97jF + XJZSbDZM7U1cdClBJ5KVlUWTk5NCiNtUQUtLS9TX10doXCosLKS9vT0xzhhjxLTrcBKjC1LhWamtrSWX + yyVlfDZVUHJyMs3NzVF7e7s47+npoZGREVOMEWhoknKEoA5dUFxcHBUXF1NJSQmVl5fT/Py8LO9tbkH1 + 9fVi9hITEykjI0Msqd1up7S0NDo4OKCUlBSvOpKP4CrruYSDbYPDAxc5q7kF4QFMo6OjNDw8LM67u7up + t7dXHE9PT1N1dbUnvwom5iFv9fuqww0nOqsZlywhIUHMTE5Ojmjq9fV1cb2lpYUGBgY8cRpe8XZ/rHEI + /BXEDA0NUWNjo+i7w8NDsfy806ampkxxCnbe7s80DsFFBDU3N4tdxsebm5titrgfFxcXTXEKDssE8e7q + 7OwUx7zls7OzqbS0lGZnZ01xCg7Llmx8fFw0MPeTccnGxsZMcQp2S5qab4D7+/uUlJREFRUV4n7E13kJ + Ozo6PHEaXvnc9rzmExMTgpmZGVlab25BLIb7hHuIz3lG+GbKxysrK+RwODz5VcS2Z8NJu+rUUVZWRhsb + G1KC2dyCFhYWqLW1VeyuyspK8RzjZWMha2tr4lGi5pV4bowsKNrg8An3At/sjo6OpJRjU3uIZ3dnZ0f8 + EyyCm7murs4Uo/CXEMOGl6QbuHDmhyvDrxvLy8tSjllQQ0MDbW1tCTF83tXVJQT5mB2e0RdSzrHh4h9q + 0GnwCxg/NHkXNTU1ea7zErEvPj6e+vv7aXV1lVJTU01jFaZNrx9s/CoJx7lf0Bh+98HnjekaP+15lrip + +djoU8Hs/CplmA3ObDXYX7ipc3NztT6FXlne23jakOiNZpBVrIP7srze+MsSQbOGQVbB32Y/yrK+DcH8 + oWjlt5nTa1edZhjEH4zDhiSB4gO2/w+yzPkMg6+CAhCoHxua8TC/JdP7b0jyLaa4EQn9+jkGvTKC8T/L + dIEz/phE8tco8hb8byyqYQaUQ8gjOdxaQ7HrEPgdBP6Gou6f9IJx/JR/ypFh5zSb7RMJw7xfBlQNxwAA + AABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAlxJREFUWEfV + l81u00AUhcOrIMGqgg0sYEMFe1QE5QlQd63oug/QbstT0B2UVgEKgW1+7GxoWSAeghKJSgGF70bHlpnc + cYbW5edIn6LcuefesT0e263/Ur1e7/pgMHiZZdmB0e/327Cg4fMXzTdhUoUJbGj4/MVRP3cm8FTDzYiC + DyjcodkVhUoR/1RtLg41XMq8xDvUuq9QmjA+xDhW4RP+P55MJhdsjOt/i9h3jVUZ53l+w3Isl/9r8K0Y + g2UbmyubrQxhg3fwIYh55NR448THSWeCpF3H3Ai2dtQmLiZwkeTj0NwAo263e1lt6sVMV5wCZ+WRys+X + LaLIdTwV1GqrdJq0ij+GhQJM2yIDL2cKZ7Sn0mnidrrjFRJfOKK7Si1FfAmia8e2b6XOSnv7lu6Az/Cj + MIZ4zQtxpPc8j7C9wzawZ7DJQV6TbTr7ffBMv0DzvixRkVd7OSrsyzK99dpOgse2LFGR8yTwuFhPWf6B + CRDYCxMiZLJERc4w8MTYk2V6BhZgg+AOHIH3LChYkm1G1LDniOcxrOYh7Fgv6ynbrFjNtyvGkGNb7Uot + peZfg9yS2tswVOJGlINdb6P2tP/2RmQTwPTeK3ZKXltNlZ8vTue6U+SsrKp8vWxxkFy8yTTJCbvfVbWJ + i8ROYGySt2oTl1bzzG3ImjjgN+mVDF4FMSPtlcxE8rIZZBzRfEVDNsFFYt7DasytdlNpxUvNqBiDtJfS + QjZb2B0Oh5cUKkUxe2KGEzjScCnzWo3kI08VzV4EzW1vb/bDpE403HIm8Oc+zfQC8/c+TptTq/UT/J7v + URSJG9cAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAsRJREFUWEft + lz9TU0EUxdOovWKv9Golo59AsRMr0ELQRjsHO4n4CWD8A/oNUD9IZpKQxCYVIg1gKTYChejvvDmbbN57 + IS8gY8OZOZPHuefe3b27+xJKpzgKqtXqhdXV1Sv1ev0OHNezNIdPBgw0Cl8xWAv+6cNmo9GYZzKXnXZ8 + NJvNixR+A/ejgQZR3tdwxGWOBlZzgyLbLhq4g77C5xyfD0U/S9uxJ3Cbro253HAg8R4FdqNiX9Em+Txj + SwaKwSm4DkPeLpObsKUYSNDKO4Mz8Lt2u33W4YGQl7ylkA93C3fCe/49JJP4zKGhQf5sqAO3Ct0UjDpw + SRKdeGs5QZECaQ91lkM9FrNoOR8YRjGG074et53O3ETTIXtsKQPF5JHXUmltbe0c2jeomvuHXlEmoHse + ZjtpWYVHYDjhv2FmEtIck0fezhWkkw+siy8tZ0Hwi0076UPHhGbQwwAH8KlDebEnDiXgb92OH443LPdC + e2eD9n7Fcg+IxatMOpGn2d4D9E/2HFQqlfOWu2Dfrtmg9r+wnAHx9IADBxeIzdmnBV613AWD6kslGKYt + 5yLVcjHT9jScE+rfttyFxGCQ2XIu+kygcybyQM6j4GesW5a7+O9bEB9CJvDRcg+IHecQfrYn/xAKBJs2 + FbmGnT3PifVsh19GPxXHW7ecBa2ZdxFxyrIm9i9fRGXLWeg1ieEkXsUbUDX3Wq3WJYfygUm/ZMJslywn + SH/R5CHtocb7UI9OLFjuD4xqd/wraNahoUHu86jOZpEFJOCcjJEQ/xpaVisdHgh5We2HKP9XrVa77nAx + UGCCxHgSG2j307cjhmI+cGHPk8HR7toyHNyJraiYqOukL5YyhadFPVtLrlrEzaFXnob2jYksUmyYn+V7 + TGyh8J4XAcV0RbXSRjRQmoqVB16140KvUgbSv2bjop77vl5PcShKpb/SGsNeH5IytgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAA5hJREFUaEPt + mvtTElEUx/3v+lea6X9oppnGV5LV+EABUSRG8f3gvaZGagaakuIDFdPR0nykaZqv0/1eASmuAstursbX + +fyye45zvnDv2XN3KMhLq3poefzgke2J/i6BmmPlXwk3rBNt1DHbeydArag5Vv6VcBEB3uW+OwFqzRvR + EnkjWiNvRA0axuxUM9x4I9aJVmGuZow4FjxU5jXS1Nr8jZR4aoT5mjFSNWSh8NoCpZPmjRS59HTB/qC1 + 3Q3htwE0beQ1Gy96Q/3cBMw8dVQJ9wfQ9B4p9dbSwfEhNxJanWUFW4VxN3HrRrrnXaQftHET0AupnpyL + HmHsTdy6kQp/Ay1sfuYmdg/3SddnFMal41aNeJYlKnbXcBNQc8BB9qkuYWw6ZBkxjNqoTDKk8Ixhn868 + EAt7APrCQ9zE2fk5M6UXxmWCLCNogSLtHx2wpWEQ5ogo9lTT0ckxzw1EQ2RiH5AoLhMUNQJV9lupJ+IW + 5iXTOesg07uWWBaRzmci15JPGJsJsowUsSXQNu5O0D7u4d8GNL8RpUq2gUV5ybwcMNPqzhees7G3ReVv + TMK4TJFlpCfiovaZ3gT1Y83UEnTzoqASdy15o6l5cdxLEpV6DLFoosaRTmoL9whjM0WWERGFrmq2Yc94 + Yf2zo9QQtAvjQF2gifyRII89ZTnXjR3ZoJgRI9uoI4sfL4s7O2Wf+PXFFTPTJywG8kcCZA42CeOyQTEj + 7qiPdGwMj8v6vpNaw90pcVhCFraU4sISQ+7fcdmimBGADbyyvc4L3PqxK9zAuPZ17xuPwZT7atCcEiMH + RY10zTnJ4LfzIqFyyfzH3ORm7fW5VBe7S7z9og0n/w+5KGoEYOMeHP/khYZW50ifNMliIvjAHnzQ8ekv + KvHmvsnjKG4k+WwBYZbCTIV7ha6qRGeTZobZiNKSki8XxY0AtOKLi8vTnvPTID8MYQbDUBhXumdNtqhi + BCe5yZUZXjBmKRycdJKRdg6/82uLmytU8Tb90z8bVDHiXPSyA5KZFw1hU+PAFJd+wManA1GuXFQxAtBm + N/e3eeFoszjCQmgEpT62rAQ5uaCakcsHXwcvPlloBGgIopxcUM0IwEEJbTZZmJzjXUxJVDWCV6BS7AQI + Ta9HqHoo+zckmaCqEbTXIqc+8XJN5zXxV6PC2BxR1wjDNtmWeLmGb0gUowSqG/lX5I1ojbwRrfF/GLkX + P+G4Nz+qyUsTKij4DaqNxnRXLBhpAAAAAElFTkSuQmCC + + + + 221, 17 + + + 84 + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqUeEVyo + H1Bbpx59W6gepVunH8xbqB7gW6gf7lqoH/1aqB/9W6gf7luoHuBaqB/LW6gepVunHn1apyBPX68fEAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2n + ISZaqB+BW6cfzFunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unH/xaqB/LWqgfgVypHCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEW6keXFunHsZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cexlupHlw/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD+/AARaqR5lWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf3FqnHmM/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFynHjpapx7QW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gezluoHzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX58fCFqnHpVbpx/+W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfkUi2 + JAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUbJVunHs9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB7OWaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqgfQVun + HvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnHu9ZqSA/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqge91um + H1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWqcfUlunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bpx/8W6YdTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXKYeQlunHvlbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unHvhcph5CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6kgJ1unHvBbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//Zq4u/3CzPP9cqSH/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce8Fyp + HCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVKkcCVqn + HtBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9cqCD/u9uj//7+/f//////5PHa/3O1QP9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx/NSLYkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFuoHpZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//k8Zr//////////////////// + ///P5r7/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmqHTxbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7bY + nP//////////////////////8fjt/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfOAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/AARbqB7RW6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unHs9VqgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbqCBnW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6geZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo/////////////// + ////////9fry/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH9w/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXKgdXluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//WageWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHshbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unHsYAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo///////////////////////9fry/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//XKkcJAAAAAAAAAAAAAAAAAAA + AABaqB6EW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/+726P///////// + //////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qo + H4EAAAAAAAAAAAAAAAAAAAAAW6gezluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v///////////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAFumH1FbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////////////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9apyBPAAAAAAAA + AABbpx+AW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/1+rJ//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6cefgAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFuoHs5bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAABapx7hW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqce4QAA + AAAAAAAAW6ce8FuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1qnHu8AAAAAAAAAAFqoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/8AAAAAAAAAABaqB/9W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9gqyb/q9KM/3a2RP9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1+qJP+o0Yj/e7lL/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/AAAAAAAAAAAW6ce8Fuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//kMRn///////z+e7/erhJ/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1+q + JP/O5bz//////9Dmv/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qn + Hu8AAAAAAAAAAFqnHuFbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7PX + l/////////////P57v97uUr/dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1+qJP/O5bz////////////y+O3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx7hAAAAAAAAAABbqB7OW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH//W6cf/////////////////8/nu//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7///////////////////////l8dv//////////////////////3K0P/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqgfywAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9dqSL/9/v0//////////////////////////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv///////////////////////////////////////// + //+Uxm3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFun + H4BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//ebhH//////////////////// + ///////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////////////////////uNmd/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bpx5+AAAAAAAAAABapx9SW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/5vK + dv//////////////////////////////////////8fjt/3m4SP9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/12p + Iv/E4K7//////////////////////////////////////9rszf9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WqcgTwAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+/3af////////////////////////////////////////////x+O3/ebhI/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/12pIv/E4K7////////////////////////////////////////////6/Pj/X6ok/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAAAAAABapx7QW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//4e/W//////////////////////////////////// + //////////////H47f91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH//C36z///////////////////////////////////////// + /////////////3y5TP9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH8wAAAAAAAAAAAAA + AAAAAAAAWqgehVuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Yqwp//3+/P////////////// + ////////////////////////////////////////ptCG/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9hqyj//P37//////////////////// + //////////////////////////////////+gzX3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9aqB+CAAAAAAAAAAAAAAAAAAAAAF2nHylbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/4O9 + Vf//////////////////////////////////////8ffs/87lvP+r043/iMBc/16pI/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/3W2 + Qv+gzX3/w9+t/+by3f/+//7/////////////////////////////////wd6r/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAWqcfyluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+Wx3D////////////5/Pf/2evL/7bYnP+Uxmz/cLM8/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Za0t/4nAXf+r043/zuW8//H47f///////////9jq + yf9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqcexwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqn + H2BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Xqoj/5DEaP97uUv/Xqkj/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//cLM8/5PGa/91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1upHlwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA/vwAEW6ge31uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H90/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFuoH2pbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx5mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqcf01uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx7PP78ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFunHT1bpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+XKceOgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cel1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gflAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGayGQpbqB7RW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gezl+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWaUfKFunHvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6ce8F2nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcph5CW6ce+VuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+VymHkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHlVbpx/8W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FumH1EAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+Fum + HlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbpx5DWqce8luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//Wqge8VqoH0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhapx/TW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6cez12nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAVKkcCVqnHphbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+W6cel1+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cdPVqnH9NbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB7RWqgeOwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqYea1uo + Ht9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH95bqCBnP78ABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABmmTMFW6kgX1unHslbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqcex1up + IF8/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUfKFunHoZapx7QWqgf/Vuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqgf/Vuo + Hs5aqB6EWaUfKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF2uGhNapx9SW6cfgFunHqdapx/NW6ge4luoH+5bpx/+W6cf/luoH+5bqB7iWqcfzVun + Hqdbpx+AW6YfUV2uGhMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA//////////////8AAP//////+AAAH//////AAAAD/////wAAAAD////+AAAAAH////gAAAAA + H///8AAAAAAP///gAAAAAAf//8AAAAAAA///gAAAAAAB//8AAAAAAAD//gAAAAAAAH/8AAAAAAAAP/wA + AAAAAAA/+AAAAAAAAB/wAAAAAAAAD/AAAAAAAAAP4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAHwAAAAAAA + AAPAAAAAAAAAA8AAAAAAAAADgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAA + AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAHAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AA + AAAAAAAH4AAAAAAAAAfwAAAAAAAAD/AAAAAAAAAP+AAAAAAAAB/8AAAAAAAAP/wAAAAAAAA//gAAAAAA + AH//AAAAAAAA//+AAAAAAAH//8AAAAAAA///4AAAAAAH///wAAAAAA////gAAAAAH////gAAAAB///// + AAAAAP/////AAAAD//////gAAB///////wAA//////////////8= + + \ No newline at end of file diff --git a/Cs_HMI/Project/fSetup.Designer.cs b/HMI/Project/fSetup.Designer.cs similarity index 98% rename from Cs_HMI/Project/fSetup.Designer.cs rename to HMI/Project/fSetup.Designer.cs index a607982..cca7a79 100644 --- a/Cs_HMI/Project/fSetup.Designer.cs +++ b/HMI/Project/fSetup.Designer.cs @@ -1,2820 +1,2820 @@ -namespace Project -{ - partial class fSetup - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSetup)); - this.label2 = new System.Windows.Forms.Label(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage6 = new System.Windows.Forms.TabPage(); - this.panel1 = new System.Windows.Forms.Panel(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.btAutoCharge = new arCtl.arLabel(); - this.btSpeaker = new arCtl.arLabel(); - this.btMusic = new arCtl.arLabel(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.button8 = new System.Windows.Forms.Button(); - this.vcGDS = new AGVControl.ValueSelect(); - this.label7 = new System.Windows.Forms.Label(); - this.vcXBID = new AGVControl.ValueSelect(); - this.tbagvchannel = new System.Windows.Forms.TextBox(); - this.tbagvpanid = new System.Windows.Forms.TextBox(); - this.tbagvaddr = new System.Windows.Forms.TextBox(); - this.button7 = new System.Windows.Forms.Button(); - this.label52 = new System.Windows.Forms.Label(); - this.button6 = new System.Windows.Forms.Button(); - this.button5 = new System.Windows.Forms.Button(); - this.label50 = new System.Windows.Forms.Label(); - this.label40 = new System.Windows.Forms.Label(); - this.label20 = new System.Windows.Forms.Label(); - this.label11 = new System.Windows.Forms.Label(); - this.label18 = new System.Windows.Forms.Label(); - this.label57 = new System.Windows.Forms.Label(); - this.label56 = new System.Windows.Forms.Label(); - this.label55 = new System.Windows.Forms.Label(); - this.label32 = new System.Windows.Forms.Label(); - this.label31 = new System.Windows.Forms.Label(); - this.label15 = new System.Windows.Forms.Label(); - this.label25 = new System.Windows.Forms.Label(); - this.vcSAD = new AGVControl.ValueSelect(); - this.vcSpeedDrive = new AGVControl.ValueSelect(); - this.vcSTT = new AGVControl.ValueSelect(); - this.vcSSK = new AGVControl.ValueSelect(); - this.vcSCK = new AGVControl.ValueSelect(); - this.vcpidDS = new AGVControl.ValueSelect(); - this.vcpidPS = new AGVControl.ValueSelect(); - this.vcpidIS = new AGVControl.ValueSelect(); - this.vcpidDL = new AGVControl.ValueSelect(); - this.vcpidDH = new AGVControl.ValueSelect(); - this.vcpidDM = new AGVControl.ValueSelect(); - this.vcpidIL = new AGVControl.ValueSelect(); - this.vcpidIH = new AGVControl.ValueSelect(); - this.vcpidIM = new AGVControl.ValueSelect(); - this.vcpidPL = new AGVControl.ValueSelect(); - this.vcpidPH = new AGVControl.ValueSelect(); - this.vcpidPM = new AGVControl.ValueSelect(); - this.vcSpeedR = new AGVControl.ValueSelect(); - this.vcSpeedH = new AGVControl.ValueSelect(); - this.vcSpeedS = new AGVControl.ValueSelect(); - this.vcSpeedL = new AGVControl.ValueSelect(); - this.vcSpeedM = new AGVControl.ValueSelect(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.button3 = new System.Windows.Forms.Button(); - this.label30 = new System.Windows.Forms.Label(); - this.label12 = new System.Windows.Forms.Label(); - this.button2 = new System.Windows.Forms.Button(); - this.tbBaudBAT = new System.Windows.Forms.ComboBox(); - this.tbportBMS = new System.Windows.Forms.TextBox(); - this.label27 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.tbBaudAGV = new System.Windows.Forms.ComboBox(); - this.tbPortAGV = new System.Windows.Forms.TextBox(); - this.label6 = new System.Windows.Forms.Label(); - this.btSelXbee = new System.Windows.Forms.Button(); - this.tbBaudXBE = new System.Windows.Forms.ComboBox(); - this.tbPortXBE = new System.Windows.Forms.TextBox(); - this.label5 = new System.Windows.Forms.Label(); - this.valIntervalBMS = new AGVControl.ValueSelect(); - this.valIntervalXBE = new AGVControl.ValueSelect(); - this.tabPage3 = new System.Windows.Forms.TabPage(); - this.label58 = new System.Windows.Forms.Label(); - this.label19 = new System.Windows.Forms.Label(); - this.label44 = new System.Windows.Forms.Label(); - this.label29 = new System.Windows.Forms.Label(); - this.label43 = new System.Windows.Forms.Label(); - this.label42 = new System.Windows.Forms.Label(); - this.label41 = new System.Windows.Forms.Label(); - this.label39 = new System.Windows.Forms.Label(); - this.label28 = new System.Windows.Forms.Label(); - this.label14 = new System.Windows.Forms.Label(); - this.label33 = new System.Windows.Forms.Label(); - this.label36 = new System.Windows.Forms.Label(); - this.label37 = new System.Windows.Forms.Label(); - this.label35 = new System.Windows.Forms.Label(); - this.label34 = new System.Windows.Forms.Label(); - this.label38 = new System.Windows.Forms.Label(); - this.label21 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.label9 = new System.Windows.Forms.Label(); - this.label26 = new System.Windows.Forms.Label(); - this.label23 = new System.Windows.Forms.Label(); - this.label24 = new System.Windows.Forms.Label(); - this.vcChargeStartLevel = new AGVControl.ValueSelect(); - this.vcChargeMaxLevel = new AGVControl.ValueSelect(); - this.vcChargeWaitSec = new AGVControl.ValueSelect(); - this.tbChargerID = new AGVControl.ValueSelect(); - this.vcChargeEmergencyLevel = new AGVControl.ValueSelect(); - this.vcChargeMaxTime = new AGVControl.ValueSelect(); - this.vcChargeRetryTerm = new AGVControl.ValueSelect(); - this.vcChargeSearchTime = new AGVControl.ValueSelect(); - this.tabPage4 = new System.Windows.Forms.TabPage(); - this.groupBox3 = new System.Windows.Forms.GroupBox(); - this.chkClearPos = new System.Windows.Forms.CheckBox(); - this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.tbMCID = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.chkDetectManualCharge = new System.Windows.Forms.CheckBox(); - this.chkFullScreen = new System.Windows.Forms.CheckBox(); - this.nudMusicVol = new System.Windows.Forms.NumericUpDown(); - this.label22 = new System.Windows.Forms.Label(); - this.linkLabel5 = new System.Windows.Forms.LinkLabel(); - this.linkLabel4 = new System.Windows.Forms.LinkLabel(); - this.linkLabel3 = new System.Windows.Forms.LinkLabel(); - this.tbMusic = new System.Windows.Forms.TextBox(); - this.label16 = new System.Windows.Forms.Label(); - this.nudDoorSoundTerm = new System.Windows.Forms.NumericUpDown(); - this.label3 = new System.Windows.Forms.Label(); - this.groupBox4 = new System.Windows.Forms.GroupBox(); - this.cleartime2 = new System.Windows.Forms.DateTimePicker(); - this.cleartime1 = new System.Windows.Forms.DateTimePicker(); - this.chkClear2 = new System.Windows.Forms.CheckBox(); - this.chkClear1 = new System.Windows.Forms.CheckBox(); - this.panel6 = new System.Windows.Forms.Panel(); - this.panTopMenu = new System.Windows.Forms.Panel(); - this.label10 = new System.Windows.Forms.Label(); - this.btClose = new arCtl.arLabel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.label8 = new System.Windows.Forms.Label(); - this.panel2 = new System.Windows.Forms.Panel(); - this.bt5 = new arCtl.arLabel(); - this.bt3 = new arCtl.arLabel(); - this.bt2 = new arCtl.arLabel(); - this.bt1 = new arCtl.arLabel(); - this.bt0 = new arCtl.arLabel(); - this.btSave = new arCtl.arLabel(); - this.tabControl1.SuspendLayout(); - this.tabPage6.SuspendLayout(); - this.panel1.SuspendLayout(); - this.tableLayoutPanel1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.tabPage3.SuspendLayout(); - this.tabPage4.SuspendLayout(); - this.groupBox3.SuspendLayout(); - this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudMusicVol)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDoorSoundTerm)).BeginInit(); - this.groupBox4.SuspendLayout(); - this.panTopMenu.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label2.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label2.Location = new System.Drawing.Point(76, 32); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(187, 24); - this.label2.TabIndex = 5; - this.label2.Text = "속도(저/중/고)"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tabControl1 - // - this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Right; - this.tabControl1.Controls.Add(this.tabPage6); - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Controls.Add(this.tabPage3); - this.tabControl1.Controls.Add(this.tabPage4); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(5, 142); - this.tabControl1.Multiline = true; - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(1270, 578); - this.tabControl1.TabIndex = 14; - // - // tabPage6 - // - this.tabPage6.Controls.Add(this.panel1); - this.tabPage6.Location = new System.Drawing.Point(4, 4); - this.tabPage6.Name = "tabPage6"; - this.tabPage6.Size = new System.Drawing.Size(1244, 570); - this.tabPage6.TabIndex = 6; - this.tabPage6.Text = "일반"; - this.tabPage6.UseVisualStyleBackColor = true; - // - // panel1 - // - this.panel1.Controls.Add(this.tableLayoutPanel1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.panel1.Size = new System.Drawing.Size(1244, 648); - this.panel1.TabIndex = 0; - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Controls.Add(this.btAutoCharge, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.btSpeaker, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.btMusic, 0, 1); - this.tableLayoutPanel1.Location = new System.Drawing.Point(17, 17); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 2; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(1227, 550); - this.tableLayoutPanel1.TabIndex = 24; - // - // btAutoCharge - // - this.btAutoCharge.BackColor = System.Drawing.Color.Lime; - this.btAutoCharge.BackColor2 = System.Drawing.Color.Green; - this.btAutoCharge.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btAutoCharge.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btAutoCharge.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.btAutoCharge.BorderSize = new System.Windows.Forms.Padding(2); - this.btAutoCharge.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btAutoCharge.Cursor = System.Windows.Forms.Cursors.Hand; - this.btAutoCharge.Dock = System.Windows.Forms.DockStyle.Fill; - this.btAutoCharge.Font = new System.Drawing.Font("맑은 고딕", 80F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btAutoCharge.ForeColor = System.Drawing.Color.White; - this.btAutoCharge.GradientEnable = true; - this.btAutoCharge.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btAutoCharge.GradientRepeatBG = false; - this.btAutoCharge.isButton = true; - this.btAutoCharge.Location = new System.Drawing.Point(616, 3); - this.btAutoCharge.MouseDownColor = System.Drawing.Color.Yellow; - this.btAutoCharge.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btAutoCharge.msg = null; - this.btAutoCharge.Name = "btAutoCharge"; - this.btAutoCharge.ProgressBorderColor = System.Drawing.Color.Black; - this.btAutoCharge.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btAutoCharge.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btAutoCharge.ProgressEnable = false; - this.btAutoCharge.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btAutoCharge.ProgressForeColor = System.Drawing.Color.Black; - this.btAutoCharge.ProgressMax = 100F; - this.btAutoCharge.ProgressMin = 0F; - this.btAutoCharge.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btAutoCharge.ProgressValue = 0F; - this.btAutoCharge.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btAutoCharge.Sign = ""; - this.btAutoCharge.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btAutoCharge.SignColor = System.Drawing.Color.Yellow; - this.btAutoCharge.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btAutoCharge.Size = new System.Drawing.Size(608, 269); - this.btAutoCharge.TabIndex = 20; - this.btAutoCharge.Tag = "1"; - this.btAutoCharge.Text = "자동충전"; - this.btAutoCharge.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btAutoCharge.TextShadow = true; - this.btAutoCharge.TextVisible = true; - this.btAutoCharge.Click += new System.EventHandler(this.btMagnet_Click); - // - // btSpeaker - // - this.btSpeaker.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); - this.btSpeaker.BackColor2 = System.Drawing.Color.Gray; - this.btSpeaker.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btSpeaker.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btSpeaker.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.btSpeaker.BorderSize = new System.Windows.Forms.Padding(2); - this.btSpeaker.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btSpeaker.Cursor = System.Windows.Forms.Cursors.Hand; - this.btSpeaker.Dock = System.Windows.Forms.DockStyle.Fill; - this.btSpeaker.Font = new System.Drawing.Font("맑은 고딕", 80F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btSpeaker.ForeColor = System.Drawing.Color.White; - this.btSpeaker.GradientEnable = true; - this.btSpeaker.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btSpeaker.GradientRepeatBG = false; - this.btSpeaker.isButton = true; - this.btSpeaker.Location = new System.Drawing.Point(3, 3); - this.btSpeaker.MouseDownColor = System.Drawing.Color.Yellow; - this.btSpeaker.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btSpeaker.msg = null; - this.btSpeaker.Name = "btSpeaker"; - this.btSpeaker.ProgressBorderColor = System.Drawing.Color.Black; - this.btSpeaker.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btSpeaker.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btSpeaker.ProgressEnable = false; - this.btSpeaker.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btSpeaker.ProgressForeColor = System.Drawing.Color.Black; - this.btSpeaker.ProgressMax = 100F; - this.btSpeaker.ProgressMin = 0F; - this.btSpeaker.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btSpeaker.ProgressValue = 0F; - this.btSpeaker.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btSpeaker.Sign = ""; - this.btSpeaker.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btSpeaker.SignColor = System.Drawing.Color.Yellow; - this.btSpeaker.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btSpeaker.Size = new System.Drawing.Size(607, 269); - this.btSpeaker.TabIndex = 11; - this.btSpeaker.Tag = "0"; - this.btSpeaker.Text = "음성지원"; - this.btSpeaker.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btSpeaker.TextShadow = true; - this.btSpeaker.TextVisible = true; - this.btSpeaker.Click += new System.EventHandler(this.btMagnet_Click); - // - // btMusic - // - this.btMusic.BackColor = System.Drawing.Color.Lime; - this.btMusic.BackColor2 = System.Drawing.Color.Green; - this.btMusic.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btMusic.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btMusic.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.btMusic.BorderSize = new System.Windows.Forms.Padding(2); - this.btMusic.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btMusic.Cursor = System.Windows.Forms.Cursors.Hand; - this.btMusic.Dock = System.Windows.Forms.DockStyle.Fill; - this.btMusic.Font = new System.Drawing.Font("맑은 고딕", 80F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btMusic.ForeColor = System.Drawing.Color.White; - this.btMusic.GradientEnable = true; - this.btMusic.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.btMusic.GradientRepeatBG = false; - this.btMusic.isButton = true; - this.btMusic.Location = new System.Drawing.Point(3, 278); - this.btMusic.MouseDownColor = System.Drawing.Color.Yellow; - this.btMusic.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btMusic.msg = null; - this.btMusic.Name = "btMusic"; - this.btMusic.ProgressBorderColor = System.Drawing.Color.Black; - this.btMusic.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btMusic.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btMusic.ProgressEnable = false; - this.btMusic.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btMusic.ProgressForeColor = System.Drawing.Color.Black; - this.btMusic.ProgressMax = 100F; - this.btMusic.ProgressMin = 0F; - this.btMusic.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btMusic.ProgressValue = 0F; - this.btMusic.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btMusic.Sign = ""; - this.btMusic.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btMusic.SignColor = System.Drawing.Color.Yellow; - this.btMusic.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btMusic.Size = new System.Drawing.Size(607, 269); - this.btMusic.TabIndex = 23; - this.btMusic.Tag = "2"; - this.btMusic.Text = "배경음악"; - this.btMusic.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btMusic.TextShadow = true; - this.btMusic.TextVisible = true; - this.btMusic.Click += new System.EventHandler(this.btMagnet_Click); - // - // tabPage1 - // - this.tabPage1.BackColor = System.Drawing.Color.Navy; - this.tabPage1.Controls.Add(this.button8); - this.tabPage1.Controls.Add(this.vcGDS); - this.tabPage1.Controls.Add(this.label7); - this.tabPage1.Controls.Add(this.vcXBID); - this.tabPage1.Controls.Add(this.tbagvchannel); - this.tabPage1.Controls.Add(this.tbagvpanid); - this.tabPage1.Controls.Add(this.tbagvaddr); - this.tabPage1.Controls.Add(this.button7); - this.tabPage1.Controls.Add(this.label52); - this.tabPage1.Controls.Add(this.button6); - this.tabPage1.Controls.Add(this.button5); - this.tabPage1.Controls.Add(this.label50); - this.tabPage1.Controls.Add(this.label40); - this.tabPage1.Controls.Add(this.label20); - this.tabPage1.Controls.Add(this.label11); - this.tabPage1.Controls.Add(this.label18); - this.tabPage1.Controls.Add(this.label57); - this.tabPage1.Controls.Add(this.label56); - this.tabPage1.Controls.Add(this.label55); - this.tabPage1.Controls.Add(this.label32); - this.tabPage1.Controls.Add(this.label31); - this.tabPage1.Controls.Add(this.label15); - this.tabPage1.Controls.Add(this.label25); - this.tabPage1.Controls.Add(this.label2); - this.tabPage1.Controls.Add(this.vcSAD); - this.tabPage1.Controls.Add(this.vcSpeedDrive); - this.tabPage1.Controls.Add(this.vcSTT); - this.tabPage1.Controls.Add(this.vcSSK); - this.tabPage1.Controls.Add(this.vcSCK); - this.tabPage1.Controls.Add(this.vcpidDS); - this.tabPage1.Controls.Add(this.vcpidPS); - this.tabPage1.Controls.Add(this.vcpidIS); - this.tabPage1.Controls.Add(this.vcpidDL); - this.tabPage1.Controls.Add(this.vcpidDH); - this.tabPage1.Controls.Add(this.vcpidDM); - this.tabPage1.Controls.Add(this.vcpidIL); - this.tabPage1.Controls.Add(this.vcpidIH); - this.tabPage1.Controls.Add(this.vcpidIM); - this.tabPage1.Controls.Add(this.vcpidPL); - this.tabPage1.Controls.Add(this.vcpidPH); - this.tabPage1.Controls.Add(this.vcpidPM); - this.tabPage1.Controls.Add(this.vcSpeedR); - this.tabPage1.Controls.Add(this.vcSpeedH); - this.tabPage1.Controls.Add(this.vcSpeedS); - this.tabPage1.Controls.Add(this.vcSpeedL); - this.tabPage1.Controls.Add(this.vcSpeedM); - this.tabPage1.Location = new System.Drawing.Point(4, 4); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(1244, 570); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "AGV"; - // - // button8 - // - this.button8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button8.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.button8.Location = new System.Drawing.Point(480, 509); - this.button8.Name = "button8"; - this.button8.Size = new System.Drawing.Size(147, 54); - this.button8.TabIndex = 82; - this.button8.Tag = "SCH"; - this.button8.Text = "TurnGDS"; - this.button8.UseVisualStyleBackColor = true; - this.button8.Click += new System.EventHandler(this.button8_Click); - // - // vcGDS - // - this.vcGDS.BackColorButton = System.Drawing.Color.White; - this.vcGDS.ButtonWidth = "30"; - this.vcGDS.ColorBorder = System.Drawing.Color.White; - this.vcGDS.DecimalPosition = ((ushort)(0)); - this.vcGDS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcGDS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcGDS.ForeColor = System.Drawing.Color.White; - this.vcGDS.ForeColorButton = System.Drawing.Color.Black; - this.vcGDS.Location = new System.Drawing.Point(633, 509); - this.vcGDS.MaxValue = 9999D; - this.vcGDS.MinValue = 0D; - this.vcGDS.Name = "vcGDS"; - this.vcGDS.NullDisplay = "--"; - this.vcGDS.SideButtonClickValue = 1D; - this.vcGDS.Size = new System.Drawing.Size(164, 54); - this.vcGDS.TabIndex = 80; - this.vcGDS.Tag = "SDH"; - this.vcGDS.Text = "1000"; - this.vcGDS.Value = 1000D; - this.vcGDS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label7.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label7.Location = new System.Drawing.Point(162, 524); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(101, 24); - this.label7.TabIndex = 79; - this.label7.Text = "Xbee ID"; - this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // vcXBID - // - this.vcXBID.BackColorButton = System.Drawing.Color.White; - this.vcXBID.ButtonWidth = "30"; - this.vcXBID.ColorBorder = System.Drawing.Color.White; - this.vcXBID.DecimalPosition = ((ushort)(0)); - this.vcXBID.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcXBID.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcXBID.ForeColor = System.Drawing.Color.White; - this.vcXBID.ForeColorButton = System.Drawing.Color.Black; - this.vcXBID.Location = new System.Drawing.Point(269, 509); - this.vcXBID.MaxValue = 9999D; - this.vcXBID.MinValue = 0D; - this.vcXBID.Name = "vcXBID"; - this.vcXBID.NullDisplay = "--"; - this.vcXBID.SideButtonClickValue = 1D; - this.vcXBID.Size = new System.Drawing.Size(164, 54); - this.vcXBID.TabIndex = 78; - this.vcXBID.Tag = "SDH"; - this.vcXBID.Text = "30"; - this.vcXBID.Value = 30D; - this.vcXBID.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - // - // tbagvchannel - // - this.tbagvchannel.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold); - this.tbagvchannel.Location = new System.Drawing.Point(975, 201); - this.tbagvchannel.Name = "tbagvchannel"; - this.tbagvchannel.Size = new System.Drawing.Size(164, 54); - this.tbagvchannel.TabIndex = 77; - this.tbagvchannel.Click += new System.EventHandler(this.tbagvaddr_Click); - // - // tbagvpanid - // - this.tbagvpanid.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold); - this.tbagvpanid.Location = new System.Drawing.Point(975, 141); - this.tbagvpanid.Name = "tbagvpanid"; - this.tbagvpanid.Size = new System.Drawing.Size(164, 54); - this.tbagvpanid.TabIndex = 76; - this.tbagvpanid.Click += new System.EventHandler(this.tbagvaddr_Click); - // - // tbagvaddr - // - this.tbagvaddr.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold); - this.tbagvaddr.Location = new System.Drawing.Point(975, 77); - this.tbagvaddr.Name = "tbagvaddr"; - this.tbagvaddr.Size = new System.Drawing.Size(164, 54); - this.tbagvaddr.TabIndex = 75; - this.tbagvaddr.Click += new System.EventHandler(this.tbagvaddr_Click); - // - // button7 - // - this.button7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button7.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.button7.Location = new System.Drawing.Point(1145, 77); - this.button7.Name = "button7"; - this.button7.Size = new System.Drawing.Size(93, 56); - this.button7.TabIndex = 74; - this.button7.Tag = "SAD"; - this.button7.Text = "SET"; - this.button7.UseVisualStyleBackColor = true; - this.button7.Click += new System.EventHandler(this.button7_Click); - // - // label52 - // - this.label52.AutoSize = true; - this.label52.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label52.ForeColor = System.Drawing.Color.Gray; - this.label52.Location = new System.Drawing.Point(868, 92); - this.label52.Name = "label52"; - this.label52.Size = new System.Drawing.Size(101, 24); - this.label52.TabIndex = 73; - this.label52.Text = "Address"; - this.label52.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // button6 - // - this.button6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button6.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.button6.Location = new System.Drawing.Point(1145, 197); - this.button6.Name = "button6"; - this.button6.Size = new System.Drawing.Size(93, 56); - this.button6.TabIndex = 71; - this.button6.Tag = "SCH"; - this.button6.Text = "SET"; - this.button6.UseVisualStyleBackColor = true; - this.button6.Click += new System.EventHandler(this.button6_Click); - // - // button5 - // - this.button5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button5.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.button5.Location = new System.Drawing.Point(1145, 137); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(93, 56); - this.button5.TabIndex = 70; - this.button5.Tag = "SPN"; - this.button5.Text = "SET"; - this.button5.UseVisualStyleBackColor = true; - this.button5.Click += new System.EventHandler(this.button5_Click); - // - // label50 - // - this.label50.AutoSize = true; - this.label50.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label50.ForeColor = System.Drawing.Color.Gray; - this.label50.Location = new System.Drawing.Point(868, 212); - this.label50.Name = "label50"; - this.label50.Size = new System.Drawing.Size(101, 24); - this.label50.TabIndex = 69; - this.label50.Text = "Channel"; - this.label50.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label40 - // - this.label40.AutoSize = true; - this.label40.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label40.ForeColor = System.Drawing.Color.Gray; - this.label40.Location = new System.Drawing.Point(881, 152); - this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(88, 24); - this.label40.TabIndex = 67; - this.label40.Text = "Pan ID"; - this.label40.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label20 - // - this.label20.AutoSize = true; - this.label20.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label20.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label20.Location = new System.Drawing.Point(526, 464); - this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(101, 24); - this.label20.TabIndex = 65; - this.label20.Text = "Address"; - this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label11 - // - this.label11.AutoSize = true; - this.label11.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label11.ForeColor = System.Drawing.Color.Gray; - this.label11.Location = new System.Drawing.Point(846, 32); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(123, 24); - this.label11.TabIndex = 63; - this.label11.Text = "주행 속도"; - this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label18 - // - this.label18.AutoSize = true; - this.label18.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label18.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label18.Location = new System.Drawing.Point(49, 342); - this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(214, 24); - this.label18.TabIndex = 61; - this.label18.Text = "정지상수 (P/I/D)"; - this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label57 - // - this.label57.AutoSize = true; - this.label57.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label57.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label57.Location = new System.Drawing.Point(63, 464); - this.label57.Name = "label57"; - this.label57.Size = new System.Drawing.Size(200, 24); - this.label57.TabIndex = 60; - this.label57.Text = "TAG 재입력 시간"; - this.label57.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label56 - // - this.label56.AutoSize = true; - this.label56.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label56.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label56.Location = new System.Drawing.Point(441, 404); - this.label56.Name = "label56"; - this.label56.Size = new System.Drawing.Size(186, 24); - this.label56.TabIndex = 58; - this.label56.Text = "정지 감속 주기"; - this.label56.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label55 - // - this.label55.AutoSize = true; - this.label55.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label55.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label55.Location = new System.Drawing.Point(77, 404); - this.label55.Name = "label55"; - this.label55.Size = new System.Drawing.Size(186, 24); - this.label55.TabIndex = 58; - this.label55.Text = "정지 감속 상수"; - this.label55.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label32 - // - this.label32.AutoSize = true; - this.label32.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label32.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label32.Location = new System.Drawing.Point(58, 280); - this.label32.Name = "label32"; - this.label32.Size = new System.Drawing.Size(205, 24); - this.label32.TabIndex = 51; - this.label32.Text = "PID (H/M/L) - D"; - this.label32.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label31 - // - this.label31.AutoSize = true; - this.label31.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label31.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label31.Location = new System.Drawing.Point(58, 218); - this.label31.Name = "label31"; - this.label31.Size = new System.Drawing.Size(205, 24); - this.label31.TabIndex = 47; - this.label31.Text = "PID (H/M/L) - I"; - this.label31.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label15 - // - this.label15.AutoSize = true; - this.label15.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label15.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label15.Location = new System.Drawing.Point(58, 156); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(205, 24); - this.label15.TabIndex = 43; - this.label15.Text = "PID (H/M/L) - P"; - this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label25 - // - this.label25.AutoSize = true; - this.label25.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label25.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label25.Location = new System.Drawing.Point(64, 94); - this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(199, 24); - this.label25.TabIndex = 36; - this.label25.Text = "속도(정지/회전)"; - this.label25.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // vcSAD - // - this.vcSAD.BackColorButton = System.Drawing.Color.White; - this.vcSAD.ButtonWidth = "30"; - this.vcSAD.ColorBorder = System.Drawing.Color.White; - this.vcSAD.DecimalPosition = ((ushort)(0)); - this.vcSAD.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSAD.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSAD.ForeColor = System.Drawing.Color.White; - this.vcSAD.ForeColorButton = System.Drawing.Color.Black; - this.vcSAD.Location = new System.Drawing.Point(633, 449); - this.vcSAD.MaxValue = 9999D; - this.vcSAD.MinValue = 0D; - this.vcSAD.Name = "vcSAD"; - this.vcSAD.NullDisplay = "--"; - this.vcSAD.SideButtonClickValue = 1D; - this.vcSAD.Size = new System.Drawing.Size(164, 54); - this.vcSAD.TabIndex = 64; - this.vcSAD.Tag = "SAD"; - this.vcSAD.Text = "30"; - this.vcSAD.Value = 30D; - this.vcSAD.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSAD.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSpeedDrive - // - this.vcSpeedDrive.BackColorButton = System.Drawing.Color.White; - this.vcSpeedDrive.ButtonWidth = "30"; - this.vcSpeedDrive.ColorBorder = System.Drawing.Color.White; - this.vcSpeedDrive.DecimalPosition = ((ushort)(0)); - this.vcSpeedDrive.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSpeedDrive.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSpeedDrive.ForeColor = System.Drawing.Color.DimGray; - this.vcSpeedDrive.ForeColorButton = System.Drawing.Color.Black; - this.vcSpeedDrive.Location = new System.Drawing.Point(975, 17); - this.vcSpeedDrive.MaxValue = 9999D; - this.vcSpeedDrive.MinValue = 0D; - this.vcSpeedDrive.Name = "vcSpeedDrive"; - this.vcSpeedDrive.NullDisplay = "--"; - this.vcSpeedDrive.SideButtonClickValue = 3D; - this.vcSpeedDrive.Size = new System.Drawing.Size(164, 54); - this.vcSpeedDrive.TabIndex = 62; - this.vcSpeedDrive.Tag = "SSL"; - this.vcSpeedDrive.Text = "30"; - this.vcSpeedDrive.Value = 30D; - this.vcSpeedDrive.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSpeedDrive.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSTT - // - this.vcSTT.BackColorButton = System.Drawing.Color.White; - this.vcSTT.ButtonWidth = "30"; - this.vcSTT.ColorBorder = System.Drawing.Color.White; - this.vcSTT.DecimalPosition = ((ushort)(0)); - this.vcSTT.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSTT.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSTT.ForeColor = System.Drawing.Color.White; - this.vcSTT.ForeColorButton = System.Drawing.Color.Black; - this.vcSTT.Location = new System.Drawing.Point(269, 449); - this.vcSTT.MaxValue = 9999D; - this.vcSTT.MinValue = 0D; - this.vcSTT.Name = "vcSTT"; - this.vcSTT.NullDisplay = "--"; - this.vcSTT.SideButtonClickValue = 1D; - this.vcSTT.Size = new System.Drawing.Size(164, 54); - this.vcSTT.TabIndex = 59; - this.vcSTT.Tag = "SDH"; - this.vcSTT.Text = "30"; - this.vcSTT.Value = 30D; - this.vcSTT.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSTT.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSSK - // - this.vcSSK.BackColorButton = System.Drawing.Color.White; - this.vcSSK.ButtonWidth = "30"; - this.vcSSK.ColorBorder = System.Drawing.Color.White; - this.vcSSK.DecimalPosition = ((ushort)(0)); - this.vcSSK.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSSK.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSSK.ForeColor = System.Drawing.Color.White; - this.vcSSK.ForeColorButton = System.Drawing.Color.Black; - this.vcSSK.Location = new System.Drawing.Point(633, 389); - this.vcSSK.MaxValue = 9999D; - this.vcSSK.MinValue = 0D; - this.vcSSK.Name = "vcSSK"; - this.vcSSK.NullDisplay = "--"; - this.vcSSK.SideButtonClickValue = 1D; - this.vcSSK.Size = new System.Drawing.Size(164, 54); - this.vcSSK.TabIndex = 57; - this.vcSSK.Tag = "SDH"; - this.vcSSK.Text = "10"; - this.vcSSK.Value = 10D; - this.vcSSK.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSSK.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSCK - // - this.vcSCK.BackColorButton = System.Drawing.Color.White; - this.vcSCK.ButtonWidth = "30"; - this.vcSCK.ColorBorder = System.Drawing.Color.White; - this.vcSCK.DecimalPosition = ((ushort)(0)); - this.vcSCK.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSCK.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSCK.ForeColor = System.Drawing.Color.White; - this.vcSCK.ForeColorButton = System.Drawing.Color.Black; - this.vcSCK.Location = new System.Drawing.Point(269, 389); - this.vcSCK.MaxValue = 9999D; - this.vcSCK.MinValue = 0D; - this.vcSCK.Name = "vcSCK"; - this.vcSCK.NullDisplay = "--"; - this.vcSCK.SideButtonClickValue = 1D; - this.vcSCK.Size = new System.Drawing.Size(164, 54); - this.vcSCK.TabIndex = 57; - this.vcSCK.Tag = "SDH"; - this.vcSCK.Text = "10"; - this.vcSCK.Value = 10D; - this.vcSCK.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSCK.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidDS - // - this.vcpidDS.BackColorButton = System.Drawing.Color.White; - this.vcpidDS.ButtonWidth = "30"; - this.vcpidDS.ColorBorder = System.Drawing.Color.White; - this.vcpidDS.DecimalPosition = ((ushort)(0)); - this.vcpidDS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidDS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidDS.ForeColor = System.Drawing.Color.White; - this.vcpidDS.ForeColorButton = System.Drawing.Color.Black; - this.vcpidDS.Location = new System.Drawing.Point(633, 327); - this.vcpidDS.MaxValue = 9999D; - this.vcpidDS.MinValue = 0D; - this.vcpidDS.Name = "vcpidDS"; - this.vcpidDS.NullDisplay = "--"; - this.vcpidDS.SideButtonClickValue = 3D; - this.vcpidDS.Size = new System.Drawing.Size(164, 54); - this.vcpidDS.TabIndex = 56; - this.vcpidDS.Tag = "SDS"; - this.vcpidDS.Text = "15"; - this.vcpidDS.Value = 15D; - this.vcpidDS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidDS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidPS - // - this.vcpidPS.BackColorButton = System.Drawing.Color.White; - this.vcpidPS.ButtonWidth = "30"; - this.vcpidPS.ColorBorder = System.Drawing.Color.White; - this.vcpidPS.DecimalPosition = ((ushort)(0)); - this.vcpidPS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidPS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidPS.ForeColor = System.Drawing.Color.White; - this.vcpidPS.ForeColorButton = System.Drawing.Color.Black; - this.vcpidPS.Location = new System.Drawing.Point(269, 327); - this.vcpidPS.MaxValue = 9999D; - this.vcpidPS.MinValue = 0D; - this.vcpidPS.Name = "vcpidPS"; - this.vcpidPS.NullDisplay = "--"; - this.vcpidPS.SideButtonClickValue = 1D; - this.vcpidPS.Size = new System.Drawing.Size(164, 54); - this.vcpidPS.TabIndex = 53; - this.vcpidPS.Tag = "SPS"; - this.vcpidPS.Text = "200"; - this.vcpidPS.Value = 200D; - this.vcpidPS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidPS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidIS - // - this.vcpidIS.BackColorButton = System.Drawing.Color.White; - this.vcpidIS.ButtonWidth = "30"; - this.vcpidIS.ColorBorder = System.Drawing.Color.White; - this.vcpidIS.DecimalPosition = ((ushort)(0)); - this.vcpidIS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidIS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidIS.ForeColor = System.Drawing.Color.White; - this.vcpidIS.ForeColorButton = System.Drawing.Color.Black; - this.vcpidIS.Location = new System.Drawing.Point(454, 327); - this.vcpidIS.MaxValue = 9999D; - this.vcpidIS.MinValue = 0D; - this.vcpidIS.Name = "vcpidIS"; - this.vcpidIS.NullDisplay = "--"; - this.vcpidIS.SideButtonClickValue = 3D; - this.vcpidIS.Size = new System.Drawing.Size(164, 54); - this.vcpidIS.TabIndex = 54; - this.vcpidIS.Tag = "SIS"; - this.vcpidIS.Text = "1"; - this.vcpidIS.Value = 1D; - this.vcpidIS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidIS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidDL - // - this.vcpidDL.BackColorButton = System.Drawing.Color.White; - this.vcpidDL.ButtonWidth = "30"; - this.vcpidDL.ColorBorder = System.Drawing.Color.White; - this.vcpidDL.DecimalPosition = ((ushort)(0)); - this.vcpidDL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidDL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidDL.ForeColor = System.Drawing.Color.White; - this.vcpidDL.ForeColorButton = System.Drawing.Color.Black; - this.vcpidDL.Location = new System.Drawing.Point(633, 265); - this.vcpidDL.MaxValue = 9999D; - this.vcpidDL.MinValue = 0D; - this.vcpidDL.Name = "vcpidDL"; - this.vcpidDL.NullDisplay = "--"; - this.vcpidDL.SideButtonClickValue = 3D; - this.vcpidDL.Size = new System.Drawing.Size(164, 54); - this.vcpidDL.TabIndex = 52; - this.vcpidDL.Tag = "SDL"; - this.vcpidDL.Text = "15"; - this.vcpidDL.Value = 15D; - this.vcpidDL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidDL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidDH - // - this.vcpidDH.BackColorButton = System.Drawing.Color.White; - this.vcpidDH.ButtonWidth = "30"; - this.vcpidDH.ColorBorder = System.Drawing.Color.White; - this.vcpidDH.DecimalPosition = ((ushort)(0)); - this.vcpidDH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidDH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidDH.ForeColor = System.Drawing.Color.White; - this.vcpidDH.ForeColorButton = System.Drawing.Color.Black; - this.vcpidDH.Location = new System.Drawing.Point(269, 265); - this.vcpidDH.MaxValue = 9999D; - this.vcpidDH.MinValue = 0D; - this.vcpidDH.Name = "vcpidDH"; - this.vcpidDH.NullDisplay = "--"; - this.vcpidDH.SideButtonClickValue = 1D; - this.vcpidDH.Size = new System.Drawing.Size(164, 54); - this.vcpidDH.TabIndex = 49; - this.vcpidDH.Tag = "SDH"; - this.vcpidDH.Text = "15"; - this.vcpidDH.Value = 15D; - this.vcpidDH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidDH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidDM - // - this.vcpidDM.BackColorButton = System.Drawing.Color.White; - this.vcpidDM.ButtonWidth = "30"; - this.vcpidDM.ColorBorder = System.Drawing.Color.White; - this.vcpidDM.DecimalPosition = ((ushort)(0)); - this.vcpidDM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidDM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidDM.ForeColor = System.Drawing.Color.White; - this.vcpidDM.ForeColorButton = System.Drawing.Color.Black; - this.vcpidDM.Location = new System.Drawing.Point(454, 265); - this.vcpidDM.MaxValue = 9999D; - this.vcpidDM.MinValue = 0D; - this.vcpidDM.Name = "vcpidDM"; - this.vcpidDM.NullDisplay = "--"; - this.vcpidDM.SideButtonClickValue = 3D; - this.vcpidDM.Size = new System.Drawing.Size(164, 54); - this.vcpidDM.TabIndex = 50; - this.vcpidDM.Tag = "SDM"; - this.vcpidDM.Text = "15"; - this.vcpidDM.Value = 15D; - this.vcpidDM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidDM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidIL - // - this.vcpidIL.BackColorButton = System.Drawing.Color.White; - this.vcpidIL.ButtonWidth = "30"; - this.vcpidIL.ColorBorder = System.Drawing.Color.White; - this.vcpidIL.DecimalPosition = ((ushort)(0)); - this.vcpidIL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidIL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidIL.ForeColor = System.Drawing.Color.White; - this.vcpidIL.ForeColorButton = System.Drawing.Color.Black; - this.vcpidIL.Location = new System.Drawing.Point(633, 203); - this.vcpidIL.MaxValue = 9999D; - this.vcpidIL.MinValue = 0D; - this.vcpidIL.Name = "vcpidIL"; - this.vcpidIL.NullDisplay = "--"; - this.vcpidIL.SideButtonClickValue = 3D; - this.vcpidIL.Size = new System.Drawing.Size(164, 54); - this.vcpidIL.TabIndex = 48; - this.vcpidIL.Tag = "SIL"; - this.vcpidIL.Text = "1"; - this.vcpidIL.Value = 1D; - this.vcpidIL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidIL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidIH - // - this.vcpidIH.BackColorButton = System.Drawing.Color.White; - this.vcpidIH.ButtonWidth = "30"; - this.vcpidIH.ColorBorder = System.Drawing.Color.White; - this.vcpidIH.DecimalPosition = ((ushort)(0)); - this.vcpidIH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidIH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidIH.ForeColor = System.Drawing.Color.White; - this.vcpidIH.ForeColorButton = System.Drawing.Color.Black; - this.vcpidIH.Location = new System.Drawing.Point(269, 203); - this.vcpidIH.MaxValue = 9999D; - this.vcpidIH.MinValue = 0D; - this.vcpidIH.Name = "vcpidIH"; - this.vcpidIH.NullDisplay = "--"; - this.vcpidIH.SideButtonClickValue = 1D; - this.vcpidIH.Size = new System.Drawing.Size(164, 54); - this.vcpidIH.TabIndex = 45; - this.vcpidIH.Tag = "SIH"; - this.vcpidIH.Text = "1"; - this.vcpidIH.Value = 1D; - this.vcpidIH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidIH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidIM - // - this.vcpidIM.BackColorButton = System.Drawing.Color.White; - this.vcpidIM.ButtonWidth = "30"; - this.vcpidIM.ColorBorder = System.Drawing.Color.White; - this.vcpidIM.DecimalPosition = ((ushort)(0)); - this.vcpidIM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidIM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidIM.ForeColor = System.Drawing.Color.White; - this.vcpidIM.ForeColorButton = System.Drawing.Color.Black; - this.vcpidIM.Location = new System.Drawing.Point(454, 203); - this.vcpidIM.MaxValue = 9999D; - this.vcpidIM.MinValue = 0D; - this.vcpidIM.Name = "vcpidIM"; - this.vcpidIM.NullDisplay = "--"; - this.vcpidIM.SideButtonClickValue = 3D; - this.vcpidIM.Size = new System.Drawing.Size(164, 54); - this.vcpidIM.TabIndex = 46; - this.vcpidIM.Tag = "SIM"; - this.vcpidIM.Text = "1"; - this.vcpidIM.Value = 1D; - this.vcpidIM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidIM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidPL - // - this.vcpidPL.BackColorButton = System.Drawing.Color.White; - this.vcpidPL.ButtonWidth = "30"; - this.vcpidPL.ColorBorder = System.Drawing.Color.White; - this.vcpidPL.DecimalPosition = ((ushort)(0)); - this.vcpidPL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidPL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidPL.ForeColor = System.Drawing.Color.White; - this.vcpidPL.ForeColorButton = System.Drawing.Color.Black; - this.vcpidPL.Location = new System.Drawing.Point(633, 141); - this.vcpidPL.MaxValue = 9999D; - this.vcpidPL.MinValue = 0D; - this.vcpidPL.Name = "vcpidPL"; - this.vcpidPL.NullDisplay = "--"; - this.vcpidPL.SideButtonClickValue = 3D; - this.vcpidPL.Size = new System.Drawing.Size(164, 54); - this.vcpidPL.TabIndex = 44; - this.vcpidPL.Tag = "SPL"; - this.vcpidPL.Text = "200"; - this.vcpidPL.Value = 200D; - this.vcpidPL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidPL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidPH - // - this.vcpidPH.BackColorButton = System.Drawing.Color.White; - this.vcpidPH.ButtonWidth = "30"; - this.vcpidPH.ColorBorder = System.Drawing.Color.White; - this.vcpidPH.DecimalPosition = ((ushort)(0)); - this.vcpidPH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidPH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidPH.ForeColor = System.Drawing.Color.White; - this.vcpidPH.ForeColorButton = System.Drawing.Color.Black; - this.vcpidPH.Location = new System.Drawing.Point(269, 141); - this.vcpidPH.MaxValue = 9999D; - this.vcpidPH.MinValue = 0D; - this.vcpidPH.Name = "vcpidPH"; - this.vcpidPH.NullDisplay = "--"; - this.vcpidPH.SideButtonClickValue = 1D; - this.vcpidPH.Size = new System.Drawing.Size(164, 54); - this.vcpidPH.TabIndex = 41; - this.vcpidPH.Tag = "SPH"; - this.vcpidPH.Text = "200"; - this.vcpidPH.Value = 200D; - this.vcpidPH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidPH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcpidPM - // - this.vcpidPM.BackColorButton = System.Drawing.Color.White; - this.vcpidPM.ButtonWidth = "30"; - this.vcpidPM.ColorBorder = System.Drawing.Color.White; - this.vcpidPM.DecimalPosition = ((ushort)(0)); - this.vcpidPM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcpidPM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcpidPM.ForeColor = System.Drawing.Color.White; - this.vcpidPM.ForeColorButton = System.Drawing.Color.Black; - this.vcpidPM.Location = new System.Drawing.Point(454, 141); - this.vcpidPM.MaxValue = 9999D; - this.vcpidPM.MinValue = 0D; - this.vcpidPM.Name = "vcpidPM"; - this.vcpidPM.NullDisplay = "--"; - this.vcpidPM.SideButtonClickValue = 3D; - this.vcpidPM.Size = new System.Drawing.Size(164, 54); - this.vcpidPM.TabIndex = 42; - this.vcpidPM.Tag = "SPM"; - this.vcpidPM.Text = "200"; - this.vcpidPM.Value = 200D; - this.vcpidPM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcpidPM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSpeedR - // - this.vcSpeedR.BackColorButton = System.Drawing.Color.White; - this.vcSpeedR.ButtonWidth = "30"; - this.vcSpeedR.ColorBorder = System.Drawing.Color.White; - this.vcSpeedR.DecimalPosition = ((ushort)(0)); - this.vcSpeedR.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSpeedR.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSpeedR.ForeColor = System.Drawing.Color.White; - this.vcSpeedR.ForeColorButton = System.Drawing.Color.Black; - this.vcSpeedR.Location = new System.Drawing.Point(454, 79); - this.vcSpeedR.MaxValue = 9999D; - this.vcSpeedR.MinValue = 0D; - this.vcSpeedR.Name = "vcSpeedR"; - this.vcSpeedR.NullDisplay = "--"; - this.vcSpeedR.SideButtonClickValue = 1D; - this.vcSpeedR.Size = new System.Drawing.Size(164, 54); - this.vcSpeedR.TabIndex = 39; - this.vcSpeedR.Tag = "SRS"; - this.vcSpeedR.Text = "70"; - this.vcSpeedR.Value = 70D; - this.vcSpeedR.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSpeedR.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSpeedH - // - this.vcSpeedH.BackColorButton = System.Drawing.Color.White; - this.vcSpeedH.ButtonWidth = "30"; - this.vcSpeedH.ColorBorder = System.Drawing.Color.White; - this.vcSpeedH.DecimalPosition = ((ushort)(0)); - this.vcSpeedH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSpeedH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSpeedH.ForeColor = System.Drawing.Color.White; - this.vcSpeedH.ForeColorButton = System.Drawing.Color.Black; - this.vcSpeedH.Location = new System.Drawing.Point(633, 17); - this.vcSpeedH.MaxValue = 9999D; - this.vcSpeedH.MinValue = 0D; - this.vcSpeedH.Name = "vcSpeedH"; - this.vcSpeedH.NullDisplay = "--"; - this.vcSpeedH.SideButtonClickValue = 3D; - this.vcSpeedH.Size = new System.Drawing.Size(164, 54); - this.vcSpeedH.TabIndex = 38; - this.vcSpeedH.Tag = "SSL"; - this.vcSpeedH.Text = "30"; - this.vcSpeedH.Value = 30D; - this.vcSpeedH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSpeedH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSpeedS - // - this.vcSpeedS.BackColorButton = System.Drawing.Color.White; - this.vcSpeedS.ButtonWidth = "30"; - this.vcSpeedS.ColorBorder = System.Drawing.Color.White; - this.vcSpeedS.DecimalPosition = ((ushort)(0)); - this.vcSpeedS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSpeedS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSpeedS.ForeColor = System.Drawing.Color.White; - this.vcSpeedS.ForeColorButton = System.Drawing.Color.Black; - this.vcSpeedS.Location = new System.Drawing.Point(269, 79); - this.vcSpeedS.MaxValue = 9999D; - this.vcSpeedS.MinValue = 0D; - this.vcSpeedS.Name = "vcSpeedS"; - this.vcSpeedS.NullDisplay = "--"; - this.vcSpeedS.SideButtonClickValue = 1D; - this.vcSpeedS.Size = new System.Drawing.Size(164, 54); - this.vcSpeedS.TabIndex = 35; - this.vcSpeedS.Tag = "SSS"; - this.vcSpeedS.Text = "61"; - this.vcSpeedS.Value = 61D; - this.vcSpeedS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSpeedS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSpeedL - // - this.vcSpeedL.BackColorButton = System.Drawing.Color.White; - this.vcSpeedL.ButtonWidth = "30"; - this.vcSpeedL.ColorBorder = System.Drawing.Color.White; - this.vcSpeedL.DecimalPosition = ((ushort)(0)); - this.vcSpeedL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSpeedL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSpeedL.ForeColor = System.Drawing.Color.White; - this.vcSpeedL.ForeColorButton = System.Drawing.Color.Black; - this.vcSpeedL.Location = new System.Drawing.Point(269, 17); - this.vcSpeedL.MaxValue = 9999D; - this.vcSpeedL.MinValue = 0D; - this.vcSpeedL.Name = "vcSpeedL"; - this.vcSpeedL.NullDisplay = "--"; - this.vcSpeedL.SideButtonClickValue = 1D; - this.vcSpeedL.Size = new System.Drawing.Size(164, 54); - this.vcSpeedL.TabIndex = 2; - this.vcSpeedL.Tag = "SSH"; - this.vcSpeedL.Text = "110"; - this.vcSpeedL.Value = 110D; - this.vcSpeedL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSpeedL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcSpeedM - // - this.vcSpeedM.BackColorButton = System.Drawing.Color.White; - this.vcSpeedM.ButtonWidth = "30"; - this.vcSpeedM.ColorBorder = System.Drawing.Color.White; - this.vcSpeedM.DecimalPosition = ((ushort)(0)); - this.vcSpeedM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcSpeedM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcSpeedM.ForeColor = System.Drawing.Color.White; - this.vcSpeedM.ForeColorButton = System.Drawing.Color.Black; - this.vcSpeedM.Location = new System.Drawing.Point(454, 17); - this.vcSpeedM.MaxValue = 9999D; - this.vcSpeedM.MinValue = 0D; - this.vcSpeedM.Name = "vcSpeedM"; - this.vcSpeedM.NullDisplay = "--"; - this.vcSpeedM.SideButtonClickValue = 3D; - this.vcSpeedM.Size = new System.Drawing.Size(164, 54); - this.vcSpeedM.TabIndex = 4; - this.vcSpeedM.Tag = "SSM"; - this.vcSpeedM.Text = "70"; - this.vcSpeedM.Value = 70D; - this.vcSpeedM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcSpeedM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // tabPage2 - // - this.tabPage2.BackColor = System.Drawing.Color.Navy; - this.tabPage2.Controls.Add(this.button3); - this.tabPage2.Controls.Add(this.label30); - this.tabPage2.Controls.Add(this.label12); - this.tabPage2.Controls.Add(this.button2); - this.tabPage2.Controls.Add(this.tbBaudBAT); - this.tabPage2.Controls.Add(this.tbportBMS); - this.tabPage2.Controls.Add(this.label27); - this.tabPage2.Controls.Add(this.button1); - this.tabPage2.Controls.Add(this.tbBaudAGV); - this.tabPage2.Controls.Add(this.tbPortAGV); - this.tabPage2.Controls.Add(this.label6); - this.tabPage2.Controls.Add(this.btSelXbee); - this.tabPage2.Controls.Add(this.tbBaudXBE); - this.tabPage2.Controls.Add(this.tbPortXBE); - this.tabPage2.Controls.Add(this.label5); - this.tabPage2.Controls.Add(this.valIntervalBMS); - this.tabPage2.Controls.Add(this.valIntervalXBE); - this.tabPage2.Location = new System.Drawing.Point(4, 4); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(1244, 570); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "통신"; - // - // button3 - // - this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.button3.Location = new System.Drawing.Point(1157, 9); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(79, 38); - this.button3.TabIndex = 34; - this.button3.Text = "TEST"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); - // - // label30 - // - this.label30.AutoSize = true; - this.label30.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label30.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label30.Location = new System.Drawing.Point(946, 188); - this.label30.Name = "label30"; - this.label30.Size = new System.Drawing.Size(49, 24); - this.label30.TabIndex = 33; - this.label30.Text = "sec"; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label12.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label12.Location = new System.Drawing.Point(946, 109); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(49, 24); - this.label12.TabIndex = 33; - this.label12.Text = "sec"; - // - // button2 - // - this.button2.Location = new System.Drawing.Point(383, 93); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(89, 56); - this.button2.TabIndex = 28; - this.button2.Tag = "BAT"; - this.button2.Text = "..."; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.btSelXbee_Click); - // - // tbBaudBAT - // - this.tbBaudBAT.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.tbBaudBAT.FormattingEnabled = true; - this.tbBaudBAT.Items.AddRange(new object[] { - "4800", - "9600", - "19200", - "46800", - "115200", - "250000"}); - this.tbBaudBAT.Location = new System.Drawing.Point(478, 96); - this.tbBaudBAT.Name = "tbBaudBAT"; - this.tbBaudBAT.Size = new System.Drawing.Size(217, 51); - this.tbBaudBAT.TabIndex = 27; - this.tbBaudBAT.Tag = "P1"; - // - // tbportBMS - // - this.tbportBMS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.tbportBMS.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.tbportBMS.Location = new System.Drawing.Point(161, 93); - this.tbportBMS.Name = "tbportBMS"; - this.tbportBMS.Size = new System.Drawing.Size(216, 56); - this.tbportBMS.TabIndex = 26; - this.tbportBMS.Tag = "P1"; - // - // label27 - // - this.label27.AutoSize = true; - this.label27.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label27.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label27.Location = new System.Drawing.Point(38, 109); - this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(114, 24); - this.label27.TabIndex = 25; - this.label27.Text = "BAT PORT"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(383, 18); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(89, 56); - this.button1.TabIndex = 24; - this.button1.Tag = "AGV"; - this.button1.Text = "..."; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.btSelXbee_Click); - // - // tbBaudAGV - // - this.tbBaudAGV.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.tbBaudAGV.FormattingEnabled = true; - this.tbBaudAGV.Items.AddRange(new object[] { - "4800", - "9600", - "19200", - "46800", - "115200", - "250000"}); - this.tbBaudAGV.Location = new System.Drawing.Point(478, 21); - this.tbBaudAGV.Name = "tbBaudAGV"; - this.tbBaudAGV.Size = new System.Drawing.Size(217, 51); - this.tbBaudAGV.TabIndex = 23; - this.tbBaudAGV.Tag = "P1"; - // - // tbPortAGV - // - this.tbPortAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.tbPortAGV.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.tbPortAGV.Location = new System.Drawing.Point(161, 18); - this.tbPortAGV.Name = "tbPortAGV"; - this.tbPortAGV.Size = new System.Drawing.Size(216, 56); - this.tbPortAGV.TabIndex = 22; - this.tbPortAGV.Tag = "P1"; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label6.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label6.Location = new System.Drawing.Point(38, 34); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(114, 24); - this.label6.TabIndex = 21; - this.label6.Text = "AGV PORT"; - // - // btSelXbee - // - this.btSelXbee.Location = new System.Drawing.Point(383, 172); - this.btSelXbee.Name = "btSelXbee"; - this.btSelXbee.Size = new System.Drawing.Size(89, 56); - this.btSelXbee.TabIndex = 13; - this.btSelXbee.Tag = "XBE"; - this.btSelXbee.Text = "..."; - this.btSelXbee.UseVisualStyleBackColor = true; - this.btSelXbee.Click += new System.EventHandler(this.btSelXbee_Click); - // - // tbBaudXBE - // - this.tbBaudXBE.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.tbBaudXBE.FormattingEnabled = true; - this.tbBaudXBE.Items.AddRange(new object[] { - "4800", - "9600", - "19200", - "46800", - "115200", - "250000"}); - this.tbBaudXBE.Location = new System.Drawing.Point(478, 175); - this.tbBaudXBE.Name = "tbBaudXBE"; - this.tbBaudXBE.Size = new System.Drawing.Size(217, 51); - this.tbBaudXBE.TabIndex = 8; - this.tbBaudXBE.Tag = "XB"; - // - // tbPortXBE - // - this.tbPortXBE.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.tbPortXBE.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.tbPortXBE.Location = new System.Drawing.Point(161, 172); - this.tbPortXBE.Name = "tbPortXBE"; - this.tbPortXBE.Size = new System.Drawing.Size(216, 56); - this.tbPortXBE.TabIndex = 3; - this.tbPortXBE.Tag = "XB"; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label5.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label5.Location = new System.Drawing.Point(38, 188); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(114, 24); - this.label5.TabIndex = 1; - this.label5.Text = "XBE PORT"; - // - // valIntervalBMS - // - this.valIntervalBMS.BackColorButton = System.Drawing.Color.White; - this.valIntervalBMS.ButtonWidth = "30"; - this.valIntervalBMS.ColorBorder = System.Drawing.Color.White; - this.valIntervalBMS.DecimalPosition = ((ushort)(1)); - this.valIntervalBMS.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.valIntervalBMS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.valIntervalBMS.ForeColor = System.Drawing.Color.White; - this.valIntervalBMS.ForeColorButton = System.Drawing.Color.Black; - this.valIntervalBMS.Location = new System.Drawing.Point(701, 96); - this.valIntervalBMS.MaxValue = 999999D; - this.valIntervalBMS.MinValue = 0D; - this.valIntervalBMS.Name = "valIntervalBMS"; - this.valIntervalBMS.NullDisplay = "--"; - this.valIntervalBMS.SideButtonClickValue = 0.5D; - this.valIntervalBMS.Size = new System.Drawing.Size(239, 51); - this.valIntervalBMS.TabIndex = 32; - this.valIntervalBMS.Tag = "CL"; - this.valIntervalBMS.Text = "0"; - this.valIntervalBMS.Value = 0D; - this.valIntervalBMS.ButtonClick += new System.EventHandler(this.valIntervalBMS_ButtonClick); - // - // valIntervalXBE - // - this.valIntervalXBE.BackColorButton = System.Drawing.Color.White; - this.valIntervalXBE.ButtonWidth = "30"; - this.valIntervalXBE.ColorBorder = System.Drawing.Color.White; - this.valIntervalXBE.DecimalPosition = ((ushort)(1)); - this.valIntervalXBE.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); - this.valIntervalXBE.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.valIntervalXBE.ForeColor = System.Drawing.Color.White; - this.valIntervalXBE.ForeColorButton = System.Drawing.Color.Black; - this.valIntervalXBE.Location = new System.Drawing.Point(701, 175); - this.valIntervalXBE.MaxValue = 100D; - this.valIntervalXBE.MinValue = 0D; - this.valIntervalXBE.Name = "valIntervalXBE"; - this.valIntervalXBE.NullDisplay = "--"; - this.valIntervalXBE.SideButtonClickValue = 0.5D; - this.valIntervalXBE.Size = new System.Drawing.Size(239, 51); - this.valIntervalXBE.TabIndex = 20; - this.valIntervalXBE.Tag = "CL"; - this.valIntervalXBE.Text = "0"; - this.valIntervalXBE.Value = 0D; - // - // tabPage3 - // - this.tabPage3.BackColor = System.Drawing.Color.DarkSlateBlue; - this.tabPage3.Controls.Add(this.label58); - this.tabPage3.Controls.Add(this.label19); - this.tabPage3.Controls.Add(this.label44); - this.tabPage3.Controls.Add(this.label29); - this.tabPage3.Controls.Add(this.label43); - this.tabPage3.Controls.Add(this.label42); - this.tabPage3.Controls.Add(this.label41); - this.tabPage3.Controls.Add(this.label39); - this.tabPage3.Controls.Add(this.label28); - this.tabPage3.Controls.Add(this.label14); - this.tabPage3.Controls.Add(this.label33); - this.tabPage3.Controls.Add(this.label36); - this.tabPage3.Controls.Add(this.label37); - this.tabPage3.Controls.Add(this.label35); - this.tabPage3.Controls.Add(this.label34); - this.tabPage3.Controls.Add(this.label38); - this.tabPage3.Controls.Add(this.label21); - this.tabPage3.Controls.Add(this.label1); - this.tabPage3.Controls.Add(this.label9); - this.tabPage3.Controls.Add(this.label26); - this.tabPage3.Controls.Add(this.label23); - this.tabPage3.Controls.Add(this.label24); - this.tabPage3.Controls.Add(this.vcChargeStartLevel); - this.tabPage3.Controls.Add(this.vcChargeMaxLevel); - this.tabPage3.Controls.Add(this.vcChargeWaitSec); - this.tabPage3.Controls.Add(this.tbChargerID); - this.tabPage3.Controls.Add(this.vcChargeEmergencyLevel); - this.tabPage3.Controls.Add(this.vcChargeMaxTime); - this.tabPage3.Controls.Add(this.vcChargeRetryTerm); - this.tabPage3.Controls.Add(this.vcChargeSearchTime); - this.tabPage3.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold); - this.tabPage3.Location = new System.Drawing.Point(4, 4); - this.tabPage3.Name = "tabPage3"; - this.tabPage3.Size = new System.Drawing.Size(1244, 570); - this.tabPage3.TabIndex = 4; - this.tabPage3.Text = "충전"; - // - // label58 - // - this.label58.AutoSize = true; - this.label58.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label58.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label58.Location = new System.Drawing.Point(863, 21); - this.label58.Name = "label58"; - this.label58.Size = new System.Drawing.Size(135, 24); - this.label58.TabIndex = 68; - this.label58.Text = "충전기위치"; - // - // label19 - // - this.label19.AutoSize = true; - this.label19.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label19.ForeColor = System.Drawing.Color.Orange; - this.label19.Location = new System.Drawing.Point(374, 286); - this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(496, 18); - this.label19.TabIndex = 67; - this.label19.Text = "배터리 레벨이 지정값 아래일 경우 가동이 제한 됩니다"; - // - // label44 - // - this.label44.AutoSize = true; - this.label44.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label44.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label44.Location = new System.Drawing.Point(1152, 201); - this.label44.Name = "label44"; - this.label44.Size = new System.Drawing.Size(49, 24); - this.label44.TabIndex = 64; - this.label44.Text = "sec"; - // - // label29 - // - this.label29.AutoSize = true; - this.label29.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label29.ForeColor = System.Drawing.Color.SkyBlue; - this.label29.Location = new System.Drawing.Point(730, 201); - this.label29.Name = "label29"; - this.label29.Size = new System.Drawing.Size(211, 24); - this.label29.TabIndex = 62; - this.label29.Text = "충전기 대기 시간"; - // - // label43 - // - this.label43.AutoSize = true; - this.label43.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label43.ForeColor = System.Drawing.Color.Orange; - this.label43.Location = new System.Drawing.Point(266, 51); - this.label43.Name = "label43"; - this.label43.Size = new System.Drawing.Size(524, 18); - this.label43.TabIndex = 61; - this.label43.Text = "배터리 레벨이 지정값보다 떨어진다면 충전을 시작 합니다"; - // - // label42 - // - this.label42.AutoSize = true; - this.label42.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label42.ForeColor = System.Drawing.Color.Orange; - this.label42.Location = new System.Drawing.Point(266, 127); - this.label42.Name = "label42"; - this.label42.Size = new System.Drawing.Size(506, 18); - this.label42.TabIndex = 61; - this.label42.Text = "배터리 레벨이 지정 값을 초과하면 충전이 해제 됩니다."; - // - // label41 - // - this.label41.AutoSize = true; - this.label41.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label41.ForeColor = System.Drawing.Color.Orange; - this.label41.Location = new System.Drawing.Point(266, 207); - this.label41.Name = "label41"; - this.label41.Size = new System.Drawing.Size(429, 18); - this.label41.TabIndex = 61; - this.label41.Text = "지정된 시간 이후에는 충전이 자동 해제 됩니다"; - // - // label39 - // - this.label39.AutoSize = true; - this.label39.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label39.ForeColor = System.Drawing.Color.Orange; - this.label39.Location = new System.Drawing.Point(267, 375); - this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(381, 36); - this.label39.TabIndex = 61; - this.label39.Text = "충전기 얼라인 검색을 수행하는 최대 시간\r\n지정 시간이 넘어가면 충전이 취소 됩니다"; - // - // label28 - // - this.label28.AutoSize = true; - this.label28.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label28.ForeColor = System.Drawing.Color.SkyBlue; - this.label28.Location = new System.Drawing.Point(817, 158); - this.label28.Name = "label28"; - this.label28.Size = new System.Drawing.Size(124, 24); - this.label28.TabIndex = 29; - this.label28.Text = "충전기 ID"; - // - // label14 - // - this.label14.AutoSize = true; - this.label14.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label14.ForeColor = System.Drawing.Color.Orange; - this.label14.Location = new System.Drawing.Point(266, 472); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(496, 18); - this.label14.TabIndex = 61; - this.label14.Text = "배터리 레벨이 지정값 아래일 경우 가동이 제한 됩니다"; - // - // label33 - // - this.label33.AutoSize = true; - this.label33.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label33.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label33.Location = new System.Drawing.Point(473, 17); - this.label33.Name = "label33"; - this.label33.Size = new System.Drawing.Size(23, 24); - this.label33.TabIndex = 50; - this.label33.Text = "%"; - // - // label36 - // - this.label36.AutoSize = true; - this.label36.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label36.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label36.Location = new System.Drawing.Point(76, 17); - this.label36.Name = "label36"; - this.label36.Size = new System.Drawing.Size(186, 24); - this.label36.TabIndex = 49; - this.label36.Text = "충전 시작 레벨"; - // - // label37 - // - this.label37.AutoSize = true; - this.label37.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label37.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label37.Location = new System.Drawing.Point(473, 87); - this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(23, 24); - this.label37.TabIndex = 44; - this.label37.Text = "%"; - // - // label35 - // - this.label35.AutoSize = true; - this.label35.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label35.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label35.Location = new System.Drawing.Point(76, 428); - this.label35.Name = "label35"; - this.label35.Size = new System.Drawing.Size(186, 24); - this.label35.TabIndex = 46; - this.label35.Text = "가동 제한 레벨"; - // - // label34 - // - this.label34.AutoSize = true; - this.label34.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label34.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label34.Location = new System.Drawing.Point(473, 428); - this.label34.Name = "label34"; - this.label34.Size = new System.Drawing.Size(23, 24); - this.label34.TabIndex = 47; - this.label34.Text = "%"; - // - // label38 - // - this.label38.AutoSize = true; - this.label38.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label38.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label38.Location = new System.Drawing.Point(76, 87); - this.label38.Name = "label38"; - this.label38.Size = new System.Drawing.Size(186, 24); - this.label38.TabIndex = 43; - this.label38.Text = "최대 충전 레벨"; - // - // label21 - // - this.label21.AutoSize = true; - this.label21.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label21.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label21.Location = new System.Drawing.Point(473, 337); - this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(49, 24); - this.label21.TabIndex = 40; - this.label21.Text = "sec"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label1.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label1.Location = new System.Drawing.Point(473, 245); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(49, 24); - this.label1.TabIndex = 34; - this.label1.Text = "sec"; - // - // label9 - // - this.label9.AutoSize = true; - this.label9.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label9.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label9.Location = new System.Drawing.Point(51, 245); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(211, 24); - this.label9.TabIndex = 33; - this.label9.Text = "충전 재시도 간격"; - // - // label26 - // - this.label26.AutoSize = true; - this.label26.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label26.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label26.Location = new System.Drawing.Point(127, 337); - this.label26.Name = "label26"; - this.label26.Size = new System.Drawing.Size(135, 24); - this.label26.TabIndex = 39; - this.label26.Text = "충전기검색"; - // - // label23 - // - this.label23.AutoSize = true; - this.label23.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label23.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label23.Location = new System.Drawing.Point(473, 164); - this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(49, 24); - this.label23.TabIndex = 31; - this.label23.Text = "sec"; - // - // label24 - // - this.label24.AutoSize = true; - this.label24.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label24.ForeColor = System.Drawing.Color.WhiteSmoke; - this.label24.Location = new System.Drawing.Point(76, 164); - this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(186, 24); - this.label24.TabIndex = 30; - this.label24.Text = "최대 충전 시간"; - // - // vcChargeStartLevel - // - this.vcChargeStartLevel.BackColorButton = System.Drawing.Color.White; - this.vcChargeStartLevel.ButtonWidth = "30"; - this.vcChargeStartLevel.ColorBorder = System.Drawing.Color.White; - this.vcChargeStartLevel.DecimalPosition = ((ushort)(0)); - this.vcChargeStartLevel.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcChargeStartLevel.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcChargeStartLevel.ForeColor = System.Drawing.Color.WhiteSmoke; - this.vcChargeStartLevel.ForeColorButton = System.Drawing.Color.Black; - this.vcChargeStartLevel.Location = new System.Drawing.Point(270, 11); - this.vcChargeStartLevel.MaxValue = 999999D; - this.vcChargeStartLevel.MinValue = 0D; - this.vcChargeStartLevel.Name = "vcChargeStartLevel"; - this.vcChargeStartLevel.NullDisplay = "--"; - this.vcChargeStartLevel.SideButtonClickValue = 30D; - this.vcChargeStartLevel.Size = new System.Drawing.Size(197, 37); - this.vcChargeStartLevel.TabIndex = 65; - this.vcChargeStartLevel.Tag = "SL"; - this.vcChargeStartLevel.Text = "50"; - this.vcChargeStartLevel.Value = 50D; - this.vcChargeStartLevel.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcChargeStartLevel.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcChargeMaxLevel - // - this.vcChargeMaxLevel.BackColorButton = System.Drawing.Color.White; - this.vcChargeMaxLevel.ButtonWidth = "30"; - this.vcChargeMaxLevel.ColorBorder = System.Drawing.Color.White; - this.vcChargeMaxLevel.DecimalPosition = ((ushort)(0)); - this.vcChargeMaxLevel.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcChargeMaxLevel.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcChargeMaxLevel.ForeColor = System.Drawing.Color.WhiteSmoke; - this.vcChargeMaxLevel.ForeColorButton = System.Drawing.Color.Black; - this.vcChargeMaxLevel.Location = new System.Drawing.Point(270, 81); - this.vcChargeMaxLevel.MaxValue = 999999D; - this.vcChargeMaxLevel.MinValue = 0D; - this.vcChargeMaxLevel.Name = "vcChargeMaxLevel"; - this.vcChargeMaxLevel.NullDisplay = "--"; - this.vcChargeMaxLevel.SideButtonClickValue = 30D; - this.vcChargeMaxLevel.Size = new System.Drawing.Size(197, 37); - this.vcChargeMaxLevel.TabIndex = 66; - this.vcChargeMaxLevel.Tag = "SL"; - this.vcChargeMaxLevel.Text = "85"; - this.vcChargeMaxLevel.Value = 85D; - this.vcChargeMaxLevel.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcChargeMaxLevel.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcChargeWaitSec - // - this.vcChargeWaitSec.BackColorButton = System.Drawing.Color.White; - this.vcChargeWaitSec.ButtonWidth = "30"; - this.vcChargeWaitSec.ColorBorder = System.Drawing.Color.White; - this.vcChargeWaitSec.DecimalPosition = ((ushort)(0)); - this.vcChargeWaitSec.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcChargeWaitSec.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcChargeWaitSec.ForeColor = System.Drawing.Color.WhiteSmoke; - this.vcChargeWaitSec.ForeColorButton = System.Drawing.Color.Black; - this.vcChargeWaitSec.Location = new System.Drawing.Point(949, 195); - this.vcChargeWaitSec.MaxValue = 999999D; - this.vcChargeWaitSec.MinValue = 0D; - this.vcChargeWaitSec.Name = "vcChargeWaitSec"; - this.vcChargeWaitSec.NullDisplay = "--"; - this.vcChargeWaitSec.SideButtonClickValue = 30D; - this.vcChargeWaitSec.Size = new System.Drawing.Size(197, 37); - this.vcChargeWaitSec.TabIndex = 63; - this.vcChargeWaitSec.Tag = ""; - this.vcChargeWaitSec.Text = "3"; - this.vcChargeWaitSec.Value = 3D; - this.vcChargeWaitSec.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcChargeWaitSec.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // tbChargerID - // - this.tbChargerID.BackColorButton = System.Drawing.Color.White; - this.tbChargerID.ButtonWidth = "30"; - this.tbChargerID.ColorBorder = System.Drawing.Color.White; - this.tbChargerID.DecimalPosition = ((ushort)(0)); - this.tbChargerID.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.tbChargerID.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbChargerID.ForeColor = System.Drawing.Color.WhiteSmoke; - this.tbChargerID.ForeColorButton = System.Drawing.Color.Black; - this.tbChargerID.Location = new System.Drawing.Point(949, 152); - this.tbChargerID.MaxValue = 999999D; - this.tbChargerID.MinValue = 0D; - this.tbChargerID.Name = "tbChargerID"; - this.tbChargerID.NullDisplay = "--"; - this.tbChargerID.SideButtonClickValue = 30D; - this.tbChargerID.Size = new System.Drawing.Size(197, 37); - this.tbChargerID.TabIndex = 57; - this.tbChargerID.Tag = ""; - this.tbChargerID.Text = "30"; - this.tbChargerID.Value = 30D; - this.tbChargerID.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.tbChargerID.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcChargeEmergencyLevel - // - this.vcChargeEmergencyLevel.BackColorButton = System.Drawing.Color.White; - this.vcChargeEmergencyLevel.ButtonWidth = "30"; - this.vcChargeEmergencyLevel.ColorBorder = System.Drawing.Color.White; - this.vcChargeEmergencyLevel.DecimalPosition = ((ushort)(0)); - this.vcChargeEmergencyLevel.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcChargeEmergencyLevel.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcChargeEmergencyLevel.ForeColor = System.Drawing.Color.WhiteSmoke; - this.vcChargeEmergencyLevel.ForeColorButton = System.Drawing.Color.Black; - this.vcChargeEmergencyLevel.Location = new System.Drawing.Point(270, 422); - this.vcChargeEmergencyLevel.MaxValue = 999999D; - this.vcChargeEmergencyLevel.MinValue = 0D; - this.vcChargeEmergencyLevel.Name = "vcChargeEmergencyLevel"; - this.vcChargeEmergencyLevel.NullDisplay = "--"; - this.vcChargeEmergencyLevel.SideButtonClickValue = 30D; - this.vcChargeEmergencyLevel.Size = new System.Drawing.Size(197, 37); - this.vcChargeEmergencyLevel.TabIndex = 57; - this.vcChargeEmergencyLevel.Tag = ""; - this.vcChargeEmergencyLevel.Text = "30"; - this.vcChargeEmergencyLevel.Value = 30D; - this.vcChargeEmergencyLevel.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcChargeEmergencyLevel.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcChargeMaxTime - // - this.vcChargeMaxTime.BackColorButton = System.Drawing.Color.White; - this.vcChargeMaxTime.ButtonWidth = "30"; - this.vcChargeMaxTime.ColorBorder = System.Drawing.Color.White; - this.vcChargeMaxTime.DecimalPosition = ((ushort)(0)); - this.vcChargeMaxTime.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcChargeMaxTime.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcChargeMaxTime.ForeColor = System.Drawing.Color.WhiteSmoke; - this.vcChargeMaxTime.ForeColorButton = System.Drawing.Color.Black; - this.vcChargeMaxTime.Location = new System.Drawing.Point(270, 158); - this.vcChargeMaxTime.MaxValue = 999999D; - this.vcChargeMaxTime.MinValue = 0D; - this.vcChargeMaxTime.Name = "vcChargeMaxTime"; - this.vcChargeMaxTime.NullDisplay = "--"; - this.vcChargeMaxTime.SideButtonClickValue = 30D; - this.vcChargeMaxTime.Size = new System.Drawing.Size(197, 37); - this.vcChargeMaxTime.TabIndex = 29; - this.vcChargeMaxTime.Tag = "SL"; - this.vcChargeMaxTime.Text = "3600"; - this.vcChargeMaxTime.Value = 3600D; - this.vcChargeMaxTime.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcChargeMaxTime.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcChargeRetryTerm - // - this.vcChargeRetryTerm.BackColorButton = System.Drawing.Color.White; - this.vcChargeRetryTerm.ButtonWidth = "30"; - this.vcChargeRetryTerm.ColorBorder = System.Drawing.Color.White; - this.vcChargeRetryTerm.DecimalPosition = ((ushort)(0)); - this.vcChargeRetryTerm.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcChargeRetryTerm.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcChargeRetryTerm.ForeColor = System.Drawing.Color.WhiteSmoke; - this.vcChargeRetryTerm.ForeColorButton = System.Drawing.Color.Black; - this.vcChargeRetryTerm.Location = new System.Drawing.Point(270, 239); - this.vcChargeRetryTerm.MaxValue = 999999D; - this.vcChargeRetryTerm.MinValue = 0D; - this.vcChargeRetryTerm.Name = "vcChargeRetryTerm"; - this.vcChargeRetryTerm.NullDisplay = "--"; - this.vcChargeRetryTerm.SideButtonClickValue = 30D; - this.vcChargeRetryTerm.Size = new System.Drawing.Size(197, 37); - this.vcChargeRetryTerm.TabIndex = 32; - this.vcChargeRetryTerm.Tag = "SL"; - this.vcChargeRetryTerm.Text = "300"; - this.vcChargeRetryTerm.Value = 300D; - this.vcChargeRetryTerm.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); - this.vcChargeRetryTerm.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // vcChargeSearchTime - // - this.vcChargeSearchTime.BackColorButton = System.Drawing.Color.White; - this.vcChargeSearchTime.ButtonWidth = "30"; - this.vcChargeSearchTime.ColorBorder = System.Drawing.Color.White; - this.vcChargeSearchTime.DecimalPosition = ((ushort)(0)); - this.vcChargeSearchTime.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.vcChargeSearchTime.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.vcChargeSearchTime.ForeColor = System.Drawing.Color.WhiteSmoke; - this.vcChargeSearchTime.ForeColorButton = System.Drawing.Color.Black; - this.vcChargeSearchTime.Location = new System.Drawing.Point(270, 331); - this.vcChargeSearchTime.MaxValue = 999999D; - this.vcChargeSearchTime.MinValue = 0D; - this.vcChargeSearchTime.Name = "vcChargeSearchTime"; - this.vcChargeSearchTime.NullDisplay = "--"; - this.vcChargeSearchTime.SideButtonClickValue = 30D; - this.vcChargeSearchTime.Size = new System.Drawing.Size(197, 37); - this.vcChargeSearchTime.TabIndex = 38; - this.vcChargeSearchTime.Tag = "SL"; - this.vcChargeSearchTime.Text = "120"; - this.vcChargeSearchTime.Value = 120D; - this.vcChargeSearchTime.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); - // - // tabPage4 - // - this.tabPage4.Controls.Add(this.groupBox3); - this.tabPage4.Controls.Add(this.panel6); - this.tabPage4.Location = new System.Drawing.Point(4, 4); - this.tabPage4.Name = "tabPage4"; - this.tabPage4.Padding = new System.Windows.Forms.Padding(0, 5, 0, 2); - this.tabPage4.Size = new System.Drawing.Size(1244, 570); - this.tabPage4.TabIndex = 3; - this.tabPage4.Text = "Advance"; - this.tabPage4.UseVisualStyleBackColor = true; - // - // groupBox3 - // - this.groupBox3.Controls.Add(this.chkClearPos); - this.groupBox3.Controls.Add(this.propertyGrid1); - this.groupBox3.Controls.Add(this.groupBox1); - this.groupBox3.Controls.Add(this.chkDetectManualCharge); - this.groupBox3.Controls.Add(this.chkFullScreen); - this.groupBox3.Controls.Add(this.nudMusicVol); - this.groupBox3.Controls.Add(this.label22); - this.groupBox3.Controls.Add(this.linkLabel5); - this.groupBox3.Controls.Add(this.linkLabel4); - this.groupBox3.Controls.Add(this.linkLabel3); - this.groupBox3.Controls.Add(this.tbMusic); - this.groupBox3.Controls.Add(this.label16); - this.groupBox3.Controls.Add(this.nudDoorSoundTerm); - this.groupBox3.Controls.Add(this.label3); - this.groupBox3.Controls.Add(this.groupBox4); - this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupBox3.Location = new System.Drawing.Point(5, 5); - this.groupBox3.Name = "groupBox3"; - this.groupBox3.Size = new System.Drawing.Size(1239, 563); - this.groupBox3.TabIndex = 32; - this.groupBox3.TabStop = false; - this.groupBox3.Text = "일반 설정"; - // - // chkClearPos - // - this.chkClearPos.AutoSize = true; - this.chkClearPos.Font = new System.Drawing.Font("궁서체", 20F, System.Drawing.FontStyle.Bold); - this.chkClearPos.Location = new System.Drawing.Point(27, 371); - this.chkClearPos.Name = "chkClearPos"; - this.chkClearPos.Size = new System.Drawing.Size(468, 31); - this.chkClearPos.TabIndex = 12; - this.chkClearPos.Text = "자동모드 해제 시 위치정보 삭제"; - this.chkClearPos.UseVisualStyleBackColor = true; - // - // propertyGrid1 - // - this.propertyGrid1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.propertyGrid1.Location = new System.Drawing.Point(678, 109); - this.propertyGrid1.Name = "propertyGrid1"; - this.propertyGrid1.Size = new System.Drawing.Size(538, 426); - this.propertyGrid1.TabIndex = 11; - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.tbMCID); - this.groupBox1.Controls.Add(this.label4); - this.groupBox1.Location = new System.Drawing.Point(333, 119); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(324, 113); - this.groupBox1.TabIndex = 10; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "EE Monitoring"; - // - // tbMCID - // - this.tbMCID.Location = new System.Drawing.Point(79, 38); - this.tbMCID.Name = "tbMCID"; - this.tbMCID.Size = new System.Drawing.Size(196, 21); - this.tbMCID.TabIndex = 4; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(16, 41); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(36, 12); - this.label4.TabIndex = 6; - this.label4.Text = "MCID"; - // - // chkDetectManualCharge - // - this.chkDetectManualCharge.AutoSize = true; - this.chkDetectManualCharge.Font = new System.Drawing.Font("궁서체", 20F, System.Drawing.FontStyle.Bold); - this.chkDetectManualCharge.Location = new System.Drawing.Point(678, 72); - this.chkDetectManualCharge.Name = "chkDetectManualCharge"; - this.chkDetectManualCharge.Size = new System.Drawing.Size(235, 31); - this.chkDetectManualCharge.TabIndex = 9; - this.chkDetectManualCharge.Text = "수동 충전 감지"; - this.chkDetectManualCharge.UseVisualStyleBackColor = true; - // - // chkFullScreen - // - this.chkFullScreen.AutoSize = true; - this.chkFullScreen.Font = new System.Drawing.Font("궁서체", 20F, System.Drawing.FontStyle.Bold); - this.chkFullScreen.Location = new System.Drawing.Point(27, 30); - this.chkFullScreen.Name = "chkFullScreen"; - this.chkFullScreen.Size = new System.Drawing.Size(453, 31); - this.chkFullScreen.TabIndex = 3; - this.chkFullScreen.Text = "프로그램 시작시 전체화면 사용"; - this.chkFullScreen.UseVisualStyleBackColor = true; - // - // nudMusicVol - // - this.nudMusicVol.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.nudMusicVol.Location = new System.Drawing.Point(179, 309); - this.nudMusicVol.Name = "nudMusicVol"; - this.nudMusicVol.Size = new System.Drawing.Size(102, 35); - this.nudMusicVol.TabIndex = 7; - this.nudMusicVol.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // label22 - // - this.label22.AutoSize = true; - this.label22.Location = new System.Drawing.Point(109, 326); - this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(57, 12); - this.label22.TabIndex = 6; - this.label22.Text = "음악 볼륨"; - // - // linkLabel5 - // - this.linkLabel5.AutoSize = true; - this.linkLabel5.Location = new System.Drawing.Point(387, 302); - this.linkLabel5.Name = "linkLabel5"; - this.linkLabel5.Size = new System.Drawing.Size(29, 12); - this.linkLabel5.TabIndex = 5; - this.linkLabel5.TabStop = true; - this.linkLabel5.Text = "멈춤"; - this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel5_LinkClicked); - // - // linkLabel4 - // - this.linkLabel4.AutoSize = true; - this.linkLabel4.Location = new System.Drawing.Point(387, 282); - this.linkLabel4.Name = "linkLabel4"; - this.linkLabel4.Size = new System.Drawing.Size(29, 12); - this.linkLabel4.TabIndex = 5; - this.linkLabel4.TabStop = true; - this.linkLabel4.Text = "재생"; - this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); - // - // linkLabel3 - // - this.linkLabel3.AutoSize = true; - this.linkLabel3.Location = new System.Drawing.Point(43, 292); - this.linkLabel3.Name = "linkLabel3"; - this.linkLabel3.Size = new System.Drawing.Size(65, 12); - this.linkLabel3.TabIndex = 5; - this.linkLabel3.TabStop = true; - this.linkLabel3.Text = "이동시음악"; - this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); - // - // tbMusic - // - this.tbMusic.Location = new System.Drawing.Point(114, 282); - this.tbMusic.Name = "tbMusic"; - this.tbMusic.Size = new System.Drawing.Size(267, 21); - this.tbMusic.TabIndex = 4; - // - // label16 - // - this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(288, 244); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(17, 12); - this.label16.TabIndex = 3; - this.label16.Text = "초"; - // - // nudDoorSoundTerm - // - this.nudDoorSoundTerm.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.nudDoorSoundTerm.Location = new System.Drawing.Point(181, 227); - this.nudDoorSoundTerm.Name = "nudDoorSoundTerm"; - this.nudDoorSoundTerm.Size = new System.Drawing.Size(102, 35); - this.nudDoorSoundTerm.TabIndex = 2; - this.nudDoorSoundTerm.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(43, 240); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(131, 12); - this.label3.TabIndex = 1; - this.label3.Text = "도어 업/다운 알림 간격"; - // - // groupBox4 - // - this.groupBox4.Controls.Add(this.cleartime2); - this.groupBox4.Controls.Add(this.cleartime1); - this.groupBox4.Controls.Add(this.chkClear2); - this.groupBox4.Controls.Add(this.chkClear1); - this.groupBox4.Location = new System.Drawing.Point(27, 119); - this.groupBox4.Name = "groupBox4"; - this.groupBox4.Size = new System.Drawing.Size(236, 88); - this.groupBox4.TabIndex = 0; - this.groupBox4.TabStop = false; - this.groupBox4.Text = "Count Reset"; - // - // cleartime2 - // - this.cleartime2.CustomFormat = "HH:mm"; - this.cleartime2.Format = System.Windows.Forms.DateTimePickerFormat.Custom; - this.cleartime2.Location = new System.Drawing.Point(145, 59); - this.cleartime2.Name = "cleartime2"; - this.cleartime2.Size = new System.Drawing.Size(76, 21); - this.cleartime2.TabIndex = 2; - // - // cleartime1 - // - this.cleartime1.CustomFormat = "HH:mm"; - this.cleartime1.Format = System.Windows.Forms.DateTimePickerFormat.Custom; - this.cleartime1.Location = new System.Drawing.Point(145, 27); - this.cleartime1.Name = "cleartime1"; - this.cleartime1.Size = new System.Drawing.Size(76, 21); - this.cleartime1.TabIndex = 2; - // - // chkClear2 - // - this.chkClear2.AutoSize = true; - this.chkClear2.Location = new System.Drawing.Point(23, 61); - this.chkClear2.Name = "chkClear2"; - this.chkClear2.Size = new System.Drawing.Size(116, 16); - this.chkClear2.TabIndex = 1; - this.chkClear2.Text = "오후 시간 초기화"; - this.chkClear2.UseVisualStyleBackColor = true; - // - // chkClear1 - // - this.chkClear1.AutoSize = true; - this.chkClear1.Location = new System.Drawing.Point(23, 29); - this.chkClear1.Name = "chkClear1"; - this.chkClear1.Size = new System.Drawing.Size(116, 16); - this.chkClear1.TabIndex = 0; - this.chkClear1.Text = "오전 시간 초기화"; - this.chkClear1.UseVisualStyleBackColor = true; - // - // panel6 - // - this.panel6.Dock = System.Windows.Forms.DockStyle.Left; - this.panel6.Location = new System.Drawing.Point(0, 5); - this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(5, 563); - this.panel6.TabIndex = 30; - // - // panTopMenu - // - this.panTopMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.panTopMenu.Controls.Add(this.label10); - this.panTopMenu.Controls.Add(this.btClose); - this.panTopMenu.Controls.Add(this.pictureBox1); - this.panTopMenu.Dock = System.Windows.Forms.DockStyle.Top; - this.panTopMenu.Location = new System.Drawing.Point(5, 5); - this.panTopMenu.Name = "panTopMenu"; - this.panTopMenu.Size = new System.Drawing.Size(1270, 50); - this.panTopMenu.TabIndex = 135; - // - // label10 - // - this.label10.Dock = System.Windows.Forms.DockStyle.Left; - this.label10.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label10.ForeColor = System.Drawing.Color.LightGray; - this.label10.Location = new System.Drawing.Point(49, 0); - this.label10.Name = "label10"; - this.label10.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.label10.Size = new System.Drawing.Size(236, 50); - this.label10.TabIndex = 8; - this.label10.Text = "환경 설정"; - this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // btClose - // - this.btClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btClose.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btClose.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btClose.BackgroundImage"))); - this.btClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; - this.btClose.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btClose.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.btClose.BorderColorOver = System.Drawing.Color.SkyBlue; - this.btClose.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); - this.btClose.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btClose.Cursor = System.Windows.Forms.Cursors.Hand; - this.btClose.Dock = System.Windows.Forms.DockStyle.Right; - this.btClose.Font = new System.Drawing.Font("맑은 고딕", 12F); - this.btClose.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); - this.btClose.GradientEnable = false; - this.btClose.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btClose.GradientRepeatBG = false; - this.btClose.isButton = true; - this.btClose.Location = new System.Drawing.Point(1220, 0); - this.btClose.Margin = new System.Windows.Forms.Padding(0); - this.btClose.MouseDownColor = System.Drawing.Color.Yellow; - this.btClose.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btClose.msg = null; - this.btClose.Name = "btClose"; - this.btClose.ProgressBorderColor = System.Drawing.Color.Black; - this.btClose.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btClose.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btClose.ProgressEnable = false; - this.btClose.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btClose.ProgressForeColor = System.Drawing.Color.Black; - this.btClose.ProgressMax = 100F; - this.btClose.ProgressMin = 0F; - this.btClose.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btClose.ProgressValue = 0F; - this.btClose.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btClose.Sign = ""; - this.btClose.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btClose.SignColor = System.Drawing.Color.Yellow; - this.btClose.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btClose.Size = new System.Drawing.Size(50, 50); - this.btClose.TabIndex = 7; - this.btClose.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btClose.TextShadow = true; - this.btClose.TextVisible = true; - this.btClose.Click += new System.EventHandler(this.btClose_Click); - // - // pictureBox1 - // - this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left; - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(0, 0); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(49, 50); - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // timer1 - // - this.timer1.Interval = 200; - // - // label8 - // - this.label8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.label8.Dock = System.Windows.Forms.DockStyle.Top; - this.label8.ForeColor = System.Drawing.Color.White; - this.label8.Location = new System.Drawing.Point(5, 55); - this.label8.Name = "label8"; - this.label8.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.label8.Size = new System.Drawing.Size(1270, 23); - this.label8.TabIndex = 136; - this.label8.Text = "label8"; - this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // panel2 - // - this.panel2.Controls.Add(this.bt5); - this.panel2.Controls.Add(this.bt3); - this.panel2.Controls.Add(this.bt2); - this.panel2.Controls.Add(this.bt1); - this.panel2.Controls.Add(this.bt0); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(5, 78); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(1270, 64); - this.panel2.TabIndex = 137; - // - // bt5 - // - this.bt5.BackColor = System.Drawing.Color.DimGray; - this.bt5.BackColor2 = System.Drawing.Color.Gray; - this.bt5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.bt5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.bt5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.bt5.BorderSize = new System.Windows.Forms.Padding(2); - this.bt5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.bt5.Cursor = System.Windows.Forms.Cursors.Hand; - this.bt5.Dock = System.Windows.Forms.DockStyle.Left; - this.bt5.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.bt5.ForeColor = System.Drawing.Color.White; - this.bt5.GradientEnable = true; - this.bt5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.bt5.GradientRepeatBG = false; - this.bt5.isButton = true; - this.bt5.Location = new System.Drawing.Point(612, 0); - this.bt5.MouseDownColor = System.Drawing.Color.Yellow; - this.bt5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bt5.msg = null; - this.bt5.Name = "bt5"; - this.bt5.ProgressBorderColor = System.Drawing.Color.Black; - this.bt5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.bt5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.bt5.ProgressEnable = false; - this.bt5.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.bt5.ProgressForeColor = System.Drawing.Color.Black; - this.bt5.ProgressMax = 100F; - this.bt5.ProgressMin = 0F; - this.bt5.ProgressPadding = new System.Windows.Forms.Padding(0); - this.bt5.ProgressValue = 0F; - this.bt5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.bt5.Sign = ""; - this.bt5.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.bt5.SignColor = System.Drawing.Color.Yellow; - this.bt5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.bt5.Size = new System.Drawing.Size(153, 64); - this.bt5.TabIndex = 29; - this.bt5.Tag = "5"; - this.bt5.Text = "상세"; - this.bt5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.bt5.TextShadow = true; - this.bt5.TextVisible = true; - this.bt5.Click += new System.EventHandler(this.arLabel1_Click); - // - // bt3 - // - this.bt3.BackColor = System.Drawing.Color.DimGray; - this.bt3.BackColor2 = System.Drawing.Color.Gray; - this.bt3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.bt3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.bt3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.bt3.BorderSize = new System.Windows.Forms.Padding(2); - this.bt3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.bt3.Cursor = System.Windows.Forms.Cursors.Hand; - this.bt3.Dock = System.Windows.Forms.DockStyle.Left; - this.bt3.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.bt3.ForeColor = System.Drawing.Color.White; - this.bt3.GradientEnable = true; - this.bt3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.bt3.GradientRepeatBG = false; - this.bt3.isButton = true; - this.bt3.Location = new System.Drawing.Point(459, 0); - this.bt3.MouseDownColor = System.Drawing.Color.Yellow; - this.bt3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bt3.msg = null; - this.bt3.Name = "bt3"; - this.bt3.ProgressBorderColor = System.Drawing.Color.Black; - this.bt3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.bt3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.bt3.ProgressEnable = false; - this.bt3.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.bt3.ProgressForeColor = System.Drawing.Color.Black; - this.bt3.ProgressMax = 100F; - this.bt3.ProgressMin = 0F; - this.bt3.ProgressPadding = new System.Windows.Forms.Padding(0); - this.bt3.ProgressValue = 0F; - this.bt3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.bt3.Sign = ""; - this.bt3.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.bt3.SignColor = System.Drawing.Color.Yellow; - this.bt3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.bt3.Size = new System.Drawing.Size(153, 64); - this.bt3.TabIndex = 27; - this.bt3.Tag = "3"; - this.bt3.Text = "충전"; - this.bt3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.bt3.TextShadow = true; - this.bt3.TextVisible = true; - this.bt3.Click += new System.EventHandler(this.arLabel1_Click); - // - // bt2 - // - this.bt2.BackColor = System.Drawing.Color.DimGray; - this.bt2.BackColor2 = System.Drawing.Color.Gray; - this.bt2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.bt2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.bt2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.bt2.BorderSize = new System.Windows.Forms.Padding(2); - this.bt2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.bt2.Cursor = System.Windows.Forms.Cursors.Hand; - this.bt2.Dock = System.Windows.Forms.DockStyle.Left; - this.bt2.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.bt2.ForeColor = System.Drawing.Color.White; - this.bt2.GradientEnable = true; - this.bt2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.bt2.GradientRepeatBG = false; - this.bt2.isButton = true; - this.bt2.Location = new System.Drawing.Point(306, 0); - this.bt2.MouseDownColor = System.Drawing.Color.Yellow; - this.bt2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bt2.msg = null; - this.bt2.Name = "bt2"; - this.bt2.ProgressBorderColor = System.Drawing.Color.Black; - this.bt2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.bt2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.bt2.ProgressEnable = false; - this.bt2.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.bt2.ProgressForeColor = System.Drawing.Color.Black; - this.bt2.ProgressMax = 100F; - this.bt2.ProgressMin = 0F; - this.bt2.ProgressPadding = new System.Windows.Forms.Padding(0); - this.bt2.ProgressValue = 0F; - this.bt2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.bt2.Sign = ""; - this.bt2.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.bt2.SignColor = System.Drawing.Color.Yellow; - this.bt2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.bt2.Size = new System.Drawing.Size(153, 64); - this.bt2.TabIndex = 26; - this.bt2.Tag = "2"; - this.bt2.Text = "통신"; - this.bt2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.bt2.TextShadow = true; - this.bt2.TextVisible = true; - this.bt2.Click += new System.EventHandler(this.arLabel1_Click); - // - // bt1 - // - this.bt1.BackColor = System.Drawing.Color.DimGray; - this.bt1.BackColor2 = System.Drawing.Color.Gray; - this.bt1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.bt1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.bt1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.bt1.BorderSize = new System.Windows.Forms.Padding(2); - this.bt1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.bt1.Cursor = System.Windows.Forms.Cursors.Hand; - this.bt1.Dock = System.Windows.Forms.DockStyle.Left; - this.bt1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.bt1.ForeColor = System.Drawing.Color.White; - this.bt1.GradientEnable = true; - this.bt1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.bt1.GradientRepeatBG = false; - this.bt1.isButton = true; - this.bt1.Location = new System.Drawing.Point(153, 0); - this.bt1.MouseDownColor = System.Drawing.Color.Yellow; - this.bt1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bt1.msg = null; - this.bt1.Name = "bt1"; - this.bt1.ProgressBorderColor = System.Drawing.Color.Black; - this.bt1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.bt1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.bt1.ProgressEnable = false; - this.bt1.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.bt1.ProgressForeColor = System.Drawing.Color.Black; - this.bt1.ProgressMax = 100F; - this.bt1.ProgressMin = 0F; - this.bt1.ProgressPadding = new System.Windows.Forms.Padding(0); - this.bt1.ProgressValue = 0F; - this.bt1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.bt1.Sign = ""; - this.bt1.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.bt1.SignColor = System.Drawing.Color.Yellow; - this.bt1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.bt1.Size = new System.Drawing.Size(153, 64); - this.bt1.TabIndex = 25; - this.bt1.Tag = "1"; - this.bt1.Text = "AGV"; - this.bt1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.bt1.TextShadow = true; - this.bt1.TextVisible = true; - this.bt1.Click += new System.EventHandler(this.arLabel1_Click); - // - // bt0 - // - this.bt0.BackColor = System.Drawing.Color.Lime; - this.bt0.BackColor2 = System.Drawing.Color.Green; - this.bt0.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.bt0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.bt0.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.bt0.BorderSize = new System.Windows.Forms.Padding(2); - this.bt0.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.bt0.Cursor = System.Windows.Forms.Cursors.Hand; - this.bt0.Dock = System.Windows.Forms.DockStyle.Left; - this.bt0.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.bt0.ForeColor = System.Drawing.Color.White; - this.bt0.GradientEnable = true; - this.bt0.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; - this.bt0.GradientRepeatBG = false; - this.bt0.isButton = true; - this.bt0.Location = new System.Drawing.Point(0, 0); - this.bt0.MouseDownColor = System.Drawing.Color.Yellow; - this.bt0.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bt0.msg = null; - this.bt0.Name = "bt0"; - this.bt0.ProgressBorderColor = System.Drawing.Color.Black; - this.bt0.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.bt0.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.bt0.ProgressEnable = false; - this.bt0.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.bt0.ProgressForeColor = System.Drawing.Color.Black; - this.bt0.ProgressMax = 100F; - this.bt0.ProgressMin = 0F; - this.bt0.ProgressPadding = new System.Windows.Forms.Padding(0); - this.bt0.ProgressValue = 0F; - this.bt0.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.bt0.Sign = ""; - this.bt0.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.bt0.SignColor = System.Drawing.Color.Yellow; - this.bt0.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.bt0.Size = new System.Drawing.Size(153, 64); - this.bt0.TabIndex = 24; - this.bt0.Tag = "0"; - this.bt0.Text = "일반설정"; - this.bt0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.bt0.TextShadow = true; - this.bt0.TextVisible = true; - this.bt0.Click += new System.EventHandler(this.arLabel1_Click); - // - // btSave - // - this.btSave.BackColor = System.Drawing.Color.Gray; - this.btSave.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); - this.btSave.BackgroundImagePadding = new System.Windows.Forms.Padding(0); - this.btSave.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); - this.btSave.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); - this.btSave.BorderSize = new System.Windows.Forms.Padding(2); - this.btSave.ColorTheme = arCtl.arLabel.eColorTheme.Custom; - this.btSave.Cursor = System.Windows.Forms.Cursors.Hand; - this.btSave.Dock = System.Windows.Forms.DockStyle.Bottom; - this.btSave.Font = new System.Drawing.Font("궁서체", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.btSave.ForeColor = System.Drawing.Color.White; - this.btSave.GradientEnable = true; - this.btSave.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; - this.btSave.GradientRepeatBG = false; - this.btSave.isButton = true; - this.btSave.Location = new System.Drawing.Point(5, 720); - this.btSave.MouseDownColor = System.Drawing.Color.Yellow; - this.btSave.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.btSave.msg = null; - this.btSave.Name = "btSave"; - this.btSave.ProgressBorderColor = System.Drawing.Color.Black; - this.btSave.ProgressColor1 = System.Drawing.Color.LightSkyBlue; - this.btSave.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; - this.btSave.ProgressEnable = false; - this.btSave.ProgressFont = new System.Drawing.Font("Consolas", 10F); - this.btSave.ProgressForeColor = System.Drawing.Color.Black; - this.btSave.ProgressMax = 100F; - this.btSave.ProgressMin = 0F; - this.btSave.ProgressPadding = new System.Windows.Forms.Padding(0); - this.btSave.ProgressValue = 0F; - this.btSave.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); - this.btSave.Sign = ""; - this.btSave.SignAlign = System.Drawing.ContentAlignment.BottomRight; - this.btSave.SignColor = System.Drawing.Color.Yellow; - this.btSave.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); - this.btSave.Size = new System.Drawing.Size(1270, 75); - this.btSave.TabIndex = 8; - this.btSave.Text = "저장"; - this.btSave.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - this.btSave.TextShadow = true; - this.btSave.TextVisible = true; - this.btSave.Click += new System.EventHandler(this.btSave_Click); - // - // fSetup - // - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; - this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); - this.ClientSize = new System.Drawing.Size(1280, 800); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.panel2); - this.Controls.Add(this.label8); - this.Controls.Add(this.panTopMenu); - this.Controls.Add(this.btSave); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.KeyPreview = true; - this.Name = "fSetup"; - this.Padding = new System.Windows.Forms.Padding(5); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Setup"; - this.Load += new System.EventHandler(this.fSetup_Load); - this.tabControl1.ResumeLayout(false); - this.tabPage6.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.tableLayoutPanel1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - this.tabPage2.ResumeLayout(false); - this.tabPage2.PerformLayout(); - this.tabPage3.ResumeLayout(false); - this.tabPage3.PerformLayout(); - this.tabPage4.ResumeLayout(false); - this.groupBox3.ResumeLayout(false); - this.groupBox3.PerformLayout(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.nudMusicVol)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudDoorSoundTerm)).EndInit(); - this.groupBox4.ResumeLayout(false); - this.groupBox4.PerformLayout(); - this.panTopMenu.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.panel2.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - private AGVControl.ValueSelect vcSpeedL; - private AGVControl.ValueSelect vcSpeedM; - private System.Windows.Forms.Label label2; - private arCtl.arLabel btSave; - private arCtl.arLabel btSpeaker; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox tbPortXBE; - private System.Windows.Forms.ComboBox tbBaudXBE; - private System.Windows.Forms.Button btSelXbee; - private System.Windows.Forms.Panel panTopMenu; - private arCtl.arLabel btClose; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.Label label10; - private AGVControl.ValueSelect valIntervalXBE; - private System.Windows.Forms.Timer timer1; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.TabPage tabPage4; - private System.Windows.Forms.Label label23; - private AGVControl.ValueSelect vcChargeMaxTime; - private System.Windows.Forms.Label label24; - private System.Windows.Forms.Panel panel6; - private System.Windows.Forms.Label label1; - private AGVControl.ValueSelect vcChargeRetryTerm; - private System.Windows.Forms.Label label9; - private AGVControl.ValueSelect vcSpeedS; - private System.Windows.Forms.Label label25; - private AGVControl.ValueSelect vcChargeSearchTime; - private System.Windows.Forms.Label label26; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.ComboBox tbBaudBAT; - private System.Windows.Forms.TextBox tbportBMS; - private System.Windows.Forms.Label label27; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.ComboBox tbBaudAGV; - private System.Windows.Forms.TextBox tbPortAGV; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label28; - private AGVControl.ValueSelect valIntervalBMS; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.Label label30; - private System.Windows.Forms.Button button3; - private AGVControl.ValueSelect vcSpeedH; - private AGVControl.ValueSelect vcSpeedR; - private AGVControl.ValueSelect vcpidPL; - private AGVControl.ValueSelect vcpidPH; - private AGVControl.ValueSelect vcpidPM; - private System.Windows.Forms.Label label15; - private AGVControl.ValueSelect vcpidDL; - private AGVControl.ValueSelect vcpidDH; - private AGVControl.ValueSelect vcpidDM; - private System.Windows.Forms.Label label32; - private AGVControl.ValueSelect vcpidIL; - private AGVControl.ValueSelect vcpidIH; - private AGVControl.ValueSelect vcpidIM; - private System.Windows.Forms.Label label31; - private AGVControl.ValueSelect vcpidDS; - private AGVControl.ValueSelect vcpidPS; - private AGVControl.ValueSelect vcpidIS; - private AGVControl.ValueSelect vcChargeEmergencyLevel; - private arCtl.arLabel btAutoCharge; - private System.Windows.Forms.TabPage tabPage3; - private System.Windows.Forms.Label label21; - private System.Windows.Forms.Label label33; - private System.Windows.Forms.Label label34; - private System.Windows.Forms.Label label35; - private System.Windows.Forms.Label label36; - private System.Windows.Forms.Label label37; - private System.Windows.Forms.Label label38; - private System.Windows.Forms.Label label14; - private System.Windows.Forms.Label label39; - private System.Windows.Forms.Label label41; - private System.Windows.Forms.Label label42; - private System.Windows.Forms.Label label43; - private AGVControl.ValueSelect tbChargerID; - private AGVControl.ValueSelect vcChargeWaitSec; - private System.Windows.Forms.Label label29; - private System.Windows.Forms.Label label44; - private AGVControl.ValueSelect vcSCK; - private System.Windows.Forms.Label label55; - private AGVControl.ValueSelect vcSSK; - private System.Windows.Forms.Label label56; - private AGVControl.ValueSelect vcSTT; - private System.Windows.Forms.Label label57; - private AGVControl.ValueSelect vcChargeStartLevel; - private AGVControl.ValueSelect vcChargeMaxLevel; - private System.Windows.Forms.GroupBox groupBox3; - private System.Windows.Forms.CheckBox chkFullScreen; - private System.Windows.Forms.NumericUpDown nudMusicVol; - private System.Windows.Forms.Label label22; - private System.Windows.Forms.LinkLabel linkLabel5; - private System.Windows.Forms.LinkLabel linkLabel4; - private System.Windows.Forms.LinkLabel linkLabel3; - private System.Windows.Forms.TextBox tbMusic; - private System.Windows.Forms.Label label16; - private System.Windows.Forms.NumericUpDown nudDoorSoundTerm; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.GroupBox groupBox4; - private System.Windows.Forms.DateTimePicker cleartime2; - private System.Windows.Forms.DateTimePicker cleartime1; - private System.Windows.Forms.CheckBox chkClear2; - private System.Windows.Forms.CheckBox chkClear1; - private arCtl.arLabel btMusic; - private System.Windows.Forms.TabPage tabPage6; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.CheckBox chkDetectManualCharge; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TextBox tbMCID; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.PropertyGrid propertyGrid1; - private System.Windows.Forms.Label label18; - private System.Windows.Forms.Panel panel2; - private arCtl.arLabel bt5; - private arCtl.arLabel bt3; - private arCtl.arLabel bt2; - private arCtl.arLabel bt1; - private arCtl.arLabel bt0; - private System.Windows.Forms.Label label11; - private AGVControl.ValueSelect vcSpeedDrive; - private System.Windows.Forms.Label label19; - private AGVControl.ValueSelect vcSAD; - private System.Windows.Forms.Label label20; - private System.Windows.Forms.Label label50; - private System.Windows.Forms.Label label40; - private System.Windows.Forms.Button button6; - private System.Windows.Forms.Button button5; - private System.Windows.Forms.Button button7; - private System.Windows.Forms.Label label52; - private System.Windows.Forms.TextBox tbagvchannel; - private System.Windows.Forms.TextBox tbagvpanid; - private System.Windows.Forms.TextBox tbagvaddr; - private System.Windows.Forms.Label label58; - private System.Windows.Forms.CheckBox chkClearPos; - private System.Windows.Forms.Label label7; - private AGVControl.ValueSelect vcXBID; - private AGVControl.ValueSelect vcGDS; - private System.Windows.Forms.Button button8; - } +namespace Project +{ + partial class fSetup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSetup)); + this.label2 = new System.Windows.Forms.Label(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage6 = new System.Windows.Forms.TabPage(); + this.panel1 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btAutoCharge = new arCtl.arLabel(); + this.btSpeaker = new arCtl.arLabel(); + this.btMusic = new arCtl.arLabel(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.button8 = new System.Windows.Forms.Button(); + this.vcGDS = new AGVControl.ValueSelect(); + this.label7 = new System.Windows.Forms.Label(); + this.vcXBID = new AGVControl.ValueSelect(); + this.tbagvchannel = new System.Windows.Forms.TextBox(); + this.tbagvpanid = new System.Windows.Forms.TextBox(); + this.tbagvaddr = new System.Windows.Forms.TextBox(); + this.button7 = new System.Windows.Forms.Button(); + this.label52 = new System.Windows.Forms.Label(); + this.button6 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.label50 = new System.Windows.Forms.Label(); + this.label40 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label18 = new System.Windows.Forms.Label(); + this.label57 = new System.Windows.Forms.Label(); + this.label56 = new System.Windows.Forms.Label(); + this.label55 = new System.Windows.Forms.Label(); + this.label32 = new System.Windows.Forms.Label(); + this.label31 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label25 = new System.Windows.Forms.Label(); + this.vcSAD = new AGVControl.ValueSelect(); + this.vcSpeedDrive = new AGVControl.ValueSelect(); + this.vcSTT = new AGVControl.ValueSelect(); + this.vcSSK = new AGVControl.ValueSelect(); + this.vcSCK = new AGVControl.ValueSelect(); + this.vcpidDS = new AGVControl.ValueSelect(); + this.vcpidPS = new AGVControl.ValueSelect(); + this.vcpidIS = new AGVControl.ValueSelect(); + this.vcpidDL = new AGVControl.ValueSelect(); + this.vcpidDH = new AGVControl.ValueSelect(); + this.vcpidDM = new AGVControl.ValueSelect(); + this.vcpidIL = new AGVControl.ValueSelect(); + this.vcpidIH = new AGVControl.ValueSelect(); + this.vcpidIM = new AGVControl.ValueSelect(); + this.vcpidPL = new AGVControl.ValueSelect(); + this.vcpidPH = new AGVControl.ValueSelect(); + this.vcpidPM = new AGVControl.ValueSelect(); + this.vcSpeedR = new AGVControl.ValueSelect(); + this.vcSpeedH = new AGVControl.ValueSelect(); + this.vcSpeedS = new AGVControl.ValueSelect(); + this.vcSpeedL = new AGVControl.ValueSelect(); + this.vcSpeedM = new AGVControl.ValueSelect(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.button3 = new System.Windows.Forms.Button(); + this.label30 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.tbBaudBAT = new System.Windows.Forms.ComboBox(); + this.tbportBMS = new System.Windows.Forms.TextBox(); + this.label27 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.tbBaudAGV = new System.Windows.Forms.ComboBox(); + this.tbPortAGV = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.btSelXbee = new System.Windows.Forms.Button(); + this.tbBaudXBE = new System.Windows.Forms.ComboBox(); + this.tbPortXBE = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.valIntervalBMS = new AGVControl.ValueSelect(); + this.valIntervalXBE = new AGVControl.ValueSelect(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.label58 = new System.Windows.Forms.Label(); + this.label19 = new System.Windows.Forms.Label(); + this.label44 = new System.Windows.Forms.Label(); + this.label29 = new System.Windows.Forms.Label(); + this.label43 = new System.Windows.Forms.Label(); + this.label42 = new System.Windows.Forms.Label(); + this.label41 = new System.Windows.Forms.Label(); + this.label39 = new System.Windows.Forms.Label(); + this.label28 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label33 = new System.Windows.Forms.Label(); + this.label36 = new System.Windows.Forms.Label(); + this.label37 = new System.Windows.Forms.Label(); + this.label35 = new System.Windows.Forms.Label(); + this.label34 = new System.Windows.Forms.Label(); + this.label38 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label26 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.label24 = new System.Windows.Forms.Label(); + this.vcChargeStartLevel = new AGVControl.ValueSelect(); + this.vcChargeMaxLevel = new AGVControl.ValueSelect(); + this.vcChargeWaitSec = new AGVControl.ValueSelect(); + this.tbChargerID = new AGVControl.ValueSelect(); + this.vcChargeEmergencyLevel = new AGVControl.ValueSelect(); + this.vcChargeMaxTime = new AGVControl.ValueSelect(); + this.vcChargeRetryTerm = new AGVControl.ValueSelect(); + this.vcChargeSearchTime = new AGVControl.ValueSelect(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.chkClearPos = new System.Windows.Forms.CheckBox(); + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.tbMCID = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.chkDetectManualCharge = new System.Windows.Forms.CheckBox(); + this.chkFullScreen = new System.Windows.Forms.CheckBox(); + this.nudMusicVol = new System.Windows.Forms.NumericUpDown(); + this.label22 = new System.Windows.Forms.Label(); + this.linkLabel5 = new System.Windows.Forms.LinkLabel(); + this.linkLabel4 = new System.Windows.Forms.LinkLabel(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.tbMusic = new System.Windows.Forms.TextBox(); + this.label16 = new System.Windows.Forms.Label(); + this.nudDoorSoundTerm = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.cleartime2 = new System.Windows.Forms.DateTimePicker(); + this.cleartime1 = new System.Windows.Forms.DateTimePicker(); + this.chkClear2 = new System.Windows.Forms.CheckBox(); + this.chkClear1 = new System.Windows.Forms.CheckBox(); + this.panel6 = new System.Windows.Forms.Panel(); + this.panTopMenu = new System.Windows.Forms.Panel(); + this.label10 = new System.Windows.Forms.Label(); + this.btClose = new arCtl.arLabel(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.label8 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.bt5 = new arCtl.arLabel(); + this.bt3 = new arCtl.arLabel(); + this.bt2 = new arCtl.arLabel(); + this.bt1 = new arCtl.arLabel(); + this.bt0 = new arCtl.arLabel(); + this.btSave = new arCtl.arLabel(); + this.tabControl1.SuspendLayout(); + this.tabPage6.SuspendLayout(); + this.panel1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.tabPage4.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudMusicVol)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDoorSoundTerm)).BeginInit(); + this.groupBox4.SuspendLayout(); + this.panTopMenu.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label2.Location = new System.Drawing.Point(76, 32); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(187, 24); + this.label2.TabIndex = 5; + this.label2.Text = "속도(저/중/고)"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tabControl1 + // + this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Right; + this.tabControl1.Controls.Add(this.tabPage6); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(5, 142); + this.tabControl1.Multiline = true; + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(1270, 578); + this.tabControl1.TabIndex = 14; + // + // tabPage6 + // + this.tabPage6.Controls.Add(this.panel1); + this.tabPage6.Location = new System.Drawing.Point(4, 4); + this.tabPage6.Name = "tabPage6"; + this.tabPage6.Size = new System.Drawing.Size(1244, 570); + this.tabPage6.TabIndex = 6; + this.tabPage6.Text = "일반"; + this.tabPage6.UseVisualStyleBackColor = true; + // + // panel1 + // + this.panel1.Controls.Add(this.tableLayoutPanel1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.panel1.Size = new System.Drawing.Size(1244, 648); + this.panel1.TabIndex = 0; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.btAutoCharge, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.btSpeaker, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btMusic, 0, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(17, 17); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1227, 550); + this.tableLayoutPanel1.TabIndex = 24; + // + // btAutoCharge + // + this.btAutoCharge.BackColor = System.Drawing.Color.Lime; + this.btAutoCharge.BackColor2 = System.Drawing.Color.Green; + this.btAutoCharge.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btAutoCharge.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btAutoCharge.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.btAutoCharge.BorderSize = new System.Windows.Forms.Padding(2); + this.btAutoCharge.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btAutoCharge.Cursor = System.Windows.Forms.Cursors.Hand; + this.btAutoCharge.Dock = System.Windows.Forms.DockStyle.Fill; + this.btAutoCharge.Font = new System.Drawing.Font("맑은 고딕", 80F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btAutoCharge.ForeColor = System.Drawing.Color.White; + this.btAutoCharge.GradientEnable = true; + this.btAutoCharge.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btAutoCharge.GradientRepeatBG = false; + this.btAutoCharge.isButton = true; + this.btAutoCharge.Location = new System.Drawing.Point(616, 3); + this.btAutoCharge.MouseDownColor = System.Drawing.Color.Yellow; + this.btAutoCharge.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btAutoCharge.msg = null; + this.btAutoCharge.Name = "btAutoCharge"; + this.btAutoCharge.ProgressBorderColor = System.Drawing.Color.Black; + this.btAutoCharge.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btAutoCharge.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btAutoCharge.ProgressEnable = false; + this.btAutoCharge.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btAutoCharge.ProgressForeColor = System.Drawing.Color.Black; + this.btAutoCharge.ProgressMax = 100F; + this.btAutoCharge.ProgressMin = 0F; + this.btAutoCharge.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btAutoCharge.ProgressValue = 0F; + this.btAutoCharge.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btAutoCharge.Sign = ""; + this.btAutoCharge.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btAutoCharge.SignColor = System.Drawing.Color.Yellow; + this.btAutoCharge.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btAutoCharge.Size = new System.Drawing.Size(608, 269); + this.btAutoCharge.TabIndex = 20; + this.btAutoCharge.Tag = "1"; + this.btAutoCharge.Text = "자동충전"; + this.btAutoCharge.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btAutoCharge.TextShadow = true; + this.btAutoCharge.TextVisible = true; + this.btAutoCharge.Click += new System.EventHandler(this.btMagnet_Click); + // + // btSpeaker + // + this.btSpeaker.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.btSpeaker.BackColor2 = System.Drawing.Color.Gray; + this.btSpeaker.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btSpeaker.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btSpeaker.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.btSpeaker.BorderSize = new System.Windows.Forms.Padding(2); + this.btSpeaker.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btSpeaker.Cursor = System.Windows.Forms.Cursors.Hand; + this.btSpeaker.Dock = System.Windows.Forms.DockStyle.Fill; + this.btSpeaker.Font = new System.Drawing.Font("맑은 고딕", 80F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btSpeaker.ForeColor = System.Drawing.Color.White; + this.btSpeaker.GradientEnable = true; + this.btSpeaker.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btSpeaker.GradientRepeatBG = false; + this.btSpeaker.isButton = true; + this.btSpeaker.Location = new System.Drawing.Point(3, 3); + this.btSpeaker.MouseDownColor = System.Drawing.Color.Yellow; + this.btSpeaker.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btSpeaker.msg = null; + this.btSpeaker.Name = "btSpeaker"; + this.btSpeaker.ProgressBorderColor = System.Drawing.Color.Black; + this.btSpeaker.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btSpeaker.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btSpeaker.ProgressEnable = false; + this.btSpeaker.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btSpeaker.ProgressForeColor = System.Drawing.Color.Black; + this.btSpeaker.ProgressMax = 100F; + this.btSpeaker.ProgressMin = 0F; + this.btSpeaker.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btSpeaker.ProgressValue = 0F; + this.btSpeaker.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btSpeaker.Sign = ""; + this.btSpeaker.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btSpeaker.SignColor = System.Drawing.Color.Yellow; + this.btSpeaker.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btSpeaker.Size = new System.Drawing.Size(607, 269); + this.btSpeaker.TabIndex = 11; + this.btSpeaker.Tag = "0"; + this.btSpeaker.Text = "음성지원"; + this.btSpeaker.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btSpeaker.TextShadow = true; + this.btSpeaker.TextVisible = true; + this.btSpeaker.Click += new System.EventHandler(this.btMagnet_Click); + // + // btMusic + // + this.btMusic.BackColor = System.Drawing.Color.Lime; + this.btMusic.BackColor2 = System.Drawing.Color.Green; + this.btMusic.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btMusic.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btMusic.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.btMusic.BorderSize = new System.Windows.Forms.Padding(2); + this.btMusic.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btMusic.Cursor = System.Windows.Forms.Cursors.Hand; + this.btMusic.Dock = System.Windows.Forms.DockStyle.Fill; + this.btMusic.Font = new System.Drawing.Font("맑은 고딕", 80F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btMusic.ForeColor = System.Drawing.Color.White; + this.btMusic.GradientEnable = true; + this.btMusic.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btMusic.GradientRepeatBG = false; + this.btMusic.isButton = true; + this.btMusic.Location = new System.Drawing.Point(3, 278); + this.btMusic.MouseDownColor = System.Drawing.Color.Yellow; + this.btMusic.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btMusic.msg = null; + this.btMusic.Name = "btMusic"; + this.btMusic.ProgressBorderColor = System.Drawing.Color.Black; + this.btMusic.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btMusic.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btMusic.ProgressEnable = false; + this.btMusic.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btMusic.ProgressForeColor = System.Drawing.Color.Black; + this.btMusic.ProgressMax = 100F; + this.btMusic.ProgressMin = 0F; + this.btMusic.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btMusic.ProgressValue = 0F; + this.btMusic.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btMusic.Sign = ""; + this.btMusic.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btMusic.SignColor = System.Drawing.Color.Yellow; + this.btMusic.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btMusic.Size = new System.Drawing.Size(607, 269); + this.btMusic.TabIndex = 23; + this.btMusic.Tag = "2"; + this.btMusic.Text = "배경음악"; + this.btMusic.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btMusic.TextShadow = true; + this.btMusic.TextVisible = true; + this.btMusic.Click += new System.EventHandler(this.btMagnet_Click); + // + // tabPage1 + // + this.tabPage1.BackColor = System.Drawing.Color.Navy; + this.tabPage1.Controls.Add(this.button8); + this.tabPage1.Controls.Add(this.vcGDS); + this.tabPage1.Controls.Add(this.label7); + this.tabPage1.Controls.Add(this.vcXBID); + this.tabPage1.Controls.Add(this.tbagvchannel); + this.tabPage1.Controls.Add(this.tbagvpanid); + this.tabPage1.Controls.Add(this.tbagvaddr); + this.tabPage1.Controls.Add(this.button7); + this.tabPage1.Controls.Add(this.label52); + this.tabPage1.Controls.Add(this.button6); + this.tabPage1.Controls.Add(this.button5); + this.tabPage1.Controls.Add(this.label50); + this.tabPage1.Controls.Add(this.label40); + this.tabPage1.Controls.Add(this.label20); + this.tabPage1.Controls.Add(this.label11); + this.tabPage1.Controls.Add(this.label18); + this.tabPage1.Controls.Add(this.label57); + this.tabPage1.Controls.Add(this.label56); + this.tabPage1.Controls.Add(this.label55); + this.tabPage1.Controls.Add(this.label32); + this.tabPage1.Controls.Add(this.label31); + this.tabPage1.Controls.Add(this.label15); + this.tabPage1.Controls.Add(this.label25); + this.tabPage1.Controls.Add(this.label2); + this.tabPage1.Controls.Add(this.vcSAD); + this.tabPage1.Controls.Add(this.vcSpeedDrive); + this.tabPage1.Controls.Add(this.vcSTT); + this.tabPage1.Controls.Add(this.vcSSK); + this.tabPage1.Controls.Add(this.vcSCK); + this.tabPage1.Controls.Add(this.vcpidDS); + this.tabPage1.Controls.Add(this.vcpidPS); + this.tabPage1.Controls.Add(this.vcpidIS); + this.tabPage1.Controls.Add(this.vcpidDL); + this.tabPage1.Controls.Add(this.vcpidDH); + this.tabPage1.Controls.Add(this.vcpidDM); + this.tabPage1.Controls.Add(this.vcpidIL); + this.tabPage1.Controls.Add(this.vcpidIH); + this.tabPage1.Controls.Add(this.vcpidIM); + this.tabPage1.Controls.Add(this.vcpidPL); + this.tabPage1.Controls.Add(this.vcpidPH); + this.tabPage1.Controls.Add(this.vcpidPM); + this.tabPage1.Controls.Add(this.vcSpeedR); + this.tabPage1.Controls.Add(this.vcSpeedH); + this.tabPage1.Controls.Add(this.vcSpeedS); + this.tabPage1.Controls.Add(this.vcSpeedL); + this.tabPage1.Controls.Add(this.vcSpeedM); + this.tabPage1.Location = new System.Drawing.Point(4, 4); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(1244, 570); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "AGV"; + // + // button8 + // + this.button8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button8.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button8.Location = new System.Drawing.Point(480, 509); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(147, 54); + this.button8.TabIndex = 82; + this.button8.Tag = "SCH"; + this.button8.Text = "TurnGDS"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // vcGDS + // + this.vcGDS.BackColorButton = System.Drawing.Color.White; + this.vcGDS.ButtonWidth = "30"; + this.vcGDS.ColorBorder = System.Drawing.Color.White; + this.vcGDS.DecimalPosition = ((ushort)(0)); + this.vcGDS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcGDS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcGDS.ForeColor = System.Drawing.Color.White; + this.vcGDS.ForeColorButton = System.Drawing.Color.Black; + this.vcGDS.Location = new System.Drawing.Point(633, 509); + this.vcGDS.MaxValue = 9999D; + this.vcGDS.MinValue = 0D; + this.vcGDS.Name = "vcGDS"; + this.vcGDS.NullDisplay = "--"; + this.vcGDS.SideButtonClickValue = 1D; + this.vcGDS.Size = new System.Drawing.Size(164, 54); + this.vcGDS.TabIndex = 80; + this.vcGDS.Tag = "SDH"; + this.vcGDS.Text = "1000"; + this.vcGDS.Value = 1000D; + this.vcGDS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label7.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label7.Location = new System.Drawing.Point(162, 524); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(101, 24); + this.label7.TabIndex = 79; + this.label7.Text = "Xbee ID"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // vcXBID + // + this.vcXBID.BackColorButton = System.Drawing.Color.White; + this.vcXBID.ButtonWidth = "30"; + this.vcXBID.ColorBorder = System.Drawing.Color.White; + this.vcXBID.DecimalPosition = ((ushort)(0)); + this.vcXBID.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcXBID.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcXBID.ForeColor = System.Drawing.Color.White; + this.vcXBID.ForeColorButton = System.Drawing.Color.Black; + this.vcXBID.Location = new System.Drawing.Point(269, 509); + this.vcXBID.MaxValue = 9999D; + this.vcXBID.MinValue = 0D; + this.vcXBID.Name = "vcXBID"; + this.vcXBID.NullDisplay = "--"; + this.vcXBID.SideButtonClickValue = 1D; + this.vcXBID.Size = new System.Drawing.Size(164, 54); + this.vcXBID.TabIndex = 78; + this.vcXBID.Tag = "SDH"; + this.vcXBID.Text = "30"; + this.vcXBID.Value = 30D; + this.vcXBID.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + // + // tbagvchannel + // + this.tbagvchannel.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold); + this.tbagvchannel.Location = new System.Drawing.Point(975, 201); + this.tbagvchannel.Name = "tbagvchannel"; + this.tbagvchannel.Size = new System.Drawing.Size(164, 54); + this.tbagvchannel.TabIndex = 77; + this.tbagvchannel.Click += new System.EventHandler(this.tbagvaddr_Click); + // + // tbagvpanid + // + this.tbagvpanid.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold); + this.tbagvpanid.Location = new System.Drawing.Point(975, 141); + this.tbagvpanid.Name = "tbagvpanid"; + this.tbagvpanid.Size = new System.Drawing.Size(164, 54); + this.tbagvpanid.TabIndex = 76; + this.tbagvpanid.Click += new System.EventHandler(this.tbagvaddr_Click); + // + // tbagvaddr + // + this.tbagvaddr.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold); + this.tbagvaddr.Location = new System.Drawing.Point(975, 77); + this.tbagvaddr.Name = "tbagvaddr"; + this.tbagvaddr.Size = new System.Drawing.Size(164, 54); + this.tbagvaddr.TabIndex = 75; + this.tbagvaddr.Click += new System.EventHandler(this.tbagvaddr_Click); + // + // button7 + // + this.button7.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button7.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button7.Location = new System.Drawing.Point(1145, 77); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(93, 56); + this.button7.TabIndex = 74; + this.button7.Tag = "SAD"; + this.button7.Text = "SET"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // label52 + // + this.label52.AutoSize = true; + this.label52.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label52.ForeColor = System.Drawing.Color.Gray; + this.label52.Location = new System.Drawing.Point(868, 92); + this.label52.Name = "label52"; + this.label52.Size = new System.Drawing.Size(101, 24); + this.label52.TabIndex = 73; + this.label52.Text = "Address"; + this.label52.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // button6 + // + this.button6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button6.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button6.Location = new System.Drawing.Point(1145, 197); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(93, 56); + this.button6.TabIndex = 71; + this.button6.Tag = "SCH"; + this.button6.Text = "SET"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button5 + // + this.button5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button5.Font = new System.Drawing.Font("궁서체", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button5.Location = new System.Drawing.Point(1145, 137); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(93, 56); + this.button5.TabIndex = 70; + this.button5.Tag = "SPN"; + this.button5.Text = "SET"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // label50 + // + this.label50.AutoSize = true; + this.label50.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label50.ForeColor = System.Drawing.Color.Gray; + this.label50.Location = new System.Drawing.Point(868, 212); + this.label50.Name = "label50"; + this.label50.Size = new System.Drawing.Size(101, 24); + this.label50.TabIndex = 69; + this.label50.Text = "Channel"; + this.label50.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label40.ForeColor = System.Drawing.Color.Gray; + this.label40.Location = new System.Drawing.Point(881, 152); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(88, 24); + this.label40.TabIndex = 67; + this.label40.Text = "Pan ID"; + this.label40.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label20.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label20.Location = new System.Drawing.Point(526, 464); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(101, 24); + this.label20.TabIndex = 65; + this.label20.Text = "Address"; + this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label11.ForeColor = System.Drawing.Color.Gray; + this.label11.Location = new System.Drawing.Point(846, 32); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(123, 24); + this.label11.TabIndex = 63; + this.label11.Text = "주행 속도"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label18.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label18.Location = new System.Drawing.Point(49, 342); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(214, 24); + this.label18.TabIndex = 61; + this.label18.Text = "정지상수 (P/I/D)"; + this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label57 + // + this.label57.AutoSize = true; + this.label57.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label57.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label57.Location = new System.Drawing.Point(63, 464); + this.label57.Name = "label57"; + this.label57.Size = new System.Drawing.Size(200, 24); + this.label57.TabIndex = 60; + this.label57.Text = "TAG 재입력 시간"; + this.label57.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label56 + // + this.label56.AutoSize = true; + this.label56.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label56.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label56.Location = new System.Drawing.Point(441, 404); + this.label56.Name = "label56"; + this.label56.Size = new System.Drawing.Size(186, 24); + this.label56.TabIndex = 58; + this.label56.Text = "정지 감속 주기"; + this.label56.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label55 + // + this.label55.AutoSize = true; + this.label55.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label55.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label55.Location = new System.Drawing.Point(77, 404); + this.label55.Name = "label55"; + this.label55.Size = new System.Drawing.Size(186, 24); + this.label55.TabIndex = 58; + this.label55.Text = "정지 감속 상수"; + this.label55.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label32.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label32.Location = new System.Drawing.Point(58, 280); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(205, 24); + this.label32.TabIndex = 51; + this.label32.Text = "PID (H/M/L) - D"; + this.label32.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label31.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label31.Location = new System.Drawing.Point(58, 218); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(205, 24); + this.label31.TabIndex = 47; + this.label31.Text = "PID (H/M/L) - I"; + this.label31.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label15.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label15.Location = new System.Drawing.Point(58, 156); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(205, 24); + this.label15.TabIndex = 43; + this.label15.Text = "PID (H/M/L) - P"; + this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label25.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label25.Location = new System.Drawing.Point(64, 94); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(199, 24); + this.label25.TabIndex = 36; + this.label25.Text = "속도(정지/회전)"; + this.label25.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // vcSAD + // + this.vcSAD.BackColorButton = System.Drawing.Color.White; + this.vcSAD.ButtonWidth = "30"; + this.vcSAD.ColorBorder = System.Drawing.Color.White; + this.vcSAD.DecimalPosition = ((ushort)(0)); + this.vcSAD.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSAD.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSAD.ForeColor = System.Drawing.Color.White; + this.vcSAD.ForeColorButton = System.Drawing.Color.Black; + this.vcSAD.Location = new System.Drawing.Point(633, 449); + this.vcSAD.MaxValue = 9999D; + this.vcSAD.MinValue = 0D; + this.vcSAD.Name = "vcSAD"; + this.vcSAD.NullDisplay = "--"; + this.vcSAD.SideButtonClickValue = 1D; + this.vcSAD.Size = new System.Drawing.Size(164, 54); + this.vcSAD.TabIndex = 64; + this.vcSAD.Tag = "SAD"; + this.vcSAD.Text = "30"; + this.vcSAD.Value = 30D; + this.vcSAD.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSAD.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSpeedDrive + // + this.vcSpeedDrive.BackColorButton = System.Drawing.Color.White; + this.vcSpeedDrive.ButtonWidth = "30"; + this.vcSpeedDrive.ColorBorder = System.Drawing.Color.White; + this.vcSpeedDrive.DecimalPosition = ((ushort)(0)); + this.vcSpeedDrive.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSpeedDrive.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSpeedDrive.ForeColor = System.Drawing.Color.DimGray; + this.vcSpeedDrive.ForeColorButton = System.Drawing.Color.Black; + this.vcSpeedDrive.Location = new System.Drawing.Point(975, 17); + this.vcSpeedDrive.MaxValue = 9999D; + this.vcSpeedDrive.MinValue = 0D; + this.vcSpeedDrive.Name = "vcSpeedDrive"; + this.vcSpeedDrive.NullDisplay = "--"; + this.vcSpeedDrive.SideButtonClickValue = 3D; + this.vcSpeedDrive.Size = new System.Drawing.Size(164, 54); + this.vcSpeedDrive.TabIndex = 62; + this.vcSpeedDrive.Tag = "SSL"; + this.vcSpeedDrive.Text = "30"; + this.vcSpeedDrive.Value = 30D; + this.vcSpeedDrive.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSpeedDrive.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSTT + // + this.vcSTT.BackColorButton = System.Drawing.Color.White; + this.vcSTT.ButtonWidth = "30"; + this.vcSTT.ColorBorder = System.Drawing.Color.White; + this.vcSTT.DecimalPosition = ((ushort)(0)); + this.vcSTT.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSTT.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSTT.ForeColor = System.Drawing.Color.White; + this.vcSTT.ForeColorButton = System.Drawing.Color.Black; + this.vcSTT.Location = new System.Drawing.Point(269, 449); + this.vcSTT.MaxValue = 9999D; + this.vcSTT.MinValue = 0D; + this.vcSTT.Name = "vcSTT"; + this.vcSTT.NullDisplay = "--"; + this.vcSTT.SideButtonClickValue = 1D; + this.vcSTT.Size = new System.Drawing.Size(164, 54); + this.vcSTT.TabIndex = 59; + this.vcSTT.Tag = "SDH"; + this.vcSTT.Text = "30"; + this.vcSTT.Value = 30D; + this.vcSTT.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSTT.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSSK + // + this.vcSSK.BackColorButton = System.Drawing.Color.White; + this.vcSSK.ButtonWidth = "30"; + this.vcSSK.ColorBorder = System.Drawing.Color.White; + this.vcSSK.DecimalPosition = ((ushort)(0)); + this.vcSSK.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSSK.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSSK.ForeColor = System.Drawing.Color.White; + this.vcSSK.ForeColorButton = System.Drawing.Color.Black; + this.vcSSK.Location = new System.Drawing.Point(633, 389); + this.vcSSK.MaxValue = 9999D; + this.vcSSK.MinValue = 0D; + this.vcSSK.Name = "vcSSK"; + this.vcSSK.NullDisplay = "--"; + this.vcSSK.SideButtonClickValue = 1D; + this.vcSSK.Size = new System.Drawing.Size(164, 54); + this.vcSSK.TabIndex = 57; + this.vcSSK.Tag = "SDH"; + this.vcSSK.Text = "10"; + this.vcSSK.Value = 10D; + this.vcSSK.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSSK.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSCK + // + this.vcSCK.BackColorButton = System.Drawing.Color.White; + this.vcSCK.ButtonWidth = "30"; + this.vcSCK.ColorBorder = System.Drawing.Color.White; + this.vcSCK.DecimalPosition = ((ushort)(0)); + this.vcSCK.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSCK.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSCK.ForeColor = System.Drawing.Color.White; + this.vcSCK.ForeColorButton = System.Drawing.Color.Black; + this.vcSCK.Location = new System.Drawing.Point(269, 389); + this.vcSCK.MaxValue = 9999D; + this.vcSCK.MinValue = 0D; + this.vcSCK.Name = "vcSCK"; + this.vcSCK.NullDisplay = "--"; + this.vcSCK.SideButtonClickValue = 1D; + this.vcSCK.Size = new System.Drawing.Size(164, 54); + this.vcSCK.TabIndex = 57; + this.vcSCK.Tag = "SDH"; + this.vcSCK.Text = "10"; + this.vcSCK.Value = 10D; + this.vcSCK.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSCK.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidDS + // + this.vcpidDS.BackColorButton = System.Drawing.Color.White; + this.vcpidDS.ButtonWidth = "30"; + this.vcpidDS.ColorBorder = System.Drawing.Color.White; + this.vcpidDS.DecimalPosition = ((ushort)(0)); + this.vcpidDS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidDS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidDS.ForeColor = System.Drawing.Color.White; + this.vcpidDS.ForeColorButton = System.Drawing.Color.Black; + this.vcpidDS.Location = new System.Drawing.Point(633, 327); + this.vcpidDS.MaxValue = 9999D; + this.vcpidDS.MinValue = 0D; + this.vcpidDS.Name = "vcpidDS"; + this.vcpidDS.NullDisplay = "--"; + this.vcpidDS.SideButtonClickValue = 3D; + this.vcpidDS.Size = new System.Drawing.Size(164, 54); + this.vcpidDS.TabIndex = 56; + this.vcpidDS.Tag = "SDS"; + this.vcpidDS.Text = "15"; + this.vcpidDS.Value = 15D; + this.vcpidDS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidDS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidPS + // + this.vcpidPS.BackColorButton = System.Drawing.Color.White; + this.vcpidPS.ButtonWidth = "30"; + this.vcpidPS.ColorBorder = System.Drawing.Color.White; + this.vcpidPS.DecimalPosition = ((ushort)(0)); + this.vcpidPS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidPS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidPS.ForeColor = System.Drawing.Color.White; + this.vcpidPS.ForeColorButton = System.Drawing.Color.Black; + this.vcpidPS.Location = new System.Drawing.Point(269, 327); + this.vcpidPS.MaxValue = 9999D; + this.vcpidPS.MinValue = 0D; + this.vcpidPS.Name = "vcpidPS"; + this.vcpidPS.NullDisplay = "--"; + this.vcpidPS.SideButtonClickValue = 1D; + this.vcpidPS.Size = new System.Drawing.Size(164, 54); + this.vcpidPS.TabIndex = 53; + this.vcpidPS.Tag = "SPS"; + this.vcpidPS.Text = "200"; + this.vcpidPS.Value = 200D; + this.vcpidPS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidPS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidIS + // + this.vcpidIS.BackColorButton = System.Drawing.Color.White; + this.vcpidIS.ButtonWidth = "30"; + this.vcpidIS.ColorBorder = System.Drawing.Color.White; + this.vcpidIS.DecimalPosition = ((ushort)(0)); + this.vcpidIS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidIS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidIS.ForeColor = System.Drawing.Color.White; + this.vcpidIS.ForeColorButton = System.Drawing.Color.Black; + this.vcpidIS.Location = new System.Drawing.Point(454, 327); + this.vcpidIS.MaxValue = 9999D; + this.vcpidIS.MinValue = 0D; + this.vcpidIS.Name = "vcpidIS"; + this.vcpidIS.NullDisplay = "--"; + this.vcpidIS.SideButtonClickValue = 3D; + this.vcpidIS.Size = new System.Drawing.Size(164, 54); + this.vcpidIS.TabIndex = 54; + this.vcpidIS.Tag = "SIS"; + this.vcpidIS.Text = "1"; + this.vcpidIS.Value = 1D; + this.vcpidIS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidIS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidDL + // + this.vcpidDL.BackColorButton = System.Drawing.Color.White; + this.vcpidDL.ButtonWidth = "30"; + this.vcpidDL.ColorBorder = System.Drawing.Color.White; + this.vcpidDL.DecimalPosition = ((ushort)(0)); + this.vcpidDL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidDL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidDL.ForeColor = System.Drawing.Color.White; + this.vcpidDL.ForeColorButton = System.Drawing.Color.Black; + this.vcpidDL.Location = new System.Drawing.Point(633, 265); + this.vcpidDL.MaxValue = 9999D; + this.vcpidDL.MinValue = 0D; + this.vcpidDL.Name = "vcpidDL"; + this.vcpidDL.NullDisplay = "--"; + this.vcpidDL.SideButtonClickValue = 3D; + this.vcpidDL.Size = new System.Drawing.Size(164, 54); + this.vcpidDL.TabIndex = 52; + this.vcpidDL.Tag = "SDL"; + this.vcpidDL.Text = "15"; + this.vcpidDL.Value = 15D; + this.vcpidDL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidDL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidDH + // + this.vcpidDH.BackColorButton = System.Drawing.Color.White; + this.vcpidDH.ButtonWidth = "30"; + this.vcpidDH.ColorBorder = System.Drawing.Color.White; + this.vcpidDH.DecimalPosition = ((ushort)(0)); + this.vcpidDH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidDH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidDH.ForeColor = System.Drawing.Color.White; + this.vcpidDH.ForeColorButton = System.Drawing.Color.Black; + this.vcpidDH.Location = new System.Drawing.Point(269, 265); + this.vcpidDH.MaxValue = 9999D; + this.vcpidDH.MinValue = 0D; + this.vcpidDH.Name = "vcpidDH"; + this.vcpidDH.NullDisplay = "--"; + this.vcpidDH.SideButtonClickValue = 1D; + this.vcpidDH.Size = new System.Drawing.Size(164, 54); + this.vcpidDH.TabIndex = 49; + this.vcpidDH.Tag = "SDH"; + this.vcpidDH.Text = "15"; + this.vcpidDH.Value = 15D; + this.vcpidDH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidDH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidDM + // + this.vcpidDM.BackColorButton = System.Drawing.Color.White; + this.vcpidDM.ButtonWidth = "30"; + this.vcpidDM.ColorBorder = System.Drawing.Color.White; + this.vcpidDM.DecimalPosition = ((ushort)(0)); + this.vcpidDM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidDM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidDM.ForeColor = System.Drawing.Color.White; + this.vcpidDM.ForeColorButton = System.Drawing.Color.Black; + this.vcpidDM.Location = new System.Drawing.Point(454, 265); + this.vcpidDM.MaxValue = 9999D; + this.vcpidDM.MinValue = 0D; + this.vcpidDM.Name = "vcpidDM"; + this.vcpidDM.NullDisplay = "--"; + this.vcpidDM.SideButtonClickValue = 3D; + this.vcpidDM.Size = new System.Drawing.Size(164, 54); + this.vcpidDM.TabIndex = 50; + this.vcpidDM.Tag = "SDM"; + this.vcpidDM.Text = "15"; + this.vcpidDM.Value = 15D; + this.vcpidDM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidDM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidIL + // + this.vcpidIL.BackColorButton = System.Drawing.Color.White; + this.vcpidIL.ButtonWidth = "30"; + this.vcpidIL.ColorBorder = System.Drawing.Color.White; + this.vcpidIL.DecimalPosition = ((ushort)(0)); + this.vcpidIL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidIL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidIL.ForeColor = System.Drawing.Color.White; + this.vcpidIL.ForeColorButton = System.Drawing.Color.Black; + this.vcpidIL.Location = new System.Drawing.Point(633, 203); + this.vcpidIL.MaxValue = 9999D; + this.vcpidIL.MinValue = 0D; + this.vcpidIL.Name = "vcpidIL"; + this.vcpidIL.NullDisplay = "--"; + this.vcpidIL.SideButtonClickValue = 3D; + this.vcpidIL.Size = new System.Drawing.Size(164, 54); + this.vcpidIL.TabIndex = 48; + this.vcpidIL.Tag = "SIL"; + this.vcpidIL.Text = "1"; + this.vcpidIL.Value = 1D; + this.vcpidIL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidIL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidIH + // + this.vcpidIH.BackColorButton = System.Drawing.Color.White; + this.vcpidIH.ButtonWidth = "30"; + this.vcpidIH.ColorBorder = System.Drawing.Color.White; + this.vcpidIH.DecimalPosition = ((ushort)(0)); + this.vcpidIH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidIH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidIH.ForeColor = System.Drawing.Color.White; + this.vcpidIH.ForeColorButton = System.Drawing.Color.Black; + this.vcpidIH.Location = new System.Drawing.Point(269, 203); + this.vcpidIH.MaxValue = 9999D; + this.vcpidIH.MinValue = 0D; + this.vcpidIH.Name = "vcpidIH"; + this.vcpidIH.NullDisplay = "--"; + this.vcpidIH.SideButtonClickValue = 1D; + this.vcpidIH.Size = new System.Drawing.Size(164, 54); + this.vcpidIH.TabIndex = 45; + this.vcpidIH.Tag = "SIH"; + this.vcpidIH.Text = "1"; + this.vcpidIH.Value = 1D; + this.vcpidIH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidIH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidIM + // + this.vcpidIM.BackColorButton = System.Drawing.Color.White; + this.vcpidIM.ButtonWidth = "30"; + this.vcpidIM.ColorBorder = System.Drawing.Color.White; + this.vcpidIM.DecimalPosition = ((ushort)(0)); + this.vcpidIM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidIM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidIM.ForeColor = System.Drawing.Color.White; + this.vcpidIM.ForeColorButton = System.Drawing.Color.Black; + this.vcpidIM.Location = new System.Drawing.Point(454, 203); + this.vcpidIM.MaxValue = 9999D; + this.vcpidIM.MinValue = 0D; + this.vcpidIM.Name = "vcpidIM"; + this.vcpidIM.NullDisplay = "--"; + this.vcpidIM.SideButtonClickValue = 3D; + this.vcpidIM.Size = new System.Drawing.Size(164, 54); + this.vcpidIM.TabIndex = 46; + this.vcpidIM.Tag = "SIM"; + this.vcpidIM.Text = "1"; + this.vcpidIM.Value = 1D; + this.vcpidIM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidIM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidPL + // + this.vcpidPL.BackColorButton = System.Drawing.Color.White; + this.vcpidPL.ButtonWidth = "30"; + this.vcpidPL.ColorBorder = System.Drawing.Color.White; + this.vcpidPL.DecimalPosition = ((ushort)(0)); + this.vcpidPL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidPL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidPL.ForeColor = System.Drawing.Color.White; + this.vcpidPL.ForeColorButton = System.Drawing.Color.Black; + this.vcpidPL.Location = new System.Drawing.Point(633, 141); + this.vcpidPL.MaxValue = 9999D; + this.vcpidPL.MinValue = 0D; + this.vcpidPL.Name = "vcpidPL"; + this.vcpidPL.NullDisplay = "--"; + this.vcpidPL.SideButtonClickValue = 3D; + this.vcpidPL.Size = new System.Drawing.Size(164, 54); + this.vcpidPL.TabIndex = 44; + this.vcpidPL.Tag = "SPL"; + this.vcpidPL.Text = "200"; + this.vcpidPL.Value = 200D; + this.vcpidPL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidPL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidPH + // + this.vcpidPH.BackColorButton = System.Drawing.Color.White; + this.vcpidPH.ButtonWidth = "30"; + this.vcpidPH.ColorBorder = System.Drawing.Color.White; + this.vcpidPH.DecimalPosition = ((ushort)(0)); + this.vcpidPH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidPH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidPH.ForeColor = System.Drawing.Color.White; + this.vcpidPH.ForeColorButton = System.Drawing.Color.Black; + this.vcpidPH.Location = new System.Drawing.Point(269, 141); + this.vcpidPH.MaxValue = 9999D; + this.vcpidPH.MinValue = 0D; + this.vcpidPH.Name = "vcpidPH"; + this.vcpidPH.NullDisplay = "--"; + this.vcpidPH.SideButtonClickValue = 1D; + this.vcpidPH.Size = new System.Drawing.Size(164, 54); + this.vcpidPH.TabIndex = 41; + this.vcpidPH.Tag = "SPH"; + this.vcpidPH.Text = "200"; + this.vcpidPH.Value = 200D; + this.vcpidPH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidPH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcpidPM + // + this.vcpidPM.BackColorButton = System.Drawing.Color.White; + this.vcpidPM.ButtonWidth = "30"; + this.vcpidPM.ColorBorder = System.Drawing.Color.White; + this.vcpidPM.DecimalPosition = ((ushort)(0)); + this.vcpidPM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcpidPM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcpidPM.ForeColor = System.Drawing.Color.White; + this.vcpidPM.ForeColorButton = System.Drawing.Color.Black; + this.vcpidPM.Location = new System.Drawing.Point(454, 141); + this.vcpidPM.MaxValue = 9999D; + this.vcpidPM.MinValue = 0D; + this.vcpidPM.Name = "vcpidPM"; + this.vcpidPM.NullDisplay = "--"; + this.vcpidPM.SideButtonClickValue = 3D; + this.vcpidPM.Size = new System.Drawing.Size(164, 54); + this.vcpidPM.TabIndex = 42; + this.vcpidPM.Tag = "SPM"; + this.vcpidPM.Text = "200"; + this.vcpidPM.Value = 200D; + this.vcpidPM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcpidPM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSpeedR + // + this.vcSpeedR.BackColorButton = System.Drawing.Color.White; + this.vcSpeedR.ButtonWidth = "30"; + this.vcSpeedR.ColorBorder = System.Drawing.Color.White; + this.vcSpeedR.DecimalPosition = ((ushort)(0)); + this.vcSpeedR.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSpeedR.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSpeedR.ForeColor = System.Drawing.Color.White; + this.vcSpeedR.ForeColorButton = System.Drawing.Color.Black; + this.vcSpeedR.Location = new System.Drawing.Point(454, 79); + this.vcSpeedR.MaxValue = 9999D; + this.vcSpeedR.MinValue = 0D; + this.vcSpeedR.Name = "vcSpeedR"; + this.vcSpeedR.NullDisplay = "--"; + this.vcSpeedR.SideButtonClickValue = 1D; + this.vcSpeedR.Size = new System.Drawing.Size(164, 54); + this.vcSpeedR.TabIndex = 39; + this.vcSpeedR.Tag = "SRS"; + this.vcSpeedR.Text = "70"; + this.vcSpeedR.Value = 70D; + this.vcSpeedR.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSpeedR.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSpeedH + // + this.vcSpeedH.BackColorButton = System.Drawing.Color.White; + this.vcSpeedH.ButtonWidth = "30"; + this.vcSpeedH.ColorBorder = System.Drawing.Color.White; + this.vcSpeedH.DecimalPosition = ((ushort)(0)); + this.vcSpeedH.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSpeedH.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSpeedH.ForeColor = System.Drawing.Color.White; + this.vcSpeedH.ForeColorButton = System.Drawing.Color.Black; + this.vcSpeedH.Location = new System.Drawing.Point(633, 17); + this.vcSpeedH.MaxValue = 9999D; + this.vcSpeedH.MinValue = 0D; + this.vcSpeedH.Name = "vcSpeedH"; + this.vcSpeedH.NullDisplay = "--"; + this.vcSpeedH.SideButtonClickValue = 3D; + this.vcSpeedH.Size = new System.Drawing.Size(164, 54); + this.vcSpeedH.TabIndex = 38; + this.vcSpeedH.Tag = "SSL"; + this.vcSpeedH.Text = "30"; + this.vcSpeedH.Value = 30D; + this.vcSpeedH.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSpeedH.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSpeedS + // + this.vcSpeedS.BackColorButton = System.Drawing.Color.White; + this.vcSpeedS.ButtonWidth = "30"; + this.vcSpeedS.ColorBorder = System.Drawing.Color.White; + this.vcSpeedS.DecimalPosition = ((ushort)(0)); + this.vcSpeedS.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSpeedS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSpeedS.ForeColor = System.Drawing.Color.White; + this.vcSpeedS.ForeColorButton = System.Drawing.Color.Black; + this.vcSpeedS.Location = new System.Drawing.Point(269, 79); + this.vcSpeedS.MaxValue = 9999D; + this.vcSpeedS.MinValue = 0D; + this.vcSpeedS.Name = "vcSpeedS"; + this.vcSpeedS.NullDisplay = "--"; + this.vcSpeedS.SideButtonClickValue = 1D; + this.vcSpeedS.Size = new System.Drawing.Size(164, 54); + this.vcSpeedS.TabIndex = 35; + this.vcSpeedS.Tag = "SSS"; + this.vcSpeedS.Text = "61"; + this.vcSpeedS.Value = 61D; + this.vcSpeedS.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSpeedS.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSpeedL + // + this.vcSpeedL.BackColorButton = System.Drawing.Color.White; + this.vcSpeedL.ButtonWidth = "30"; + this.vcSpeedL.ColorBorder = System.Drawing.Color.White; + this.vcSpeedL.DecimalPosition = ((ushort)(0)); + this.vcSpeedL.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSpeedL.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSpeedL.ForeColor = System.Drawing.Color.White; + this.vcSpeedL.ForeColorButton = System.Drawing.Color.Black; + this.vcSpeedL.Location = new System.Drawing.Point(269, 17); + this.vcSpeedL.MaxValue = 9999D; + this.vcSpeedL.MinValue = 0D; + this.vcSpeedL.Name = "vcSpeedL"; + this.vcSpeedL.NullDisplay = "--"; + this.vcSpeedL.SideButtonClickValue = 1D; + this.vcSpeedL.Size = new System.Drawing.Size(164, 54); + this.vcSpeedL.TabIndex = 2; + this.vcSpeedL.Tag = "SSH"; + this.vcSpeedL.Text = "110"; + this.vcSpeedL.Value = 110D; + this.vcSpeedL.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSpeedL.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcSpeedM + // + this.vcSpeedM.BackColorButton = System.Drawing.Color.White; + this.vcSpeedM.ButtonWidth = "30"; + this.vcSpeedM.ColorBorder = System.Drawing.Color.White; + this.vcSpeedM.DecimalPosition = ((ushort)(0)); + this.vcSpeedM.Font = new System.Drawing.Font("맑은 고딕", 26.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcSpeedM.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcSpeedM.ForeColor = System.Drawing.Color.White; + this.vcSpeedM.ForeColorButton = System.Drawing.Color.Black; + this.vcSpeedM.Location = new System.Drawing.Point(454, 17); + this.vcSpeedM.MaxValue = 9999D; + this.vcSpeedM.MinValue = 0D; + this.vcSpeedM.Name = "vcSpeedM"; + this.vcSpeedM.NullDisplay = "--"; + this.vcSpeedM.SideButtonClickValue = 3D; + this.vcSpeedM.Size = new System.Drawing.Size(164, 54); + this.vcSpeedM.TabIndex = 4; + this.vcSpeedM.Tag = "SSM"; + this.vcSpeedM.Text = "70"; + this.vcSpeedM.Value = 70D; + this.vcSpeedM.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcSpeedM.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // tabPage2 + // + this.tabPage2.BackColor = System.Drawing.Color.Navy; + this.tabPage2.Controls.Add(this.button3); + this.tabPage2.Controls.Add(this.label30); + this.tabPage2.Controls.Add(this.label12); + this.tabPage2.Controls.Add(this.button2); + this.tabPage2.Controls.Add(this.tbBaudBAT); + this.tabPage2.Controls.Add(this.tbportBMS); + this.tabPage2.Controls.Add(this.label27); + this.tabPage2.Controls.Add(this.button1); + this.tabPage2.Controls.Add(this.tbBaudAGV); + this.tabPage2.Controls.Add(this.tbPortAGV); + this.tabPage2.Controls.Add(this.label6); + this.tabPage2.Controls.Add(this.btSelXbee); + this.tabPage2.Controls.Add(this.tbBaudXBE); + this.tabPage2.Controls.Add(this.tbPortXBE); + this.tabPage2.Controls.Add(this.label5); + this.tabPage2.Controls.Add(this.valIntervalBMS); + this.tabPage2.Controls.Add(this.valIntervalXBE); + this.tabPage2.Location = new System.Drawing.Point(4, 4); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(1244, 570); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "통신"; + // + // button3 + // + this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button3.Location = new System.Drawing.Point(1157, 9); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(79, 38); + this.button3.TabIndex = 34; + this.button3.Text = "TEST"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label30.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label30.Location = new System.Drawing.Point(946, 188); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(49, 24); + this.label30.TabIndex = 33; + this.label30.Text = "sec"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label12.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label12.Location = new System.Drawing.Point(946, 109); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(49, 24); + this.label12.TabIndex = 33; + this.label12.Text = "sec"; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(383, 93); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(89, 56); + this.button2.TabIndex = 28; + this.button2.Tag = "BAT"; + this.button2.Text = "..."; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.btSelXbee_Click); + // + // tbBaudBAT + // + this.tbBaudBAT.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.tbBaudBAT.FormattingEnabled = true; + this.tbBaudBAT.Items.AddRange(new object[] { + "4800", + "9600", + "19200", + "46800", + "115200", + "250000"}); + this.tbBaudBAT.Location = new System.Drawing.Point(478, 96); + this.tbBaudBAT.Name = "tbBaudBAT"; + this.tbBaudBAT.Size = new System.Drawing.Size(217, 51); + this.tbBaudBAT.TabIndex = 27; + this.tbBaudBAT.Tag = "P1"; + // + // tbportBMS + // + this.tbportBMS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.tbportBMS.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.tbportBMS.Location = new System.Drawing.Point(161, 93); + this.tbportBMS.Name = "tbportBMS"; + this.tbportBMS.Size = new System.Drawing.Size(216, 56); + this.tbportBMS.TabIndex = 26; + this.tbportBMS.Tag = "P1"; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label27.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label27.Location = new System.Drawing.Point(38, 109); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(114, 24); + this.label27.TabIndex = 25; + this.label27.Text = "BAT PORT"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(383, 18); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(89, 56); + this.button1.TabIndex = 24; + this.button1.Tag = "AGV"; + this.button1.Text = "..."; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.btSelXbee_Click); + // + // tbBaudAGV + // + this.tbBaudAGV.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.tbBaudAGV.FormattingEnabled = true; + this.tbBaudAGV.Items.AddRange(new object[] { + "4800", + "9600", + "19200", + "46800", + "115200", + "250000"}); + this.tbBaudAGV.Location = new System.Drawing.Point(478, 21); + this.tbBaudAGV.Name = "tbBaudAGV"; + this.tbBaudAGV.Size = new System.Drawing.Size(217, 51); + this.tbBaudAGV.TabIndex = 23; + this.tbBaudAGV.Tag = "P1"; + // + // tbPortAGV + // + this.tbPortAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.tbPortAGV.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.tbPortAGV.Location = new System.Drawing.Point(161, 18); + this.tbPortAGV.Name = "tbPortAGV"; + this.tbPortAGV.Size = new System.Drawing.Size(216, 56); + this.tbPortAGV.TabIndex = 22; + this.tbPortAGV.Tag = "P1"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label6.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label6.Location = new System.Drawing.Point(38, 34); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(114, 24); + this.label6.TabIndex = 21; + this.label6.Text = "AGV PORT"; + // + // btSelXbee + // + this.btSelXbee.Location = new System.Drawing.Point(383, 172); + this.btSelXbee.Name = "btSelXbee"; + this.btSelXbee.Size = new System.Drawing.Size(89, 56); + this.btSelXbee.TabIndex = 13; + this.btSelXbee.Tag = "XBE"; + this.btSelXbee.Text = "..."; + this.btSelXbee.UseVisualStyleBackColor = true; + this.btSelXbee.Click += new System.EventHandler(this.btSelXbee_Click); + // + // tbBaudXBE + // + this.tbBaudXBE.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.tbBaudXBE.FormattingEnabled = true; + this.tbBaudXBE.Items.AddRange(new object[] { + "4800", + "9600", + "19200", + "46800", + "115200", + "250000"}); + this.tbBaudXBE.Location = new System.Drawing.Point(478, 175); + this.tbBaudXBE.Name = "tbBaudXBE"; + this.tbBaudXBE.Size = new System.Drawing.Size(217, 51); + this.tbBaudXBE.TabIndex = 8; + this.tbBaudXBE.Tag = "XB"; + // + // tbPortXBE + // + this.tbPortXBE.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.tbPortXBE.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.tbPortXBE.Location = new System.Drawing.Point(161, 172); + this.tbPortXBE.Name = "tbPortXBE"; + this.tbPortXBE.Size = new System.Drawing.Size(216, 56); + this.tbPortXBE.TabIndex = 3; + this.tbPortXBE.Tag = "XB"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label5.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label5.Location = new System.Drawing.Point(38, 188); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(114, 24); + this.label5.TabIndex = 1; + this.label5.Text = "XBE PORT"; + // + // valIntervalBMS + // + this.valIntervalBMS.BackColorButton = System.Drawing.Color.White; + this.valIntervalBMS.ButtonWidth = "30"; + this.valIntervalBMS.ColorBorder = System.Drawing.Color.White; + this.valIntervalBMS.DecimalPosition = ((ushort)(1)); + this.valIntervalBMS.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.valIntervalBMS.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.valIntervalBMS.ForeColor = System.Drawing.Color.White; + this.valIntervalBMS.ForeColorButton = System.Drawing.Color.Black; + this.valIntervalBMS.Location = new System.Drawing.Point(701, 96); + this.valIntervalBMS.MaxValue = 999999D; + this.valIntervalBMS.MinValue = 0D; + this.valIntervalBMS.Name = "valIntervalBMS"; + this.valIntervalBMS.NullDisplay = "--"; + this.valIntervalBMS.SideButtonClickValue = 0.5D; + this.valIntervalBMS.Size = new System.Drawing.Size(239, 51); + this.valIntervalBMS.TabIndex = 32; + this.valIntervalBMS.Tag = "CL"; + this.valIntervalBMS.Text = "0"; + this.valIntervalBMS.Value = 0D; + this.valIntervalBMS.ButtonClick += new System.EventHandler(this.valIntervalBMS_ButtonClick); + // + // valIntervalXBE + // + this.valIntervalXBE.BackColorButton = System.Drawing.Color.White; + this.valIntervalXBE.ButtonWidth = "30"; + this.valIntervalXBE.ColorBorder = System.Drawing.Color.White; + this.valIntervalXBE.DecimalPosition = ((ushort)(1)); + this.valIntervalXBE.Font = new System.Drawing.Font("궁서체", 32F, System.Drawing.FontStyle.Bold); + this.valIntervalXBE.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.valIntervalXBE.ForeColor = System.Drawing.Color.White; + this.valIntervalXBE.ForeColorButton = System.Drawing.Color.Black; + this.valIntervalXBE.Location = new System.Drawing.Point(701, 175); + this.valIntervalXBE.MaxValue = 100D; + this.valIntervalXBE.MinValue = 0D; + this.valIntervalXBE.Name = "valIntervalXBE"; + this.valIntervalXBE.NullDisplay = "--"; + this.valIntervalXBE.SideButtonClickValue = 0.5D; + this.valIntervalXBE.Size = new System.Drawing.Size(239, 51); + this.valIntervalXBE.TabIndex = 20; + this.valIntervalXBE.Tag = "CL"; + this.valIntervalXBE.Text = "0"; + this.valIntervalXBE.Value = 0D; + // + // tabPage3 + // + this.tabPage3.BackColor = System.Drawing.Color.DarkSlateBlue; + this.tabPage3.Controls.Add(this.label58); + this.tabPage3.Controls.Add(this.label19); + this.tabPage3.Controls.Add(this.label44); + this.tabPage3.Controls.Add(this.label29); + this.tabPage3.Controls.Add(this.label43); + this.tabPage3.Controls.Add(this.label42); + this.tabPage3.Controls.Add(this.label41); + this.tabPage3.Controls.Add(this.label39); + this.tabPage3.Controls.Add(this.label28); + this.tabPage3.Controls.Add(this.label14); + this.tabPage3.Controls.Add(this.label33); + this.tabPage3.Controls.Add(this.label36); + this.tabPage3.Controls.Add(this.label37); + this.tabPage3.Controls.Add(this.label35); + this.tabPage3.Controls.Add(this.label34); + this.tabPage3.Controls.Add(this.label38); + this.tabPage3.Controls.Add(this.label21); + this.tabPage3.Controls.Add(this.label1); + this.tabPage3.Controls.Add(this.label9); + this.tabPage3.Controls.Add(this.label26); + this.tabPage3.Controls.Add(this.label23); + this.tabPage3.Controls.Add(this.label24); + this.tabPage3.Controls.Add(this.vcChargeStartLevel); + this.tabPage3.Controls.Add(this.vcChargeMaxLevel); + this.tabPage3.Controls.Add(this.vcChargeWaitSec); + this.tabPage3.Controls.Add(this.tbChargerID); + this.tabPage3.Controls.Add(this.vcChargeEmergencyLevel); + this.tabPage3.Controls.Add(this.vcChargeMaxTime); + this.tabPage3.Controls.Add(this.vcChargeRetryTerm); + this.tabPage3.Controls.Add(this.vcChargeSearchTime); + this.tabPage3.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold); + this.tabPage3.Location = new System.Drawing.Point(4, 4); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(1244, 570); + this.tabPage3.TabIndex = 4; + this.tabPage3.Text = "충전"; + // + // label58 + // + this.label58.AutoSize = true; + this.label58.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label58.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label58.Location = new System.Drawing.Point(863, 21); + this.label58.Name = "label58"; + this.label58.Size = new System.Drawing.Size(135, 24); + this.label58.TabIndex = 68; + this.label58.Text = "충전기위치"; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label19.ForeColor = System.Drawing.Color.Orange; + this.label19.Location = new System.Drawing.Point(374, 286); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(496, 18); + this.label19.TabIndex = 67; + this.label19.Text = "배터리 레벨이 지정값 아래일 경우 가동이 제한 됩니다"; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label44.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label44.Location = new System.Drawing.Point(1152, 201); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(49, 24); + this.label44.TabIndex = 64; + this.label44.Text = "sec"; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label29.ForeColor = System.Drawing.Color.SkyBlue; + this.label29.Location = new System.Drawing.Point(730, 201); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(211, 24); + this.label29.TabIndex = 62; + this.label29.Text = "충전기 대기 시간"; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label43.ForeColor = System.Drawing.Color.Orange; + this.label43.Location = new System.Drawing.Point(266, 51); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(524, 18); + this.label43.TabIndex = 61; + this.label43.Text = "배터리 레벨이 지정값보다 떨어진다면 충전을 시작 합니다"; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label42.ForeColor = System.Drawing.Color.Orange; + this.label42.Location = new System.Drawing.Point(266, 127); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(506, 18); + this.label42.TabIndex = 61; + this.label42.Text = "배터리 레벨이 지정 값을 초과하면 충전이 해제 됩니다."; + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label41.ForeColor = System.Drawing.Color.Orange; + this.label41.Location = new System.Drawing.Point(266, 207); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(429, 18); + this.label41.TabIndex = 61; + this.label41.Text = "지정된 시간 이후에는 충전이 자동 해제 됩니다"; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label39.ForeColor = System.Drawing.Color.Orange; + this.label39.Location = new System.Drawing.Point(267, 375); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(381, 36); + this.label39.TabIndex = 61; + this.label39.Text = "충전기 얼라인 검색을 수행하는 최대 시간\r\n지정 시간이 넘어가면 충전이 취소 됩니다"; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label28.ForeColor = System.Drawing.Color.SkyBlue; + this.label28.Location = new System.Drawing.Point(817, 158); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(124, 24); + this.label28.TabIndex = 29; + this.label28.Text = "충전기 ID"; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Font = new System.Drawing.Font("궁서체", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label14.ForeColor = System.Drawing.Color.Orange; + this.label14.Location = new System.Drawing.Point(266, 472); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(496, 18); + this.label14.TabIndex = 61; + this.label14.Text = "배터리 레벨이 지정값 아래일 경우 가동이 제한 됩니다"; + // + // label33 + // + this.label33.AutoSize = true; + this.label33.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label33.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label33.Location = new System.Drawing.Point(473, 17); + this.label33.Name = "label33"; + this.label33.Size = new System.Drawing.Size(23, 24); + this.label33.TabIndex = 50; + this.label33.Text = "%"; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label36.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label36.Location = new System.Drawing.Point(76, 17); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(186, 24); + this.label36.TabIndex = 49; + this.label36.Text = "충전 시작 레벨"; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label37.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label37.Location = new System.Drawing.Point(473, 87); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(23, 24); + this.label37.TabIndex = 44; + this.label37.Text = "%"; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label35.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label35.Location = new System.Drawing.Point(76, 428); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(186, 24); + this.label35.TabIndex = 46; + this.label35.Text = "가동 제한 레벨"; + // + // label34 + // + this.label34.AutoSize = true; + this.label34.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label34.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label34.Location = new System.Drawing.Point(473, 428); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(23, 24); + this.label34.TabIndex = 47; + this.label34.Text = "%"; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label38.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label38.Location = new System.Drawing.Point(76, 87); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(186, 24); + this.label38.TabIndex = 43; + this.label38.Text = "최대 충전 레벨"; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label21.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label21.Location = new System.Drawing.Point(473, 337); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(49, 24); + this.label21.TabIndex = 40; + this.label21.Text = "sec"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label1.Location = new System.Drawing.Point(473, 245); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(49, 24); + this.label1.TabIndex = 34; + this.label1.Text = "sec"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label9.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label9.Location = new System.Drawing.Point(51, 245); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(211, 24); + this.label9.TabIndex = 33; + this.label9.Text = "충전 재시도 간격"; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label26.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label26.Location = new System.Drawing.Point(127, 337); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(135, 24); + this.label26.TabIndex = 39; + this.label26.Text = "충전기검색"; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label23.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label23.Location = new System.Drawing.Point(473, 164); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(49, 24); + this.label23.TabIndex = 31; + this.label23.Text = "sec"; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Font = new System.Drawing.Font("궁서체", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label24.ForeColor = System.Drawing.Color.WhiteSmoke; + this.label24.Location = new System.Drawing.Point(76, 164); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(186, 24); + this.label24.TabIndex = 30; + this.label24.Text = "최대 충전 시간"; + // + // vcChargeStartLevel + // + this.vcChargeStartLevel.BackColorButton = System.Drawing.Color.White; + this.vcChargeStartLevel.ButtonWidth = "30"; + this.vcChargeStartLevel.ColorBorder = System.Drawing.Color.White; + this.vcChargeStartLevel.DecimalPosition = ((ushort)(0)); + this.vcChargeStartLevel.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcChargeStartLevel.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcChargeStartLevel.ForeColor = System.Drawing.Color.WhiteSmoke; + this.vcChargeStartLevel.ForeColorButton = System.Drawing.Color.Black; + this.vcChargeStartLevel.Location = new System.Drawing.Point(270, 11); + this.vcChargeStartLevel.MaxValue = 999999D; + this.vcChargeStartLevel.MinValue = 0D; + this.vcChargeStartLevel.Name = "vcChargeStartLevel"; + this.vcChargeStartLevel.NullDisplay = "--"; + this.vcChargeStartLevel.SideButtonClickValue = 30D; + this.vcChargeStartLevel.Size = new System.Drawing.Size(197, 37); + this.vcChargeStartLevel.TabIndex = 65; + this.vcChargeStartLevel.Tag = "SL"; + this.vcChargeStartLevel.Text = "50"; + this.vcChargeStartLevel.Value = 50D; + this.vcChargeStartLevel.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcChargeStartLevel.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcChargeMaxLevel + // + this.vcChargeMaxLevel.BackColorButton = System.Drawing.Color.White; + this.vcChargeMaxLevel.ButtonWidth = "30"; + this.vcChargeMaxLevel.ColorBorder = System.Drawing.Color.White; + this.vcChargeMaxLevel.DecimalPosition = ((ushort)(0)); + this.vcChargeMaxLevel.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcChargeMaxLevel.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcChargeMaxLevel.ForeColor = System.Drawing.Color.WhiteSmoke; + this.vcChargeMaxLevel.ForeColorButton = System.Drawing.Color.Black; + this.vcChargeMaxLevel.Location = new System.Drawing.Point(270, 81); + this.vcChargeMaxLevel.MaxValue = 999999D; + this.vcChargeMaxLevel.MinValue = 0D; + this.vcChargeMaxLevel.Name = "vcChargeMaxLevel"; + this.vcChargeMaxLevel.NullDisplay = "--"; + this.vcChargeMaxLevel.SideButtonClickValue = 30D; + this.vcChargeMaxLevel.Size = new System.Drawing.Size(197, 37); + this.vcChargeMaxLevel.TabIndex = 66; + this.vcChargeMaxLevel.Tag = "SL"; + this.vcChargeMaxLevel.Text = "85"; + this.vcChargeMaxLevel.Value = 85D; + this.vcChargeMaxLevel.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcChargeMaxLevel.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcChargeWaitSec + // + this.vcChargeWaitSec.BackColorButton = System.Drawing.Color.White; + this.vcChargeWaitSec.ButtonWidth = "30"; + this.vcChargeWaitSec.ColorBorder = System.Drawing.Color.White; + this.vcChargeWaitSec.DecimalPosition = ((ushort)(0)); + this.vcChargeWaitSec.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcChargeWaitSec.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcChargeWaitSec.ForeColor = System.Drawing.Color.WhiteSmoke; + this.vcChargeWaitSec.ForeColorButton = System.Drawing.Color.Black; + this.vcChargeWaitSec.Location = new System.Drawing.Point(949, 195); + this.vcChargeWaitSec.MaxValue = 999999D; + this.vcChargeWaitSec.MinValue = 0D; + this.vcChargeWaitSec.Name = "vcChargeWaitSec"; + this.vcChargeWaitSec.NullDisplay = "--"; + this.vcChargeWaitSec.SideButtonClickValue = 30D; + this.vcChargeWaitSec.Size = new System.Drawing.Size(197, 37); + this.vcChargeWaitSec.TabIndex = 63; + this.vcChargeWaitSec.Tag = ""; + this.vcChargeWaitSec.Text = "3"; + this.vcChargeWaitSec.Value = 3D; + this.vcChargeWaitSec.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcChargeWaitSec.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // tbChargerID + // + this.tbChargerID.BackColorButton = System.Drawing.Color.White; + this.tbChargerID.ButtonWidth = "30"; + this.tbChargerID.ColorBorder = System.Drawing.Color.White; + this.tbChargerID.DecimalPosition = ((ushort)(0)); + this.tbChargerID.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbChargerID.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbChargerID.ForeColor = System.Drawing.Color.WhiteSmoke; + this.tbChargerID.ForeColorButton = System.Drawing.Color.Black; + this.tbChargerID.Location = new System.Drawing.Point(949, 152); + this.tbChargerID.MaxValue = 999999D; + this.tbChargerID.MinValue = 0D; + this.tbChargerID.Name = "tbChargerID"; + this.tbChargerID.NullDisplay = "--"; + this.tbChargerID.SideButtonClickValue = 30D; + this.tbChargerID.Size = new System.Drawing.Size(197, 37); + this.tbChargerID.TabIndex = 57; + this.tbChargerID.Tag = ""; + this.tbChargerID.Text = "30"; + this.tbChargerID.Value = 30D; + this.tbChargerID.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.tbChargerID.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcChargeEmergencyLevel + // + this.vcChargeEmergencyLevel.BackColorButton = System.Drawing.Color.White; + this.vcChargeEmergencyLevel.ButtonWidth = "30"; + this.vcChargeEmergencyLevel.ColorBorder = System.Drawing.Color.White; + this.vcChargeEmergencyLevel.DecimalPosition = ((ushort)(0)); + this.vcChargeEmergencyLevel.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcChargeEmergencyLevel.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcChargeEmergencyLevel.ForeColor = System.Drawing.Color.WhiteSmoke; + this.vcChargeEmergencyLevel.ForeColorButton = System.Drawing.Color.Black; + this.vcChargeEmergencyLevel.Location = new System.Drawing.Point(270, 422); + this.vcChargeEmergencyLevel.MaxValue = 999999D; + this.vcChargeEmergencyLevel.MinValue = 0D; + this.vcChargeEmergencyLevel.Name = "vcChargeEmergencyLevel"; + this.vcChargeEmergencyLevel.NullDisplay = "--"; + this.vcChargeEmergencyLevel.SideButtonClickValue = 30D; + this.vcChargeEmergencyLevel.Size = new System.Drawing.Size(197, 37); + this.vcChargeEmergencyLevel.TabIndex = 57; + this.vcChargeEmergencyLevel.Tag = ""; + this.vcChargeEmergencyLevel.Text = "30"; + this.vcChargeEmergencyLevel.Value = 30D; + this.vcChargeEmergencyLevel.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcChargeEmergencyLevel.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcChargeMaxTime + // + this.vcChargeMaxTime.BackColorButton = System.Drawing.Color.White; + this.vcChargeMaxTime.ButtonWidth = "30"; + this.vcChargeMaxTime.ColorBorder = System.Drawing.Color.White; + this.vcChargeMaxTime.DecimalPosition = ((ushort)(0)); + this.vcChargeMaxTime.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcChargeMaxTime.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcChargeMaxTime.ForeColor = System.Drawing.Color.WhiteSmoke; + this.vcChargeMaxTime.ForeColorButton = System.Drawing.Color.Black; + this.vcChargeMaxTime.Location = new System.Drawing.Point(270, 158); + this.vcChargeMaxTime.MaxValue = 999999D; + this.vcChargeMaxTime.MinValue = 0D; + this.vcChargeMaxTime.Name = "vcChargeMaxTime"; + this.vcChargeMaxTime.NullDisplay = "--"; + this.vcChargeMaxTime.SideButtonClickValue = 30D; + this.vcChargeMaxTime.Size = new System.Drawing.Size(197, 37); + this.vcChargeMaxTime.TabIndex = 29; + this.vcChargeMaxTime.Tag = "SL"; + this.vcChargeMaxTime.Text = "3600"; + this.vcChargeMaxTime.Value = 3600D; + this.vcChargeMaxTime.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcChargeMaxTime.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcChargeRetryTerm + // + this.vcChargeRetryTerm.BackColorButton = System.Drawing.Color.White; + this.vcChargeRetryTerm.ButtonWidth = "30"; + this.vcChargeRetryTerm.ColorBorder = System.Drawing.Color.White; + this.vcChargeRetryTerm.DecimalPosition = ((ushort)(0)); + this.vcChargeRetryTerm.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcChargeRetryTerm.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcChargeRetryTerm.ForeColor = System.Drawing.Color.WhiteSmoke; + this.vcChargeRetryTerm.ForeColorButton = System.Drawing.Color.Black; + this.vcChargeRetryTerm.Location = new System.Drawing.Point(270, 239); + this.vcChargeRetryTerm.MaxValue = 999999D; + this.vcChargeRetryTerm.MinValue = 0D; + this.vcChargeRetryTerm.Name = "vcChargeRetryTerm"; + this.vcChargeRetryTerm.NullDisplay = "--"; + this.vcChargeRetryTerm.SideButtonClickValue = 30D; + this.vcChargeRetryTerm.Size = new System.Drawing.Size(197, 37); + this.vcChargeRetryTerm.TabIndex = 32; + this.vcChargeRetryTerm.Tag = "SL"; + this.vcChargeRetryTerm.Text = "300"; + this.vcChargeRetryTerm.Value = 300D; + this.vcChargeRetryTerm.ButtonClick += new System.EventHandler(this.vcChargeLow_ButtonClick); + this.vcChargeRetryTerm.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // vcChargeSearchTime + // + this.vcChargeSearchTime.BackColorButton = System.Drawing.Color.White; + this.vcChargeSearchTime.ButtonWidth = "30"; + this.vcChargeSearchTime.ColorBorder = System.Drawing.Color.White; + this.vcChargeSearchTime.DecimalPosition = ((ushort)(0)); + this.vcChargeSearchTime.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.vcChargeSearchTime.FontSideButton = new System.Drawing.Font("Consolas", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.vcChargeSearchTime.ForeColor = System.Drawing.Color.WhiteSmoke; + this.vcChargeSearchTime.ForeColorButton = System.Drawing.Color.Black; + this.vcChargeSearchTime.Location = new System.Drawing.Point(270, 331); + this.vcChargeSearchTime.MaxValue = 999999D; + this.vcChargeSearchTime.MinValue = 0D; + this.vcChargeSearchTime.Name = "vcChargeSearchTime"; + this.vcChargeSearchTime.NullDisplay = "--"; + this.vcChargeSearchTime.SideButtonClickValue = 30D; + this.vcChargeSearchTime.Size = new System.Drawing.Size(197, 37); + this.vcChargeSearchTime.TabIndex = 38; + this.vcChargeSearchTime.Tag = "SL"; + this.vcChargeSearchTime.Text = "120"; + this.vcChargeSearchTime.Value = 120D; + this.vcChargeSearchTime.ValueChanged += new System.EventHandler(this.vcChargeLow_ValueChanged); + // + // tabPage4 + // + this.tabPage4.Controls.Add(this.groupBox3); + this.tabPage4.Controls.Add(this.panel6); + this.tabPage4.Location = new System.Drawing.Point(4, 4); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Padding = new System.Windows.Forms.Padding(0, 5, 0, 2); + this.tabPage4.Size = new System.Drawing.Size(1244, 570); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "Advance"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.chkClearPos); + this.groupBox3.Controls.Add(this.propertyGrid1); + this.groupBox3.Controls.Add(this.groupBox1); + this.groupBox3.Controls.Add(this.chkDetectManualCharge); + this.groupBox3.Controls.Add(this.chkFullScreen); + this.groupBox3.Controls.Add(this.nudMusicVol); + this.groupBox3.Controls.Add(this.label22); + this.groupBox3.Controls.Add(this.linkLabel5); + this.groupBox3.Controls.Add(this.linkLabel4); + this.groupBox3.Controls.Add(this.linkLabel3); + this.groupBox3.Controls.Add(this.tbMusic); + this.groupBox3.Controls.Add(this.label16); + this.groupBox3.Controls.Add(this.nudDoorSoundTerm); + this.groupBox3.Controls.Add(this.label3); + this.groupBox3.Controls.Add(this.groupBox4); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox3.Location = new System.Drawing.Point(5, 5); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(1239, 563); + this.groupBox3.TabIndex = 32; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "일반 설정"; + // + // chkClearPos + // + this.chkClearPos.AutoSize = true; + this.chkClearPos.Font = new System.Drawing.Font("궁서체", 20F, System.Drawing.FontStyle.Bold); + this.chkClearPos.Location = new System.Drawing.Point(27, 371); + this.chkClearPos.Name = "chkClearPos"; + this.chkClearPos.Size = new System.Drawing.Size(468, 31); + this.chkClearPos.TabIndex = 12; + this.chkClearPos.Text = "자동모드 해제 시 위치정보 삭제"; + this.chkClearPos.UseVisualStyleBackColor = true; + // + // propertyGrid1 + // + this.propertyGrid1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.propertyGrid1.Location = new System.Drawing.Point(678, 109); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.Size = new System.Drawing.Size(538, 426); + this.propertyGrid1.TabIndex = 11; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.tbMCID); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Location = new System.Drawing.Point(333, 119); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(324, 113); + this.groupBox1.TabIndex = 10; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "EE Monitoring"; + // + // tbMCID + // + this.tbMCID.Location = new System.Drawing.Point(79, 38); + this.tbMCID.Name = "tbMCID"; + this.tbMCID.Size = new System.Drawing.Size(196, 21); + this.tbMCID.TabIndex = 4; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(16, 41); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(36, 12); + this.label4.TabIndex = 6; + this.label4.Text = "MCID"; + // + // chkDetectManualCharge + // + this.chkDetectManualCharge.AutoSize = true; + this.chkDetectManualCharge.Font = new System.Drawing.Font("궁서체", 20F, System.Drawing.FontStyle.Bold); + this.chkDetectManualCharge.Location = new System.Drawing.Point(678, 72); + this.chkDetectManualCharge.Name = "chkDetectManualCharge"; + this.chkDetectManualCharge.Size = new System.Drawing.Size(235, 31); + this.chkDetectManualCharge.TabIndex = 9; + this.chkDetectManualCharge.Text = "수동 충전 감지"; + this.chkDetectManualCharge.UseVisualStyleBackColor = true; + // + // chkFullScreen + // + this.chkFullScreen.AutoSize = true; + this.chkFullScreen.Font = new System.Drawing.Font("궁서체", 20F, System.Drawing.FontStyle.Bold); + this.chkFullScreen.Location = new System.Drawing.Point(27, 30); + this.chkFullScreen.Name = "chkFullScreen"; + this.chkFullScreen.Size = new System.Drawing.Size(453, 31); + this.chkFullScreen.TabIndex = 3; + this.chkFullScreen.Text = "프로그램 시작시 전체화면 사용"; + this.chkFullScreen.UseVisualStyleBackColor = true; + // + // nudMusicVol + // + this.nudMusicVol.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.nudMusicVol.Location = new System.Drawing.Point(179, 309); + this.nudMusicVol.Name = "nudMusicVol"; + this.nudMusicVol.Size = new System.Drawing.Size(102, 35); + this.nudMusicVol.TabIndex = 7; + this.nudMusicVol.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(109, 326); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(57, 12); + this.label22.TabIndex = 6; + this.label22.Text = "음악 볼륨"; + // + // linkLabel5 + // + this.linkLabel5.AutoSize = true; + this.linkLabel5.Location = new System.Drawing.Point(387, 302); + this.linkLabel5.Name = "linkLabel5"; + this.linkLabel5.Size = new System.Drawing.Size(29, 12); + this.linkLabel5.TabIndex = 5; + this.linkLabel5.TabStop = true; + this.linkLabel5.Text = "멈춤"; + this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel5_LinkClicked); + // + // linkLabel4 + // + this.linkLabel4.AutoSize = true; + this.linkLabel4.Location = new System.Drawing.Point(387, 282); + this.linkLabel4.Name = "linkLabel4"; + this.linkLabel4.Size = new System.Drawing.Size(29, 12); + this.linkLabel4.TabIndex = 5; + this.linkLabel4.TabStop = true; + this.linkLabel4.Text = "재생"; + this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Location = new System.Drawing.Point(43, 292); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(65, 12); + this.linkLabel3.TabIndex = 5; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "이동시음악"; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // tbMusic + // + this.tbMusic.Location = new System.Drawing.Point(114, 282); + this.tbMusic.Name = "tbMusic"; + this.tbMusic.Size = new System.Drawing.Size(267, 21); + this.tbMusic.TabIndex = 4; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(288, 244); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(17, 12); + this.label16.TabIndex = 3; + this.label16.Text = "초"; + // + // nudDoorSoundTerm + // + this.nudDoorSoundTerm.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.nudDoorSoundTerm.Location = new System.Drawing.Point(181, 227); + this.nudDoorSoundTerm.Name = "nudDoorSoundTerm"; + this.nudDoorSoundTerm.Size = new System.Drawing.Size(102, 35); + this.nudDoorSoundTerm.TabIndex = 2; + this.nudDoorSoundTerm.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(43, 240); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(131, 12); + this.label3.TabIndex = 1; + this.label3.Text = "도어 업/다운 알림 간격"; + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.cleartime2); + this.groupBox4.Controls.Add(this.cleartime1); + this.groupBox4.Controls.Add(this.chkClear2); + this.groupBox4.Controls.Add(this.chkClear1); + this.groupBox4.Location = new System.Drawing.Point(27, 119); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(236, 88); + this.groupBox4.TabIndex = 0; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Count Reset"; + // + // cleartime2 + // + this.cleartime2.CustomFormat = "HH:mm"; + this.cleartime2.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.cleartime2.Location = new System.Drawing.Point(145, 59); + this.cleartime2.Name = "cleartime2"; + this.cleartime2.Size = new System.Drawing.Size(76, 21); + this.cleartime2.TabIndex = 2; + // + // cleartime1 + // + this.cleartime1.CustomFormat = "HH:mm"; + this.cleartime1.Format = System.Windows.Forms.DateTimePickerFormat.Custom; + this.cleartime1.Location = new System.Drawing.Point(145, 27); + this.cleartime1.Name = "cleartime1"; + this.cleartime1.Size = new System.Drawing.Size(76, 21); + this.cleartime1.TabIndex = 2; + // + // chkClear2 + // + this.chkClear2.AutoSize = true; + this.chkClear2.Location = new System.Drawing.Point(23, 61); + this.chkClear2.Name = "chkClear2"; + this.chkClear2.Size = new System.Drawing.Size(116, 16); + this.chkClear2.TabIndex = 1; + this.chkClear2.Text = "오후 시간 초기화"; + this.chkClear2.UseVisualStyleBackColor = true; + // + // chkClear1 + // + this.chkClear1.AutoSize = true; + this.chkClear1.Location = new System.Drawing.Point(23, 29); + this.chkClear1.Name = "chkClear1"; + this.chkClear1.Size = new System.Drawing.Size(116, 16); + this.chkClear1.TabIndex = 0; + this.chkClear1.Text = "오전 시간 초기화"; + this.chkClear1.UseVisualStyleBackColor = true; + // + // panel6 + // + this.panel6.Dock = System.Windows.Forms.DockStyle.Left; + this.panel6.Location = new System.Drawing.Point(0, 5); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(5, 563); + this.panel6.TabIndex = 30; + // + // panTopMenu + // + this.panTopMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panTopMenu.Controls.Add(this.label10); + this.panTopMenu.Controls.Add(this.btClose); + this.panTopMenu.Controls.Add(this.pictureBox1); + this.panTopMenu.Dock = System.Windows.Forms.DockStyle.Top; + this.panTopMenu.Location = new System.Drawing.Point(5, 5); + this.panTopMenu.Name = "panTopMenu"; + this.panTopMenu.Size = new System.Drawing.Size(1270, 50); + this.panTopMenu.TabIndex = 135; + // + // label10 + // + this.label10.Dock = System.Windows.Forms.DockStyle.Left; + this.label10.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label10.ForeColor = System.Drawing.Color.LightGray; + this.label10.Location = new System.Drawing.Point(49, 0); + this.label10.Name = "label10"; + this.label10.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.label10.Size = new System.Drawing.Size(236, 50); + this.label10.TabIndex = 8; + this.label10.Text = "환경 설정"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // btClose + // + this.btClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btClose.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btClose.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btClose.BackgroundImage"))); + this.btClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btClose.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btClose.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btClose.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btClose.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btClose.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btClose.Cursor = System.Windows.Forms.Cursors.Hand; + this.btClose.Dock = System.Windows.Forms.DockStyle.Right; + this.btClose.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btClose.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btClose.GradientEnable = false; + this.btClose.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btClose.GradientRepeatBG = false; + this.btClose.isButton = true; + this.btClose.Location = new System.Drawing.Point(1220, 0); + this.btClose.Margin = new System.Windows.Forms.Padding(0); + this.btClose.MouseDownColor = System.Drawing.Color.Yellow; + this.btClose.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btClose.msg = null; + this.btClose.Name = "btClose"; + this.btClose.ProgressBorderColor = System.Drawing.Color.Black; + this.btClose.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btClose.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btClose.ProgressEnable = false; + this.btClose.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btClose.ProgressForeColor = System.Drawing.Color.Black; + this.btClose.ProgressMax = 100F; + this.btClose.ProgressMin = 0F; + this.btClose.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btClose.ProgressValue = 0F; + this.btClose.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btClose.Sign = ""; + this.btClose.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btClose.SignColor = System.Drawing.Color.Yellow; + this.btClose.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btClose.Size = new System.Drawing.Size(50, 50); + this.btClose.TabIndex = 7; + this.btClose.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btClose.TextShadow = true; + this.btClose.TextVisible = true; + this.btClose.Click += new System.EventHandler(this.btClose_Click); + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(0, 0); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(49, 50); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // timer1 + // + this.timer1.Interval = 200; + // + // label8 + // + this.label8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.label8.Dock = System.Windows.Forms.DockStyle.Top; + this.label8.ForeColor = System.Drawing.Color.White; + this.label8.Location = new System.Drawing.Point(5, 55); + this.label8.Name = "label8"; + this.label8.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.label8.Size = new System.Drawing.Size(1270, 23); + this.label8.TabIndex = 136; + this.label8.Text = "label8"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // panel2 + // + this.panel2.Controls.Add(this.bt5); + this.panel2.Controls.Add(this.bt3); + this.panel2.Controls.Add(this.bt2); + this.panel2.Controls.Add(this.bt1); + this.panel2.Controls.Add(this.bt0); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(5, 78); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1270, 64); + this.panel2.TabIndex = 137; + // + // bt5 + // + this.bt5.BackColor = System.Drawing.Color.DimGray; + this.bt5.BackColor2 = System.Drawing.Color.Gray; + this.bt5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.bt5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.bt5.BorderSize = new System.Windows.Forms.Padding(2); + this.bt5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt5.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt5.Dock = System.Windows.Forms.DockStyle.Left; + this.bt5.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt5.ForeColor = System.Drawing.Color.White; + this.bt5.GradientEnable = true; + this.bt5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt5.GradientRepeatBG = false; + this.bt5.isButton = true; + this.bt5.Location = new System.Drawing.Point(612, 0); + this.bt5.MouseDownColor = System.Drawing.Color.Yellow; + this.bt5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt5.msg = null; + this.bt5.Name = "bt5"; + this.bt5.ProgressBorderColor = System.Drawing.Color.Black; + this.bt5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt5.ProgressEnable = false; + this.bt5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt5.ProgressForeColor = System.Drawing.Color.Black; + this.bt5.ProgressMax = 100F; + this.bt5.ProgressMin = 0F; + this.bt5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt5.ProgressValue = 0F; + this.bt5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.bt5.Sign = ""; + this.bt5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt5.SignColor = System.Drawing.Color.Yellow; + this.bt5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt5.Size = new System.Drawing.Size(153, 64); + this.bt5.TabIndex = 29; + this.bt5.Tag = "5"; + this.bt5.Text = "상세"; + this.bt5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt5.TextShadow = true; + this.bt5.TextVisible = true; + this.bt5.Click += new System.EventHandler(this.arLabel1_Click); + // + // bt3 + // + this.bt3.BackColor = System.Drawing.Color.DimGray; + this.bt3.BackColor2 = System.Drawing.Color.Gray; + this.bt3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.bt3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.bt3.BorderSize = new System.Windows.Forms.Padding(2); + this.bt3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt3.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt3.Dock = System.Windows.Forms.DockStyle.Left; + this.bt3.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt3.ForeColor = System.Drawing.Color.White; + this.bt3.GradientEnable = true; + this.bt3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt3.GradientRepeatBG = false; + this.bt3.isButton = true; + this.bt3.Location = new System.Drawing.Point(459, 0); + this.bt3.MouseDownColor = System.Drawing.Color.Yellow; + this.bt3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt3.msg = null; + this.bt3.Name = "bt3"; + this.bt3.ProgressBorderColor = System.Drawing.Color.Black; + this.bt3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt3.ProgressEnable = false; + this.bt3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt3.ProgressForeColor = System.Drawing.Color.Black; + this.bt3.ProgressMax = 100F; + this.bt3.ProgressMin = 0F; + this.bt3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt3.ProgressValue = 0F; + this.bt3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.bt3.Sign = ""; + this.bt3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt3.SignColor = System.Drawing.Color.Yellow; + this.bt3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt3.Size = new System.Drawing.Size(153, 64); + this.bt3.TabIndex = 27; + this.bt3.Tag = "3"; + this.bt3.Text = "충전"; + this.bt3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt3.TextShadow = true; + this.bt3.TextVisible = true; + this.bt3.Click += new System.EventHandler(this.arLabel1_Click); + // + // bt2 + // + this.bt2.BackColor = System.Drawing.Color.DimGray; + this.bt2.BackColor2 = System.Drawing.Color.Gray; + this.bt2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.bt2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.bt2.BorderSize = new System.Windows.Forms.Padding(2); + this.bt2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt2.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt2.Dock = System.Windows.Forms.DockStyle.Left; + this.bt2.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt2.ForeColor = System.Drawing.Color.White; + this.bt2.GradientEnable = true; + this.bt2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt2.GradientRepeatBG = false; + this.bt2.isButton = true; + this.bt2.Location = new System.Drawing.Point(306, 0); + this.bt2.MouseDownColor = System.Drawing.Color.Yellow; + this.bt2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt2.msg = null; + this.bt2.Name = "bt2"; + this.bt2.ProgressBorderColor = System.Drawing.Color.Black; + this.bt2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt2.ProgressEnable = false; + this.bt2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt2.ProgressForeColor = System.Drawing.Color.Black; + this.bt2.ProgressMax = 100F; + this.bt2.ProgressMin = 0F; + this.bt2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt2.ProgressValue = 0F; + this.bt2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.bt2.Sign = ""; + this.bt2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt2.SignColor = System.Drawing.Color.Yellow; + this.bt2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt2.Size = new System.Drawing.Size(153, 64); + this.bt2.TabIndex = 26; + this.bt2.Tag = "2"; + this.bt2.Text = "통신"; + this.bt2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt2.TextShadow = true; + this.bt2.TextVisible = true; + this.bt2.Click += new System.EventHandler(this.arLabel1_Click); + // + // bt1 + // + this.bt1.BackColor = System.Drawing.Color.DimGray; + this.bt1.BackColor2 = System.Drawing.Color.Gray; + this.bt1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.bt1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.bt1.BorderSize = new System.Windows.Forms.Padding(2); + this.bt1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt1.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt1.Dock = System.Windows.Forms.DockStyle.Left; + this.bt1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt1.ForeColor = System.Drawing.Color.White; + this.bt1.GradientEnable = true; + this.bt1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt1.GradientRepeatBG = false; + this.bt1.isButton = true; + this.bt1.Location = new System.Drawing.Point(153, 0); + this.bt1.MouseDownColor = System.Drawing.Color.Yellow; + this.bt1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt1.msg = null; + this.bt1.Name = "bt1"; + this.bt1.ProgressBorderColor = System.Drawing.Color.Black; + this.bt1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt1.ProgressEnable = false; + this.bt1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt1.ProgressForeColor = System.Drawing.Color.Black; + this.bt1.ProgressMax = 100F; + this.bt1.ProgressMin = 0F; + this.bt1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt1.ProgressValue = 0F; + this.bt1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.bt1.Sign = ""; + this.bt1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt1.SignColor = System.Drawing.Color.Yellow; + this.bt1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt1.Size = new System.Drawing.Size(153, 64); + this.bt1.TabIndex = 25; + this.bt1.Tag = "1"; + this.bt1.Text = "AGV"; + this.bt1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt1.TextShadow = true; + this.bt1.TextVisible = true; + this.bt1.Click += new System.EventHandler(this.arLabel1_Click); + // + // bt0 + // + this.bt0.BackColor = System.Drawing.Color.Lime; + this.bt0.BackColor2 = System.Drawing.Color.Green; + this.bt0.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.bt0.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.bt0.BorderSize = new System.Windows.Forms.Padding(2); + this.bt0.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt0.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt0.Dock = System.Windows.Forms.DockStyle.Left; + this.bt0.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt0.ForeColor = System.Drawing.Color.White; + this.bt0.GradientEnable = true; + this.bt0.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt0.GradientRepeatBG = false; + this.bt0.isButton = true; + this.bt0.Location = new System.Drawing.Point(0, 0); + this.bt0.MouseDownColor = System.Drawing.Color.Yellow; + this.bt0.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt0.msg = null; + this.bt0.Name = "bt0"; + this.bt0.ProgressBorderColor = System.Drawing.Color.Black; + this.bt0.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt0.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt0.ProgressEnable = false; + this.bt0.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt0.ProgressForeColor = System.Drawing.Color.Black; + this.bt0.ProgressMax = 100F; + this.bt0.ProgressMin = 0F; + this.bt0.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt0.ProgressValue = 0F; + this.bt0.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.bt0.Sign = ""; + this.bt0.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt0.SignColor = System.Drawing.Color.Yellow; + this.bt0.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt0.Size = new System.Drawing.Size(153, 64); + this.bt0.TabIndex = 24; + this.bt0.Tag = "0"; + this.bt0.Text = "일반설정"; + this.bt0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt0.TextShadow = true; + this.bt0.TextVisible = true; + this.bt0.Click += new System.EventHandler(this.arLabel1_Click); + // + // btSave + // + this.btSave.BackColor = System.Drawing.Color.Gray; + this.btSave.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btSave.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btSave.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btSave.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(152)))), ((int)(((byte)(150)))), ((int)(((byte)(152))))); + this.btSave.BorderSize = new System.Windows.Forms.Padding(2); + this.btSave.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btSave.Cursor = System.Windows.Forms.Cursors.Hand; + this.btSave.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btSave.Font = new System.Drawing.Font("궁서체", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btSave.ForeColor = System.Drawing.Color.White; + this.btSave.GradientEnable = true; + this.btSave.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btSave.GradientRepeatBG = false; + this.btSave.isButton = true; + this.btSave.Location = new System.Drawing.Point(5, 720); + this.btSave.MouseDownColor = System.Drawing.Color.Yellow; + this.btSave.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btSave.msg = null; + this.btSave.Name = "btSave"; + this.btSave.ProgressBorderColor = System.Drawing.Color.Black; + this.btSave.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btSave.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btSave.ProgressEnable = false; + this.btSave.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btSave.ProgressForeColor = System.Drawing.Color.Black; + this.btSave.ProgressMax = 100F; + this.btSave.ProgressMin = 0F; + this.btSave.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btSave.ProgressValue = 0F; + this.btSave.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btSave.Sign = ""; + this.btSave.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btSave.SignColor = System.Drawing.Color.Yellow; + this.btSave.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btSave.Size = new System.Drawing.Size(1270, 75); + this.btSave.TabIndex = 8; + this.btSave.Text = "저장"; + this.btSave.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btSave.TextShadow = true; + this.btSave.TextVisible = true; + this.btSave.Click += new System.EventHandler(this.btSave_Click); + // + // fSetup + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1280, 800); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.panel2); + this.Controls.Add(this.label8); + this.Controls.Add(this.panTopMenu); + this.Controls.Add(this.btSave); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.Name = "fSetup"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Setup"; + this.Load += new System.EventHandler(this.fSetup_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage6.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + this.tabPage4.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudMusicVol)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudDoorSoundTerm)).EndInit(); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.panTopMenu.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panel2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private AGVControl.ValueSelect vcSpeedL; + private AGVControl.ValueSelect vcSpeedM; + private System.Windows.Forms.Label label2; + private arCtl.arLabel btSave; + private arCtl.arLabel btSpeaker; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox tbPortXBE; + private System.Windows.Forms.ComboBox tbBaudXBE; + private System.Windows.Forms.Button btSelXbee; + private System.Windows.Forms.Panel panTopMenu; + private arCtl.arLabel btClose; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label10; + private AGVControl.ValueSelect valIntervalXBE; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.Label label23; + private AGVControl.ValueSelect vcChargeMaxTime; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Label label1; + private AGVControl.ValueSelect vcChargeRetryTerm; + private System.Windows.Forms.Label label9; + private AGVControl.ValueSelect vcSpeedS; + private System.Windows.Forms.Label label25; + private AGVControl.ValueSelect vcChargeSearchTime; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.ComboBox tbBaudBAT; + private System.Windows.Forms.TextBox tbportBMS; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ComboBox tbBaudAGV; + private System.Windows.Forms.TextBox tbPortAGV; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label28; + private AGVControl.ValueSelect valIntervalBMS; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.Button button3; + private AGVControl.ValueSelect vcSpeedH; + private AGVControl.ValueSelect vcSpeedR; + private AGVControl.ValueSelect vcpidPL; + private AGVControl.ValueSelect vcpidPH; + private AGVControl.ValueSelect vcpidPM; + private System.Windows.Forms.Label label15; + private AGVControl.ValueSelect vcpidDL; + private AGVControl.ValueSelect vcpidDH; + private AGVControl.ValueSelect vcpidDM; + private System.Windows.Forms.Label label32; + private AGVControl.ValueSelect vcpidIL; + private AGVControl.ValueSelect vcpidIH; + private AGVControl.ValueSelect vcpidIM; + private System.Windows.Forms.Label label31; + private AGVControl.ValueSelect vcpidDS; + private AGVControl.ValueSelect vcpidPS; + private AGVControl.ValueSelect vcpidIS; + private AGVControl.ValueSelect vcChargeEmergencyLevel; + private arCtl.arLabel btAutoCharge; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label label33; + private System.Windows.Forms.Label label34; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.Label label43; + private AGVControl.ValueSelect tbChargerID; + private AGVControl.ValueSelect vcChargeWaitSec; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label label44; + private AGVControl.ValueSelect vcSCK; + private System.Windows.Forms.Label label55; + private AGVControl.ValueSelect vcSSK; + private System.Windows.Forms.Label label56; + private AGVControl.ValueSelect vcSTT; + private System.Windows.Forms.Label label57; + private AGVControl.ValueSelect vcChargeStartLevel; + private AGVControl.ValueSelect vcChargeMaxLevel; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.CheckBox chkFullScreen; + private System.Windows.Forms.NumericUpDown nudMusicVol; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.LinkLabel linkLabel5; + private System.Windows.Forms.LinkLabel linkLabel4; + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.TextBox tbMusic; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.NumericUpDown nudDoorSoundTerm; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.DateTimePicker cleartime2; + private System.Windows.Forms.DateTimePicker cleartime1; + private System.Windows.Forms.CheckBox chkClear2; + private System.Windows.Forms.CheckBox chkClear1; + private arCtl.arLabel btMusic; + private System.Windows.Forms.TabPage tabPage6; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.CheckBox chkDetectManualCharge; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox tbMCID; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.PropertyGrid propertyGrid1; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Panel panel2; + private arCtl.arLabel bt5; + private arCtl.arLabel bt3; + private arCtl.arLabel bt2; + private arCtl.arLabel bt1; + private arCtl.arLabel bt0; + private System.Windows.Forms.Label label11; + private AGVControl.ValueSelect vcSpeedDrive; + private System.Windows.Forms.Label label19; + private AGVControl.ValueSelect vcSAD; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label50; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Label label52; + private System.Windows.Forms.TextBox tbagvchannel; + private System.Windows.Forms.TextBox tbagvpanid; + private System.Windows.Forms.TextBox tbagvaddr; + private System.Windows.Forms.Label label58; + private System.Windows.Forms.CheckBox chkClearPos; + private System.Windows.Forms.Label label7; + private AGVControl.ValueSelect vcXBID; + private AGVControl.ValueSelect vcGDS; + private System.Windows.Forms.Button button8; + } } \ No newline at end of file diff --git a/Cs_HMI/Project/fSetup.cs b/HMI/Project/fSetup.cs similarity index 97% rename from Cs_HMI/Project/fSetup.cs rename to HMI/Project/fSetup.cs index 33a879b..d129aec 100644 --- a/Cs_HMI/Project/fSetup.cs +++ b/HMI/Project/fSetup.cs @@ -1,551 +1,551 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using AR; - - -namespace Project -{ - public partial class fSetup : Form - { - readonly System.Windows.Forms.Timer tmDisplay; - public fSetup() - { - InitializeComponent(); - tmDisplay = new System.Windows.Forms.Timer - { - Interval = 200 - }; - tmDisplay.Tick += TmDisplay_Tick; - this.VisibleChanged += FSetup_VisibleChanged; - this.FormClosed += FSetup_FormClosed; - this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; - - this.panTopMenu.MouseMove += LbTitle_MouseMove; - this.panTopMenu.MouseUp += LbTitle_MouseUp; - this.panTopMenu.MouseDown += LbTitle_MouseDown; - this.panTopMenu.DoubleClick += LbTitle_DoubleClick; - - this.propertyGrid1.SelectedObject = PUB.setting; - } - - private void FSetup_FormClosed(object sender, FormClosedEventArgs e) - { - this.timer1.Stop(); - this.timer1.Enabled = false; - } - - private void FSetup_VisibleChanged(object sender, EventArgs e) - { - PUB.log.Add("setup screen show : " + this.Visible.ToString()); - if (this.Visible) tmDisplay.Start(); - else tmDisplay.Stop(); - } - - private void fSetup_Load(object sender, EventArgs e) - { - - //통신값 표시 - tbPortAGV.Text = PUB.setting.Port_AGV; - tbPortXBE.Text = PUB.setting.Port_XBE; - tbportBMS.Text = PUB.setting.Port_BAT; - - tbBaudAGV.Text = PUB.setting.Baud_AGV.ToString(); - tbBaudXBE.Text = PUB.setting.Baud_XBE.ToString(); - tbBaudBAT.Text = PUB.setting.Baud_BAT.ToString(); - - valIntervalXBE.Value = PUB.setting.interval_xbe; - vcpidDS.Value = PUB.setting.ZSpeed; - valIntervalBMS.Value = PUB.setting.interval_bms; - tbChargerID.Value = PUB.setting.ChargerID; - - vcSCK.Value = PUB.setting.SCK; - vcSSK.Value = PUB.setting.SSK; - vcSTT.Value = PUB.setting.STT; - vcSAD.Value = PUB.setting.SAD; - vcXBID.Value = PUB.setting.XBE_ID; - vcGDS.Value = PUB.setting.GDSValue; - - tbagvaddr.Text = PUB.setting.AGV_ADDRESS; - tbagvpanid.Text = PUB.setting.AGV_PANID; - tbagvchannel.Text = PUB.setting.AGV_CHANNEL; - - //속도 저/중/고 - vcSpeedL.Value = PUB.setting.SPD_L; - vcSpeedM.Value = PUB.setting.SPD_M; - vcSpeedH.Value = PUB.setting.SPD_H; - vcSpeedDrive.Value = PUB.setting.SPD_DRIVE; - - //속도 정지/회전 - vcSpeedS.Value = PUB.setting.SPD_S; - vcSpeedR.Value = PUB.setting.SPD_R; - - //PID-P - vcpidPH.Value = PUB.setting.PID_PH; - vcpidPM.Value = PUB.setting.PID_PM; - vcpidPL.Value = PUB.setting.PID_PL; - - //PID-I - vcpidIH.Value = PUB.setting.PID_IH; - vcpidIM.Value = PUB.setting.PID_IM; - vcpidIL.Value = PUB.setting.PID_IL; - - //PID-D - vcpidDH.Value = PUB.setting.PID_DH; - vcpidDM.Value = PUB.setting.PID_DM; - vcpidDL.Value = PUB.setting.PID_DL; - - //정지상수 - vcpidPS.Value = PUB.setting.PID_PS; - vcpidIS.Value = PUB.setting.PID_IS; - vcpidDS.Value = PUB.setting.PID_DS; - - SetColorValue(btSpeaker, PUB.setting.Enable_Speak); - SetColorValue(btAutoCharge, PUB.setting.Enable_AutoCharge); - SetColorValue(btMusic, PUB.setting.Enable_Music); - nudDoorSoundTerm.Value = PUB.setting.alarmSoundTerm; - chkClear1.Checked = PUB.setting.datetime_Check_1; - chkClear2.Checked = PUB.setting.datetime_Check_2; - cleartime1.Value = DateTime.Parse("1982-11-23 " + PUB.setting.datetime_Reset_1 + ":00"); - cleartime2.Value = DateTime.Parse("1982-11-23 " + PUB.setting.datetime_Reset_2 + ":00"); - chkClearPos.Checked = PUB.setting.AutoModeOffAndClearPosition; - - //PLC옵션 - nudMusicVol.Value = PUB.setting.musicvol;// (int)(PUB.mplayer.Volume * 100.0); - tbMusic.Text = PUB.setting.musicfile; - this.chkFullScreen.Checked = PUB.setting.FullScreen; - this.chkDetectManualCharge.Checked = PUB.setting.DetectManualCharge; - - //충전 - // chkAutoCharge.Checked = PUB.setting.Enable_AutoCharge; - vcChargeStartLevel.Value = PUB.setting.ChargeStartLevel; - vcChargeMaxLevel.Value = PUB.setting.ChargeMaxLevel; - vcChargeMaxTime.Value = PUB.setting.ChargeMaxTime; - vcChargeRetryTerm.Value = PUB.setting.ChargeRetryTerm; - vcChargeSearchTime.Value = PUB.setting.ChargeSearchTime; - vcChargeEmergencyLevel.Value = PUB.setting.ChargeEmergencyLevel; - vcChargeWaitSec.Value = PUB.setting.ChargetWaitSec; - tbMCID.Text = PUB.setting.MCID; - - timer1.Start(); - } - - - #region "Mouse Form Move" - - private Boolean fMove = false; - private Point MDownPos; - - private void LbTitle_DoubleClick(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; - else this.WindowState = FormWindowState.Maximized; - } - private void LbTitle_MouseMove(object sender, MouseEventArgs e) - { - if (fMove) - { - Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); - this.Left += offset.X; - this.Top += offset.Y; - //offset = new Point(0, 0); - } - } - private void LbTitle_MouseUp(object sender, MouseEventArgs e) - { - fMove = false; - } - private void LbTitle_MouseDown(object sender, MouseEventArgs e) - { - MDownPos = new Point(e.X, e.Y); - fMove = true; - } - - #endregion - - - private void btSave_Click(object sender, EventArgs e) - { - if (PUB.CheckPassword() == false) - { - UTIL.MsgE("암호가 일치하지 않습니다"); - return; - } - - this.Validate(); - propertyGrid1.Invalidate(); - - //통신정보저장 - PUB.setting.Port_XBE = tbPortXBE.Text; - PUB.setting.Port_AGV = tbPortAGV.Text; - PUB.setting.Port_BAT = tbportBMS.Text; - - PUB.setting.Baud_XBE = int.Parse(tbBaudXBE.Text); - PUB.setting.Baud_AGV = int.Parse(tbBaudAGV.Text); - PUB.setting.Baud_BAT = int.Parse(tbBaudBAT.Text); - PUB.setting.ChargerID = (int)(tbChargerID.Value); - - PUB.setting.interval_bms = (int)valIntervalBMS.Value; - PUB.setting.interval_xbe = (float)valIntervalXBE.Value; - PUB.setting.ZSpeed = (byte)vcpidDS.Value; - PUB.setting.AutoModeOffAndClearPosition = this.chkClearPos.Checked; - - //AGV정보 저장 - PUB.setting.Enable_Speak = this.btSpeaker.ProgressValue != 0; - PUB.setting.Enable_Music = this.btMusic.ProgressValue != 0; - PUB.setting.Enable_AutoCharge = this.btAutoCharge.ProgressValue != 0; - - //충전 - PUB.setting.ChargeStartLevel = (int)vcChargeStartLevel.Value; - PUB.setting.ChargeMaxLevel = (int)vcChargeMaxLevel.Value; - PUB.setting.ChargeMaxTime = (int)vcChargeMaxTime.Value; - PUB.setting.ChargeRetryTerm = (int)vcChargeRetryTerm.Value; - PUB.setting.ChargeSearchTime = (int)vcChargeSearchTime.Value; - PUB.setting.ChargeEmergencyLevel = (int)vcChargeEmergencyLevel.Value; - PUB.setting.ChargetWaitSec = (int)vcChargeWaitSec.Value; - - PUB.setting.SCK = (int)vcSCK.Value; - PUB.setting.SSK = (int)vcSSK.Value; - PUB.setting.STT = (int)vcSTT.Value; - PUB.setting.SAD = (int)vcSAD.Value; - PUB.setting.XBE_ID = (byte)vcXBID.Value; - PUB.setting.GDSValue = (UInt16)vcGDS.Value; - - //속도 저/중/고 - PUB.setting.SPD_L = (int)vcSpeedL.Value; - PUB.setting.SPD_M = (int)vcSpeedM.Value; - PUB.setting.SPD_H = (int)vcSpeedH.Value; - PUB.setting.SPD_DRIVE = (int)vcSpeedDrive.Value; - - //속도 정지/회전 - PUB.setting.SPD_S = (int)vcSpeedS.Value; - PUB.setting.SPD_R = (int)vcSpeedR.Value; - - //PID-P - PUB.setting.PID_PH = (int)vcpidPH.Value; - PUB.setting.PID_PM = (int)vcpidPM.Value; - PUB.setting.PID_PL = (int)vcpidPL.Value; - - //PID-I ; - PUB.setting.PID_IH = (int)vcpidIH.Value; - PUB.setting.PID_IM = (int)vcpidIM.Value; - PUB.setting.PID_IL = (int)vcpidIL.Value; - - //PID-D ; - PUB.setting.PID_DH = (int)vcpidDH.Value; - PUB.setting.PID_DM = (int)vcpidDM.Value; - PUB.setting.PID_DL = (int)vcpidDL.Value; - - //정지상수 ; - PUB.setting.PID_PS = (int)vcpidPS.Value; - PUB.setting.PID_IS = (int)vcpidIS.Value; - PUB.setting.PID_DS = (int)vcpidDS.Value; - - //시스템옵션 - PUB.setting.ChargeMaxTime = (int)vcChargeMaxTime.Value; - PUB.setting.ChargeRetryTerm = (int)vcChargeRetryTerm.Value; - - //초기화시간 - PUB.setting.datetime_Check_1 = chkClear1.Checked; - PUB.setting.datetime_Check_2 = chkClear2.Checked; - PUB.setting.datetime_Reset_1 = cleartime1.Value.ToString("HH:mm"); - PUB.setting.datetime_Reset_2 = cleartime2.Value.ToString("HH:mm"); - - //PLC옵션 - //PUB.setting.musicvol = (int)nudMusicVol.Value; - PUB.SetVolume((int)nudMusicVol.Value); - PUB.setting.ChargeSearchTime = (int)vcChargeSearchTime.Value; - - PUB.setting.alarmSoundTerm = (int)nudDoorSoundTerm.Value; - if (PUB.setting.alarmSoundTerm < 1) PUB.setting.alarmSoundTerm = 15; //기본값 15초 - - PUB.setting.musicfile = tbMusic.Text.Trim(); - PUB.setting.FullScreen = this.chkFullScreen.Checked; - PUB.setting.ChargeEmergencyLevel = (int)this.vcChargeEmergencyLevel.Value; - PUB.setting.ChargeStartLevel = (int)this.vcChargeStartLevel.Value; - PUB.setting.ChargeMaxLevel = (int)this.vcChargeMaxLevel.Value; - - PUB.setting.DetectManualCharge = this.chkDetectManualCharge.Checked; - PUB.setting.MCID = tbMCID.Text.Trim(); - - PUB.setting.Save(); - - PUB.log.AddAT("환경설정:저장완료"); - - - //plc에 정보를 전송하고 그 값의 회신을 체크한다 - DialogResult = DialogResult.OK; - } - - void SetColorValue(arCtl.arLabel ctl, Boolean value) - { - if (value) - { - ctl.BackColor = Color.Green; - ctl.BackColor2 = Color.Lime; - ctl.ProgressValue = 1; - } - else - { - ctl.BackColor = Color.FromArgb(50, 50, 50); - ctl.BackColor2 = Color.Gray; - ctl.ProgressValue = 0; - } - } - - private void TmDisplay_Tick(object sender, EventArgs e) - { - //Pub.log.Add("timer run"); - } - - private void vcChargeLow_ButtonClick(object sender, AGVControl.ValueSelect.ButtonClickEventArgs e) - { - //버튼이클릭되엇다 각 버튼은 tag값으로 처히 - var button = sender as AGVControl.ValueSelect; - var tagStr = button.Tag.ToString(); - PUB.log.Add("Setup:Click:" + tagStr + ":" + e.Button.ToString()); - if (e.Button == MouseButtons.Middle) - { - //중앙부 숫자를 클릭했다 - var f = AR.UTIL.InputBox("input", button.Value.ToString());// new Dialog.fInput(button.Value.ToString()); - if (f.Item1) - { - Console.WriteLine("value change : " + f.Item2);// ; - button.Value = double.Parse(f.Item2); - } - } - } - - - private void vcChargeLow_ValueChanged(object sender, EventArgs e) - { - //버튼이클릭되엇다 각 버튼은 tag값으로 처히 - var button = sender as AGVControl.ValueSelect; - var tagStr = button.Tag.ToString(); - PUB.log.Add("Setup:ValueChange:" + tagStr + ":" + button.Name); - - //if (tagStr == "SH" && PUB.setting.WheelSpeedHigh != button.Value) - // button.BackColor = Color.Tomato; - //else if (tagStr == "SL" && PUB.setting.WheelSpeedLow != button.Value) - // button.BackColor = Color.Tomato; - //else if (tagStr == "SC" && PUB.setting.WheelSpeedCharge != button.Value) - // button.BackColor = Color.Tomato; - ////else if (tagStr == "MT" && Pub.setting.MoveThreshold != button.Value) - //// button.BackColor = Color.Tomato; - //else if (tagStr == "ST" && PUB.setting.MarkSensorThreshold != button.Value) - // button.BackColor = Color.Tomato; - //else if (tagStr == "BL" && PUB.setting.BalanceThreshold != button.Value) - // button.BackColor = Color.Tomato; - //else if (tagStr == "BU" && PUB.setting.BalanceThresholdUp != button.Value) - // button.BackColor = Color.Tomato; - //else button.BackColor = Color.Navy; - - } - - private void btMagnet_Click(object sender, EventArgs e) - { - //버튼이클릭되엇다 각 버튼은 tag값으로 처히 - var button = sender as arCtl.arLabel; - - var tagStr = button.Tag.ToString(); - PUB.log.Add("Setup:ButtonClick:" + tagStr + ":" + button.Name); - - if (button.ProgressValue == 0) - { - //메세지로 사용여부를 확인한다. - var msg = "다음 기능을 사용하시겠습니까?\n"; - if (tagStr == "0") msg += "[음성지원]\n" + - " * 동작 상태를 음성으로 지원 합니다"; - else if (tagStr == "1") msg += "[자동충전]\n" + - " * 자동으로 충전을 진행 합니다\n" + - " * [충전] 탭에서 설정값을 확인할 수 있습니다"; - else if (tagStr == "2") msg += "[배경음악]\n" + - " * 이동시 음악을 플레이 합니다"; - var dlg = UTIL.MsgQ(msg); - if (dlg == DialogResult.Yes) - { - SetColorValue(button, true); - } - } - else SetColorValue(button, false); - } - - private void btSelXbee_Click(object sender, EventArgs e) - { - //포트를 선택한 후 표시해준다. - var but = sender as Button; - var tagStr = but.Tag.ToString(); - var newPort = PUB.SelectSerialPort(); - if (newPort.isEmpty()) return; - - if (tagStr == "XBE") tbPortXBE.Text = newPort; - else if (tagStr == "AGV") tbPortAGV.Text = newPort; - // else if (tagStr == "PLC") tbPortPLC.Text = newPort; - else if (tagStr == "BAT") tbportBMS.Text = newPort; - - } - - private void btClose_Click(object sender, EventArgs e) - { - this.Close(); - } - - - private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - using (var od = new OpenFileDialog()) - { - if (tbMusic.Text.isEmpty() == false) - { - var fi = new System.IO.FileInfo(tbMusic.Text); - od.FileName = fi.Name; - od.InitialDirectory = fi.Directory.FullName; - } - - if (od.ShowDialog() == DialogResult.OK) - { - tbMusic.Text = od.FileName; - } - } - - - } - - private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - if (System.IO.File.Exists(tbMusic.Text) == false) - { - UTIL.MsgE("파일이 없습니다"); - return; - } - try - { - if (PUB.mplayer.SoundLocation.isEmpty() == false) PUB.mplayer.Stop(); - PUB.mplayer.SoundLocation = tbMusic.Text;// (new Uri(tbMusic.Text)); - PUB.mplayer.Play(); - PUB.bPlayMusic = true; - } - catch (Exception ex) - { - UTIL.MsgE("music open error\n\n" + ex.Message); - } - - } - - private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - PUB.mplayer.Stop(); - PUB.bPlayMusic = false; - } - - - private void button3_Click(object sender, EventArgs e) - { - if (this.tbPortAGV.Text == "COM21") - { - this.tbPortAGV.Text = "COM11"; - // this.tbPortPLC.Text = "COM6"; - this.tbportBMS.Text = "COM15"; - this.tbPortXBE.Text = "COM18"; - } - else - { - this.tbPortAGV.Text = "COM21"; - // this.tbPortPLC.Text = "COM31"; - this.tbportBMS.Text = "COM41"; - this.tbPortXBE.Text = "COM51"; - } - - } - - private void valIntervalBMS_ButtonClick(object sender, AGVControl.ValueSelect.ButtonClickEventArgs e) - { - //버튼이클릭되엇다 각 버튼은 tag값으로 처히 - var button = sender as AGVControl.ValueSelect; - var tagStr = button.Tag.ToString(); - PUB.log.Add("Setup:Click:" + tagStr + ":" + e.Button.ToString()); - if (e.Button == MouseButtons.Middle) - { - //중앙부 숫자를 클릭했다 - var f = AR.UTIL.InputBox("input", button.Value.ToString());// new Dialog.fInput(button.Value.ToString()); - if (f.Item1) - { - Console.WriteLine("value change : " + f.Item2); - button.Value = double.Parse(f.Item2); - } - } - } - - private void arLabel1_Click(object sender, EventArgs e) - { - var buts = new arCtl.arLabel[] { bt0, bt1, bt2, bt3, bt5 }; - foreach (var lb in buts) - { - lb.BackColor = Color.DimGray; - lb.BackColor2 = Color.Gray; - } - var bt = sender as arCtl.arLabel; - bt.BackColor = Color.Lime; - bt.BackColor2 = Color.Green; - var index = int.Parse(bt.Tag.ToString()); - this.tabControl1.SelectedIndex = index; - } - - private void button7_Click(object sender, EventArgs e) - { - var value = tbagvaddr.Text.PadLeft(4, '0'); - if (PUB.AGV.AGVCommand("SAD", value) == arDev.eNarumiCommandResult.Success) - { - PUB.setting.AGV_ADDRESS = value; - PUB.setting.Save(); - } - - } - - private void button5_Click(object sender, EventArgs e) - { - var value = tbagvpanid.Text.PadLeft(4, '0'); - if (PUB.AGV.AGVCommand("SPN", value) == arDev.eNarumiCommandResult.Success) - { - PUB.setting.AGV_PANID = value; - PUB.setting.Save(); - } - - } - - private void button6_Click(object sender, EventArgs e) - { - var value = tbagvchannel.Text.PadLeft(4, '0'); - if (PUB.AGV.AGVCommand("SCH", value) == arDev.eNarumiCommandResult.Success) - { - PUB.setting.AGV_CHANNEL = value; - PUB.setting.Save(); - } - - - } - - private void tbagvaddr_Click(object sender, EventArgs e) - { - var tb = sender as TextBox; - var rlt = UTIL.InputBox("input vlaue", tb.Text); - if (rlt.Item1 == false) return; - if (rlt.Item2.isEmpty()) return; - tb.Text = rlt.Item2; - } - - private void button8_Click(object sender, EventArgs e) - { - var value = (ushort)vcGDS.Value; - var rlt = PUB.AGV.TurnGDSCenterScope(value); - if (rlt != arDev.eNarumiCommandResult.Success) UTIL.MsgE($"Error\n{rlt}"); - else UTIL.MsgI("OK"); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; + + +namespace Project +{ + public partial class fSetup : Form + { + readonly System.Windows.Forms.Timer tmDisplay; + public fSetup() + { + InitializeComponent(); + tmDisplay = new System.Windows.Forms.Timer + { + Interval = 200 + }; + tmDisplay.Tick += TmDisplay_Tick; + this.VisibleChanged += FSetup_VisibleChanged; + this.FormClosed += FSetup_FormClosed; + this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; + + this.panTopMenu.MouseMove += LbTitle_MouseMove; + this.panTopMenu.MouseUp += LbTitle_MouseUp; + this.panTopMenu.MouseDown += LbTitle_MouseDown; + this.panTopMenu.DoubleClick += LbTitle_DoubleClick; + + this.propertyGrid1.SelectedObject = PUB.setting; + } + + private void FSetup_FormClosed(object sender, FormClosedEventArgs e) + { + this.timer1.Stop(); + this.timer1.Enabled = false; + } + + private void FSetup_VisibleChanged(object sender, EventArgs e) + { + PUB.log.Add("setup screen show : " + this.Visible.ToString()); + if (this.Visible) tmDisplay.Start(); + else tmDisplay.Stop(); + } + + private void fSetup_Load(object sender, EventArgs e) + { + + //통신값 표시 + tbPortAGV.Text = PUB.setting.Port_AGV; + tbPortXBE.Text = PUB.setting.Port_XBE; + tbportBMS.Text = PUB.setting.Port_BAT; + + tbBaudAGV.Text = PUB.setting.Baud_AGV.ToString(); + tbBaudXBE.Text = PUB.setting.Baud_XBE.ToString(); + tbBaudBAT.Text = PUB.setting.Baud_BAT.ToString(); + + valIntervalXBE.Value = PUB.setting.interval_xbe; + vcpidDS.Value = PUB.setting.ZSpeed; + valIntervalBMS.Value = PUB.setting.interval_bms; + tbChargerID.Value = PUB.setting.ChargerID; + + vcSCK.Value = PUB.setting.SCK; + vcSSK.Value = PUB.setting.SSK; + vcSTT.Value = PUB.setting.STT; + vcSAD.Value = PUB.setting.SAD; + vcXBID.Value = PUB.setting.XBE_ID; + vcGDS.Value = PUB.setting.GDSValue; + + tbagvaddr.Text = PUB.setting.AGV_ADDRESS; + tbagvpanid.Text = PUB.setting.AGV_PANID; + tbagvchannel.Text = PUB.setting.AGV_CHANNEL; + + //속도 저/중/고 + vcSpeedL.Value = PUB.setting.SPD_L; + vcSpeedM.Value = PUB.setting.SPD_M; + vcSpeedH.Value = PUB.setting.SPD_H; + vcSpeedDrive.Value = PUB.setting.SPD_DRIVE; + + //속도 정지/회전 + vcSpeedS.Value = PUB.setting.SPD_S; + vcSpeedR.Value = PUB.setting.SPD_R; + + //PID-P + vcpidPH.Value = PUB.setting.PID_PH; + vcpidPM.Value = PUB.setting.PID_PM; + vcpidPL.Value = PUB.setting.PID_PL; + + //PID-I + vcpidIH.Value = PUB.setting.PID_IH; + vcpidIM.Value = PUB.setting.PID_IM; + vcpidIL.Value = PUB.setting.PID_IL; + + //PID-D + vcpidDH.Value = PUB.setting.PID_DH; + vcpidDM.Value = PUB.setting.PID_DM; + vcpidDL.Value = PUB.setting.PID_DL; + + //정지상수 + vcpidPS.Value = PUB.setting.PID_PS; + vcpidIS.Value = PUB.setting.PID_IS; + vcpidDS.Value = PUB.setting.PID_DS; + + SetColorValue(btSpeaker, PUB.setting.Enable_Speak); + SetColorValue(btAutoCharge, PUB.setting.Enable_AutoCharge); + SetColorValue(btMusic, PUB.setting.Enable_Music); + nudDoorSoundTerm.Value = PUB.setting.alarmSoundTerm; + chkClear1.Checked = PUB.setting.datetime_Check_1; + chkClear2.Checked = PUB.setting.datetime_Check_2; + cleartime1.Value = DateTime.Parse("1982-11-23 " + PUB.setting.datetime_Reset_1 + ":00"); + cleartime2.Value = DateTime.Parse("1982-11-23 " + PUB.setting.datetime_Reset_2 + ":00"); + chkClearPos.Checked = PUB.setting.AutoModeOffAndClearPosition; + + //PLC옵션 + nudMusicVol.Value = PUB.setting.musicvol;// (int)(PUB.mplayer.Volume * 100.0); + tbMusic.Text = PUB.setting.musicfile; + this.chkFullScreen.Checked = PUB.setting.FullScreen; + this.chkDetectManualCharge.Checked = PUB.setting.DetectManualCharge; + + //충전 + // chkAutoCharge.Checked = PUB.setting.Enable_AutoCharge; + vcChargeStartLevel.Value = PUB.setting.ChargeStartLevel; + vcChargeMaxLevel.Value = PUB.setting.ChargeMaxLevel; + vcChargeMaxTime.Value = PUB.setting.ChargeMaxTime; + vcChargeRetryTerm.Value = PUB.setting.ChargeRetryTerm; + vcChargeSearchTime.Value = PUB.setting.ChargeSearchTime; + vcChargeEmergencyLevel.Value = PUB.setting.ChargeEmergencyLevel; + vcChargeWaitSec.Value = PUB.setting.ChargetWaitSec; + tbMCID.Text = PUB.setting.MCID; + + timer1.Start(); + } + + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + + private void LbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + //offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + + private void btSave_Click(object sender, EventArgs e) + { + if (PUB.CheckPassword() == false) + { + UTIL.MsgE("암호가 일치하지 않습니다"); + return; + } + + this.Validate(); + propertyGrid1.Invalidate(); + + //통신정보저장 + PUB.setting.Port_XBE = tbPortXBE.Text; + PUB.setting.Port_AGV = tbPortAGV.Text; + PUB.setting.Port_BAT = tbportBMS.Text; + + PUB.setting.Baud_XBE = int.Parse(tbBaudXBE.Text); + PUB.setting.Baud_AGV = int.Parse(tbBaudAGV.Text); + PUB.setting.Baud_BAT = int.Parse(tbBaudBAT.Text); + PUB.setting.ChargerID = (int)(tbChargerID.Value); + + PUB.setting.interval_bms = (int)valIntervalBMS.Value; + PUB.setting.interval_xbe = (float)valIntervalXBE.Value; + PUB.setting.ZSpeed = (byte)vcpidDS.Value; + PUB.setting.AutoModeOffAndClearPosition = this.chkClearPos.Checked; + + //AGV정보 저장 + PUB.setting.Enable_Speak = this.btSpeaker.ProgressValue != 0; + PUB.setting.Enable_Music = this.btMusic.ProgressValue != 0; + PUB.setting.Enable_AutoCharge = this.btAutoCharge.ProgressValue != 0; + + //충전 + PUB.setting.ChargeStartLevel = (int)vcChargeStartLevel.Value; + PUB.setting.ChargeMaxLevel = (int)vcChargeMaxLevel.Value; + PUB.setting.ChargeMaxTime = (int)vcChargeMaxTime.Value; + PUB.setting.ChargeRetryTerm = (int)vcChargeRetryTerm.Value; + PUB.setting.ChargeSearchTime = (int)vcChargeSearchTime.Value; + PUB.setting.ChargeEmergencyLevel = (int)vcChargeEmergencyLevel.Value; + PUB.setting.ChargetWaitSec = (int)vcChargeWaitSec.Value; + + PUB.setting.SCK = (int)vcSCK.Value; + PUB.setting.SSK = (int)vcSSK.Value; + PUB.setting.STT = (int)vcSTT.Value; + PUB.setting.SAD = (int)vcSAD.Value; + PUB.setting.XBE_ID = (byte)vcXBID.Value; + PUB.setting.GDSValue = (UInt16)vcGDS.Value; + + //속도 저/중/고 + PUB.setting.SPD_L = (int)vcSpeedL.Value; + PUB.setting.SPD_M = (int)vcSpeedM.Value; + PUB.setting.SPD_H = (int)vcSpeedH.Value; + PUB.setting.SPD_DRIVE = (int)vcSpeedDrive.Value; + + //속도 정지/회전 + PUB.setting.SPD_S = (int)vcSpeedS.Value; + PUB.setting.SPD_R = (int)vcSpeedR.Value; + + //PID-P + PUB.setting.PID_PH = (int)vcpidPH.Value; + PUB.setting.PID_PM = (int)vcpidPM.Value; + PUB.setting.PID_PL = (int)vcpidPL.Value; + + //PID-I ; + PUB.setting.PID_IH = (int)vcpidIH.Value; + PUB.setting.PID_IM = (int)vcpidIM.Value; + PUB.setting.PID_IL = (int)vcpidIL.Value; + + //PID-D ; + PUB.setting.PID_DH = (int)vcpidDH.Value; + PUB.setting.PID_DM = (int)vcpidDM.Value; + PUB.setting.PID_DL = (int)vcpidDL.Value; + + //정지상수 ; + PUB.setting.PID_PS = (int)vcpidPS.Value; + PUB.setting.PID_IS = (int)vcpidIS.Value; + PUB.setting.PID_DS = (int)vcpidDS.Value; + + //시스템옵션 + PUB.setting.ChargeMaxTime = (int)vcChargeMaxTime.Value; + PUB.setting.ChargeRetryTerm = (int)vcChargeRetryTerm.Value; + + //초기화시간 + PUB.setting.datetime_Check_1 = chkClear1.Checked; + PUB.setting.datetime_Check_2 = chkClear2.Checked; + PUB.setting.datetime_Reset_1 = cleartime1.Value.ToString("HH:mm"); + PUB.setting.datetime_Reset_2 = cleartime2.Value.ToString("HH:mm"); + + //PLC옵션 + //PUB.setting.musicvol = (int)nudMusicVol.Value; + PUB.SetVolume((int)nudMusicVol.Value); + PUB.setting.ChargeSearchTime = (int)vcChargeSearchTime.Value; + + PUB.setting.alarmSoundTerm = (int)nudDoorSoundTerm.Value; + if (PUB.setting.alarmSoundTerm < 1) PUB.setting.alarmSoundTerm = 15; //기본값 15초 + + PUB.setting.musicfile = tbMusic.Text.Trim(); + PUB.setting.FullScreen = this.chkFullScreen.Checked; + PUB.setting.ChargeEmergencyLevel = (int)this.vcChargeEmergencyLevel.Value; + PUB.setting.ChargeStartLevel = (int)this.vcChargeStartLevel.Value; + PUB.setting.ChargeMaxLevel = (int)this.vcChargeMaxLevel.Value; + + PUB.setting.DetectManualCharge = this.chkDetectManualCharge.Checked; + PUB.setting.MCID = tbMCID.Text.Trim(); + + PUB.setting.Save(); + + PUB.log.AddAT("환경설정:저장완료"); + + + //plc에 정보를 전송하고 그 값의 회신을 체크한다 + DialogResult = DialogResult.OK; + } + + void SetColorValue(arCtl.arLabel ctl, Boolean value) + { + if (value) + { + ctl.BackColor = Color.Green; + ctl.BackColor2 = Color.Lime; + ctl.ProgressValue = 1; + } + else + { + ctl.BackColor = Color.FromArgb(50, 50, 50); + ctl.BackColor2 = Color.Gray; + ctl.ProgressValue = 0; + } + } + + private void TmDisplay_Tick(object sender, EventArgs e) + { + //Pub.log.Add("timer run"); + } + + private void vcChargeLow_ButtonClick(object sender, AGVControl.ValueSelect.ButtonClickEventArgs e) + { + //버튼이클릭되엇다 각 버튼은 tag값으로 처히 + var button = sender as AGVControl.ValueSelect; + var tagStr = button.Tag.ToString(); + PUB.log.Add("Setup:Click:" + tagStr + ":" + e.Button.ToString()); + if (e.Button == MouseButtons.Middle) + { + //중앙부 숫자를 클릭했다 + var f = AR.UTIL.InputBox("input", button.Value.ToString());// new Dialog.fInput(button.Value.ToString()); + if (f.Item1) + { + Console.WriteLine("value change : " + f.Item2);// ; + button.Value = double.Parse(f.Item2); + } + } + } + + + private void vcChargeLow_ValueChanged(object sender, EventArgs e) + { + //버튼이클릭되엇다 각 버튼은 tag값으로 처히 + var button = sender as AGVControl.ValueSelect; + var tagStr = button.Tag.ToString(); + PUB.log.Add("Setup:ValueChange:" + tagStr + ":" + button.Name); + + //if (tagStr == "SH" && PUB.setting.WheelSpeedHigh != button.Value) + // button.BackColor = Color.Tomato; + //else if (tagStr == "SL" && PUB.setting.WheelSpeedLow != button.Value) + // button.BackColor = Color.Tomato; + //else if (tagStr == "SC" && PUB.setting.WheelSpeedCharge != button.Value) + // button.BackColor = Color.Tomato; + ////else if (tagStr == "MT" && Pub.setting.MoveThreshold != button.Value) + //// button.BackColor = Color.Tomato; + //else if (tagStr == "ST" && PUB.setting.MarkSensorThreshold != button.Value) + // button.BackColor = Color.Tomato; + //else if (tagStr == "BL" && PUB.setting.BalanceThreshold != button.Value) + // button.BackColor = Color.Tomato; + //else if (tagStr == "BU" && PUB.setting.BalanceThresholdUp != button.Value) + // button.BackColor = Color.Tomato; + //else button.BackColor = Color.Navy; + + } + + private void btMagnet_Click(object sender, EventArgs e) + { + //버튼이클릭되엇다 각 버튼은 tag값으로 처히 + var button = sender as arCtl.arLabel; + + var tagStr = button.Tag.ToString(); + PUB.log.Add("Setup:ButtonClick:" + tagStr + ":" + button.Name); + + if (button.ProgressValue == 0) + { + //메세지로 사용여부를 확인한다. + var msg = "다음 기능을 사용하시겠습니까?\n"; + if (tagStr == "0") msg += "[음성지원]\n" + + " * 동작 상태를 음성으로 지원 합니다"; + else if (tagStr == "1") msg += "[자동충전]\n" + + " * 자동으로 충전을 진행 합니다\n" + + " * [충전] 탭에서 설정값을 확인할 수 있습니다"; + else if (tagStr == "2") msg += "[배경음악]\n" + + " * 이동시 음악을 플레이 합니다"; + var dlg = UTIL.MsgQ(msg); + if (dlg == DialogResult.Yes) + { + SetColorValue(button, true); + } + } + else SetColorValue(button, false); + } + + private void btSelXbee_Click(object sender, EventArgs e) + { + //포트를 선택한 후 표시해준다. + var but = sender as Button; + var tagStr = but.Tag.ToString(); + var newPort = PUB.SelectSerialPort(); + if (newPort.isEmpty()) return; + + if (tagStr == "XBE") tbPortXBE.Text = newPort; + else if (tagStr == "AGV") tbPortAGV.Text = newPort; + // else if (tagStr == "PLC") tbPortPLC.Text = newPort; + else if (tagStr == "BAT") tbportBMS.Text = newPort; + + } + + private void btClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + using (var od = new OpenFileDialog()) + { + if (tbMusic.Text.isEmpty() == false) + { + var fi = new System.IO.FileInfo(tbMusic.Text); + od.FileName = fi.Name; + od.InitialDirectory = fi.Directory.FullName; + } + + if (od.ShowDialog() == DialogResult.OK) + { + tbMusic.Text = od.FileName; + } + } + + + } + + private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + if (System.IO.File.Exists(tbMusic.Text) == false) + { + UTIL.MsgE("파일이 없습니다"); + return; + } + try + { + if (PUB.mplayer.SoundLocation.isEmpty() == false) PUB.mplayer.Stop(); + PUB.mplayer.SoundLocation = tbMusic.Text;// (new Uri(tbMusic.Text)); + PUB.mplayer.Play(); + PUB.bPlayMusic = true; + } + catch (Exception ex) + { + UTIL.MsgE("music open error\n\n" + ex.Message); + } + + } + + private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + PUB.mplayer.Stop(); + PUB.bPlayMusic = false; + } + + + private void button3_Click(object sender, EventArgs e) + { + if (this.tbPortAGV.Text == "COM21") + { + this.tbPortAGV.Text = "COM11"; + // this.tbPortPLC.Text = "COM6"; + this.tbportBMS.Text = "COM15"; + this.tbPortXBE.Text = "COM18"; + } + else + { + this.tbPortAGV.Text = "COM21"; + // this.tbPortPLC.Text = "COM31"; + this.tbportBMS.Text = "COM41"; + this.tbPortXBE.Text = "COM51"; + } + + } + + private void valIntervalBMS_ButtonClick(object sender, AGVControl.ValueSelect.ButtonClickEventArgs e) + { + //버튼이클릭되엇다 각 버튼은 tag값으로 처히 + var button = sender as AGVControl.ValueSelect; + var tagStr = button.Tag.ToString(); + PUB.log.Add("Setup:Click:" + tagStr + ":" + e.Button.ToString()); + if (e.Button == MouseButtons.Middle) + { + //중앙부 숫자를 클릭했다 + var f = AR.UTIL.InputBox("input", button.Value.ToString());// new Dialog.fInput(button.Value.ToString()); + if (f.Item1) + { + Console.WriteLine("value change : " + f.Item2); + button.Value = double.Parse(f.Item2); + } + } + } + + private void arLabel1_Click(object sender, EventArgs e) + { + var buts = new arCtl.arLabel[] { bt0, bt1, bt2, bt3, bt5 }; + foreach (var lb in buts) + { + lb.BackColor = Color.DimGray; + lb.BackColor2 = Color.Gray; + } + var bt = sender as arCtl.arLabel; + bt.BackColor = Color.Lime; + bt.BackColor2 = Color.Green; + var index = int.Parse(bt.Tag.ToString()); + this.tabControl1.SelectedIndex = index; + } + + private void button7_Click(object sender, EventArgs e) + { + var value = tbagvaddr.Text.PadLeft(4, '0'); + if (PUB.AGV.AGVCommand("SAD", value) == arDev.eNarumiCommandResult.Success) + { + PUB.setting.AGV_ADDRESS = value; + PUB.setting.Save(); + } + + } + + private void button5_Click(object sender, EventArgs e) + { + var value = tbagvpanid.Text.PadLeft(4, '0'); + if (PUB.AGV.AGVCommand("SPN", value) == arDev.eNarumiCommandResult.Success) + { + PUB.setting.AGV_PANID = value; + PUB.setting.Save(); + } + + } + + private void button6_Click(object sender, EventArgs e) + { + var value = tbagvchannel.Text.PadLeft(4, '0'); + if (PUB.AGV.AGVCommand("SCH", value) == arDev.eNarumiCommandResult.Success) + { + PUB.setting.AGV_CHANNEL = value; + PUB.setting.Save(); + } + + + } + + private void tbagvaddr_Click(object sender, EventArgs e) + { + var tb = sender as TextBox; + var rlt = UTIL.InputBox("input vlaue", tb.Text); + if (rlt.Item1 == false) return; + if (rlt.Item2.isEmpty()) return; + tb.Text = rlt.Item2; + } + + private void button8_Click(object sender, EventArgs e) + { + var value = (ushort)vcGDS.Value; + var rlt = PUB.AGV.TurnGDSCenterScope(value); + if (rlt != arDev.eNarumiCommandResult.Success) UTIL.MsgE($"Error\n{rlt}"); + else UTIL.MsgI("OK"); + } + } +} diff --git a/Cs_HMI/Project/fSetup.resx b/HMI/Project/fSetup.resx similarity index 98% rename from Cs_HMI/Project/fSetup.resx rename to HMI/Project/fSetup.resx index 9b5df3d..8185fcb 100644 --- a/Cs_HMI/Project/fSetup.resx +++ b/HMI/Project/fSetup.resx @@ -1,162 +1,162 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAplJREFUWEft - V7tuFEEQdALkPHIgByIQfAE2GRAZCMCQmAyZDA74AhAPG/7AwIectNfVeyQXnY0TbEJMgu2Ah+rUc/Q2 - s3d7xojEJY20mqrumenpnpmdmtrHLlAUxREAp0TkkojM8Jt9UbenEJGTIvIEQBfAz5pWqurjoihORPtd - oyzLYwBeANjJDFjXqH0O4Gj0NxFU9TyAjeB8U1WXATxU1Zts9s2+zaDdEJFz0W8jiMhVAFvO2YqIzAI4 - ELUJ5ABcA7Dq7LZU9UrUjoStfDi4iLzq9XoHo64O1AJY9JNoHAnb889u8HtR0xQAFtwk1htViiXcwEhV - X3quiYOoAbDkFvPMc3+ApeayfdWHvSzLC5Zkd6pWv0GOGmpTX7/fPwTgo/ncGVmiVudptrOpn+XkMvx7 - bhI2ODlqqB2WoKrecFvxqGrpAOBDchCTTkTm3AA/ANwdwc17W6uOL8ar54aw4zXt/XLkibDKQSRyfdGO - APAuTbDdbh+OPPf4jAv/g8gnZAYcOzjBw8ot8HTkGUZeKklwK/IeIeTZsEeYTfI/HXkmyrSLwFzkPWom - MMyJHETktpvAxcj//y3wSSgibyNPZAafJAnfp2hlk5DgfW6iJmU43PMMV9kOO4y+2uLEcxXwMZGiwFst - 9e/xQdSqWjrwmPxHR/Ga+dzudrvHq1YB9pJJs130XLxocogaAK+TP1V96rksLNz+FbQQNU0B4L7z8ylO - rhZ8PITX0BJDGXV1oFZV3zj7b51O52zUjQSfUWESa6p6PVaHBzlLuLTng8FV9XLUNoJFYt05Y2M58WJp - 8chm47f1DUrNh33ilUdw3/iSmfBZvs2Ea7znTWAlypVqZsDUyLXGltrfgkep/ZrNpF+z2uN1H2PwC9Ia - w16WomAQAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAA5JJREFUaEPt - mn1TElEUxv12fZVm+g7NNNMokqQ1KouACBKjKIovwAJLaqRGgCkpooiYjpbmS5omyctpzjV2bK8Ku+7m - UpyZ3z/sc5jz7N17OHeHhoZ6qDQe2h4/eOR4wtQSWLPQRwNesM+7YDg1XhNgrViz0AcxgoLARqgmwFrr - RtRE3YjaqBtRAmvcCYaZ3luxzw9SeYhqjHjW/NASMMHi9uqtNPsNVC6iGiOd0zZIbq9BpVC9kSYfAyUo - kWK3j3aplaiJFXk174LxxAQxgWaeejqpvVETe0Qb6ILT3BkxkthKgWHGTmkqce9GRld9wEw5+D3QxvWA - N+OndJW4dyPtYSus7X0iJo7OTkAXMlGaarhXI/4NDjSsgV+N/qgHnIsjlK4aJBkxRhzQwhkpnnFGcC5V - X4gt7oRgcpqYKBSLoGEZSlMtkoxgC7wuTs5PQRcyUvqb0Pj1cH6RI7nRbALMEQelqRZZjWB0TNhhLM1S - OULcKQ+Y3w7webqgGXzrQUpXLZKMNLEMuOZYnqE5P1kNjNXdLHSErVSOkBeTFtg6/Exydo/3ofW1mdKI - QZKRsbQPhpbHeXri/TAQY/m728x2QSBL55Vh1znQ+o28vnfWDa7kGKUTgyQj19Ho00OhWCCFTaQiYI05 - KU2Z7mgfhNMxos0XCzeOHWKQzYgp4oDZzIfL4gp50N5SnManh4tCnmjD6ShYYn2URiyyGWGzQdAFTPzj - Yn/nhsHkKKXDR8g26+Z1+IhhrlAnFtmMILiBNw92SIH734+u3cD42Zfjr0SDU+7LKQulkYKsRkZWvGAM - O/m73cpZ/pib2PUgPOe6+evYfrENC79HCrIaQXDjnuZ+kEITWyvAXJlkcSJ4n02Qa7n8T2gO3LyPxCK7 - katnCwycpXCmwmuNvk6+s3HLM2CLD1D5UpHdCIKtuFS6PO15P06RwxDOYDgUlqPSb41YFDGCJ7mFzWVS - MM5SeHDScSY4PPtGPsvsbUL7m8q//mJQxIg3E4A2zsLffdzUeGAqBzPpINOBMO8uKGIEwTa7d3JACsc2 - i0dYDGwE2mAXpb8rihm5/OEb5lehHNgIsCEI9XdFMSMIHpSwzV4NnJzLXUxOFDWCr0C53ydAjKWdNOin - xb8hqQZFjWB7bfIy/Ms1XcBMXo1SOhlQ1shGCBwLLv7lGq6Q8LpcKG7kb1E3ojbqRtTG/2Hkn/gLxz/z - p5p6qCR+AaqNxnTXLPGFAAAAAElFTkSuQmCC - - - - 17, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAplJREFUWEft + V7tuFEEQdALkPHIgByIQfAE2GRAZCMCQmAyZDA74AhAPG/7AwIectNfVeyQXnY0TbEJMgu2Ah+rUc/Q2 + s3d7xojEJY20mqrumenpnpmdmtrHLlAUxREAp0TkkojM8Jt9UbenEJGTIvIEQBfAz5pWqurjoihORPtd + oyzLYwBeANjJDFjXqH0O4Gj0NxFU9TyAjeB8U1WXATxU1Zts9s2+zaDdEJFz0W8jiMhVAFvO2YqIzAI4 + ELUJ5ABcA7Dq7LZU9UrUjoStfDi4iLzq9XoHo64O1AJY9JNoHAnb889u8HtR0xQAFtwk1htViiXcwEhV + X3quiYOoAbDkFvPMc3+ApeayfdWHvSzLC5Zkd6pWv0GOGmpTX7/fPwTgo/ncGVmiVudptrOpn+XkMvx7 + bhI2ODlqqB2WoKrecFvxqGrpAOBDchCTTkTm3AA/ANwdwc17W6uOL8ar54aw4zXt/XLkibDKQSRyfdGO + APAuTbDdbh+OPPf4jAv/g8gnZAYcOzjBw8ot8HTkGUZeKklwK/IeIeTZsEeYTfI/HXkmyrSLwFzkPWom + MMyJHETktpvAxcj//y3wSSgibyNPZAafJAnfp2hlk5DgfW6iJmU43PMMV9kOO4y+2uLEcxXwMZGiwFst + 9e/xQdSqWjrwmPxHR/Ga+dzudrvHq1YB9pJJs130XLxocogaAK+TP1V96rksLNz+FbQQNU0B4L7z8ylO + rhZ8PITX0BJDGXV1oFZV3zj7b51O52zUjQSfUWESa6p6PVaHBzlLuLTng8FV9XLUNoJFYt05Y2M58WJp + 8chm47f1DUrNh33ilUdw3/iSmfBZvs2Ea7znTWAlypVqZsDUyLXGltrfgkep/ZrNpF+z2uN1H2PwC9Ia + w16WomAQAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAA5JJREFUaEPt + mn1TElEUxv12fZVm+g7NNNMokqQ1KouACBKjKIovwAJLaqRGgCkpooiYjpbmS5omyctpzjV2bK8Ku+7m + UpyZ3z/sc5jz7N17OHeHhoZ6qDQe2h4/eOR4wtQSWLPQRwNesM+7YDg1XhNgrViz0AcxgoLARqgmwFrr + RtRE3YjaqBtRAmvcCYaZ3luxzw9SeYhqjHjW/NASMMHi9uqtNPsNVC6iGiOd0zZIbq9BpVC9kSYfAyUo + kWK3j3aplaiJFXk174LxxAQxgWaeejqpvVETe0Qb6ILT3BkxkthKgWHGTmkqce9GRld9wEw5+D3QxvWA + N+OndJW4dyPtYSus7X0iJo7OTkAXMlGaarhXI/4NDjSsgV+N/qgHnIsjlK4aJBkxRhzQwhkpnnFGcC5V + X4gt7oRgcpqYKBSLoGEZSlMtkoxgC7wuTs5PQRcyUvqb0Pj1cH6RI7nRbALMEQelqRZZjWB0TNhhLM1S + OULcKQ+Y3w7webqgGXzrQUpXLZKMNLEMuOZYnqE5P1kNjNXdLHSErVSOkBeTFtg6/Exydo/3ofW1mdKI + QZKRsbQPhpbHeXri/TAQY/m728x2QSBL55Vh1znQ+o28vnfWDa7kGKUTgyQj19Ho00OhWCCFTaQiYI05 + KU2Z7mgfhNMxos0XCzeOHWKQzYgp4oDZzIfL4gp50N5SnManh4tCnmjD6ShYYn2URiyyGWGzQdAFTPzj + Yn/nhsHkKKXDR8g26+Z1+IhhrlAnFtmMILiBNw92SIH734+u3cD42Zfjr0SDU+7LKQulkYKsRkZWvGAM + O/m73cpZ/pib2PUgPOe6+evYfrENC79HCrIaQXDjnuZ+kEITWyvAXJlkcSJ4n02Qa7n8T2gO3LyPxCK7 + katnCwycpXCmwmuNvk6+s3HLM2CLD1D5UpHdCIKtuFS6PO15P06RwxDOYDgUlqPSb41YFDGCJ7mFzWVS + MM5SeHDScSY4PPtGPsvsbUL7m8q//mJQxIg3E4A2zsLffdzUeGAqBzPpINOBMO8uKGIEwTa7d3JACsc2 + i0dYDGwE2mAXpb8rihm5/OEb5lehHNgIsCEI9XdFMSMIHpSwzV4NnJzLXUxOFDWCr0C53ydAjKWdNOin + xb8hqQZFjWB7bfIy/Ms1XcBMXo1SOhlQ1shGCBwLLv7lGq6Q8LpcKG7kb1E3ojbqRtTG/2Hkn/gLxz/z + p5p6qCR+AaqNxnTXLPGFAAAAAElFTkSuQmCC + + + + 17, 17 + \ No newline at end of file diff --git a/Cs_HMI/Project/icons8-layers-30.ico b/HMI/Project/icons8-layers-30.ico similarity index 100% rename from Cs_HMI/Project/icons8-layers-30.ico rename to HMI/Project/icons8-layers-30.ico diff --git a/Cs_HMI/Project/icons8-split-64.ico b/HMI/Project/icons8-split-64.ico similarity index 100% rename from Cs_HMI/Project/icons8-split-64.ico rename to HMI/Project/icons8-split-64.ico diff --git a/Cs_HMI/Project/packages.config b/HMI/Project/packages.config similarity index 98% rename from Cs_HMI/Project/packages.config rename to HMI/Project/packages.config index 23fab69..274dc1a 100644 --- a/Cs_HMI/Project/packages.config +++ b/HMI/Project/packages.config @@ -1,10 +1,10 @@ - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/Project/run.bat b/HMI/Project/run.bat similarity index 96% rename from Cs_HMI/Project/run.bat rename to HMI/Project/run.bat index aba823c..17b1b79 100644 --- a/Cs_HMI/Project/run.bat +++ b/HMI/Project/run.bat @@ -1,4 +1,4 @@ -echo "Building..." -rem dotnet build -echo "Running..." +echo "Building..." +rem dotnet build +echo "Running..." dotnet run --project .\Project\AGV4.csproj \ No newline at end of file diff --git a/Cs_HMI/Project/sample.route b/HMI/Project/sample.route similarity index 97% rename from Cs_HMI/Project/sample.route rename to HMI/Project/sample.route index 4569868..62236cf 100644 --- a/Cs_HMI/Project/sample.route +++ b/HMI/Project/sample.route @@ -1,152 +1,152 @@ -[RFID_POINTS] -100,486,517,False,,False -162,487,516,False,,False -230,493,515,False,,False -309,489,514,False,,False -370,490,513,False,,False -429,487,512,False,Forward,False -488,476,511,False,,False -538,445,510,False,,False -576,393,509,False,,False -598,343,508,False,,False -621,287,507,True,,False -671,293,506,False,,False -702,314,505,False,,False -711,354,504,False,,False -711,396,503,False,,False -707,454,502,False,,False -685,499,501,False,Forward,False -566,281,400,False,,False -504,274,401,False,,False -439,271,402,False,,False -383,267,403,False,,False -311,260,404,False,Forward,False -633,237,600,False,,False -609,186,601,False,,False -639,184,602,False,,False -657,101,603,False,,False -627,82,604,False,,False -560,73,605,False,,False -499,65,606,False,,False -432,65,607,False,Forward,False -242,239,405,False,Forward,True -363,60,608,False,Forward,True -633,547,500,False,Forward,True -96,542,100,False,Forward,True -159,542,101,False,Forward,True -226,542,102,False,Forward,True -310,541,103,False,Forward,True -369,542,104,False,Forward,True -397,166,753,False,Backward,True -847,152,700,False,Backward,True -484,169,752,False,Backward,False -535,176,751,False,,False -573,184,750,False,,False -665,181,703,False,,False -714,174,702,False,,False -756,165,701,False,Backward,False -[RFID_LINES] -100,486,162,487,[RFIDPoint] 517,P:100,486,[RFIDPoint] 516,P:162,487,false,false,0 -162,487,230,493,[RFIDPoint] 516,P:162,487,[RFIDPoint] 515,P:230,493,false,false,0 -230,493,309,489,[RFIDPoint] 515,P:230,493,[RFIDPoint] 514,P:309,489,false,false,0 -309,489,370,490,[RFIDPoint] 514,P:309,489,[RFIDPoint] 513,P:370,490,false,false,0 -370,490,429,487,[RFIDPoint] 513,P:370,490,[RFIDPoint] 512,P:429,487,false,false,0 -429,487,488,476,[RFIDPoint] 512,P:429,487,[RFIDPoint] 511,P:488,476,false,false,0 -488,476,538,445,[RFIDPoint] 511,P:488,476,[RFIDPoint] 510,P:538,445,false,false,0 -538,445,576,393,[RFIDPoint] 510,P:538,445,[RFIDPoint] 509,P:576,393,false,false,0 -576,393,598,343,[RFIDPoint] 509,P:576,393,[RFIDPoint] 508,P:598,343,false,false,0 -598,343,621,287,[RFIDPoint] 508,P:598,343,[RFIDPoint] 507,P:621,287,false,false,0 -621,287,633,237,[RFIDPoint] 507,P:621,287,[RFIDPoint] 600,P:633,237,false,false,0 -633,237,665,181,[RFIDPoint] 600,P:633,237,[RFIDPoint] 703,P:665,181,false,false,0 -665,181,657,101,[RFIDPoint] 703,P:665,181,[RFIDPoint] 603,P:657,101,false,false,0 -657,101,627,82,[RFIDPoint] 603,P:657,101,[RFIDPoint] 604,P:627,82,false,false,0 -627,82,560,73,[RFIDPoint] 604,P:627,82,[RFIDPoint] 605,P:560,73,false,false,0 -560,73,499,65,[RFIDPoint] 605,P:560,73,[RFIDPoint] 606,P:499,65,false,false,0 -499,65,432,65,[RFIDPoint] 606,P:499,65,[RFIDPoint] 607,P:432,65,false,false,0 -432,65,363,60,[RFIDPoint] 607,P:432,65,[RFIDPoint] 608,P:363,60,false,false,0 -639,184,665,181,[RFIDPoint] 602,P:639,184,[RFIDPoint] 703,P:665,181,false,false,0 -665,181,714,174,[RFIDPoint] 703,P:665,181,[RFIDPoint] 702,P:714,174,false,false,0 -714,174,756,165,[RFIDPoint] 702,P:714,174,[RFIDPoint] 701,P:756,165,false,false,0 -756,165,847,152,[RFIDPoint] 701,P:756,165,[RFIDPoint] 700,P:847,152,false,false,0 -639,184,609,186,[RFIDPoint] 602,P:639,184,[RFIDPoint] 601,P:609,186,false,false,0 -609,186,573,184,[RFIDPoint] 601,P:609,186,[RFIDPoint] 750,P:573,184,false,false,0 -573,184,535,176,[RFIDPoint] 750,P:573,184,[RFIDPoint] 751,P:535,176,false,false,0 -535,176,484,169,[RFIDPoint] 751,P:535,176,[RFIDPoint] 752,P:484,169,false,false,0 -484,169,397,166,[RFIDPoint] 752,P:484,169,[RFIDPoint] 753,P:397,166,false,false,0 -242,239,311,260,[RFIDPoint] 405,P:242,239,[RFIDPoint] 404,P:311,260,false,false,0 -311,260,383,267,[RFIDPoint] 404,P:311,260,[RFIDPoint] 403,P:383,267,false,false,0 -383,267,439,271,[RFIDPoint] 403,P:383,267,[RFIDPoint] 402,P:439,271,false,false,0 -439,271,504,274,[RFIDPoint] 402,P:439,271,[RFIDPoint] 401,P:504,274,false,false,0 -504,274,566,281,[RFIDPoint] 401,P:504,274,[RFIDPoint] 400,P:566,281,false,false,0 -566,281,621,287,[RFIDPoint] 400,P:566,281,[RFIDPoint] 507,P:621,287,false,false,0 -621,287,671,293,[RFIDPoint] 507,P:621,287,[RFIDPoint] 506,P:671,293,false,false,0 -671,293,702,314,[RFIDPoint] 506,P:671,293,[RFIDPoint] 505,P:702,314,false,false,0 -702,314,711,354,[RFIDPoint] 505,P:702,314,[RFIDPoint] 504,P:711,354,false,false,0 -711,354,711,396,[RFIDPoint] 504,P:711,354,[RFIDPoint] 503,P:711,396,false,false,0 -711,396,707,454,[RFIDPoint] 503,P:711,396,[RFIDPoint] 502,P:707,454,false,false,0 -707,454,685,499,[RFIDPoint] 502,P:707,454,[RFIDPoint] 501,P:685,499,false,false,0 -685,499,633,547,[RFIDPoint] 501,P:685,499,[RFIDPoint] 500,P:633,547,false,false,0 -96,542,100,486,[RFIDPoint] 100,P:96,542,[RFIDPoint] 517,P:100,486,false,false,0 -159,542,162,487,[RFIDPoint] 101,P:159,542,[RFIDPoint] 516,P:162,487,false,false,0 -226,542,230,493,[RFIDPoint] 102,P:226,542,[RFIDPoint] 515,P:230,493,false,false,0 -310,541,309,489,[RFIDPoint] 103,P:310,541,[RFIDPoint] 514,P:309,489,false,false,0 -369,542,370,490,[RFIDPoint] 104,P:369,542,[RFIDPoint] 513,P:370,490,false,false,0 -[RFID_CONNECTION] -100,486,162,487,517,516,1,,, -162,487,230,493,516,515,1,,, -230,493,309,489,515,514,1,,, -309,489,370,490,514,513,1,,, -370,490,429,487,513,512,1,,, -429,487,488,476,512,511,1,,, -488,476,538,445,511,510,1,,, -538,445,576,393,510,509,1,,, -576,393,598,343,509,508,1,,, -598,343,621,287,508,507,1,,, -621,287,633,237,507,600,1,,, -633,237,665,181,600,703,1,,, -665,181,657,101,703,603,1,,, -657,101,627,82,603,604,1,,, -627,82,560,73,604,605,1,,, -560,73,499,65,605,606,1,,, -499,65,432,65,606,607,1,,, -432,65,363,60,607,608,1,,, -639,184,665,181,602,703,1,,, -665,181,714,174,703,702,1,,, -714,174,756,165,702,701,1,,, -756,165,847,152,701,700,1,,, -639,184,609,186,602,601,1,,, -609,186,573,184,601,750,1,,, -573,184,535,176,750,751,1,,, -535,176,484,169,751,752,1,,, -484,169,397,166,752,753,1,,, -242,239,311,260,405,404,1,,, -311,260,383,267,404,403,1,,, -383,267,439,271,403,402,1,,, -439,271,504,274,402,401,1,,, -504,274,566,281,401,400,1,,, -566,281,621,287,400,507,1,,, -621,287,671,293,507,506,1,,, -671,293,702,314,506,505,1,,, -702,314,711,354,505,504,1,,, -711,354,711,396,504,503,1,,, -711,396,707,454,503,502,1,,, -707,454,685,499,502,501,1,,, -685,499,633,547,501,500,1,,, -96,542,100,486,100,517,1,,, -159,542,162,487,101,516,1,,, -226,542,230,493,102,515,1,,, -310,541,309,489,103,514,1,,, -369,542,370,490,104,513,1,,, -[MAP_TEXTS] -231,193,-16777216,-2448096,Arial,12,TOPS-2 -315,25,-256,-65408,Arial,12,SSOTRON-3 -586,577,-16711936,-16777216,Arial,12,SSOTRON-1 -81,564,-16777216,-1,Arial,12,B1 -144,563,-16777216,-1,Arial,12,B2 -214,561,-16777216,-1,Arial,12,B3 -301,562,-16777216,-1,Arial,12,B4 -359,562,-16777216,-1,Arial,12,B5 -371,115,-16777216,-8323073,Arial,12,CHG1 -822,110,-16777216,-8323073,Arial,12,CHG2 -[CUSTOM_LINES] -[CUSTOM_LINES] +[RFID_POINTS] +100,486,517,False,,False +162,487,516,False,,False +230,493,515,False,,False +309,489,514,False,,False +370,490,513,False,,False +429,487,512,False,Forward,False +488,476,511,False,,False +538,445,510,False,,False +576,393,509,False,,False +598,343,508,False,,False +621,287,507,True,,False +671,293,506,False,,False +702,314,505,False,,False +711,354,504,False,,False +711,396,503,False,,False +707,454,502,False,,False +685,499,501,False,Forward,False +566,281,400,False,,False +504,274,401,False,,False +439,271,402,False,,False +383,267,403,False,,False +311,260,404,False,Forward,False +633,237,600,False,,False +609,186,601,False,,False +639,184,602,False,,False +657,101,603,False,,False +627,82,604,False,,False +560,73,605,False,,False +499,65,606,False,,False +432,65,607,False,Forward,False +242,239,405,False,Forward,True +363,60,608,False,Forward,True +633,547,500,False,Forward,True +96,542,100,False,Forward,True +159,542,101,False,Forward,True +226,542,102,False,Forward,True +310,541,103,False,Forward,True +369,542,104,False,Forward,True +397,166,753,False,Backward,True +847,152,700,False,Backward,True +484,169,752,False,Backward,False +535,176,751,False,,False +573,184,750,False,,False +665,181,703,False,,False +714,174,702,False,,False +756,165,701,False,Backward,False +[RFID_LINES] +100,486,162,487,[RFIDPoint] 517,P:100,486,[RFIDPoint] 516,P:162,487,false,false,0 +162,487,230,493,[RFIDPoint] 516,P:162,487,[RFIDPoint] 515,P:230,493,false,false,0 +230,493,309,489,[RFIDPoint] 515,P:230,493,[RFIDPoint] 514,P:309,489,false,false,0 +309,489,370,490,[RFIDPoint] 514,P:309,489,[RFIDPoint] 513,P:370,490,false,false,0 +370,490,429,487,[RFIDPoint] 513,P:370,490,[RFIDPoint] 512,P:429,487,false,false,0 +429,487,488,476,[RFIDPoint] 512,P:429,487,[RFIDPoint] 511,P:488,476,false,false,0 +488,476,538,445,[RFIDPoint] 511,P:488,476,[RFIDPoint] 510,P:538,445,false,false,0 +538,445,576,393,[RFIDPoint] 510,P:538,445,[RFIDPoint] 509,P:576,393,false,false,0 +576,393,598,343,[RFIDPoint] 509,P:576,393,[RFIDPoint] 508,P:598,343,false,false,0 +598,343,621,287,[RFIDPoint] 508,P:598,343,[RFIDPoint] 507,P:621,287,false,false,0 +621,287,633,237,[RFIDPoint] 507,P:621,287,[RFIDPoint] 600,P:633,237,false,false,0 +633,237,665,181,[RFIDPoint] 600,P:633,237,[RFIDPoint] 703,P:665,181,false,false,0 +665,181,657,101,[RFIDPoint] 703,P:665,181,[RFIDPoint] 603,P:657,101,false,false,0 +657,101,627,82,[RFIDPoint] 603,P:657,101,[RFIDPoint] 604,P:627,82,false,false,0 +627,82,560,73,[RFIDPoint] 604,P:627,82,[RFIDPoint] 605,P:560,73,false,false,0 +560,73,499,65,[RFIDPoint] 605,P:560,73,[RFIDPoint] 606,P:499,65,false,false,0 +499,65,432,65,[RFIDPoint] 606,P:499,65,[RFIDPoint] 607,P:432,65,false,false,0 +432,65,363,60,[RFIDPoint] 607,P:432,65,[RFIDPoint] 608,P:363,60,false,false,0 +639,184,665,181,[RFIDPoint] 602,P:639,184,[RFIDPoint] 703,P:665,181,false,false,0 +665,181,714,174,[RFIDPoint] 703,P:665,181,[RFIDPoint] 702,P:714,174,false,false,0 +714,174,756,165,[RFIDPoint] 702,P:714,174,[RFIDPoint] 701,P:756,165,false,false,0 +756,165,847,152,[RFIDPoint] 701,P:756,165,[RFIDPoint] 700,P:847,152,false,false,0 +639,184,609,186,[RFIDPoint] 602,P:639,184,[RFIDPoint] 601,P:609,186,false,false,0 +609,186,573,184,[RFIDPoint] 601,P:609,186,[RFIDPoint] 750,P:573,184,false,false,0 +573,184,535,176,[RFIDPoint] 750,P:573,184,[RFIDPoint] 751,P:535,176,false,false,0 +535,176,484,169,[RFIDPoint] 751,P:535,176,[RFIDPoint] 752,P:484,169,false,false,0 +484,169,397,166,[RFIDPoint] 752,P:484,169,[RFIDPoint] 753,P:397,166,false,false,0 +242,239,311,260,[RFIDPoint] 405,P:242,239,[RFIDPoint] 404,P:311,260,false,false,0 +311,260,383,267,[RFIDPoint] 404,P:311,260,[RFIDPoint] 403,P:383,267,false,false,0 +383,267,439,271,[RFIDPoint] 403,P:383,267,[RFIDPoint] 402,P:439,271,false,false,0 +439,271,504,274,[RFIDPoint] 402,P:439,271,[RFIDPoint] 401,P:504,274,false,false,0 +504,274,566,281,[RFIDPoint] 401,P:504,274,[RFIDPoint] 400,P:566,281,false,false,0 +566,281,621,287,[RFIDPoint] 400,P:566,281,[RFIDPoint] 507,P:621,287,false,false,0 +621,287,671,293,[RFIDPoint] 507,P:621,287,[RFIDPoint] 506,P:671,293,false,false,0 +671,293,702,314,[RFIDPoint] 506,P:671,293,[RFIDPoint] 505,P:702,314,false,false,0 +702,314,711,354,[RFIDPoint] 505,P:702,314,[RFIDPoint] 504,P:711,354,false,false,0 +711,354,711,396,[RFIDPoint] 504,P:711,354,[RFIDPoint] 503,P:711,396,false,false,0 +711,396,707,454,[RFIDPoint] 503,P:711,396,[RFIDPoint] 502,P:707,454,false,false,0 +707,454,685,499,[RFIDPoint] 502,P:707,454,[RFIDPoint] 501,P:685,499,false,false,0 +685,499,633,547,[RFIDPoint] 501,P:685,499,[RFIDPoint] 500,P:633,547,false,false,0 +96,542,100,486,[RFIDPoint] 100,P:96,542,[RFIDPoint] 517,P:100,486,false,false,0 +159,542,162,487,[RFIDPoint] 101,P:159,542,[RFIDPoint] 516,P:162,487,false,false,0 +226,542,230,493,[RFIDPoint] 102,P:226,542,[RFIDPoint] 515,P:230,493,false,false,0 +310,541,309,489,[RFIDPoint] 103,P:310,541,[RFIDPoint] 514,P:309,489,false,false,0 +369,542,370,490,[RFIDPoint] 104,P:369,542,[RFIDPoint] 513,P:370,490,false,false,0 +[RFID_CONNECTION] +100,486,162,487,517,516,1,,, +162,487,230,493,516,515,1,,, +230,493,309,489,515,514,1,,, +309,489,370,490,514,513,1,,, +370,490,429,487,513,512,1,,, +429,487,488,476,512,511,1,,, +488,476,538,445,511,510,1,,, +538,445,576,393,510,509,1,,, +576,393,598,343,509,508,1,,, +598,343,621,287,508,507,1,,, +621,287,633,237,507,600,1,,, +633,237,665,181,600,703,1,,, +665,181,657,101,703,603,1,,, +657,101,627,82,603,604,1,,, +627,82,560,73,604,605,1,,, +560,73,499,65,605,606,1,,, +499,65,432,65,606,607,1,,, +432,65,363,60,607,608,1,,, +639,184,665,181,602,703,1,,, +665,181,714,174,703,702,1,,, +714,174,756,165,702,701,1,,, +756,165,847,152,701,700,1,,, +639,184,609,186,602,601,1,,, +609,186,573,184,601,750,1,,, +573,184,535,176,750,751,1,,, +535,176,484,169,751,752,1,,, +484,169,397,166,752,753,1,,, +242,239,311,260,405,404,1,,, +311,260,383,267,404,403,1,,, +383,267,439,271,403,402,1,,, +439,271,504,274,402,401,1,,, +504,274,566,281,401,400,1,,, +566,281,621,287,400,507,1,,, +621,287,671,293,507,506,1,,, +671,293,702,314,506,505,1,,, +702,314,711,354,505,504,1,,, +711,354,711,396,504,503,1,,, +711,396,707,454,503,502,1,,, +707,454,685,499,502,501,1,,, +685,499,633,547,501,500,1,,, +96,542,100,486,100,517,1,,, +159,542,162,487,101,516,1,,, +226,542,230,493,102,515,1,,, +310,541,309,489,103,514,1,,, +369,542,370,490,104,513,1,,, +[MAP_TEXTS] +231,193,-16777216,-2448096,Arial,12,TOPS-2 +315,25,-256,-65408,Arial,12,SSOTRON-3 +586,577,-16711936,-16777216,Arial,12,SSOTRON-1 +81,564,-16777216,-1,Arial,12,B1 +144,563,-16777216,-1,Arial,12,B2 +214,561,-16777216,-1,Arial,12,B3 +301,562,-16777216,-1,Arial,12,B4 +359,562,-16777216,-1,Arial,12,B5 +371,115,-16777216,-8323073,Arial,12,CHG1 +822,110,-16777216,-8323073,Arial,12,CHG2 +[CUSTOM_LINES] +[CUSTOM_LINES] diff --git a/Cs_HMI/README.md b/HMI/README.md similarity index 100% rename from Cs_HMI/README.md rename to HMI/README.md diff --git a/Cs_HMI/StateMachine/DisplayTextHandler.cs b/HMI/StateMachine/DisplayTextHandler.cs similarity index 95% rename from Cs_HMI/StateMachine/DisplayTextHandler.cs rename to HMI/StateMachine/DisplayTextHandler.cs index 79d32a2..5067b66 100644 --- a/Cs_HMI/StateMachine/DisplayTextHandler.cs +++ b/HMI/StateMachine/DisplayTextHandler.cs @@ -1,37 +1,37 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Net; -using System.Text; -using System.Windows.Forms; - -namespace Project -{ - public partial class fMain - { - delegate void ShowLotTextHandler(string value); - - delegate void UpdateDMTextHandler(string value1); - - void UpdateResultText(string value1) - { - - } - - delegate void UpdateLabelTextHandler(Control ctl, string value); - void UpdateLabelText(Control ctl, string value) - { - if (ctl.InvokeRequired) - { - ctl.BeginInvoke(new UpdateLabelTextHandler(UpdateLabelText), new object[] { ctl, value }); - } - else - { - ctl.Text = value; - } - } - } -} +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class fMain + { + delegate void ShowLotTextHandler(string value); + + delegate void UpdateDMTextHandler(string value1); + + void UpdateResultText(string value1) + { + + } + + delegate void UpdateLabelTextHandler(Control ctl, string value); + void UpdateLabelText(Control ctl, string value) + { + if (ctl.InvokeRequired) + { + ctl.BeginInvoke(new UpdateLabelTextHandler(UpdateLabelText), new object[] { ctl, value }); + } + else + { + ctl.Text = value; + } + } + } +} diff --git a/Cs_HMI/StateMachine/EnumStruct.cs b/HMI/StateMachine/EnumStruct.cs similarity index 94% rename from Cs_HMI/StateMachine/EnumStruct.cs rename to HMI/StateMachine/EnumStruct.cs index 0db3914..c1d1668 100644 --- a/Cs_HMI/StateMachine/EnumStruct.cs +++ b/HMI/StateMachine/EnumStruct.cs @@ -1,114 +1,114 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Project.StateMachine -{ - // public partial class StateMachine - //{ - public enum eGoDir - { - Up, - Down, - } - public enum EMsgOpt : byte - { - NORMAL, - STEPCHANGE, - ERROR, - } - /// - /// 000~020 : System Define - /// 020~255 : User Define - /// - public enum eSMStep : byte - { - NOTSET = 0, - INIT, - SYNC, - IDLE, - RUN, - FINISH, - PAUSE, - ERROR, - RESET, - EMERGENCY, - CLEAR, - CLOSING, - CLOSEWAIT, - CLOSED, - } - - /// - /// RUN중일 때 사용되는 세부 시퀀스 - /// - public enum ERunStep : byte - { - /// - /// 자동모드 대기상태 - /// - READY = 0, - - GOHOME, - - /// - /// 충전을 해제 함 - /// - CHARGEOFF, - - /// - /// 충전이동 - /// - GOCHARGE, - - /// - /// 충전중 - /// - CHARGECHECK = 50, - - /// - /// 상차이동 - /// - BUFFER_OUT, - - - /// - /// 하차이동 - /// - BUFFER_IN, - - LOADER_IN, - LOADER_OUT, - UNLOADER_IN, - UNLOADER_OUT, - CLEANER_IN, - CLEANER_OUT, - - /// - /// 목적지로 이동합니다 - /// - GOTO, - - /// - /// 전진방향으로 마크스탑진행 - /// - MARKSTOPF, - - /// - /// 후진방향으로 마크스탑진행 - /// - MARKSTOPB, - - /// - /// 에러발생 - /// - ERROR, - - } - - - - - -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.StateMachine +{ + // public partial class StateMachine + //{ + public enum eGoDir + { + Up, + Down, + } + public enum EMsgOpt : byte + { + NORMAL, + STEPCHANGE, + ERROR, + } + /// + /// 000~020 : System Define + /// 020~255 : User Define + /// + public enum eSMStep : byte + { + NOTSET = 0, + INIT, + SYNC, + IDLE, + RUN, + FINISH, + PAUSE, + ERROR, + RESET, + EMERGENCY, + CLEAR, + CLOSING, + CLOSEWAIT, + CLOSED, + } + + /// + /// RUN중일 때 사용되는 세부 시퀀스 + /// + public enum ERunStep : byte + { + /// + /// 자동모드 대기상태 + /// + READY = 0, + + GOHOME, + + /// + /// 충전을 해제 함 + /// + CHARGEOFF, + + /// + /// 충전이동 + /// + GOCHARGE, + + /// + /// 충전중 + /// + CHARGECHECK = 50, + + /// + /// 상차이동 + /// + BUFFER_OUT, + + + /// + /// 하차이동 + /// + BUFFER_IN, + + LOADER_IN, + LOADER_OUT, + UNLOADER_IN, + UNLOADER_OUT, + CLEANER_IN, + CLEANER_OUT, + + /// + /// 목적지로 이동합니다 + /// + GOTO, + + /// + /// 전진방향으로 마크스탑진행 + /// + MARKSTOPF, + + /// + /// 후진방향으로 마크스탑진행 + /// + MARKSTOPB, + + /// + /// 에러발생 + /// + ERROR, + + } + + + + + +} diff --git a/Cs_HMI/StateMachine/EventArgs.cs b/HMI/StateMachine/EventArgs.cs similarity index 97% rename from Cs_HMI/StateMachine/EventArgs.cs rename to HMI/StateMachine/EventArgs.cs index dbf13df..81a045b 100644 --- a/Cs_HMI/StateMachine/EventArgs.cs +++ b/HMI/StateMachine/EventArgs.cs @@ -1,75 +1,75 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Project.StateMachine -{ - public partial class StateMachine - { - public class StateMachineMessageEventArgs : EventArgs - { - public string Header { get; set; } - public string Message { get; set; } - public StateMachineMessageEventArgs(string header_, string message_) - { - this.Message = message_; - this.Header = header_; - } - } - public event EventHandler Message; - void RaiseMessage(string header, string msg) - { - if (Message != null) - { - try - { - // 비동기로 이벤트 발생 (블로킹 방지) - var handler = Message; - if (handler != null) - { - var args = new StateMachineMessageEventArgs(header, msg); - System.Threading.ThreadPool.QueueUserWorkItem(_ => - { - try - { - handler(this, args); - } - catch { /* 이벤트 핸들러 예외 무시 */ } - }); - } - } - catch { /* 예외 무시 */ } - } - } - - public class StepChangeEventArgs : EventArgs - { - public eSMStep Old { get; set; } - public eSMStep New { get; set; } - public StepChangeEventArgs(eSMStep old_,eSMStep new_) - { - this.Old = old_; - this.New = new_; - } - } - public class RunningEventArgs : EventArgs { - public Boolean isFirst { get; set; } - public eSMStep Step { get; set; } - public TimeSpan StepTime { get; set; } - public object Data { get; set; } - public RunningEventArgs( eSMStep step_, Boolean isfirst_,TimeSpan steptime_,object data = null) - { - this.isFirst = isfirst_; - this.Step = step_; - StepTime = steptime_; - this.Data = data; - } - } - public event EventHandler StepChanged; - public event EventHandler SPS; - public event EventHandler Running; - } - - -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.StateMachine +{ + public partial class StateMachine + { + public class StateMachineMessageEventArgs : EventArgs + { + public string Header { get; set; } + public string Message { get; set; } + public StateMachineMessageEventArgs(string header_, string message_) + { + this.Message = message_; + this.Header = header_; + } + } + public event EventHandler Message; + void RaiseMessage(string header, string msg) + { + if (Message != null) + { + try + { + // 비동기로 이벤트 발생 (블로킹 방지) + var handler = Message; + if (handler != null) + { + var args = new StateMachineMessageEventArgs(header, msg); + System.Threading.ThreadPool.QueueUserWorkItem(_ => + { + try + { + handler(this, args); + } + catch { /* 이벤트 핸들러 예외 무시 */ } + }); + } + } + catch { /* 예외 무시 */ } + } + } + + public class StepChangeEventArgs : EventArgs + { + public eSMStep Old { get; set; } + public eSMStep New { get; set; } + public StepChangeEventArgs(eSMStep old_,eSMStep new_) + { + this.Old = old_; + this.New = new_; + } + } + public class RunningEventArgs : EventArgs { + public Boolean isFirst { get; set; } + public eSMStep Step { get; set; } + public TimeSpan StepTime { get; set; } + public object Data { get; set; } + public RunningEventArgs( eSMStep step_, Boolean isfirst_,TimeSpan steptime_,object data = null) + { + this.isFirst = isfirst_; + this.Step = step_; + StepTime = steptime_; + this.Data = data; + } + } + public event EventHandler StepChanged; + public event EventHandler SPS; + public event EventHandler Running; + } + + +} diff --git a/Cs_HMI/StateMachine/Properties/AssemblyInfo.cs b/HMI/StateMachine/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/StateMachine/Properties/AssemblyInfo.cs rename to HMI/StateMachine/Properties/AssemblyInfo.cs index cf59347..556c39a 100644 --- a/Cs_HMI/StateMachine/Properties/AssemblyInfo.cs +++ b/HMI/StateMachine/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("StateMachine")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("StateMachine")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("bbc9bccf-6262-4355-9cc2-37ff678ac499")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 -// 기본값으로 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("StateMachine")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("StateMachine")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("bbc9bccf-6262-4355-9cc2-37ff678ac499")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs_HMI/StateMachine/StateMachine.cs b/HMI/StateMachine/StateMachine.cs similarity index 97% rename from Cs_HMI/StateMachine/StateMachine.cs rename to HMI/StateMachine/StateMachine.cs index ab99c48..5fc5f25 100644 --- a/Cs_HMI/StateMachine/StateMachine.cs +++ b/HMI/StateMachine/StateMachine.cs @@ -1,427 +1,427 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Project.StateMachine -{ - public partial class StateMachine : IDisposable - { - public DateTime UpdateTime; - public TimeSpan RunSpeed = new TimeSpan(0); - private Boolean bLoop = true; - private DateTime StepStartTime; - private byte _messageOption; - - private System.Threading.Thread worker; - private Boolean firstRun = false; - - public Boolean WaitFirstRun = false; - - - - public StateMachine() - { - WaitFirstRun = false; - UpdateTime = DateTime.Now; - _messageOption = 0xFF; //모든메세지가 오도록 한다. - worker = new System.Threading.Thread(new System.Threading.ThreadStart(Loop)) - { - IsBackground = false - }; - StepStartTime = DateTime.Parse("1982-11-23"); - } - - ~StateMachine() - { - Dispose(false); - } - - #region "Dispose" - - private bool disposed = false; - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - protected virtual void Dispose(bool disposing) - { - // Check to see if Dispose has already been called. - if (!this.disposed) - { - if (disposing) - { - // Dispose managed resources. - } - - Stop(); - // unmanaged resources here. - // If disposing is false, - // only the following code is executed. - disposed = true; - } - } - - #endregion - - public void Stop() - { - if (bLoop != false) bLoop = false; - //if (worker.IsAlive) - // if (worker.Join(1000) == false) - // worker.Abort(); - } - public void Start() - { - if (worker.ThreadState == System.Threading.ThreadState.Stopped) - { - worker = new System.Threading.Thread(new System.Threading.ThreadStart(Loop)) - { - IsBackground = false - }; - } - bLoop = true; - worker.Start(); - } - - private Boolean _isthreadrun; - public Boolean IsThreadRun { get { return _isthreadrun; } } - public int LoopCount { get { return _loopCount; } } - public DateTime LastLoopTime { get { return _lastLoopTime; } } - - private int _loopCount = 0; - private DateTime _lastLoopTime = DateTime.Now; - - void Loop() - { - _isthreadrun = true; - if (GetMsgOpt(EMsgOpt.NORMAL)) RaiseMessage("SM", "Start"); - - try - { - while (bLoop) - { - _loopCount++; - _lastLoopTime = DateTime.Now; - - // 루프 동작 확인용 로그 (10초마다) - if (_loopCount % 10000 == 0) - { - RaiseMessage("SM-LOOP", $"Loop alive - Count:{_loopCount}, bLoop:{bLoop}, Step:{Step}"); - } - - RunSpeed = DateTime.Now - UpdateTime; //이전업데이트에서 현재 시간의 오차 한바퀴 시간이 표시됨 - UpdateTime = DateTime.Now; - - //항상 작동하는 경우 - try - { - var spsHandler = SPS; - if (spsHandler != null) - { - var spsStartTime = DateTime.Now; - var spsTask = System.Threading.Tasks.Task.Run(() => - { - try - { - spsHandler(this, new EventArgs()); - } - catch (Exception ex) - { - RaiseMessage("SM-ERROR-SPS", $"SPS Exception: {ex.Message}\n{ex.StackTrace}"); - } - }); - - // 타임아웃 1초 - if (!spsTask.Wait(1000)) - { - var elapsed = (DateTime.Now - spsStartTime).TotalSeconds; - RaiseMessage("SM-TIMEOUT", $"SPS 이벤트 타임아웃 ({elapsed:F2}초 초과) - Step:{Step}"); - } - } - } - catch (Exception ex) - { - RaiseMessage("SM-ERROR-SPS", $"SPS Exception: {ex.Message}\n{ex.StackTrace}"); - } - - //작동스텝이 변경되었다면 그것을 알림 처리한다. - if (GetNewStep != Step) - { - if (GetMsgOpt(EMsgOpt.STEPCHANGE)) - RaiseMessage("SM-STEP", string.Format("Step Changed {0} >> {1}", Step, GetNewStep)); - - StepApply(); - firstRun = true; - StepStartTime = DateTime.Now; - } - else - { - //팝업메세지의 종료를 기다리는 식에서 문제가 생긴다 - firstRun = WaitFirstRun; - } - - - //동작중에 발생하는 이벤트 - var runningHandler = Running; - if (runningHandler != null) - { - try - { - var runningStartTime = DateTime.Now; - var runningTask = System.Threading.Tasks.Task.Run(() => - { - - //try - //{ - runningHandler(this, new RunningEventArgs(Step, firstRun, StepRunTime)); - //} - //catch (Exception ex) - //{ - // RaiseMessage("SM-ERROR-RUNNING", $"Running Exception: {ex.Message}\n{ex.StackTrace}"); - //} - - - }); - - // 타임아웃 2초 - if (!runningTask.Wait(2000)) - { - var elapsed = (DateTime.Now - runningStartTime).TotalSeconds; - RaiseMessage("SM-TIMEOUT", $"Running 이벤트 타임아웃 ({elapsed:F2}초 초과) - Step:{Step}, FirstRun:{firstRun}"); - } - } - catch (Exception ex) - { - RaiseMessage("SM-ERROR-RUNNING", $"Running Exception: {ex.Message}\n{ex.StackTrace}"); - } - } - System.Threading.Thread.Sleep(1); - } - } - catch (Exception ex) - { - RaiseMessage("SM-FATAL", $"Loop Fatal Exception: {ex.Message}\n{ex.StackTrace}"); - } - finally - { - _isthreadrun = false; - if (GetMsgOpt(EMsgOpt.NORMAL)) RaiseMessage("SM", $"Stop - LoopCount:{_loopCount}"); - } - } - - - /// - /// 상태머신의 작동상태 - /// - public eSMStep Step { get { return _step; } } - - /// - /// 상태머신값을 숫자로 반환 합니다. (20이하는 시스템상태이고 그 이상은 사용자 상태) - /// - public byte StepValue - { - get - { - return (byte)this._step; - } - } - - /// - /// 현재 진행 스텝을 강제로 변경합니다. - /// 일반적인 상태변화는 setNewStep 을 사용하세요. - /// - /// - public void SetCurrentStep(ERunStep step) - { - RaiseMessage("SM-STEP", string.Format("강제 스텝 변경 {0}->{1}", _runstepo, step)); - _runstepo = step; - _runstepn = step; - } - - public void SetNewStep(eSMStep newstep_, bool force = false) - { - if (Step != newstep_) - { - if (force) - { - RaiseMessage("SM-STEP", string.Format("강제스텝전환 {0} -> {1}", Step, _newstep)); - OldStep = _step; - _step = newstep_; - _newstep = newstep_; - - // 비동기로 이벤트 발생 (블로킹 방지) - var handler = StepChanged; - if (handler != null) - { - var args = new StepChangeEventArgs(OldStep, newstep_); - try { handler(this, args); } - catch { /* 이벤트 핸들러 예외 무시 */ } - } - } - else - { - if (_newstep != newstep_) - { - //바뀌도록 예약을 한다. - _newstep = newstep_; - if (GetMsgOpt(EMsgOpt.STEPCHANGE)) - RaiseMessage("SM-STEP", string.Format("Step Reserve {0} -> {1}", Step, _newstep)); - } - else - { - //예약은 되어있는데 아직 바뀐것은 아니다. - if (GetMsgOpt(EMsgOpt.STEPCHANGE)) - RaiseMessage("SM-STEP", string.Format("Step Already Reserve {0} -> {1}", Step, _newstep)); - } - } - - } - } - - #region "runstep" - private int _runStepSeq = 0; - public int RunStepSeq { get { return _runStepSeq; } } - - public Stack BackupRunStep = new Stack(); - - private DateTime runStepStartTime = DateTime.Parse("1982-11-23"); - private ERunStep _runstepn = ERunStep.READY; - private ERunStep _runstepo = ERunStep.READY; - public ERunStep RunStep { get { return _runstepo; } } - public ERunStep RunStepNew { get { return _runstepn; } } - public void SetNewRunStep(ERunStep newStep) - { - if (_runstepn != newStep) - { - // Pub.log.Add(string.Format("set new run step {0}->{1}", _runstepn, newStep)); - _runstepn = newStep; - } - } - public void ApplyRunStep() - { - if (_runstepn != _runstepo) - { - //Pub.log.Add(string.Format("apply new run step {0}->{1}", _runstepo, _runstepn)); - _runStepSeq = 0; - _runstepo = _runstepn; - UpdateRunStepSeq();// runStepStartTime = DateTime.Now; - } - } - public TimeSpan GetRunSteptime { get { return DateTime.Now - runStepStartTime; } } - public void SetStepSeq(byte value) - { - _runStepSeq = value; - if (GetMsgOpt(EMsgOpt.NORMAL)) - { - if (_runStepSeq != value) //변화가잇는겨웅에만 처리 220628 - RaiseMessage("STEPSEQ", string.Format("Step Sequence Jump {0} to {1}", _runStepSeq, value)); - } - - } - public void UpdateRunStepStartTime() - { - runStepStartTime = DateTime.Now; - // Pub.log.Add("Update RunStep Start Time"); - } - public void UpdateRunStepSeq(int incvalue = 1) - { - _runStepSeq += incvalue; - UpdateRunStepStartTime(); - // Pub.log.Add(string.Format("스텝({0}) 시퀀스증가 신규값={1}", runStep, _runStepSeq)); - } - public void ResetRunStepSeq() - { - _runStepSeq = 1; - UpdateRunStepStartTime(); - } - - /// - /// runstep 시퀀스값을 1로 설정하고 시작시간도 업데이트 합니다 - /// 기본 스텝상태를 READY로 변경 합니다 - /// - public void ClearRunStep() - { - _runStepSeq = 1; - runStepStartTime = DateTime.Now; - _runstepn = ERunStep.READY; - _runstepo = ERunStep.READY; - } - #endregion - - - public eSMStep GetNewStep - { - get - { - return _newstep; - } - } - private eSMStep _newstep = eSMStep.NOTSET; - public eSMStep OldStep = eSMStep.NOTSET; //171214 - private eSMStep _step; - - /// - /// newstep 의 값을 step 에 적용합니다. - /// - private void StepApply() - { - var ostep = _step; - OldStep = _step; _step = _newstep; - - // 비동기로 이벤트 발생 (블로킹 방지) - var handler = StepChanged; - if (handler != null) - { - var args = new StepChangeEventArgs(ostep, _step); - try { handler(this, args); } - catch { /* 이벤트 핸들러 예외 무시 */ } - } - } //171214 - - /// - /// 메세지 출력옵션을 변경 합니다. - /// - /// - /// - public void SetMsgOpt(EMsgOpt opt, Boolean value) - { - byte pos = (byte)opt; - if (value) - _messageOption = (byte)(_messageOption | (1 << pos)); - else - _messageOption = (byte)(_messageOption & ~(1 << pos)); - } - public void SetMegOptOn() { _messageOption = 0xFF; } - public void SetMsgOptOff() { _messageOption = 0; } - public Boolean GetMsgOpt(EMsgOpt opt) - { - byte pos = (byte)opt; - return (_messageOption & (1 << pos)) > 0; - } - public TimeSpan StepRunTime - { - get - { - if (IsThreadRun == false || bLoop == false || StepStartTime.Year == 1982) return new TimeSpan(0); - else return DateTime.Now - StepStartTime; - } - } - - public Boolean bPause = false; - - /// - /// 상태머신이 실제 동작중인지 확인합니다. - /// 검사상태 : Step = Run, IsThreadRun, bPause = false - /// - public Boolean IsRun - { - get - { - if (Step == eSMStep.RUN && _isthreadrun && bPause == false) return true; - else return false; - } - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.StateMachine +{ + public partial class StateMachine : IDisposable + { + public DateTime UpdateTime; + public TimeSpan RunSpeed = new TimeSpan(0); + private Boolean bLoop = true; + private DateTime StepStartTime; + private byte _messageOption; + + private System.Threading.Thread worker; + private Boolean firstRun = false; + + public Boolean WaitFirstRun = false; + + + + public StateMachine() + { + WaitFirstRun = false; + UpdateTime = DateTime.Now; + _messageOption = 0xFF; //모든메세지가 오도록 한다. + worker = new System.Threading.Thread(new System.Threading.ThreadStart(Loop)) + { + IsBackground = false + }; + StepStartTime = DateTime.Parse("1982-11-23"); + } + + ~StateMachine() + { + Dispose(false); + } + + #region "Dispose" + + private bool disposed = false; + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposing) + { + // Check to see if Dispose has already been called. + if (!this.disposed) + { + if (disposing) + { + // Dispose managed resources. + } + + Stop(); + // unmanaged resources here. + // If disposing is false, + // only the following code is executed. + disposed = true; + } + } + + #endregion + + public void Stop() + { + if (bLoop != false) bLoop = false; + //if (worker.IsAlive) + // if (worker.Join(1000) == false) + // worker.Abort(); + } + public void Start() + { + if (worker.ThreadState == System.Threading.ThreadState.Stopped) + { + worker = new System.Threading.Thread(new System.Threading.ThreadStart(Loop)) + { + IsBackground = false + }; + } + bLoop = true; + worker.Start(); + } + + private Boolean _isthreadrun; + public Boolean IsThreadRun { get { return _isthreadrun; } } + public int LoopCount { get { return _loopCount; } } + public DateTime LastLoopTime { get { return _lastLoopTime; } } + + private int _loopCount = 0; + private DateTime _lastLoopTime = DateTime.Now; + + void Loop() + { + _isthreadrun = true; + if (GetMsgOpt(EMsgOpt.NORMAL)) RaiseMessage("SM", "Start"); + + try + { + while (bLoop) + { + _loopCount++; + _lastLoopTime = DateTime.Now; + + // 루프 동작 확인용 로그 (10초마다) + if (_loopCount % 10000 == 0) + { + RaiseMessage("SM-LOOP", $"Loop alive - Count:{_loopCount}, bLoop:{bLoop}, Step:{Step}"); + } + + RunSpeed = DateTime.Now - UpdateTime; //이전업데이트에서 현재 시간의 오차 한바퀴 시간이 표시됨 + UpdateTime = DateTime.Now; + + //항상 작동하는 경우 + try + { + var spsHandler = SPS; + if (spsHandler != null) + { + var spsStartTime = DateTime.Now; + var spsTask = System.Threading.Tasks.Task.Run(() => + { + try + { + spsHandler(this, new EventArgs()); + } + catch (Exception ex) + { + RaiseMessage("SM-ERROR-SPS", $"SPS Exception: {ex.Message}\n{ex.StackTrace}"); + } + }); + + // 타임아웃 1초 + if (!spsTask.Wait(1000)) + { + var elapsed = (DateTime.Now - spsStartTime).TotalSeconds; + RaiseMessage("SM-TIMEOUT", $"SPS 이벤트 타임아웃 ({elapsed:F2}초 초과) - Step:{Step}"); + } + } + } + catch (Exception ex) + { + RaiseMessage("SM-ERROR-SPS", $"SPS Exception: {ex.Message}\n{ex.StackTrace}"); + } + + //작동스텝이 변경되었다면 그것을 알림 처리한다. + if (GetNewStep != Step) + { + if (GetMsgOpt(EMsgOpt.STEPCHANGE)) + RaiseMessage("SM-STEP", string.Format("Step Changed {0} >> {1}", Step, GetNewStep)); + + StepApply(); + firstRun = true; + StepStartTime = DateTime.Now; + } + else + { + //팝업메세지의 종료를 기다리는 식에서 문제가 생긴다 + firstRun = WaitFirstRun; + } + + + //동작중에 발생하는 이벤트 + var runningHandler = Running; + if (runningHandler != null) + { + try + { + var runningStartTime = DateTime.Now; + var runningTask = System.Threading.Tasks.Task.Run(() => + { + + //try + //{ + runningHandler(this, new RunningEventArgs(Step, firstRun, StepRunTime)); + //} + //catch (Exception ex) + //{ + // RaiseMessage("SM-ERROR-RUNNING", $"Running Exception: {ex.Message}\n{ex.StackTrace}"); + //} + + + }); + + // 타임아웃 2초 + if (!runningTask.Wait(2000)) + { + var elapsed = (DateTime.Now - runningStartTime).TotalSeconds; + RaiseMessage("SM-TIMEOUT", $"Running 이벤트 타임아웃 ({elapsed:F2}초 초과) - Step:{Step}, FirstRun:{firstRun}"); + } + } + catch (Exception ex) + { + RaiseMessage("SM-ERROR-RUNNING", $"Running Exception: {ex.Message}\n{ex.StackTrace}"); + } + } + System.Threading.Thread.Sleep(1); + } + } + catch (Exception ex) + { + RaiseMessage("SM-FATAL", $"Loop Fatal Exception: {ex.Message}\n{ex.StackTrace}"); + } + finally + { + _isthreadrun = false; + if (GetMsgOpt(EMsgOpt.NORMAL)) RaiseMessage("SM", $"Stop - LoopCount:{_loopCount}"); + } + } + + + /// + /// 상태머신의 작동상태 + /// + public eSMStep Step { get { return _step; } } + + /// + /// 상태머신값을 숫자로 반환 합니다. (20이하는 시스템상태이고 그 이상은 사용자 상태) + /// + public byte StepValue + { + get + { + return (byte)this._step; + } + } + + /// + /// 현재 진행 스텝을 강제로 변경합니다. + /// 일반적인 상태변화는 setNewStep 을 사용하세요. + /// + /// + public void SetCurrentStep(ERunStep step) + { + RaiseMessage("SM-STEP", string.Format("강제 스텝 변경 {0}->{1}", _runstepo, step)); + _runstepo = step; + _runstepn = step; + } + + public void SetNewStep(eSMStep newstep_, bool force = false) + { + if (Step != newstep_) + { + if (force) + { + RaiseMessage("SM-STEP", string.Format("강제스텝전환 {0} -> {1}", Step, _newstep)); + OldStep = _step; + _step = newstep_; + _newstep = newstep_; + + // 비동기로 이벤트 발생 (블로킹 방지) + var handler = StepChanged; + if (handler != null) + { + var args = new StepChangeEventArgs(OldStep, newstep_); + try { handler(this, args); } + catch { /* 이벤트 핸들러 예외 무시 */ } + } + } + else + { + if (_newstep != newstep_) + { + //바뀌도록 예약을 한다. + _newstep = newstep_; + if (GetMsgOpt(EMsgOpt.STEPCHANGE)) + RaiseMessage("SM-STEP", string.Format("Step Reserve {0} -> {1}", Step, _newstep)); + } + else + { + //예약은 되어있는데 아직 바뀐것은 아니다. + if (GetMsgOpt(EMsgOpt.STEPCHANGE)) + RaiseMessage("SM-STEP", string.Format("Step Already Reserve {0} -> {1}", Step, _newstep)); + } + } + + } + } + + #region "runstep" + private int _runStepSeq = 0; + public int RunStepSeq { get { return _runStepSeq; } } + + public Stack BackupRunStep = new Stack(); + + private DateTime runStepStartTime = DateTime.Parse("1982-11-23"); + private ERunStep _runstepn = ERunStep.READY; + private ERunStep _runstepo = ERunStep.READY; + public ERunStep RunStep { get { return _runstepo; } } + public ERunStep RunStepNew { get { return _runstepn; } } + public void SetNewRunStep(ERunStep newStep) + { + if (_runstepn != newStep) + { + // Pub.log.Add(string.Format("set new run step {0}->{1}", _runstepn, newStep)); + _runstepn = newStep; + } + } + public void ApplyRunStep() + { + if (_runstepn != _runstepo) + { + //Pub.log.Add(string.Format("apply new run step {0}->{1}", _runstepo, _runstepn)); + _runStepSeq = 0; + _runstepo = _runstepn; + UpdateRunStepSeq();// runStepStartTime = DateTime.Now; + } + } + public TimeSpan GetRunSteptime { get { return DateTime.Now - runStepStartTime; } } + public void SetStepSeq(byte value) + { + _runStepSeq = value; + if (GetMsgOpt(EMsgOpt.NORMAL)) + { + if (_runStepSeq != value) //변화가잇는겨웅에만 처리 220628 + RaiseMessage("STEPSEQ", string.Format("Step Sequence Jump {0} to {1}", _runStepSeq, value)); + } + + } + public void UpdateRunStepStartTime() + { + runStepStartTime = DateTime.Now; + // Pub.log.Add("Update RunStep Start Time"); + } + public void UpdateRunStepSeq(int incvalue = 1) + { + _runStepSeq += incvalue; + UpdateRunStepStartTime(); + // Pub.log.Add(string.Format("스텝({0}) 시퀀스증가 신규값={1}", runStep, _runStepSeq)); + } + public void ResetRunStepSeq() + { + _runStepSeq = 1; + UpdateRunStepStartTime(); + } + + /// + /// runstep 시퀀스값을 1로 설정하고 시작시간도 업데이트 합니다 + /// 기본 스텝상태를 READY로 변경 합니다 + /// + public void ClearRunStep() + { + _runStepSeq = 1; + runStepStartTime = DateTime.Now; + _runstepn = ERunStep.READY; + _runstepo = ERunStep.READY; + } + #endregion + + + public eSMStep GetNewStep + { + get + { + return _newstep; + } + } + private eSMStep _newstep = eSMStep.NOTSET; + public eSMStep OldStep = eSMStep.NOTSET; //171214 + private eSMStep _step; + + /// + /// newstep 의 값을 step 에 적용합니다. + /// + private void StepApply() + { + var ostep = _step; + OldStep = _step; _step = _newstep; + + // 비동기로 이벤트 발생 (블로킹 방지) + var handler = StepChanged; + if (handler != null) + { + var args = new StepChangeEventArgs(ostep, _step); + try { handler(this, args); } + catch { /* 이벤트 핸들러 예외 무시 */ } + } + } //171214 + + /// + /// 메세지 출력옵션을 변경 합니다. + /// + /// + /// + public void SetMsgOpt(EMsgOpt opt, Boolean value) + { + byte pos = (byte)opt; + if (value) + _messageOption = (byte)(_messageOption | (1 << pos)); + else + _messageOption = (byte)(_messageOption & ~(1 << pos)); + } + public void SetMegOptOn() { _messageOption = 0xFF; } + public void SetMsgOptOff() { _messageOption = 0; } + public Boolean GetMsgOpt(EMsgOpt opt) + { + byte pos = (byte)opt; + return (_messageOption & (1 << pos)) > 0; + } + public TimeSpan StepRunTime + { + get + { + if (IsThreadRun == false || bLoop == false || StepStartTime.Year == 1982) return new TimeSpan(0); + else return DateTime.Now - StepStartTime; + } + } + + public Boolean bPause = false; + + /// + /// 상태머신이 실제 동작중인지 확인합니다. + /// 검사상태 : Step = Run, IsThreadRun, bPause = false + /// + public Boolean IsRun + { + get + { + if (Step == eSMStep.RUN && _isthreadrun && bPause == false) return true; + else return false; + } + } + } +} diff --git a/Cs_HMI/StateMachine/StateMachine.csproj b/HMI/StateMachine/StateMachine.csproj similarity index 94% rename from Cs_HMI/StateMachine/StateMachine.csproj rename to HMI/StateMachine/StateMachine.csproj index 2e24ea1..0cbc0d3 100644 --- a/Cs_HMI/StateMachine/StateMachine.csproj +++ b/HMI/StateMachine/StateMachine.csproj @@ -1,58 +1,58 @@ - - - - - Debug - AnyCPU - {BBC9BCCF-6262-4355-9CC2-37FF678AC499} - Library - Properties - Project.StateMachine - StateMachine - v4.8 - 512 - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - - - - - - - - - - - - - - - - {c5f7a8b2-8d3e-4a1b-9c6e-7f4d5e2a9b1c} - AGVNavigationCore - - - + + + + + Debug + AnyCPU + {BBC9BCCF-6262-4355-9CC2-37FF678AC499} + Library + Properties + Project.StateMachine + StateMachine + v4.8 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + + + + + + + + + + {c5f7a8b2-8d3e-4a1b-9c6e-7f4d5e2a9b1c} + AGVNavigationCore + + + \ No newline at end of file diff --git a/Cs_HMI/StateMachine/_Close.cs b/HMI/StateMachine/_Close.cs similarity index 96% rename from Cs_HMI/StateMachine/_Close.cs rename to HMI/StateMachine/_Close.cs index 3c69eff..b621d4a 100644 --- a/Cs_HMI/StateMachine/_Close.cs +++ b/HMI/StateMachine/_Close.cs @@ -1,36 +1,36 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; - -namespace Project -{ - public partial class fMain - { - /// - /// 프로그램을 닫을때 1회 실행되는 함수 - /// - private void _Close_Start() - { - if (Pub.plc1 != null) Pub.plc1.Dispose(); - - Pub.log.Add("Program Close"); - Pub.log.Flush(); - Pub.sm.Stop(); - - } - - /// - /// 프로그램종료시 특정상황에 따른 무기한 대기 루틴 이 작업은 close_start 이후에 반복됩니다. - /// 모든 조건이 일치하게되면 closed 상태로 호출되어 프로그램이 종료됩니다. - /// - //private void _Close_Wait() - //{ - // if (!Pub.dio.isRunIOMonitor && !Pub.mot.isRunIOMonitor) - // Pub.sm.setNewStep(eSystemStep.CLOSED); - // else if (!Pub.dio.isDisposed) Pub.dio.Dispose(); - // else if (!Pub.mot.isDisposed) Pub.mot.Dispose(); //181206 - //} - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class fMain + { + /// + /// 프로그램을 닫을때 1회 실행되는 함수 + /// + private void _Close_Start() + { + if (Pub.plc1 != null) Pub.plc1.Dispose(); + + Pub.log.Add("Program Close"); + Pub.log.Flush(); + Pub.sm.Stop(); + + } + + /// + /// 프로그램종료시 특정상황에 따른 무기한 대기 루틴 이 작업은 close_start 이후에 반복됩니다. + /// 모든 조건이 일치하게되면 closed 상태로 호출되어 프로그램이 종료됩니다. + /// + //private void _Close_Wait() + //{ + // if (!Pub.dio.isRunIOMonitor && !Pub.mot.isRunIOMonitor) + // Pub.sm.setNewStep(eSystemStep.CLOSED); + // else if (!Pub.dio.isDisposed) Pub.dio.Dispose(); + // else if (!Pub.mot.isDisposed) Pub.mot.Dispose(); //181206 + //} + } +} diff --git a/Cs_HMI/StateMachine/_Flag.cs b/HMI/StateMachine/_Flag.cs similarity index 96% rename from Cs_HMI/StateMachine/_Flag.cs rename to HMI/StateMachine/_Flag.cs index 1fa913e..02704e0 100644 --- a/Cs_HMI/StateMachine/_Flag.cs +++ b/HMI/StateMachine/_Flag.cs @@ -1,106 +1,106 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; - -namespace Project -{ - public partial class fMain - { - void gridView2_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) - { - //메인화면 하단의 플래그 상태창에서 클릭된 경우 - var gv = sender as arFrame.Control.GridView; - //var flagIndex = gv.getNameItem(e.idx); - //if(flagIndex != "") - //{ - // var fidx = int.Parse(flagIndex); - // var flag = (eFlag)fidx; - // var curValue = Pub.flag.get(flag); - // Pub.flag.set(flag, !curValue); - //} - } - - - void flag_ValueChanged(object sender, Device.Flag.ValueEventArgs e) - { - var flag = (eFlag)e.ArrIDX; - if (e.ArrIDX >= FlagMapValue.Length) return; - var gridItemIndex = FlagMapValue[e.ArrIDX]; - Pub.log.Add(string.Format("Flag:{0}({2}) Changed = {1}", flag, e.NewValue,e.ArrIDX)); - if(gridItemIndex != -1) - { - this.IOState.setValue(gridItemIndex, e.NewValue); - this.IOState.Invalidate(); - } - } - - void dio_Message(object sender, arDev.ProPLC.MemoryAccess.MessageEventArgs e) - { - if(e.IsError) - { - Pub.log.Add("ERROR-DIO", e.Message); - } - else Pub.log.Add("DIO", e.Message); - } - - private void Dio_ValueChanged(object sender, arDev.ProPLC.MemoryAccess.IOValueEventArgs e) - { - var diName = (eDIName)e.ArrIDX; - - if(diName == eDIName.MC_START) - { - if(e.NewValue ==true) - { - func_sw_start(); - } - } - else if(diName == eDIName.MC_LOTEND) - { - //lot가 활성화된 경우 - if(e.NewValue == true) - { - - } - - } - //throw new NotImplementedException(); - Console.WriteLine(string.Format("[{1}]{0}=>{2}", diName,e.ArrIDX,e.NewValue)); - } - - void dio_Message2(object sender, arDev.ProPLC.MemoryAccess.MessageEventArgs e) - { - if (e.IsError) - { - Pub.log.Add("ERROR-DIO", e.Message); - } - else Pub.log.Add("DIO", e.Message); - } - - private void Dio_ValueChanged2(object sender, arDev.ProPLC.MemoryAccess.IOValueEventArgs e) - { - var diName = (eDIName)e.ArrIDX; - - if (diName == eDIName.MC_START) - { - if (e.NewValue == true) - { - func_sw_start(); - } - } - else if (diName == eDIName.MC_LOTEND) - { - //lot가 활성화된 경우 - if (e.NewValue == true) - { - - } - - } - //throw new NotImplementedException(); - Console.WriteLine(string.Format("[{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue)); - } - - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class fMain + { + void gridView2_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) + { + //메인화면 하단의 플래그 상태창에서 클릭된 경우 + var gv = sender as arFrame.Control.GridView; + //var flagIndex = gv.getNameItem(e.idx); + //if(flagIndex != "") + //{ + // var fidx = int.Parse(flagIndex); + // var flag = (eFlag)fidx; + // var curValue = Pub.flag.get(flag); + // Pub.flag.set(flag, !curValue); + //} + } + + + void flag_ValueChanged(object sender, Device.Flag.ValueEventArgs e) + { + var flag = (eFlag)e.ArrIDX; + if (e.ArrIDX >= FlagMapValue.Length) return; + var gridItemIndex = FlagMapValue[e.ArrIDX]; + Pub.log.Add(string.Format("Flag:{0}({2}) Changed = {1}", flag, e.NewValue,e.ArrIDX)); + if(gridItemIndex != -1) + { + this.IOState.setValue(gridItemIndex, e.NewValue); + this.IOState.Invalidate(); + } + } + + void dio_Message(object sender, arDev.ProPLC.MemoryAccess.MessageEventArgs e) + { + if(e.IsError) + { + Pub.log.Add("ERROR-DIO", e.Message); + } + else Pub.log.Add("DIO", e.Message); + } + + private void Dio_ValueChanged(object sender, arDev.ProPLC.MemoryAccess.IOValueEventArgs e) + { + var diName = (eDIName)e.ArrIDX; + + if(diName == eDIName.MC_START) + { + if(e.NewValue ==true) + { + func_sw_start(); + } + } + else if(diName == eDIName.MC_LOTEND) + { + //lot가 활성화된 경우 + if(e.NewValue == true) + { + + } + + } + //throw new NotImplementedException(); + Console.WriteLine(string.Format("[{1}]{0}=>{2}", diName,e.ArrIDX,e.NewValue)); + } + + void dio_Message2(object sender, arDev.ProPLC.MemoryAccess.MessageEventArgs e) + { + if (e.IsError) + { + Pub.log.Add("ERROR-DIO", e.Message); + } + else Pub.log.Add("DIO", e.Message); + } + + private void Dio_ValueChanged2(object sender, arDev.ProPLC.MemoryAccess.IOValueEventArgs e) + { + var diName = (eDIName)e.ArrIDX; + + if (diName == eDIName.MC_START) + { + if (e.NewValue == true) + { + func_sw_start(); + } + } + else if (diName == eDIName.MC_LOTEND) + { + //lot가 활성화된 경우 + if (e.NewValue == true) + { + + } + + } + //throw new NotImplementedException(); + Console.WriteLine(string.Format("[{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue)); + } + + } +} diff --git a/Cs_HMI/StateMachine/_Loop.cs b/HMI/StateMachine/_Loop.cs similarity index 97% rename from Cs_HMI/StateMachine/_Loop.cs rename to HMI/StateMachine/_Loop.cs index 9c40d16..8044804 100644 --- a/Cs_HMI/StateMachine/_Loop.cs +++ b/HMI/StateMachine/_Loop.cs @@ -1,323 +1,323 @@ -using System; -using System.Collections.Generic; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using arCtl; -using Euresys.Open_eVision_2_11; -using static Project.StateMachine; - -namespace Project -{ - - public partial class fMain - { - void sm_SPS(object sender, EventArgs e) - { - //always run - _SPS(); - } - - DateTime lastDeleteTime = DateTime.Now; - - enum EScreen - { - Auto=0, - Manual, - IO, - Flag - } - void SetScreen( System.Windows.Forms.Form newscreen) - { - if(this.InvokeRequired) - { - this.BeginInvoke(new Action(() => { - SetScreen(newscreen); - })); - } - else - { - if(panDlg.Controls.Count > 0) - { - var f = panDlg.Controls[0] as System.Windows.Forms.Form; - if (f.GetType() == newscreen.GetType()) return; - } - panDlg.Controls.Clear(); - panDlg.Controls.Add(newscreen); - newscreen.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - newscreen.WindowState = System.Windows.Forms.FormWindowState.Maximized; - newscreen.Show(); - } - } - - - - void sm_Running(object sender, StateMachine.RunningEventArgs e) - { - - //main loop - switch (e.Step) - { - case eSMStep.NOTSET: - Pub.log.Add("S/M Initialize Start"); - Pub.sm.setNewStep(eSMStep.INIT); - break; - - case eSMStep.INIT: //최초실행이다. - if (_SM_RUN_INIT(e.isFirst, Pub.sm.StepRunTime)) - { - //메인화면을 설정한다 - form_auto = new ViewForm.fAuto(); - form_manu = new ViewForm.fManual(); - form_io = new ViewForm.fIO(); - form_flag = new ViewForm.fFlag(); - - form_auto.TopLevel = false; - form_manu.TopLevel = false; - form_io.TopLevel = false; - form_flag.TopLevel = false; - form_auto.Dock = System.Windows.Forms.DockStyle.Fill; - form_manu.Dock = System.Windows.Forms.DockStyle.Fill; - form_io.Dock = System.Windows.Forms.DockStyle.Fill; - form_flag.Dock = System.Windows.Forms.DockStyle.Fill; - - SetScreen(form_auto); - Pub.sm.setNewStep(eSMStep.IDLE); - } - break; - - case eSMStep.IDLE: - - //창을 닫아야하는 상황에는 처리하지 않는다. - if (Pub.popup.needClose) - { - System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. - Pub.sm.WaitFirstRun = true; - return; - } - else Pub.sm.WaitFirstRun = false; - - - if(e.isFirst) - { - Pub.sm.bPause = false; - Pub.flag.set(eFlag.UserStepCheck, false); - Pub.sm.ClearRunStep(); - // Util_DO.SetMGZMotor(false); - lbMsg.ProgressEnable = false; - // Pub.popup.needClose = true; - } - - //자동소거기능 - if(Pub.setting.AutoDeleteDay > 0) - { - if(Pub.flag.get(eFlag.MINSPACE)==true) - { - var ts = DateTime.Now - lastDeleteTime; - if(ts.TotalSeconds > 1) - { - //파일을 찾아서 소거한다. - if (System.IO.Directory.Exists(Pub.path.FullName)) - DeleteFile(Pub.path.FullName); - - - lastDeleteTime = DateTime.Now; - } - - } - } - break; - - case eSMStep.RUN: - - //창을 닫아야하는 상황에는 처리하지 않는다. - if (Pub.popup.needClose) - { - System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. - Pub.sm.WaitFirstRun = true; - return; - } - else Pub.sm.WaitFirstRun = false; - - _SM_RUN(e.isFirst, e.StepTime); - break; - - case eSMStep.PAUSE: - case eSMStep.EMERGENCY: - case eSMStep.ERROR: - - - //창을 닫아야하는 상황에는 처리하지 않는다. - if (Pub.popup.needClose) - { - System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. - Pub.sm.WaitFirstRun = true; - return; - } - else Pub.sm.WaitFirstRun = false; - - if (e.isFirst) - { - - if (Pub.Result.ResultCode != eResult.NoError) - { - //에러메세지가 있는 경우에만 표시함 - if (Pub.Result.ResultMessage != "") - Pub.popup.setMessage(Pub.Result.ResultMessage); - } - if (e.Step == eSMStep.EMERGENCY) Pub.log.AddE("Enter Emergency Step"); - else if (e.Step == eSMStep.PAUSE) Pub.log.AddE("Enter Pause Step : " + Pub.Result.ResultMessage); - else Pub.log.AddE(string.Format("Enter Error Step : {0}", Pub.Result.ResultMessage)); - Pub.sm.bPause = false; - Pub.sm.setNewStep(eSMStep.IDLE); - } - break; - - case eSMStep.RESET: - - //창을 닫아야하는 상황에는 처리하지 않는다. - if (Pub.popup.needClose) - { - System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. - Pub.sm.WaitFirstRun = true; - return; - } - else Pub.sm.WaitFirstRun = false; - - if (e.isFirst) - { - ClearBarcode(); - Pub.sm.bPause = false; - } - break; - } - } - - void DeleteFile(string path) - { - var basetime = DateTime.Now.AddDays(-1 * Pub.setting.AutoDeleteDay); - var di = new System.IO.DirectoryInfo(path); - if (di.Exists) - { - var dirYear = di.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirYear != null) - { - var dirMon = dirYear.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirMon != null) - { - var dirDay = dirMon.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirDay != null) - { - var curDay = DateTime.Parse(string.Format("{0}-{1}-{2} 00:00:00", dirYear.ToString(), dirMon.ToString(), dirDay.ToString())); - if (curDay < basetime) - { - var dirLot = dirDay.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); - if (dirLot != null) - { - var delfile = dirLot.GetFiles().FirstOrDefault(); - if (delfile != null) - { - try - { - Pub.log.AddI("Remove Fle : " + delfile.FullName + ",time=" + delfile.LastWriteTime.ToString()); - delfile.Delete(); - } - catch (Exception ex) - { - Pub.log.AddE("deleete error : " + ex.Message); - } - } - else - { - string delpath = dirLot.FullName; - try - { - dirLot.Delete(true); - } - catch (Exception ex) - { - Pub.log.AddE("remove dir" + ex.Message + "," + delpath); - } - - } - } - else - { - //이 폴더아래에 다른 폴더가 하나도 없다 즉 비어 있따. - string delpath = dirDay.FullName; - try - { - dirDay.Delete(true); - } - catch (Exception ex) - { - Pub.log.AddE("remove dir" + ex.Message + "," + delpath); - } - } - } - - } - else - { - //날짜에 해당하는 폴더가 하나도 없다. 월 폴더를 제거한다. - string delpath = dirMon.FullName; - try - { - dirMon.Delete(true); - } - catch (Exception ex) - { - Pub.log.AddE("remove dir" + ex.Message + "," + delpath); - } - } - } - else - { - //이 달에 해당하는 데이터가 없다. 이 년도를 삭제한다. - string delpath = dirYear.FullName; - try - { - dirYear.Delete(true); - } - catch (Exception ex) - { - Pub.log.AddE("remove dir" + ex.Message + "," + delpath); - } - } - } - //년도별폴더목록을 정리함 - //가장작은 년도를 기준으로 파일을 검색해서 1개씩 삭제함 - } - } - - void sm_Message(object sender, StateMachine.StateMachineMessageEventArgs e) - { - //상태머신에서 발생한 메세지 - Pub.log.Add(e.Header, e.Message); - } - - - void sm_StepChanged(object sender, StateMachine.StepChangeEventArgs e) - { - //상태머신의 스텝이 변경될때 발생함 - //Pub.log.Add(string.Format("SM:Step Changed {0} to {1}",e.Old,e.New)); - } - - //void uploadForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e) - //{ - // //이벤트 해제 - // if (uploadForm != null) - // uploadForm.FormClosed -= uploadForm_FormClosed; - - // //업로드 창이 닫히면 그 결과를 화면에 표시 해준다. - // //foreach (System.Windows.Forms.ListViewItem lv in uploadForm.listView1.Items) - // //{ - // // string slot = lv.SubItems[0].Text; - // // string wafer = lv.SubItems[2].Text; - // // string state = lv.SubItems[3].Text; - - // //} - //} - } -} +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using arCtl; +using Euresys.Open_eVision_2_11; +using static Project.StateMachine; + +namespace Project +{ + + public partial class fMain + { + void sm_SPS(object sender, EventArgs e) + { + //always run + _SPS(); + } + + DateTime lastDeleteTime = DateTime.Now; + + enum EScreen + { + Auto=0, + Manual, + IO, + Flag + } + void SetScreen( System.Windows.Forms.Form newscreen) + { + if(this.InvokeRequired) + { + this.BeginInvoke(new Action(() => { + SetScreen(newscreen); + })); + } + else + { + if(panDlg.Controls.Count > 0) + { + var f = panDlg.Controls[0] as System.Windows.Forms.Form; + if (f.GetType() == newscreen.GetType()) return; + } + panDlg.Controls.Clear(); + panDlg.Controls.Add(newscreen); + newscreen.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + newscreen.WindowState = System.Windows.Forms.FormWindowState.Maximized; + newscreen.Show(); + } + } + + + + void sm_Running(object sender, StateMachine.RunningEventArgs e) + { + + //main loop + switch (e.Step) + { + case eSMStep.NOTSET: + Pub.log.Add("S/M Initialize Start"); + Pub.sm.setNewStep(eSMStep.INIT); + break; + + case eSMStep.INIT: //최초실행이다. + if (_SM_RUN_INIT(e.isFirst, Pub.sm.StepRunTime)) + { + //메인화면을 설정한다 + form_auto = new ViewForm.fAuto(); + form_manu = new ViewForm.fManual(); + form_io = new ViewForm.fIO(); + form_flag = new ViewForm.fFlag(); + + form_auto.TopLevel = false; + form_manu.TopLevel = false; + form_io.TopLevel = false; + form_flag.TopLevel = false; + form_auto.Dock = System.Windows.Forms.DockStyle.Fill; + form_manu.Dock = System.Windows.Forms.DockStyle.Fill; + form_io.Dock = System.Windows.Forms.DockStyle.Fill; + form_flag.Dock = System.Windows.Forms.DockStyle.Fill; + + SetScreen(form_auto); + Pub.sm.setNewStep(eSMStep.IDLE); + } + break; + + case eSMStep.IDLE: + + //창을 닫아야하는 상황에는 처리하지 않는다. + if (Pub.popup.needClose) + { + System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + Pub.sm.WaitFirstRun = true; + return; + } + else Pub.sm.WaitFirstRun = false; + + + if(e.isFirst) + { + Pub.sm.bPause = false; + Pub.flag.set(eFlag.UserStepCheck, false); + Pub.sm.ClearRunStep(); + // Util_DO.SetMGZMotor(false); + lbMsg.ProgressEnable = false; + // Pub.popup.needClose = true; + } + + //자동소거기능 + if(Pub.setting.AutoDeleteDay > 0) + { + if(Pub.flag.get(eFlag.MINSPACE)==true) + { + var ts = DateTime.Now - lastDeleteTime; + if(ts.TotalSeconds > 1) + { + //파일을 찾아서 소거한다. + if (System.IO.Directory.Exists(Pub.path.FullName)) + DeleteFile(Pub.path.FullName); + + + lastDeleteTime = DateTime.Now; + } + + } + } + break; + + case eSMStep.RUN: + + //창을 닫아야하는 상황에는 처리하지 않는다. + if (Pub.popup.needClose) + { + System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + Pub.sm.WaitFirstRun = true; + return; + } + else Pub.sm.WaitFirstRun = false; + + _SM_RUN(e.isFirst, e.StepTime); + break; + + case eSMStep.PAUSE: + case eSMStep.EMERGENCY: + case eSMStep.ERROR: + + + //창을 닫아야하는 상황에는 처리하지 않는다. + if (Pub.popup.needClose) + { + System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + Pub.sm.WaitFirstRun = true; + return; + } + else Pub.sm.WaitFirstRun = false; + + if (e.isFirst) + { + + if (Pub.Result.ResultCode != eResult.NoError) + { + //에러메세지가 있는 경우에만 표시함 + if (Pub.Result.ResultMessage != "") + Pub.popup.setMessage(Pub.Result.ResultMessage); + } + if (e.Step == eSMStep.EMERGENCY) Pub.log.AddE("Enter Emergency Step"); + else if (e.Step == eSMStep.PAUSE) Pub.log.AddE("Enter Pause Step : " + Pub.Result.ResultMessage); + else Pub.log.AddE(string.Format("Enter Error Step : {0}", Pub.Result.ResultMessage)); + Pub.sm.bPause = false; + Pub.sm.setNewStep(eSMStep.IDLE); + } + break; + + case eSMStep.RESET: + + //창을 닫아야하는 상황에는 처리하지 않는다. + if (Pub.popup.needClose) + { + System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + Pub.sm.WaitFirstRun = true; + return; + } + else Pub.sm.WaitFirstRun = false; + + if (e.isFirst) + { + ClearBarcode(); + Pub.sm.bPause = false; + } + break; + } + } + + void DeleteFile(string path) + { + var basetime = DateTime.Now.AddDays(-1 * Pub.setting.AutoDeleteDay); + var di = new System.IO.DirectoryInfo(path); + if (di.Exists) + { + var dirYear = di.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirYear != null) + { + var dirMon = dirYear.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirMon != null) + { + var dirDay = dirMon.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirDay != null) + { + var curDay = DateTime.Parse(string.Format("{0}-{1}-{2} 00:00:00", dirYear.ToString(), dirMon.ToString(), dirDay.ToString())); + if (curDay < basetime) + { + var dirLot = dirDay.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirLot != null) + { + var delfile = dirLot.GetFiles().FirstOrDefault(); + if (delfile != null) + { + try + { + Pub.log.AddI("Remove Fle : " + delfile.FullName + ",time=" + delfile.LastWriteTime.ToString()); + delfile.Delete(); + } + catch (Exception ex) + { + Pub.log.AddE("deleete error : " + ex.Message); + } + } + else + { + string delpath = dirLot.FullName; + try + { + dirLot.Delete(true); + } + catch (Exception ex) + { + Pub.log.AddE("remove dir" + ex.Message + "," + delpath); + } + + } + } + else + { + //이 폴더아래에 다른 폴더가 하나도 없다 즉 비어 있따. + string delpath = dirDay.FullName; + try + { + dirDay.Delete(true); + } + catch (Exception ex) + { + Pub.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + + } + else + { + //날짜에 해당하는 폴더가 하나도 없다. 월 폴더를 제거한다. + string delpath = dirMon.FullName; + try + { + dirMon.Delete(true); + } + catch (Exception ex) + { + Pub.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + else + { + //이 달에 해당하는 데이터가 없다. 이 년도를 삭제한다. + string delpath = dirYear.FullName; + try + { + dirYear.Delete(true); + } + catch (Exception ex) + { + Pub.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + //년도별폴더목록을 정리함 + //가장작은 년도를 기준으로 파일을 검색해서 1개씩 삭제함 + } + } + + void sm_Message(object sender, StateMachine.StateMachineMessageEventArgs e) + { + //상태머신에서 발생한 메세지 + Pub.log.Add(e.Header, e.Message); + } + + + void sm_StepChanged(object sender, StateMachine.StepChangeEventArgs e) + { + //상태머신의 스텝이 변경될때 발생함 + //Pub.log.Add(string.Format("SM:Step Changed {0} to {1}",e.Old,e.New)); + } + + //void uploadForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e) + //{ + // //이벤트 해제 + // if (uploadForm != null) + // uploadForm.FormClosed -= uploadForm_FormClosed; + + // //업로드 창이 닫히면 그 결과를 화면에 표시 해준다. + // //foreach (System.Windows.Forms.ListViewItem lv in uploadForm.listView1.Items) + // //{ + // // string slot = lv.SubItems[0].Text; + // // string wafer = lv.SubItems[2].Text; + // // string state = lv.SubItems[3].Text; + + // //} + //} + } +} diff --git a/Cs_HMI/StateMachine/_TMDisplay.cs b/HMI/StateMachine/_TMDisplay.cs similarity index 97% rename from Cs_HMI/StateMachine/_TMDisplay.cs rename to HMI/StateMachine/_TMDisplay.cs index d2c8e9a..1e9106d 100644 --- a/Cs_HMI/StateMachine/_TMDisplay.cs +++ b/HMI/StateMachine/_TMDisplay.cs @@ -1,353 +1,353 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using static Project.StateMachine; - -namespace Project -{ - public partial class fMain - { - private void ColorChangeMotionST(arCtl.arLabel ctl, Color c, Boolean isvalue) - { - if (isvalue) - { - int r = c.R + 100; - int g = c.G + 100; - int b = c.B + 100; - if (r > 255) r = 255; - if (g > 255) g = 255; - if (b > 255) b = 255; - if (r < 0) r = 0; - if (g < 0) g = 0; - if (b < 0) b = 0; - ctl.BackColor = Color.FromArgb(r, g, b); - ctl.BackColor2 = c; - } - else - { - ctl.BackColor = Color.FromArgb(100, 100, 100); - ctl.BackColor2 = Color.FromArgb(90, 90, 90); - } - } - - private void BCDHWStatus(Boolean enable, arCtl.arLabel ctl, bool isReady) - { - if (enable == false) - { - ctl.BackColor2 = Color.Gray; - } - else - { - if (isReady) - { - ctl.BackColor2 = Color.SeaGreen; - } - else - { - if (ctl.BackColor2 == Color.Tomato) - { - ctl.BackColor2 = Color.Gray; - } - else - { - ctl.BackColor2 = Color.Tomato; - } - } - } - } - - - void BlinkHwstatus(int row, int col, int value1, int value2) - { - var curValue = HWState.getValue(row, col); - HWState.setValue(row, col, (byte)(curValue == value1 ? value2 : value1)); // - } - - Boolean displayOn = false; - private void tmDisplay_Tick(object sender, EventArgs e) - { - if (displayOn == false) displayOn = true; - else - { - Pub.log.AddAT("Display Timer Overlab");// Console.WriteLine("display overlab"); - return; - } - - if (Pub.sm.Step > eSMStep.INIT && - panTopMenu.Enabled == false) panTopMenu.Enabled = true; - - - //쓰레드로인해서 메인에서 진행하게한다. SPS는 메인쓰레드에서 진행 됨 - //팝을 제거 혹은 표시하는 기능 - if (Pub.popup.needShow) Pub.popup.showMessage(); - else if (Pub.popup.needClose) Pub.popup.Visible = false; // .setVision(false)(); - - lbTime.Text = Pub.sm.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"); - - //상태 표시 - Update_SSStatus(); - - //H/W 상태표시 - Update_HWStatus(); - - //IO상태(상단줄) 표시 - Update_IOStatus(); - - //display mesasge - UpdateResultMessage(); - - - //메세지창이 깜박거려야하는 상황 체크 - if (lbMsg.Tag != null) - { - var bg1 = lbMsg.BackColor; - var bg2 = lbMsg.BackColor2; - lbMsg.BackColor = bg2; - lbMsg.BackColor2 = bg1; - lbMsg.Invalidate(); - } - - - - - HWState.Invalidate(); - SSInfo.Invalidate(); - IOState.Invalidate(); - - #region retgion"1분 time 루틴" - var ts = DateTime.Now - tm1minute; - if (ts.TotalMinutes >= 1) - { - //리셋카운트 - _AutoResetCount(); - tm1minute = DateTime.Now; - } - #endregion - - #region retgion"5분 time 루틴" - ts = DateTime.Now - tm5minute; - if (ts.TotalMinutes >= 5) - { - //남은디스크확인 - CheckFreeSpace(); - tm5minute = DateTime.Now; - } - #endregion - - //wat.Stop(); - //Console.WriteLine("disp time : " + wat.ElapsedMilliseconds.ToString() + "ms"); - displayOn = false; - } - - void Update_IOStatus() - { - int inputrow = 1; - int inputcol = 0; - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_READY) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_OK) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_ERR) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_COMPLETE) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_LOTEND) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - - var numver_mz = Pub.plc1.getValue(7902); - var numver_sn = Pub.plc1.getValue(7903); - var bin_mz = Convert.ToString(numver_mz, 2).PadLeft(16,'0'); - var bin_sn = Convert.ToString(numver_sn, 2).PadLeft(16, '0'); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - - inputrow = 0; - inputcol = 0; - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.MC_START) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.MC_CONFIRM) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.MC_LOTEND) ? 1 : 0)); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); - - //IOState.setTitle(0, inputcol, "DOOR"); IOState.setValue(0, inputcol++, (ushort)(Util_DO.CheckDoorSafty() ? 1 : 2)); - //IOState.setTitle(0, inputcol, "SAFTY"); IOState.setValue(0, inputcol++, (ushort)(Pub.flag.get(eFlag.MGZSafty1) && Pub.flag.get(eFlag.MGZSafty2) ? 1 : 2)); - //IOState.setTitle(0, inputcol, "FULL"); IOState.setValue(0, inputcol++, (ushort)(Util_DO.GetIOInput(eDIName.UD_FULL) ? 2 : 0)); - - //IOState.setTitle(0, inputcol, "A/B\nDETECT"); IOState.setValue(0, inputcol++, (ushort)(Util_DO.GetIOInput(eDIName.AB_DETECT) ? 1 : 0)); - - } - void Update_SSStatus() - { - SSInfo.setTitle(0, 0, Pub.sm.Step.ToString()); - SSInfo.setTitle(1, 0, Pub.sm.runStep.ToString()); - if (Pub.sm.Step == eSMStep.RUN) - SSInfo.setTitle(1, 1, string.Format("{0:N1} sec", Pub.sm.getRunSteptime.TotalSeconds)); - else - SSInfo.setTitle(1, 1, "--"); - - } - void Update_HWStatus() - { - var rownum = 1; - var colIdx = 0; - //if (Pub.light.IsInit == false) BlinkHwstatus(rownum, colIdx++, 3, 4); - //else HWState.setValue(rownum, colIdx++, (byte)(Pub.light.IsInit ? 2 : 3)); // - - if (Pub.plc1.IsValid == false) BlinkHwstatus(rownum, colIdx++, 3, 4); - else HWState.setValue(rownum, colIdx++, (byte)(Pub.plc1.IsValid ? 2 : 3)); //PLC - - if (Pub.Xbee.IsInit == false) BlinkHwstatus(rownum, colIdx++, 3, 4); - else HWState.setValue(rownum, colIdx++, (byte)(Pub.Xbee.IsInit ? 2 : 3)); // - - //if (Pub.camera.IsInit == false) BlinkHwstatus(rownum, colIdx++, 3, 4); - //else HWState.setValue(rownum, colIdx++, (byte)(Pub.camera.IsInit ? 2 : 3)); // - - //if (Pub.bVisionLicense == false) BlinkHwstatus(rownum, colIdx++, 3, 4); - //else HWState.setValue(rownum, colIdx++, (byte)(Pub.bVisionLicense ? 2 : 3)); // - - } - - /// - /// 환경설정에따른 카운트를 리셋처리한다. 171128 - /// - void _AutoResetCount() - { - if (Pub.setting.datetime_Check_1 && Pub.setting.datetime_Reset_1 != "") //오전 - { - try - { - DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + Pub.setting.datetime_Reset_1 + ":00"); - DateTime LastClearTime = Pub.counter.CountReset; - - //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 - if (DateTime.Now > SetTime && LastClearTime < SetTime) - { - Pub.log.AddI("Count Reset #1"); - Pub.counter.CountClear(); - } - } - catch { } - } - - if (Pub.setting.datetime_Check_2 && Pub.setting.datetime_Reset_2 != "") //오후 - { - try - { - DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + Pub.setting.datetime_Reset_2 + ":00"); - DateTime LastClearTime = Pub.counter.CountReset; - - //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 - if (DateTime.Now > SetTime && LastClearTime < SetTime) - { - Pub.log.AddI("Count Reset #2"); - Pub.counter.CountClear(); - } - } - catch { } - } - } - - DateTime tm1minute = DateTime.Now.AddDays(-1); - DateTime tm5minute = DateTime.Now; - - void UpdateProgressStatus(string title, double value, double max) - { - UpdateProgressStatus((float)value, (float)max, title); - } - - void UpdateProgressStatus(float value, float max, string title) - { - if (lbMsg.ProgressEnable == false) lbMsg.ProgressEnable = true; - if (lbMsg.ProgressMax != max) lbMsg.ProgressMax = max; - if (lbMsg.ProgressValue != value) lbMsg.ProgressValue = value; - if (lbMsg.ProgressForeColor != Color.FromArgb(40, 40, 40)) - lbMsg.ProgressForeColor = Color.FromArgb(40, 40, 40); - if (lbMsg.Text != title) lbMsg.Text = title; - } - - void UpdateStatusMessage(string dispmsg, Color fcolor, Color shadow) - { - UpdateStatusMessage(dispmsg, Color.DimGray, Color.Gray, fcolor, shadow); - } - - void UpdateStatusMessage(string dispmsg, Color bColor, Color bColor2, Color fcolor, Color shadow, Boolean blank = false) - { - - //if (lbMsg.ProgressEnable == true) lbMsg.ProgressEnable = false; - if (dispmsg != lbMsg.Text || lbMsg.ForeColor != fcolor || lbMsg.ShadowColor != shadow || (lbMsg.BackColor != bColor && lbMsg.BackColor2 != bColor)) - { - lbMsg.BackColor = bColor; - lbMsg.BackColor2 = bColor2; - lbMsg.ForeColor = fcolor; - lbMsg.ShadowColor = shadow; - lbMsg.Text = dispmsg; - if (blank) lbMsg.Tag = "BLANK"; - else lbMsg.Tag = null; - } - } - - - void UpdateResultMessage() - { - //모션을 사용한다면 홈 검색여부를 확인한다. - - //var inspresult = ""; - //if (Pub.Result == null || Pub.Result.Result == CResult.eInspectResult.NOTSET) - // inspresult = "--"; - //else if (Pub.Result.Result == CResult.eInspectResult.OK) - // inspresult = "MATCH"; - //else if (Pub.Result.Result == CResult.eInspectResult.NG) - // inspresult = "MISMATCH"; - - - //최우선 점검 사항 표시 - if (Pub.sm.Step > eSMStep.INIT) - { - if (Pub.flag.get(eFlag.DemoRun)) - { - UpdateStatusMessage("DEMO RUN", Color.Gold, Color.Yellow, Color.Black, Color.WhiteSmoke, true); - } - - - else if (Pub.flag.get(eFlag.START) == true) - { - UpdateStatusMessage("매거진투입구 안전센서 감지", Color.Tomato, Color.Black); - } - else if (Pub.Result.Model.Title == "") - { - UpdateStatusMessage("비젼모델 선택이 필요함", Color.Tomato, Color.Black); - } - - if (Pub.sm.Step == eSMStep.IDLE) - { - UpdateStatusMessage("준비완료", Color.Lime, Color.Black); - } - else if (Pub.sm.Step == eSMStep.ERROR) - { - UpdateStatusMessage("오류 발생", Color.Red, Color.Black); - } - else if (Pub.sm.Step == eSMStep.PAUSE) - { - UpdateStatusMessage("정지 됨", Color.Tomato, Color.Black); - } - else if (Pub.sm.Step == eSMStep.FINISH) - UpdateStatusMessage("작업 완료", Color.Lime, Color.Black); - else if (Pub.sm.bPause == true) - { - UpdateStatusMessage("[START]를 누르면 시작 됩니다", Color.Yellow, Color.Black); - } - else if (Pub.flag.get(eFlag.TestRun)) - { - UpdateStatusMessage("TEST RUN", Color.DeepSkyBlue, Color.LightSkyBlue, Color.Blue, Color.WhiteSmoke, true); - } - else - { - - string msg = "진행중"; - UpdateStatusMessage(msg, Color.Lime, Color.Black); - } - } - } - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using static Project.StateMachine; + +namespace Project +{ + public partial class fMain + { + private void ColorChangeMotionST(arCtl.arLabel ctl, Color c, Boolean isvalue) + { + if (isvalue) + { + int r = c.R + 100; + int g = c.G + 100; + int b = c.B + 100; + if (r > 255) r = 255; + if (g > 255) g = 255; + if (b > 255) b = 255; + if (r < 0) r = 0; + if (g < 0) g = 0; + if (b < 0) b = 0; + ctl.BackColor = Color.FromArgb(r, g, b); + ctl.BackColor2 = c; + } + else + { + ctl.BackColor = Color.FromArgb(100, 100, 100); + ctl.BackColor2 = Color.FromArgb(90, 90, 90); + } + } + + private void BCDHWStatus(Boolean enable, arCtl.arLabel ctl, bool isReady) + { + if (enable == false) + { + ctl.BackColor2 = Color.Gray; + } + else + { + if (isReady) + { + ctl.BackColor2 = Color.SeaGreen; + } + else + { + if (ctl.BackColor2 == Color.Tomato) + { + ctl.BackColor2 = Color.Gray; + } + else + { + ctl.BackColor2 = Color.Tomato; + } + } + } + } + + + void BlinkHwstatus(int row, int col, int value1, int value2) + { + var curValue = HWState.getValue(row, col); + HWState.setValue(row, col, (byte)(curValue == value1 ? value2 : value1)); // + } + + Boolean displayOn = false; + private void tmDisplay_Tick(object sender, EventArgs e) + { + if (displayOn == false) displayOn = true; + else + { + Pub.log.AddAT("Display Timer Overlab");// Console.WriteLine("display overlab"); + return; + } + + if (Pub.sm.Step > eSMStep.INIT && + panTopMenu.Enabled == false) panTopMenu.Enabled = true; + + + //쓰레드로인해서 메인에서 진행하게한다. SPS는 메인쓰레드에서 진행 됨 + //팝을 제거 혹은 표시하는 기능 + if (Pub.popup.needShow) Pub.popup.showMessage(); + else if (Pub.popup.needClose) Pub.popup.Visible = false; // .setVision(false)(); + + lbTime.Text = Pub.sm.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"); + + //상태 표시 + Update_SSStatus(); + + //H/W 상태표시 + Update_HWStatus(); + + //IO상태(상단줄) 표시 + Update_IOStatus(); + + //display mesasge + UpdateResultMessage(); + + + //메세지창이 깜박거려야하는 상황 체크 + if (lbMsg.Tag != null) + { + var bg1 = lbMsg.BackColor; + var bg2 = lbMsg.BackColor2; + lbMsg.BackColor = bg2; + lbMsg.BackColor2 = bg1; + lbMsg.Invalidate(); + } + + + + + HWState.Invalidate(); + SSInfo.Invalidate(); + IOState.Invalidate(); + + #region retgion"1분 time 루틴" + var ts = DateTime.Now - tm1minute; + if (ts.TotalMinutes >= 1) + { + //리셋카운트 + _AutoResetCount(); + tm1minute = DateTime.Now; + } + #endregion + + #region retgion"5분 time 루틴" + ts = DateTime.Now - tm5minute; + if (ts.TotalMinutes >= 5) + { + //남은디스크확인 + CheckFreeSpace(); + tm5minute = DateTime.Now; + } + #endregion + + //wat.Stop(); + //Console.WriteLine("disp time : " + wat.ElapsedMilliseconds.ToString() + "ms"); + displayOn = false; + } + + void Update_IOStatus() + { + int inputrow = 1; + int inputcol = 0; + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_READY) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_OK) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_ERR) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_COMPLETE) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.VS_LOTEND) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + + var numver_mz = Pub.plc1.getValue(7902); + var numver_sn = Pub.plc1.getValue(7903); + var bin_mz = Convert.ToString(numver_mz, 2).PadLeft(16,'0'); + var bin_sn = Convert.ToString(numver_sn, 2).PadLeft(16, '0'); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + + inputrow = 0; + inputcol = 0; + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.MC_START) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.MC_CONFIRM) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, (ushort)(Pub.plc1.getValue(7900, (int)eDIName.MC_LOTEND) ? 1 : 0)); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + IOState.setTitle(inputrow, inputcol, "--"); IOState.setValue(inputrow, inputcol++, 0); + + //IOState.setTitle(0, inputcol, "DOOR"); IOState.setValue(0, inputcol++, (ushort)(Util_DO.CheckDoorSafty() ? 1 : 2)); + //IOState.setTitle(0, inputcol, "SAFTY"); IOState.setValue(0, inputcol++, (ushort)(Pub.flag.get(eFlag.MGZSafty1) && Pub.flag.get(eFlag.MGZSafty2) ? 1 : 2)); + //IOState.setTitle(0, inputcol, "FULL"); IOState.setValue(0, inputcol++, (ushort)(Util_DO.GetIOInput(eDIName.UD_FULL) ? 2 : 0)); + + //IOState.setTitle(0, inputcol, "A/B\nDETECT"); IOState.setValue(0, inputcol++, (ushort)(Util_DO.GetIOInput(eDIName.AB_DETECT) ? 1 : 0)); + + } + void Update_SSStatus() + { + SSInfo.setTitle(0, 0, Pub.sm.Step.ToString()); + SSInfo.setTitle(1, 0, Pub.sm.runStep.ToString()); + if (Pub.sm.Step == eSMStep.RUN) + SSInfo.setTitle(1, 1, string.Format("{0:N1} sec", Pub.sm.getRunSteptime.TotalSeconds)); + else + SSInfo.setTitle(1, 1, "--"); + + } + void Update_HWStatus() + { + var rownum = 1; + var colIdx = 0; + //if (Pub.light.IsInit == false) BlinkHwstatus(rownum, colIdx++, 3, 4); + //else HWState.setValue(rownum, colIdx++, (byte)(Pub.light.IsInit ? 2 : 3)); // + + if (Pub.plc1.IsValid == false) BlinkHwstatus(rownum, colIdx++, 3, 4); + else HWState.setValue(rownum, colIdx++, (byte)(Pub.plc1.IsValid ? 2 : 3)); //PLC + + if (Pub.Xbee.IsInit == false) BlinkHwstatus(rownum, colIdx++, 3, 4); + else HWState.setValue(rownum, colIdx++, (byte)(Pub.Xbee.IsInit ? 2 : 3)); // + + //if (Pub.camera.IsInit == false) BlinkHwstatus(rownum, colIdx++, 3, 4); + //else HWState.setValue(rownum, colIdx++, (byte)(Pub.camera.IsInit ? 2 : 3)); // + + //if (Pub.bVisionLicense == false) BlinkHwstatus(rownum, colIdx++, 3, 4); + //else HWState.setValue(rownum, colIdx++, (byte)(Pub.bVisionLicense ? 2 : 3)); // + + } + + /// + /// 환경설정에따른 카운트를 리셋처리한다. 171128 + /// + void _AutoResetCount() + { + if (Pub.setting.datetime_Check_1 && Pub.setting.datetime_Reset_1 != "") //오전 + { + try + { + DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + Pub.setting.datetime_Reset_1 + ":00"); + DateTime LastClearTime = Pub.counter.CountReset; + + //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 + if (DateTime.Now > SetTime && LastClearTime < SetTime) + { + Pub.log.AddI("Count Reset #1"); + Pub.counter.CountClear(); + } + } + catch { } + } + + if (Pub.setting.datetime_Check_2 && Pub.setting.datetime_Reset_2 != "") //오후 + { + try + { + DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + Pub.setting.datetime_Reset_2 + ":00"); + DateTime LastClearTime = Pub.counter.CountReset; + + //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 + if (DateTime.Now > SetTime && LastClearTime < SetTime) + { + Pub.log.AddI("Count Reset #2"); + Pub.counter.CountClear(); + } + } + catch { } + } + } + + DateTime tm1minute = DateTime.Now.AddDays(-1); + DateTime tm5minute = DateTime.Now; + + void UpdateProgressStatus(string title, double value, double max) + { + UpdateProgressStatus((float)value, (float)max, title); + } + + void UpdateProgressStatus(float value, float max, string title) + { + if (lbMsg.ProgressEnable == false) lbMsg.ProgressEnable = true; + if (lbMsg.ProgressMax != max) lbMsg.ProgressMax = max; + if (lbMsg.ProgressValue != value) lbMsg.ProgressValue = value; + if (lbMsg.ProgressForeColor != Color.FromArgb(40, 40, 40)) + lbMsg.ProgressForeColor = Color.FromArgb(40, 40, 40); + if (lbMsg.Text != title) lbMsg.Text = title; + } + + void UpdateStatusMessage(string dispmsg, Color fcolor, Color shadow) + { + UpdateStatusMessage(dispmsg, Color.DimGray, Color.Gray, fcolor, shadow); + } + + void UpdateStatusMessage(string dispmsg, Color bColor, Color bColor2, Color fcolor, Color shadow, Boolean blank = false) + { + + //if (lbMsg.ProgressEnable == true) lbMsg.ProgressEnable = false; + if (dispmsg != lbMsg.Text || lbMsg.ForeColor != fcolor || lbMsg.ShadowColor != shadow || (lbMsg.BackColor != bColor && lbMsg.BackColor2 != bColor)) + { + lbMsg.BackColor = bColor; + lbMsg.BackColor2 = bColor2; + lbMsg.ForeColor = fcolor; + lbMsg.ShadowColor = shadow; + lbMsg.Text = dispmsg; + if (blank) lbMsg.Tag = "BLANK"; + else lbMsg.Tag = null; + } + } + + + void UpdateResultMessage() + { + //모션을 사용한다면 홈 검색여부를 확인한다. + + //var inspresult = ""; + //if (Pub.Result == null || Pub.Result.Result == CResult.eInspectResult.NOTSET) + // inspresult = "--"; + //else if (Pub.Result.Result == CResult.eInspectResult.OK) + // inspresult = "MATCH"; + //else if (Pub.Result.Result == CResult.eInspectResult.NG) + // inspresult = "MISMATCH"; + + + //최우선 점검 사항 표시 + if (Pub.sm.Step > eSMStep.INIT) + { + if (Pub.flag.get(eFlag.DemoRun)) + { + UpdateStatusMessage("DEMO RUN", Color.Gold, Color.Yellow, Color.Black, Color.WhiteSmoke, true); + } + + + else if (Pub.flag.get(eFlag.START) == true) + { + UpdateStatusMessage("매거진투입구 안전센서 감지", Color.Tomato, Color.Black); + } + else if (Pub.Result.Model.Title == "") + { + UpdateStatusMessage("비젼모델 선택이 필요함", Color.Tomato, Color.Black); + } + + if (Pub.sm.Step == eSMStep.IDLE) + { + UpdateStatusMessage("준비완료", Color.Lime, Color.Black); + } + else if (Pub.sm.Step == eSMStep.ERROR) + { + UpdateStatusMessage("오류 발생", Color.Red, Color.Black); + } + else if (Pub.sm.Step == eSMStep.PAUSE) + { + UpdateStatusMessage("정지 됨", Color.Tomato, Color.Black); + } + else if (Pub.sm.Step == eSMStep.FINISH) + UpdateStatusMessage("작업 완료", Color.Lime, Color.Black); + else if (Pub.sm.bPause == true) + { + UpdateStatusMessage("[START]를 누르면 시작 됩니다", Color.Yellow, Color.Black); + } + else if (Pub.flag.get(eFlag.TestRun)) + { + UpdateStatusMessage("TEST RUN", Color.DeepSkyBlue, Color.LightSkyBlue, Color.Blue, Color.WhiteSmoke, true); + } + else + { + + string msg = "진행중"; + UpdateStatusMessage(msg, Color.Lime, Color.Black); + } + } + } + } +} diff --git a/Cs_HMI/SubProject/AGV/Command.cs b/HMI/SubProject/AGV/Command.cs similarity index 97% rename from Cs_HMI/SubProject/AGV/Command.cs rename to HMI/SubProject/AGV/Command.cs index 5bed8e6..29b62e9 100644 --- a/Cs_HMI/SubProject/AGV/Command.cs +++ b/HMI/SubProject/AGV/Command.cs @@ -1,414 +1,414 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.ComponentModel; -using System.Threading; -using System.Threading.Tasks; -using System.Collections; -using COMM; -using System.Security.Cryptography.X509Certificates; -using AR; - -namespace arDev -{ - public enum eNarumiTurn - { - None = 0, - LeftIng, - Left, - RightIng, - Right, - } - public class NarumiTurnInfo - { - public DateTime Start { get; set; } - public DateTime End { get; set; } - public TimeSpan Runtime - { - get - { - if (End.Year < 2000) return DateTime.Now - Start; - if (End < Start) return DateTime.Now - Start; - else return End - Start; - } - } - public eNarumiTurn State { get; set; } - public NarumiTurnInfo() - { - Start = new DateTime(1982, 11, 23); - End = new DateTime(1982, 11, 23); - State = eNarumiTurn.None; - } - } - public class NarumiCommandTime - { - public DateTime Time { get; set; } - public ushort count { get; set; } - public NarumiCommandTime(ushort cnt) - { - Time = DateTime.Now; - this.count = cnt; - } - } - - /// - /// error 이상은모두 처리불가한 오류 조건을 의미한다 - /// - public enum eNarumiCommandResult : byte - { - Fail = 0, - Success = 1, - Wait = 2, - Error = 100, - Timeout, - - } - public partial class Narumi - { - public NarumiTurnInfo TurnInformation { get; set; } = null; - Dictionary SendCommandFailList { get; set; } = new Dictionary(); - - public eNarumiCommandResult AGVMoveSet(BunkiData opt) - { - var param = opt.ToString(); - return AddCommand(eAgvCmd.MoveSet, param); - } - - public eNarumiCommandResult AGVMoveManual(ManulOpt opt, Speed spd, Sensor ss) - { - var param = opt.ToString() + spd.ToString()[0] + ((int)ss).ToString(); - return AddCommand(eAgvCmd.ManualMove, param); - } - public eNarumiCommandResult AGVMoveRun(eRunOpt opt = eRunOpt.NotSet) - { - System.Text.StringBuilder sb = new StringBuilder(); - if (opt == eRunOpt.Backward) sb.Append("B"); - else if (opt == eRunOpt.Forward) sb.Append("F"); - else sb.Append("0"); - sb.Append("000"); - return AddCommand(eAgvCmd.MoveStart, sb.ToString()); - } - - public eNarumiCommandResult AGVSetSpeed(eSetSpeed item, int speed) - { - string cmd = "SS"; - if (item == eSetSpeed.Rotation) cmd = "SRS"; - else cmd += item.ToString()[0]; - cmd += speed.ToString("0000"); - return AddCommand(cmd); - } - public eNarumiCommandResult AGVMoveStop(string Reason, eStopOpt opt = eStopOpt.Stop) - { - System.Text.StringBuilder sb = new StringBuilder(); - if (opt == eStopOpt.MarkStop) sb.Append("MS"); - else if (opt == eStopOpt.MarkRotateLeft) sb.Append("TL"); - else if (opt == eStopOpt.MarkRotateRight) sb.Append("TR"); - else if (opt == eStopOpt.MarkChangeDirection) sb.Append("BS"); - else sb.Append("0S"); - sb.Append("00"); - sb.Append("0000"); //재기동시간 - - //동작중이면 이 멈춤 명령을 기록으로 남긴다 230116 - if (this.system1.agv_run) - RaiseMessage(MessageType.Normal, $"stop command from {Reason}"); - var retval = AddCommand(eAgvCmd.MoveStop, sb.ToString()); - //if (retval == eNarumiCommandResult.Success && opt == eStopOpt.MarkStop) - // VAR.BOOL[eVarBool.NEXTSTOP_MARK] = true; - - return retval; - } - public eNarumiCommandResult AGVCommand(string cmd, string data) - { - return AddCommand(cmd + data); - } - - public eNarumiCommandResult LiftControl(LiftCommand cmd) - { - return AddCommand(eAgvCmd.LiftControl, cmd.ToString()); - } - public eNarumiCommandResult AGVCharge(int chargetID, bool on, int waittime = 3) - { - if (on) - return AddCommand(eAgvCmd.ChargeOn, chargetID.ToString("0000")); - else - return AddCommand(eAgvCmd.ChargeOf, chargetID.ToString("0000")); - } - public eNarumiCommandResult SetBackturnTime(int time) - { - return AddCommand(eAgvCmd.BackTrunResumeTime, time.ToString("0000")); - } - public eNarumiCommandResult SetGateOutOffTime(int time) - { - return AddCommand(eAgvCmd.GateoutTime, time.ToString("0000")); - } - - public eNarumiCommandResult TurnGDSCenterScope(UInt16 time) - { - if (time > 2000) time = 2000; - return AddCommand(eAgvCmd.TurnGDSCenterScope, time.ToString("0000")); - } - public eNarumiCommandResult AGVMoveLeft180Turn() - { - return AddCommand(eAgvCmd.TurnLeft); - } - public eNarumiCommandResult AGVMoveRight180Turn() - { - return AddCommand(eAgvCmd.TurnRight); - } - public eNarumiCommandResult AGVMoveBack180Turn(bool leftTurn) - { - var dir = leftTurn ? "L" : "R"; - return AddCommand(eAgvCmd.BackAndTurn, dir); - } - - public eNarumiCommandResult AGVErrorReset() - { - return AddCommand(eAgvCmd.ErrorReset, "FFFF"); - } - public eNarumiCommandResult AGVTowerLamp(bool on) - { - return AddCommand(eAgvCmd.TowerLamp, (on ? "I" : "O")); - } - public eNarumiCommandResult AGVSetAddress(int value) - { - return AddCommand($"SAD{value:0000}"); - } - public eNarumiCommandResult AGVSetPanID(string value) - { - value = value.PadLeft(4, '0'); - return AddCommand($"SPN{value}"); - } - public eNarumiCommandResult AGVSetChannel(string value) - { - value = value.PadLeft(4, '0'); - return AddCommand($"SCH{value}"); - } - - public eNarumiCommandResult AGVSetTagReinputTime(int value) - { - return AddCommand($"STT{value:0000}"); - } - - ///// - ///// 전송에 성공한 명령시간 - ///// - ////public Dictionary LastCommandOKTime { get; set; } - protected bool SendCommand(string cmdline) - { - bool ret = true; - ACKData = string.Empty; - var fullcmd = MakeCheckSum(cmdline); - if (WriteData(fullcmd) == false) ret = false; - System.Threading.Thread.Sleep(1); - return ret; - } - - ManualResetEvent mrecmd = new ManualResetEvent(true); - public eNarumiCommandResult AddCommand(string cmd, int waitms = 1) - { - if (mrecmd.WaitOne(waitms) == false) - { - //다른명령을 처리하는 중이므로 대기상태로 반환한다 - return eNarumiCommandResult.Wait; - } - - //다른신호를 처리하지 못하게한다. - mrecmd.Reset(); - - try - { - if (SendCommandFailList.ContainsKey(cmd) == false) - { - //실패기록이 없다 - var ret = SendCommand(cmd); - if (ret == false) - { - SendCommandFailList.Add(cmd, new NarumiCommandTime(1)); - return eNarumiCommandResult.Fail; - } - else return eNarumiCommandResult.Success; - } - else - { - //실패기록이 존재한다. - //1.동일 명령이 아니면 바로 전송한다 - var precmd = SendCommandFailList[cmd]; - - //동일명령의 실패기록이 존재한다. - //2초간의 간격을 둔다 - var ts = DateTime.Now - precmd.Time; - if (ts.TotalSeconds < 2) - { - precmd.Time = DateTime.Now; - SendCommandFailList[cmd] = precmd; - return eNarumiCommandResult.Wait; //대기한다 - } - else - { - //오류가 누적되었다. - var ret = SendCommand(cmd); - if (ret == false) - { - precmd.Time = DateTime.Now; - precmd.count += 1; - SendCommandFailList[cmd] = precmd; - - //5회연속 실패했다면 타임아웃처리한다 - if (precmd.count > 5) - { - //타임아웃 - return eNarumiCommandResult.Timeout; - } - else - { - //실패 - return eNarumiCommandResult.Fail; - } - } - else - { - //전송이성공했으니 키를 제거한다. - SendCommandFailList.Remove(cmd); - return eNarumiCommandResult.Success; - } - } - - } - } - catch (Exception ex) - { - Console.WriteLine($"narumi addCommand error : {ex.Message}"); - return eNarumiCommandResult.Error; - } - finally - { - mrecmd.Set(); - } - } - - - protected eNarumiCommandResult AddCommand(eAgvCmd command, BunkiData param) - { - return AddCommand(command, param.ToString()); - } - - /// - /// CBR커맨드를 사용하여 옵션값을 전송 합니다 - /// 11.분기명령 = CBR - /// - /// - /// - protected eNarumiCommandResult AddCommand(BunkiData param) - { - return AddCommand(eAgvCmd.MoveSet, param.ToString()); - } - - protected eNarumiCommandResult AddCommand(eAgvCmd command, string param = "") - { - string cmdString; - eNarumiCommandResult retval = eNarumiCommandResult.Error; - switch (command) - { - case eAgvCmd.ErrorReset: - cmdString = $"SFR{param}"; - retval = AddCommand(cmdString); - break; - case eAgvCmd.TowerLamp: - cmdString = $"CBZ" + $"0299{param}0000"; - retval = AddCommand(cmdString); - break; - case eAgvCmd.MoveStop: - cmdString = $"CST{param}"; - system1.agv_run_manual = false; - retval = AddCommand(cmdString); - break; - case eAgvCmd.MoveStart: - cmdString = $"CRN{param}"; - retval = AddCommand(cmdString); - break; - - case eAgvCmd.ChargeOf: - cmdString = $"CBT{param}O0003"; ///0003=충전대기시간 - retval = AddCommand(cmdString); - RaiseMessage(NarumiSerialComm.MessageType.Normal, "충전취소전송"); - break; - case eAgvCmd.ChargeOn: - cmdString = $"CBT{param}I0003"; ///0003=충전대기시간 - retval = AddCommand(cmdString); - RaiseMessage(NarumiSerialComm.MessageType.Normal, "충전명령전송"); - break; - - case eAgvCmd.TurnLeft: - cmdString = $"CTL0000"; - retval = AddCommand(cmdString); - if (retval == eNarumiCommandResult.Success) - { - if (TurnInformation == null) TurnInformation = new NarumiTurnInfo(); - TurnInformation.Start = DateTime.Now; - TurnInformation.End = new DateTime(1982, 11, 23); - TurnInformation.State = eNarumiTurn.LeftIng; - } - break; - case eAgvCmd.TurnRight: - cmdString = $"CTR0000"; - retval = AddCommand(cmdString); - if (retval == eNarumiCommandResult.Success) - { - if (TurnInformation == null) TurnInformation = new NarumiTurnInfo(); - TurnInformation.Start = DateTime.Now; - TurnInformation.End = new DateTime(1982, 11, 23); - TurnInformation.State = eNarumiTurn.RightIng; - } - break; - case eAgvCmd.BackAndTurn: - if (param.isEmpty()) param = "L"; - cmdString = $"CTB000{param}"; - retval = AddCommand(cmdString); - break; - case eAgvCmd.CallCancle: - cmdString = $"CCL0{param}010000"; - retval = AddCommand(cmdString); - break; - - - case eAgvCmd.MoveSet: - cmdString = $"CBR{param}"; - retval = AddCommand(cmdString); - break; - case eAgvCmd.ManualMove: - system1.agv_run_manual = true; - cmdString = $"CRT{param}"; - retval = AddCommand(cmdString); - break; - - case eAgvCmd.LiftControl: - cmdString = "CLF" + param.PadRight(6, '0'); - retval = AddCommand(cmdString); - break; - - case eAgvCmd.CPUReset: - cmdString = "CRS0000"; - retval = AddCommand(cmdString); - break; - case eAgvCmd.TurnGDSCenterScope: - if (param.isEmpty()) param = "1000"; - cmdString = $"SGS{param}"; - retval = AddCommand(cmdString); - break; - case eAgvCmd.BackTrunResumeTime: - cmdString = $"SST{param}"; - retval = AddCommand(cmdString); - break; - case eAgvCmd.GateoutTime: - cmdString = $"SGT{param}"; - retval = AddCommand(cmdString); - break; - } - return retval; - } - - } - - -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.Threading; +using System.Threading.Tasks; +using System.Collections; +using COMM; +using System.Security.Cryptography.X509Certificates; +using AR; + +namespace arDev +{ + public enum eNarumiTurn + { + None = 0, + LeftIng, + Left, + RightIng, + Right, + } + public class NarumiTurnInfo + { + public DateTime Start { get; set; } + public DateTime End { get; set; } + public TimeSpan Runtime + { + get + { + if (End.Year < 2000) return DateTime.Now - Start; + if (End < Start) return DateTime.Now - Start; + else return End - Start; + } + } + public eNarumiTurn State { get; set; } + public NarumiTurnInfo() + { + Start = new DateTime(1982, 11, 23); + End = new DateTime(1982, 11, 23); + State = eNarumiTurn.None; + } + } + public class NarumiCommandTime + { + public DateTime Time { get; set; } + public ushort count { get; set; } + public NarumiCommandTime(ushort cnt) + { + Time = DateTime.Now; + this.count = cnt; + } + } + + /// + /// error 이상은모두 처리불가한 오류 조건을 의미한다 + /// + public enum eNarumiCommandResult : byte + { + Fail = 0, + Success = 1, + Wait = 2, + Error = 100, + Timeout, + + } + public partial class Narumi + { + public NarumiTurnInfo TurnInformation { get; set; } = null; + Dictionary SendCommandFailList { get; set; } = new Dictionary(); + + public eNarumiCommandResult AGVMoveSet(BunkiData opt) + { + var param = opt.ToString(); + return AddCommand(eAgvCmd.MoveSet, param); + } + + public eNarumiCommandResult AGVMoveManual(ManulOpt opt, Speed spd, Sensor ss) + { + var param = opt.ToString() + spd.ToString()[0] + ((int)ss).ToString(); + return AddCommand(eAgvCmd.ManualMove, param); + } + public eNarumiCommandResult AGVMoveRun(eRunOpt opt = eRunOpt.NotSet) + { + System.Text.StringBuilder sb = new StringBuilder(); + if (opt == eRunOpt.Backward) sb.Append("B"); + else if (opt == eRunOpt.Forward) sb.Append("F"); + else sb.Append("0"); + sb.Append("000"); + return AddCommand(eAgvCmd.MoveStart, sb.ToString()); + } + + public eNarumiCommandResult AGVSetSpeed(eSetSpeed item, int speed) + { + string cmd = "SS"; + if (item == eSetSpeed.Rotation) cmd = "SRS"; + else cmd += item.ToString()[0]; + cmd += speed.ToString("0000"); + return AddCommand(cmd); + } + public eNarumiCommandResult AGVMoveStop(string Reason, eStopOpt opt = eStopOpt.Stop) + { + System.Text.StringBuilder sb = new StringBuilder(); + if (opt == eStopOpt.MarkStop) sb.Append("MS"); + else if (opt == eStopOpt.MarkRotateLeft) sb.Append("TL"); + else if (opt == eStopOpt.MarkRotateRight) sb.Append("TR"); + else if (opt == eStopOpt.MarkChangeDirection) sb.Append("BS"); + else sb.Append("0S"); + sb.Append("00"); + sb.Append("0000"); //재기동시간 + + //동작중이면 이 멈춤 명령을 기록으로 남긴다 230116 + if (this.system1.agv_run) + RaiseMessage(MessageType.Normal, $"stop command from {Reason}"); + var retval = AddCommand(eAgvCmd.MoveStop, sb.ToString()); + //if (retval == eNarumiCommandResult.Success && opt == eStopOpt.MarkStop) + // VAR.BOOL[eVarBool.NEXTSTOP_MARK] = true; + + return retval; + } + public eNarumiCommandResult AGVCommand(string cmd, string data) + { + return AddCommand(cmd + data); + } + + public eNarumiCommandResult LiftControl(LiftCommand cmd) + { + return AddCommand(eAgvCmd.LiftControl, cmd.ToString()); + } + public eNarumiCommandResult AGVCharge(int chargetID, bool on, int waittime = 3) + { + if (on) + return AddCommand(eAgvCmd.ChargeOn, chargetID.ToString("0000")); + else + return AddCommand(eAgvCmd.ChargeOf, chargetID.ToString("0000")); + } + public eNarumiCommandResult SetBackturnTime(int time) + { + return AddCommand(eAgvCmd.BackTrunResumeTime, time.ToString("0000")); + } + public eNarumiCommandResult SetGateOutOffTime(int time) + { + return AddCommand(eAgvCmd.GateoutTime, time.ToString("0000")); + } + + public eNarumiCommandResult TurnGDSCenterScope(UInt16 time) + { + if (time > 2000) time = 2000; + return AddCommand(eAgvCmd.TurnGDSCenterScope, time.ToString("0000")); + } + public eNarumiCommandResult AGVMoveLeft180Turn() + { + return AddCommand(eAgvCmd.TurnLeft); + } + public eNarumiCommandResult AGVMoveRight180Turn() + { + return AddCommand(eAgvCmd.TurnRight); + } + public eNarumiCommandResult AGVMoveBack180Turn(bool leftTurn) + { + var dir = leftTurn ? "L" : "R"; + return AddCommand(eAgvCmd.BackAndTurn, dir); + } + + public eNarumiCommandResult AGVErrorReset() + { + return AddCommand(eAgvCmd.ErrorReset, "FFFF"); + } + public eNarumiCommandResult AGVTowerLamp(bool on) + { + return AddCommand(eAgvCmd.TowerLamp, (on ? "I" : "O")); + } + public eNarumiCommandResult AGVSetAddress(int value) + { + return AddCommand($"SAD{value:0000}"); + } + public eNarumiCommandResult AGVSetPanID(string value) + { + value = value.PadLeft(4, '0'); + return AddCommand($"SPN{value}"); + } + public eNarumiCommandResult AGVSetChannel(string value) + { + value = value.PadLeft(4, '0'); + return AddCommand($"SCH{value}"); + } + + public eNarumiCommandResult AGVSetTagReinputTime(int value) + { + return AddCommand($"STT{value:0000}"); + } + + ///// + ///// 전송에 성공한 명령시간 + ///// + ////public Dictionary LastCommandOKTime { get; set; } + protected bool SendCommand(string cmdline) + { + bool ret = true; + ACKData = string.Empty; + var fullcmd = MakeCheckSum(cmdline); + if (WriteData(fullcmd) == false) ret = false; + System.Threading.Thread.Sleep(1); + return ret; + } + + ManualResetEvent mrecmd = new ManualResetEvent(true); + public eNarumiCommandResult AddCommand(string cmd, int waitms = 1) + { + if (mrecmd.WaitOne(waitms) == false) + { + //다른명령을 처리하는 중이므로 대기상태로 반환한다 + return eNarumiCommandResult.Wait; + } + + //다른신호를 처리하지 못하게한다. + mrecmd.Reset(); + + try + { + if (SendCommandFailList.ContainsKey(cmd) == false) + { + //실패기록이 없다 + var ret = SendCommand(cmd); + if (ret == false) + { + SendCommandFailList.Add(cmd, new NarumiCommandTime(1)); + return eNarumiCommandResult.Fail; + } + else return eNarumiCommandResult.Success; + } + else + { + //실패기록이 존재한다. + //1.동일 명령이 아니면 바로 전송한다 + var precmd = SendCommandFailList[cmd]; + + //동일명령의 실패기록이 존재한다. + //2초간의 간격을 둔다 + var ts = DateTime.Now - precmd.Time; + if (ts.TotalSeconds < 2) + { + precmd.Time = DateTime.Now; + SendCommandFailList[cmd] = precmd; + return eNarumiCommandResult.Wait; //대기한다 + } + else + { + //오류가 누적되었다. + var ret = SendCommand(cmd); + if (ret == false) + { + precmd.Time = DateTime.Now; + precmd.count += 1; + SendCommandFailList[cmd] = precmd; + + //5회연속 실패했다면 타임아웃처리한다 + if (precmd.count > 5) + { + //타임아웃 + return eNarumiCommandResult.Timeout; + } + else + { + //실패 + return eNarumiCommandResult.Fail; + } + } + else + { + //전송이성공했으니 키를 제거한다. + SendCommandFailList.Remove(cmd); + return eNarumiCommandResult.Success; + } + } + + } + } + catch (Exception ex) + { + Console.WriteLine($"narumi addCommand error : {ex.Message}"); + return eNarumiCommandResult.Error; + } + finally + { + mrecmd.Set(); + } + } + + + protected eNarumiCommandResult AddCommand(eAgvCmd command, BunkiData param) + { + return AddCommand(command, param.ToString()); + } + + /// + /// CBR커맨드를 사용하여 옵션값을 전송 합니다 + /// 11.분기명령 = CBR + /// + /// + /// + protected eNarumiCommandResult AddCommand(BunkiData param) + { + return AddCommand(eAgvCmd.MoveSet, param.ToString()); + } + + protected eNarumiCommandResult AddCommand(eAgvCmd command, string param = "") + { + string cmdString; + eNarumiCommandResult retval = eNarumiCommandResult.Error; + switch (command) + { + case eAgvCmd.ErrorReset: + cmdString = $"SFR{param}"; + retval = AddCommand(cmdString); + break; + case eAgvCmd.TowerLamp: + cmdString = $"CBZ" + $"0299{param}0000"; + retval = AddCommand(cmdString); + break; + case eAgvCmd.MoveStop: + cmdString = $"CST{param}"; + system1.agv_run_manual = false; + retval = AddCommand(cmdString); + break; + case eAgvCmd.MoveStart: + cmdString = $"CRN{param}"; + retval = AddCommand(cmdString); + break; + + case eAgvCmd.ChargeOf: + cmdString = $"CBT{param}O0003"; ///0003=충전대기시간 + retval = AddCommand(cmdString); + RaiseMessage(NarumiSerialComm.MessageType.Normal, "충전취소전송"); + break; + case eAgvCmd.ChargeOn: + cmdString = $"CBT{param}I0003"; ///0003=충전대기시간 + retval = AddCommand(cmdString); + RaiseMessage(NarumiSerialComm.MessageType.Normal, "충전명령전송"); + break; + + case eAgvCmd.TurnLeft: + cmdString = $"CTL0000"; + retval = AddCommand(cmdString); + if (retval == eNarumiCommandResult.Success) + { + if (TurnInformation == null) TurnInformation = new NarumiTurnInfo(); + TurnInformation.Start = DateTime.Now; + TurnInformation.End = new DateTime(1982, 11, 23); + TurnInformation.State = eNarumiTurn.LeftIng; + } + break; + case eAgvCmd.TurnRight: + cmdString = $"CTR0000"; + retval = AddCommand(cmdString); + if (retval == eNarumiCommandResult.Success) + { + if (TurnInformation == null) TurnInformation = new NarumiTurnInfo(); + TurnInformation.Start = DateTime.Now; + TurnInformation.End = new DateTime(1982, 11, 23); + TurnInformation.State = eNarumiTurn.RightIng; + } + break; + case eAgvCmd.BackAndTurn: + if (param.isEmpty()) param = "L"; + cmdString = $"CTB000{param}"; + retval = AddCommand(cmdString); + break; + case eAgvCmd.CallCancle: + cmdString = $"CCL0{param}010000"; + retval = AddCommand(cmdString); + break; + + + case eAgvCmd.MoveSet: + cmdString = $"CBR{param}"; + retval = AddCommand(cmdString); + break; + case eAgvCmd.ManualMove: + system1.agv_run_manual = true; + cmdString = $"CRT{param}"; + retval = AddCommand(cmdString); + break; + + case eAgvCmd.LiftControl: + cmdString = "CLF" + param.PadRight(6, '0'); + retval = AddCommand(cmdString); + break; + + case eAgvCmd.CPUReset: + cmdString = "CRS0000"; + retval = AddCommand(cmdString); + break; + case eAgvCmd.TurnGDSCenterScope: + if (param.isEmpty()) param = "1000"; + cmdString = $"SGS{param}"; + retval = AddCommand(cmdString); + break; + case eAgvCmd.BackTrunResumeTime: + cmdString = $"SST{param}"; + retval = AddCommand(cmdString); + break; + case eAgvCmd.GateoutTime: + cmdString = $"SGT{param}"; + retval = AddCommand(cmdString); + break; + } + return retval; + } + + } + + +} diff --git a/Cs_HMI/SubProject/AGV/DataEventArgs.cs b/HMI/SubProject/AGV/DataEventArgs.cs similarity index 94% rename from Cs_HMI/SubProject/AGV/DataEventArgs.cs rename to HMI/SubProject/AGV/DataEventArgs.cs index 0001ca3..a5a5c36 100644 --- a/Cs_HMI/SubProject/AGV/DataEventArgs.cs +++ b/HMI/SubProject/AGV/DataEventArgs.cs @@ -1,19 +1,19 @@ -using System; - -namespace arDev -{ - public partial class Narumi - { - public class DataEventArgs : EventArgs - { - public DataType DataType { get; set; } - - public DataEventArgs(DataType type) - { - DataType = type; - } - } - } - - -} +using System; + +namespace arDev +{ + public partial class Narumi + { + public class DataEventArgs : EventArgs + { + public DataType DataType { get; set; } + + public DataEventArgs(DataType type) + { + DataType = type; + } + } + } + + +} diff --git a/Cs_HMI/SubProject/AGV/Dataframe.cs b/HMI/SubProject/AGV/Dataframe.cs similarity index 100% rename from Cs_HMI/SubProject/AGV/Dataframe.cs rename to HMI/SubProject/AGV/Dataframe.cs diff --git a/Cs_HMI/SubProject/AGV/EnumData.cs b/HMI/SubProject/AGV/EnumData.cs similarity index 96% rename from Cs_HMI/SubProject/AGV/EnumData.cs rename to HMI/SubProject/AGV/EnumData.cs index bd7ca92..bfe54e5 100644 --- a/Cs_HMI/SubProject/AGV/EnumData.cs +++ b/HMI/SubProject/AGV/EnumData.cs @@ -1,221 +1,221 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace arDev -{ - public partial class Narumi - { - public enum eMoveDir - { - Forward, - Backward, - } - public enum eMoveSpd - { - High, - Mid, - Low, - } - public enum eSetPIDSpeed - { - High, - Middle, - Low, - Stop, - } - public enum eSetSpeed - { - High, - Middle, - Low, - Stop, - Rotation, - } - public enum eBunki - { - Right, - Strate, - Left, - } - - public enum Messagetype - { - Normal, - Error, - Send, - Recv, - } - public enum DataType - { - UNKNOWN, - TAG, - CALL, - STS, - ACK, - NAK, - CCA, - } - public class BunkiData - { - public BunkiData() - { - - } - public BunkiData(char dir, char bunki, char speed) - { - if (dir == 'F') Direction = eMoveDir.Forward; - else if (dir == 'B') Direction = eMoveDir.Backward; - - if (bunki == 'S') Bunki = eBunki.Strate; - else if (bunki == 'L') Bunki = eBunki.Left; - else if (bunki == 'R') Bunki = eBunki.Right; - - if (speed == 'H') this.Speed = eMoveSpd.High; - else if (speed == 'M') this.Speed = eMoveSpd.Mid; - else if (speed == 'L') this.Speed = eMoveSpd.Low; - } - public eMoveDir Direction { get; set; } = eMoveDir.Forward; - public eBunki Bunki { get; set; } = eBunki.Strate; - public eMoveSpd Speed { get; set; } = eMoveSpd.Mid; - public int PBSSensor { get; set; } = 1; - public override string ToString() - { - System.Text.StringBuilder sb = new StringBuilder(); - sb.Append(Direction.ToString()[0]); - sb.Append(Bunki.ToString()[0]); - sb.Append(Speed.ToString()[0]); - sb.Append(PBSSensor.ToString()[0]); - - return sb.ToString(); - } - } - public enum eAgvCmd - { - /// - /// 충전시작 - /// CMD : CBT02{nBatteryNo}I0103 - /// - ChargeOn, - - /// - /// 충전취소 - /// CMD : CBT02{nBatteryNo}O0103 - /// - ChargeOf, - - /// - /// 이동명령(파라미터필요) - /// 이동대상,속도(H,M,L),센서사용여부(1,0) - /// ex) BSLTH0 - /// CMD : CRT{param} - /// - ManualMove, - - /// - /// 기동명령 - /// CMD : CRN0000 - /// - MoveStart, - - /// - /// 분기명령 - /// CMD : CBR{param} - /// - MoveSet, - - /// - /// 정지 명령 - /// CMD : CST0S000000 - /// - MoveStop, - - /// - /// 콜 취소, - /// Param : 번호 char(1) - /// CMD : CCL0{param}010000 - /// - CallCancle, - - /// - /// CMD : CTL0000 - /// - TurnLeft, - - /// - /// CMD : CTR0000 - /// - TurnRight, - - /// - /// CMD : CTB0000 - /// - BackAndTurn, - - /// - /// CMD : CBZ - /// - TowerLamp, - - /// - /// CMD : SFR - /// - ErrorReset, - - /// - /// CMD : CLF - /// - LiftControl, - - /// - /// SS(H/M/L/S) - /// SRS - /// - SetSpeed, - - CPUReset, - - TurnGDSCenterScope, - - BackTrunResumeTime, - GateoutTime, - - } - public enum eForm - { - DriveControl, - ManualControl, - RouteSelect, - Setting, - ModeChange, - } - public enum eNotify - { - ReadTag, - IpAddresschanged, - NameChanged, - ReadViewStep, - ReadViewCall, - WatchError, - - /// - /// 통신에서받은 AGV의 상태값이며, 속도 진행 방향을 가지고 있음 - /// Dashboardform 하단에 상태 표시 함 - /// - StatusDisplay, - StatusComm, - StatusRiv, - StatusETC, - - ChangeMode, - /// - /// 편집대상경로는 아래 변수에 저장되어잇음 - /// datamanager.sEditrRoute - /// - EditRoute, - } - - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace arDev +{ + public partial class Narumi + { + public enum eMoveDir + { + Forward, + Backward, + } + public enum eMoveSpd + { + High, + Mid, + Low, + } + public enum eSetPIDSpeed + { + High, + Middle, + Low, + Stop, + } + public enum eSetSpeed + { + High, + Middle, + Low, + Stop, + Rotation, + } + public enum eBunki + { + Right, + Strate, + Left, + } + + public enum Messagetype + { + Normal, + Error, + Send, + Recv, + } + public enum DataType + { + UNKNOWN, + TAG, + CALL, + STS, + ACK, + NAK, + CCA, + } + public class BunkiData + { + public BunkiData() + { + + } + public BunkiData(char dir, char bunki, char speed) + { + if (dir == 'F') Direction = eMoveDir.Forward; + else if (dir == 'B') Direction = eMoveDir.Backward; + + if (bunki == 'S') Bunki = eBunki.Strate; + else if (bunki == 'L') Bunki = eBunki.Left; + else if (bunki == 'R') Bunki = eBunki.Right; + + if (speed == 'H') this.Speed = eMoveSpd.High; + else if (speed == 'M') this.Speed = eMoveSpd.Mid; + else if (speed == 'L') this.Speed = eMoveSpd.Low; + } + public eMoveDir Direction { get; set; } = eMoveDir.Forward; + public eBunki Bunki { get; set; } = eBunki.Strate; + public eMoveSpd Speed { get; set; } = eMoveSpd.Mid; + public int PBSSensor { get; set; } = 1; + public override string ToString() + { + System.Text.StringBuilder sb = new StringBuilder(); + sb.Append(Direction.ToString()[0]); + sb.Append(Bunki.ToString()[0]); + sb.Append(Speed.ToString()[0]); + sb.Append(PBSSensor.ToString()[0]); + + return sb.ToString(); + } + } + public enum eAgvCmd + { + /// + /// 충전시작 + /// CMD : CBT02{nBatteryNo}I0103 + /// + ChargeOn, + + /// + /// 충전취소 + /// CMD : CBT02{nBatteryNo}O0103 + /// + ChargeOf, + + /// + /// 이동명령(파라미터필요) + /// 이동대상,속도(H,M,L),센서사용여부(1,0) + /// ex) BSLTH0 + /// CMD : CRT{param} + /// + ManualMove, + + /// + /// 기동명령 + /// CMD : CRN0000 + /// + MoveStart, + + /// + /// 분기명령 + /// CMD : CBR{param} + /// + MoveSet, + + /// + /// 정지 명령 + /// CMD : CST0S000000 + /// + MoveStop, + + /// + /// 콜 취소, + /// Param : 번호 char(1) + /// CMD : CCL0{param}010000 + /// + CallCancle, + + /// + /// CMD : CTL0000 + /// + TurnLeft, + + /// + /// CMD : CTR0000 + /// + TurnRight, + + /// + /// CMD : CTB0000 + /// + BackAndTurn, + + /// + /// CMD : CBZ + /// + TowerLamp, + + /// + /// CMD : SFR + /// + ErrorReset, + + /// + /// CMD : CLF + /// + LiftControl, + + /// + /// SS(H/M/L/S) + /// SRS + /// + SetSpeed, + + CPUReset, + + TurnGDSCenterScope, + + BackTrunResumeTime, + GateoutTime, + + } + public enum eForm + { + DriveControl, + ManualControl, + RouteSelect, + Setting, + ModeChange, + } + public enum eNotify + { + ReadTag, + IpAddresschanged, + NameChanged, + ReadViewStep, + ReadViewCall, + WatchError, + + /// + /// 통신에서받은 AGV의 상태값이며, 속도 진행 방향을 가지고 있음 + /// Dashboardform 하단에 상태 표시 함 + /// + StatusDisplay, + StatusComm, + StatusRiv, + StatusETC, + + ChangeMode, + /// + /// 편집대상경로는 아래 변수에 저장되어잇음 + /// datamanager.sEditrRoute + /// + EditRoute, + } + + + } +} diff --git a/Cs_HMI/SubProject/AGV/NARUMI.csproj b/HMI/SubProject/AGV/NARUMI.csproj similarity index 96% rename from Cs_HMI/SubProject/AGV/NARUMI.csproj rename to HMI/SubProject/AGV/NARUMI.csproj index 0a6434c..6637ecd 100644 --- a/Cs_HMI/SubProject/AGV/NARUMI.csproj +++ b/HMI/SubProject/AGV/NARUMI.csproj @@ -1,69 +1,69 @@ - - - - - Debug - AnyCPU - {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7} - Library - Properties - arDevice - Narumi - v4.0 - 512 - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\..\DLL\arCommUtil.dll - - - - - - - - - - - - - - - - - - - - - - - - - - {14e8c9a5-013e-49ba-b435-efefc77dd623} - CommData - - - + + + + + Debug + AnyCPU + {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7} + Library + Properties + arDevice + Narumi + v4.0 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\..\..\DLL\arCommUtil.dll + + + + + + + + + + + + + + + + + + + + + + + + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGV/Narumi.cs b/HMI/SubProject/AGV/Narumi.cs similarity index 97% rename from Cs_HMI/SubProject/AGV/Narumi.cs rename to HMI/SubProject/AGV/Narumi.cs index 97684da..da258ad 100644 --- a/Cs_HMI/SubProject/AGV/Narumi.cs +++ b/HMI/SubProject/AGV/Narumi.cs @@ -1,519 +1,519 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.ComponentModel; -using System.Threading; -using System.Threading.Tasks; -using System.Collections; -using COMM; -using AR; -using System.Xml; - -namespace arDev -{ - public partial class Narumi : arDev.NarumiSerialComm - { - Hashtable SystemCheck, ErrorCheck; - private Queue Errlog; // 에러발생시 코드 임시 저장용(쓰레드 동기화용) - - public int nBatteryNo { get; set; } = 0; - - public Narumi() - { - SystemCheck = new Hashtable(); - SystemCheck.Add(15, "100"); - SystemCheck.Add(14, "9"); - SystemCheck.Add(13, "8"); - SystemCheck.Add(12, "53"); - SystemCheck.Add(11, "3"); - //SystemCheck.Add(10, "66"); - //SystemCheck.Add(9, "56"); - SystemCheck.Add(8, "6"); - SystemCheck.Add(7, "5"); - SystemCheck.Add(6, "60"); - SystemCheck.Add(5, "1"); - SystemCheck.Add(4, "2"); - //SystemCheck.Add(3, "65"); - //SystemCheck.Add(2, "55"); - //SystemCheck.Add(1, "11"); - //SystemCheck.Add(0, "22"); - - ErrorCheck = new Hashtable(); - ErrorCheck.Add(15, "17"); - ErrorCheck.Add(14, "15"); - ErrorCheck.Add(13, "18"); - ErrorCheck.Add(12, "19"); - //ErrorCheck.Add(11, "300"); - ErrorCheck.Add(10, "299"); - ErrorCheck.Add(9, "298"); - ErrorCheck.Add(8, "297"); - ErrorCheck.Add(7, "296"); - //ErrorCheck.Add(6,""); - ErrorCheck.Add(5, "12"); - ErrorCheck.Add(4, "13"); - ErrorCheck.Add(3, "14"); - ErrorCheck.Add(2, "16"); - ErrorCheck.Add(1, "11"); - ErrorCheck.Add(0, "10"); - - Errlog = new Queue(); - MinRecvLength = 4; - - } - - - - #region "External Events" - - - /// - /// 분석완료된 데이터 이벤트 - /// - public event EventHandler DataReceive; - - - #endregion - - - protected override bool CustomParser(byte[] buf, out byte[] remainBuffer) - { - List remain = new List(); - - //데이터는 총 34byt 이며 , DD~77로 구성됨 - Boolean bComplete = false; - for (int i = 0; i < buf.Length; i++) - { - var incomByte = buf[i]; - if (bComplete == true) - { - remain.Add(incomByte); - } - else - { - if (incomByte == 0x02) - { - findSTX = true; - tempBuffer.Clear(); - tempBuffer.Add(incomByte); - } - else if (incomByte == 0x03) - { - //데이터가 맞게 수신됨 - //tempBuffer.Add(incomByte); - tempBuffer.Add(incomByte); - findSTX = false; - bComplete = true; - } - else - { - tempBuffer.Add(incomByte); - if (tempBuffer.Count == 150) //data overload - { - findSTX = false; - tempBuffer.Clear(); - bComplete = false; - RaiseMessage(MessageType.Error, "Buffer Over"); - } - } - } - } - - remainBuffer = remain.ToArray(); - return bComplete; - } - - public override bool ProcessRecvData(byte[] data) - { - //LastReceiveBuffer - var frame = new Dataframe(data, MinRecvLength); - if (frame.Valid == false) - { - RaiseMessage(MessageType.Error, frame.Message); - return false; - } - else if (frame.DataString.StartsWith("$") == false && CheckSum(data) == false) - { - RaiseMessage(MessageType.Error, "Checksum Error MSG=" + frame.DataString); - return false; - } - - var retval = true; - - /////////////////////////////////////////////////////////////////////////////// - if (frame.Cmd.Equals("ACK") || frame.Cmd.Equals("NAK")) - { // 응답확인값 수신 : Header(ACX), Length(9), CheckSum 확인 - RevACK(frame); - } - /////////////////////////////////////////////////////////////////////////////// - else if (frame.Cmd.Equals("STS")) - { // AGV 상태 정보 : Header(STS), Length(30), CheckSum 확인 - RevSTS(frame); - } - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - else if ((frame.Cmd.Equals("TAG") || frame.Cmd.Equals("CAL") || frame.Cmd.Equals("CCA"))) - { // TAG ID 정보 : Header(STX), Length(13), CheckSum 확인 - RevTAG(frame); - } - else if (frame.DataString.StartsWith("$")) - { - // $로 시작되는 AGV 상태 표시 - //var text_Sts_Etc = Encoding.Default.GetString(bRcvData, 3, bRcvData.Length - 2).TrimStart(' '); //20210311 김정만 - SmartX FrameWork 사용 안함으로 주석처리 - //var sMessageOther = Encoding.Default.GetString(bRcvData, 3, bRcvData.Length - 2).TrimStart(' '); - RaiseMessage(MessageType.Normal, "$메세지수신:" + frame.DataString); - } - else - { - try - { - DataReceive?.Invoke(this, new DataEventArgs(DataType.UNKNOWN)); - } - catch (Exception ex) - { - RaiseMessage(MessageType.Error, ex.Message); - retval = false; - } - } - return retval; - - - } - - #region [수신] ACK(응답확인값) 분석 - - public string ACKData { get; set; } = string.Empty; - public DateTime ACKtime { get; set; } = DateTime.Now; - private void RevACK(Dataframe frame) - { - //ACKSADA7 - var rcvdNow = frame.DataString; - var bRcvData = frame.Buffer; - - ACKData = rcvdNow.Substring(3); - ACKtime = DateTime.Now; - - if (rcvdNow.StartsWith("ACK")) - { - //RaiseMessage("get ack"); - DataReceive?.Invoke(this, new DataEventArgs(DataType.ACK)); - //if (datamanager.commandQueue.Count != 0) - //{ - // byte[] bCmdData = encoding.GetBytes((String)datamanager.commandQueue.Peek()); - // if (bCmdData[1] == bRcvData[4] && bCmdData[2] == bRcvData[5] && bCmdData[3] == bRcvData[6]) //보낸값이 맞는지 확인후 Dequeue - // { - // nSendCount = 0; - // datamanager.commandQueue.Dequeue(); - // sSendCommandString = ""; - // } - //} - } - else if (rcvdNow.StartsWith("NAK")) - { - //RaiseMessage("get nak"); - DataReceive?.Invoke(this, new DataEventArgs(DataType.NAK)); - //nSendCount = 0; //NAK - 재전송이 날아왔을때 nSendCommandCounter 초기화 - } - } - - #endregion - - public SystemFlag0 system0 = new SystemFlag0(); - public SystemFlag1 system1 = new SystemFlag1(); - public ErrorFlag error = new ErrorFlag(); - public AgvData data = new AgvData(); - public Signal1 signal1 = new Signal1(); - public Signal2 signal2 = new Signal2(); - - #region [수신] STS(AGV상태정보) 분석 - public string LastSTS { get; set; } = string.Empty; - private void RevSTS(Dataframe frame) - { - LastSTS = frame.DataString; - string rcvdNow = frame.DataString.Replace("\0", ""); - byte[] bRcvData = frame.Buffer; - var encoding = System.Text.Encoding.Default; - try - { - - // AGV 베터리 잔량 표시 flag (4~6) ///////////////////////////////////////////////////////////////////////////////////////////////////////////// - var idx = 3; - var battery = int.Parse(rcvdNow.Substring(idx, 3)) / 10f;// Convert.ToDouble(encoding.GetString(rcvdNow, 3, 3)) / 10; - idx += 3; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // AGV 장치연결상태 flag (7~10) - System Flag 0 - var nDataTemp = Convert.ToInt16(rcvdNow.Substring(idx, 4), 16); - system0.SetValue(nDataTemp); - idx += 4; - - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // AGV Sts(현재 상태) flag (11~14) - System Flag 1 - nDataTemp = Convert.ToInt16(rcvdNow.Substring(idx, 4), 16); - system1.SetValue(nDataTemp); - idx += 4; - - ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // AGV Error flag (15~18) - Error Flag - nDataTemp = Convert.ToInt16(rcvdNow.Substring(idx, 4), 16); - error.SetValue(nDataTemp); - idx += 4; - - data.Speed = rcvdNow.Substring(idx, 1)[0]; idx += 1; //L,M.H - data.Sts = rcvdNow.Substring(idx, 1)[0]; idx += 1; //S(직진),L(좌분기),R(우분기) - data.Direction = rcvdNow.Substring(idx, 1)[0]; idx += 1; //F,B,L,R - data.guidesensor = int.Parse(rcvdNow.Substring(idx, 1)); idx += 1; //가이드 좌측부터 1~9 - - nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16); - signal1.SetValue(nDataTemp); idx += 2; - - //agv가 멈춰있고 마크센서가 들어온경우, 턴 작업이었다면 턴 셋팅을 한다 - if (system1.agv_run == false && system1.agv_stop == true && - TurnInformation != null && signal1.mark_sensor) - { - if (TurnInformation.Start.Year > 2000) - { - if (TurnInformation.State == eNarumiTurn.LeftIng || TurnInformation.State == eNarumiTurn.RightIng) - { - TurnInformation.End = DateTime.Now; - if (TurnInformation.State == eNarumiTurn.LeftIng) TurnInformation.State = eNarumiTurn.Left; - if (TurnInformation.State == eNarumiTurn.RightIng) TurnInformation.State = eNarumiTurn.Right; - } - } - else - { - //시작시간이 설정되지 않았다면 처리하지 않는다. - } - } - - if (idx <= rcvdNow.Length - 2) - { - nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16); - signal2.SetValue(nDataTemp); - } - - - DataReceive?.Invoke(this, new DataEventArgs(DataType.STS)); - - } - catch (Exception ex) - { - RaiseMessage(MessageType.Error, $"Parse Error(STS) = {ex.Message}"); - } - } - - #endregion - - - - - - - #region [수신] TAG(태그정보) 분석 - - System.Text.Encoding encoding = System.Text.Encoding.Default; - string old_TagString = string.Empty; - string old_CALString = string.Empty; - string old_CCAString = string.Empty; - private void RevTAG(Dataframe frame) - { - string rcvdNow = frame.DataString; - byte[] bRcvData = frame.Buffer; - if (rcvdNow.StartsWith("TAG")) - { - //221123 chi 숫자로변경 - var tagnostr = rcvdNow.Substring(3); - if (ushort.TryParse(tagnostr, out ushort tagnoint)) - { - var Changed = !old_TagString.Equals(tagnostr); - data.TagString = tagnostr; - data.TagNo = tagnoint; - old_TagString = tagnostr; - DataReceive?.Invoke(this, new DataEventArgs(DataType.TAG)); - } - - WriteData(MakeCheckSum("ACKTAG")); - - } - else if (rcvdNow.StartsWith("CAL")) - { - - var tagnostr = encoding.GetString(bRcvData, 4, 4); - if (int.TryParse(tagnostr, out int tagnoint)) - { - var Changed = !old_CALString.Equals(tagnostr); - data.CallString = tagnostr; - data.CallNo = tagnoint; - old_CALString = tagnostr; - if (Changed) DataReceive?.Invoke(this, new DataEventArgs(DataType.CALL)); - } - WriteData(MakeCheckSum("ACKCAL")); - } - else if (rcvdNow.StartsWith("CCA")) //능동형 Call에 의하여 들어 오는 구문 - { - - var tagnostr = encoding.GetString(bRcvData, 4, 4); - if (int.TryParse(tagnostr, out int tagnoint)) - { - var Changed = !old_CCAString.Equals(tagnostr); - data.CCAString = tagnostr; - data.CCANo = tagnoint; - old_CCAString = tagnostr; - if (Changed) DataReceive?.Invoke(this, new DataEventArgs(DataType.CCA)); - } - WriteData(MakeCheckSum("ACKCCA")); - } - } - #endregion - - private string MakeCheckSum(string sCommand) - { - //sCommand = sCommand.ToUpper(); - - List buffer = new List(); - buffer.Add(0x02); - - //byte[] bCommand = System.Text.ASCIIEncoding.ASCII.GetBytes(sCommand); - buffer.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes(sCommand)); - - //make sum - int nSum = 0; - for (int nCnt = 1; nCnt < buffer.Count; nCnt++) - nSum += buffer[nCnt]; - - string sSum = nSum.ToString("X2").ToUpper();// Convert.ToString(nSum, 16).ToUpper(); - if (sSum.Length < 2) sSum = "0" + sSum; - sSum = sSum.Substring(sSum.Length - 2); - - //if (sSum.Length == 3) - // sSum = sSum.Remove(0, 1); - //else if (sSum.Length == 4) - // sSum = sSum.Remove(0, 2); - - buffer.AddRange(System.Text.ASCIIEncoding.Default.GetBytes(sSum)); - buffer.Add(0x03); - - // byte[] bStxEtx = { 0x02, 0x03 }; - - - - //var orgstr = (System.Text.ASCIIEncoding.ASCII.GetString(bStxEtx, 0, 1) + sCommand + sSum + System.Text.ASCIIEncoding.ASCII.GetString(bStxEtx, 1, 1)); - var newstr = System.Text.Encoding.Default.GetString(buffer.ToArray()); - return newstr; - - } - - ///// - ///// commandQueue에 명령을 추가합니다(체크섬은 자동 추가됨) - ///// - ///// 체크섬을 제외한 평문 - ///// sendlog 에 추가할 경우 true를 입력하세요 - //public void AddCommand(string cmd, bool addlog = true, int Repeat = 1) - //{ - // var fullcmd = MakeCheckSum(cmd); - // for (int i = 0; i < Repeat; i++) - // commandQueue.Enqueue(fullcmd); - // if (addlog) - // { - // Message?.Invoke(this, new MessageEventArgs() - // } - //} - - public enum eStopOpt - { - Stop = 0, - MarkStop, - MarkRotateLeft, - MarkRotateRight, - MarkChangeDirection, - } - public enum eRunOpt - { - NotSet, - Forward, - Backward, - } - - public enum ManulOpt - { - FS, - BS, - RT, - LT, - FL, - FR, - BL, - BR, - } - public enum Sensor - { - PBSOff = 0, - PBSOn, - AllOn, - } - public enum Speed - { - High, - Mid, - Low, - } - public enum LiftCommand - { - /// - /// lift up - /// - UP, - /// - /// lift down - /// - DN, - /// - /// lift 동작 정지 - /// - STP, - /// - /// magnet holder on - /// - ON, - /// - /// magnet holder off - /// - OFF - } - - - private bool CheckSum(byte[] bData) - { - if (bData.Length < 2) // 데이터 길이가 2이하일 경우 비정상 처리 - return false; - - int nSum = 0; - // byte[] bData = encoding.GetBytes(sData); - - for (int nCnt = 1; nCnt < bData.Length - 3; nCnt++) - { - nSum += bData[nCnt]; - } - - - string sSum = Convert.ToString(nSum, 16).ToUpper(); - - string sCSTemp = string.Empty; - - if (sSum.Length == 3) - sCSTemp = sSum.Remove(0, 1); - else if (sSum.Length == 4) - sCSTemp = sSum.Remove(0, 2); - - if (bData[bData.Length - 2] == '*' && bData[bData.Length - 3] == '*') - return true; - - if (sCSTemp[0] == (char)(bData[bData.Length - 3]) && sCSTemp[1] == (char)(bData[bData.Length - 2])) - return true; - else - return false; - } - - } - - -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using System.Threading; +using System.Threading.Tasks; +using System.Collections; +using COMM; +using AR; +using System.Xml; + +namespace arDev +{ + public partial class Narumi : arDev.NarumiSerialComm + { + Hashtable SystemCheck, ErrorCheck; + private Queue Errlog; // 에러발생시 코드 임시 저장용(쓰레드 동기화용) + + public int nBatteryNo { get; set; } = 0; + + public Narumi() + { + SystemCheck = new Hashtable(); + SystemCheck.Add(15, "100"); + SystemCheck.Add(14, "9"); + SystemCheck.Add(13, "8"); + SystemCheck.Add(12, "53"); + SystemCheck.Add(11, "3"); + //SystemCheck.Add(10, "66"); + //SystemCheck.Add(9, "56"); + SystemCheck.Add(8, "6"); + SystemCheck.Add(7, "5"); + SystemCheck.Add(6, "60"); + SystemCheck.Add(5, "1"); + SystemCheck.Add(4, "2"); + //SystemCheck.Add(3, "65"); + //SystemCheck.Add(2, "55"); + //SystemCheck.Add(1, "11"); + //SystemCheck.Add(0, "22"); + + ErrorCheck = new Hashtable(); + ErrorCheck.Add(15, "17"); + ErrorCheck.Add(14, "15"); + ErrorCheck.Add(13, "18"); + ErrorCheck.Add(12, "19"); + //ErrorCheck.Add(11, "300"); + ErrorCheck.Add(10, "299"); + ErrorCheck.Add(9, "298"); + ErrorCheck.Add(8, "297"); + ErrorCheck.Add(7, "296"); + //ErrorCheck.Add(6,""); + ErrorCheck.Add(5, "12"); + ErrorCheck.Add(4, "13"); + ErrorCheck.Add(3, "14"); + ErrorCheck.Add(2, "16"); + ErrorCheck.Add(1, "11"); + ErrorCheck.Add(0, "10"); + + Errlog = new Queue(); + MinRecvLength = 4; + + } + + + + #region "External Events" + + + /// + /// 분석완료된 데이터 이벤트 + /// + public event EventHandler DataReceive; + + + #endregion + + + protected override bool CustomParser(byte[] buf, out byte[] remainBuffer) + { + List remain = new List(); + + //데이터는 총 34byt 이며 , DD~77로 구성됨 + Boolean bComplete = false; + for (int i = 0; i < buf.Length; i++) + { + var incomByte = buf[i]; + if (bComplete == true) + { + remain.Add(incomByte); + } + else + { + if (incomByte == 0x02) + { + findSTX = true; + tempBuffer.Clear(); + tempBuffer.Add(incomByte); + } + else if (incomByte == 0x03) + { + //데이터가 맞게 수신됨 + //tempBuffer.Add(incomByte); + tempBuffer.Add(incomByte); + findSTX = false; + bComplete = true; + } + else + { + tempBuffer.Add(incomByte); + if (tempBuffer.Count == 150) //data overload + { + findSTX = false; + tempBuffer.Clear(); + bComplete = false; + RaiseMessage(MessageType.Error, "Buffer Over"); + } + } + } + } + + remainBuffer = remain.ToArray(); + return bComplete; + } + + public override bool ProcessRecvData(byte[] data) + { + //LastReceiveBuffer + var frame = new Dataframe(data, MinRecvLength); + if (frame.Valid == false) + { + RaiseMessage(MessageType.Error, frame.Message); + return false; + } + else if (frame.DataString.StartsWith("$") == false && CheckSum(data) == false) + { + RaiseMessage(MessageType.Error, "Checksum Error MSG=" + frame.DataString); + return false; + } + + var retval = true; + + /////////////////////////////////////////////////////////////////////////////// + if (frame.Cmd.Equals("ACK") || frame.Cmd.Equals("NAK")) + { // 응답확인값 수신 : Header(ACX), Length(9), CheckSum 확인 + RevACK(frame); + } + /////////////////////////////////////////////////////////////////////////////// + else if (frame.Cmd.Equals("STS")) + { // AGV 상태 정보 : Header(STS), Length(30), CheckSum 확인 + RevSTS(frame); + } + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + else if ((frame.Cmd.Equals("TAG") || frame.Cmd.Equals("CAL") || frame.Cmd.Equals("CCA"))) + { // TAG ID 정보 : Header(STX), Length(13), CheckSum 확인 + RevTAG(frame); + } + else if (frame.DataString.StartsWith("$")) + { + // $로 시작되는 AGV 상태 표시 + //var text_Sts_Etc = Encoding.Default.GetString(bRcvData, 3, bRcvData.Length - 2).TrimStart(' '); //20210311 김정만 - SmartX FrameWork 사용 안함으로 주석처리 + //var sMessageOther = Encoding.Default.GetString(bRcvData, 3, bRcvData.Length - 2).TrimStart(' '); + RaiseMessage(MessageType.Normal, "$메세지수신:" + frame.DataString); + } + else + { + try + { + DataReceive?.Invoke(this, new DataEventArgs(DataType.UNKNOWN)); + } + catch (Exception ex) + { + RaiseMessage(MessageType.Error, ex.Message); + retval = false; + } + } + return retval; + + + } + + #region [수신] ACK(응답확인값) 분석 + + public string ACKData { get; set; } = string.Empty; + public DateTime ACKtime { get; set; } = DateTime.Now; + private void RevACK(Dataframe frame) + { + //ACKSADA7 + var rcvdNow = frame.DataString; + var bRcvData = frame.Buffer; + + ACKData = rcvdNow.Substring(3); + ACKtime = DateTime.Now; + + if (rcvdNow.StartsWith("ACK")) + { + //RaiseMessage("get ack"); + DataReceive?.Invoke(this, new DataEventArgs(DataType.ACK)); + //if (datamanager.commandQueue.Count != 0) + //{ + // byte[] bCmdData = encoding.GetBytes((String)datamanager.commandQueue.Peek()); + // if (bCmdData[1] == bRcvData[4] && bCmdData[2] == bRcvData[5] && bCmdData[3] == bRcvData[6]) //보낸값이 맞는지 확인후 Dequeue + // { + // nSendCount = 0; + // datamanager.commandQueue.Dequeue(); + // sSendCommandString = ""; + // } + //} + } + else if (rcvdNow.StartsWith("NAK")) + { + //RaiseMessage("get nak"); + DataReceive?.Invoke(this, new DataEventArgs(DataType.NAK)); + //nSendCount = 0; //NAK - 재전송이 날아왔을때 nSendCommandCounter 초기화 + } + } + + #endregion + + public SystemFlag0 system0 = new SystemFlag0(); + public SystemFlag1 system1 = new SystemFlag1(); + public ErrorFlag error = new ErrorFlag(); + public AgvData data = new AgvData(); + public Signal1 signal1 = new Signal1(); + public Signal2 signal2 = new Signal2(); + + #region [수신] STS(AGV상태정보) 분석 + public string LastSTS { get; set; } = string.Empty; + private void RevSTS(Dataframe frame) + { + LastSTS = frame.DataString; + string rcvdNow = frame.DataString.Replace("\0", ""); + byte[] bRcvData = frame.Buffer; + var encoding = System.Text.Encoding.Default; + try + { + + // AGV 베터리 잔량 표시 flag (4~6) ///////////////////////////////////////////////////////////////////////////////////////////////////////////// + var idx = 3; + var battery = int.Parse(rcvdNow.Substring(idx, 3)) / 10f;// Convert.ToDouble(encoding.GetString(rcvdNow, 3, 3)) / 10; + idx += 3; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // AGV 장치연결상태 flag (7~10) - System Flag 0 + var nDataTemp = Convert.ToInt16(rcvdNow.Substring(idx, 4), 16); + system0.SetValue(nDataTemp); + idx += 4; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // AGV Sts(현재 상태) flag (11~14) - System Flag 1 + nDataTemp = Convert.ToInt16(rcvdNow.Substring(idx, 4), 16); + system1.SetValue(nDataTemp); + idx += 4; + + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // AGV Error flag (15~18) - Error Flag + nDataTemp = Convert.ToInt16(rcvdNow.Substring(idx, 4), 16); + error.SetValue(nDataTemp); + idx += 4; + + data.Speed = rcvdNow.Substring(idx, 1)[0]; idx += 1; //L,M.H + data.Sts = rcvdNow.Substring(idx, 1)[0]; idx += 1; //S(직진),L(좌분기),R(우분기) + data.Direction = rcvdNow.Substring(idx, 1)[0]; idx += 1; //F,B,L,R + data.guidesensor = int.Parse(rcvdNow.Substring(idx, 1)); idx += 1; //가이드 좌측부터 1~9 + + nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16); + signal1.SetValue(nDataTemp); idx += 2; + + //agv가 멈춰있고 마크센서가 들어온경우, 턴 작업이었다면 턴 셋팅을 한다 + if (system1.agv_run == false && system1.agv_stop == true && + TurnInformation != null && signal1.mark_sensor) + { + if (TurnInformation.Start.Year > 2000) + { + if (TurnInformation.State == eNarumiTurn.LeftIng || TurnInformation.State == eNarumiTurn.RightIng) + { + TurnInformation.End = DateTime.Now; + if (TurnInformation.State == eNarumiTurn.LeftIng) TurnInformation.State = eNarumiTurn.Left; + if (TurnInformation.State == eNarumiTurn.RightIng) TurnInformation.State = eNarumiTurn.Right; + } + } + else + { + //시작시간이 설정되지 않았다면 처리하지 않는다. + } + } + + if (idx <= rcvdNow.Length - 2) + { + nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16); + signal2.SetValue(nDataTemp); + } + + + DataReceive?.Invoke(this, new DataEventArgs(DataType.STS)); + + } + catch (Exception ex) + { + RaiseMessage(MessageType.Error, $"Parse Error(STS) = {ex.Message}"); + } + } + + #endregion + + + + + + + #region [수신] TAG(태그정보) 분석 + + System.Text.Encoding encoding = System.Text.Encoding.Default; + string old_TagString = string.Empty; + string old_CALString = string.Empty; + string old_CCAString = string.Empty; + private void RevTAG(Dataframe frame) + { + string rcvdNow = frame.DataString; + byte[] bRcvData = frame.Buffer; + if (rcvdNow.StartsWith("TAG")) + { + //221123 chi 숫자로변경 + var tagnostr = rcvdNow.Substring(3); + if (ushort.TryParse(tagnostr, out ushort tagnoint)) + { + var Changed = !old_TagString.Equals(tagnostr); + data.TagString = tagnostr; + data.TagNo = tagnoint; + old_TagString = tagnostr; + DataReceive?.Invoke(this, new DataEventArgs(DataType.TAG)); + } + + WriteData(MakeCheckSum("ACKTAG")); + + } + else if (rcvdNow.StartsWith("CAL")) + { + + var tagnostr = encoding.GetString(bRcvData, 4, 4); + if (int.TryParse(tagnostr, out int tagnoint)) + { + var Changed = !old_CALString.Equals(tagnostr); + data.CallString = tagnostr; + data.CallNo = tagnoint; + old_CALString = tagnostr; + if (Changed) DataReceive?.Invoke(this, new DataEventArgs(DataType.CALL)); + } + WriteData(MakeCheckSum("ACKCAL")); + } + else if (rcvdNow.StartsWith("CCA")) //능동형 Call에 의하여 들어 오는 구문 + { + + var tagnostr = encoding.GetString(bRcvData, 4, 4); + if (int.TryParse(tagnostr, out int tagnoint)) + { + var Changed = !old_CCAString.Equals(tagnostr); + data.CCAString = tagnostr; + data.CCANo = tagnoint; + old_CCAString = tagnostr; + if (Changed) DataReceive?.Invoke(this, new DataEventArgs(DataType.CCA)); + } + WriteData(MakeCheckSum("ACKCCA")); + } + } + #endregion + + private string MakeCheckSum(string sCommand) + { + //sCommand = sCommand.ToUpper(); + + List buffer = new List(); + buffer.Add(0x02); + + //byte[] bCommand = System.Text.ASCIIEncoding.ASCII.GetBytes(sCommand); + buffer.AddRange(System.Text.ASCIIEncoding.ASCII.GetBytes(sCommand)); + + //make sum + int nSum = 0; + for (int nCnt = 1; nCnt < buffer.Count; nCnt++) + nSum += buffer[nCnt]; + + string sSum = nSum.ToString("X2").ToUpper();// Convert.ToString(nSum, 16).ToUpper(); + if (sSum.Length < 2) sSum = "0" + sSum; + sSum = sSum.Substring(sSum.Length - 2); + + //if (sSum.Length == 3) + // sSum = sSum.Remove(0, 1); + //else if (sSum.Length == 4) + // sSum = sSum.Remove(0, 2); + + buffer.AddRange(System.Text.ASCIIEncoding.Default.GetBytes(sSum)); + buffer.Add(0x03); + + // byte[] bStxEtx = { 0x02, 0x03 }; + + + + //var orgstr = (System.Text.ASCIIEncoding.ASCII.GetString(bStxEtx, 0, 1) + sCommand + sSum + System.Text.ASCIIEncoding.ASCII.GetString(bStxEtx, 1, 1)); + var newstr = System.Text.Encoding.Default.GetString(buffer.ToArray()); + return newstr; + + } + + ///// + ///// commandQueue에 명령을 추가합니다(체크섬은 자동 추가됨) + ///// + ///// 체크섬을 제외한 평문 + ///// sendlog 에 추가할 경우 true를 입력하세요 + //public void AddCommand(string cmd, bool addlog = true, int Repeat = 1) + //{ + // var fullcmd = MakeCheckSum(cmd); + // for (int i = 0; i < Repeat; i++) + // commandQueue.Enqueue(fullcmd); + // if (addlog) + // { + // Message?.Invoke(this, new MessageEventArgs() + // } + //} + + public enum eStopOpt + { + Stop = 0, + MarkStop, + MarkRotateLeft, + MarkRotateRight, + MarkChangeDirection, + } + public enum eRunOpt + { + NotSet, + Forward, + Backward, + } + + public enum ManulOpt + { + FS, + BS, + RT, + LT, + FL, + FR, + BL, + BR, + } + public enum Sensor + { + PBSOff = 0, + PBSOn, + AllOn, + } + public enum Speed + { + High, + Mid, + Low, + } + public enum LiftCommand + { + /// + /// lift up + /// + UP, + /// + /// lift down + /// + DN, + /// + /// lift 동작 정지 + /// + STP, + /// + /// magnet holder on + /// + ON, + /// + /// magnet holder off + /// + OFF + } + + + private bool CheckSum(byte[] bData) + { + if (bData.Length < 2) // 데이터 길이가 2이하일 경우 비정상 처리 + return false; + + int nSum = 0; + // byte[] bData = encoding.GetBytes(sData); + + for (int nCnt = 1; nCnt < bData.Length - 3; nCnt++) + { + nSum += bData[nCnt]; + } + + + string sSum = Convert.ToString(nSum, 16).ToUpper(); + + string sCSTemp = string.Empty; + + if (sSum.Length == 3) + sCSTemp = sSum.Remove(0, 1); + else if (sSum.Length == 4) + sCSTemp = sSum.Remove(0, 2); + + if (bData[bData.Length - 2] == '*' && bData[bData.Length - 3] == '*') + return true; + + if (sCSTemp[0] == (char)(bData[bData.Length - 3]) && sCSTemp[1] == (char)(bData[bData.Length - 2])) + return true; + else + return false; + } + + } + + +} diff --git a/Cs_HMI/SubProject/AGV/NarumiSerialComm.cs b/HMI/SubProject/AGV/NarumiSerialComm.cs similarity index 100% rename from Cs_HMI/SubProject/AGV/NarumiSerialComm.cs rename to HMI/SubProject/AGV/NarumiSerialComm.cs diff --git a/Cs_HMI/SubProject/AGV/Properties/AssemblyInfo.cs b/HMI/SubProject/AGV/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/SubProject/AGV/Properties/AssemblyInfo.cs rename to HMI/SubProject/AGV/Properties/AssemblyInfo.cs index e23ba39..93e5772 100644 --- a/Cs_HMI/SubProject/AGV/Properties/AssemblyInfo.cs +++ b/HMI/SubProject/AGV/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("BMS Commnunication Module")] -[assembly: AssemblyDescription("BMS Commnunication Module")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("ATK4")] -[assembly: AssemblyProduct("BMS Commnunication Module")] -[assembly: AssemblyCopyright("Copyright ©ATK4 2020")] -[assembly: AssemblyTrademark("ATK4")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("7a94c30c-6772-4f71-bf9c-111071a1bc70")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 -// 기본값으로 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("20.03.09.0000")] -[assembly: AssemblyFileVersion("20.03.09.0000")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("BMS Commnunication Module")] +[assembly: AssemblyDescription("BMS Commnunication Module")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("ATK4")] +[assembly: AssemblyProduct("BMS Commnunication Module")] +[assembly: AssemblyCopyright("Copyright ©ATK4 2020")] +[assembly: AssemblyTrademark("ATK4")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("7a94c30c-6772-4f71-bf9c-111071a1bc70")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("20.03.09.0000")] +[assembly: AssemblyFileVersion("20.03.09.0000")] diff --git a/Cs_HMI/SubProject/AGV/Structure/AgvData.cs b/HMI/SubProject/AGV/Structure/AgvData.cs similarity index 96% rename from Cs_HMI/SubProject/AGV/Structure/AgvData.cs rename to HMI/SubProject/AGV/Structure/AgvData.cs index 3dc598a..3902eaf 100644 --- a/Cs_HMI/SubProject/AGV/Structure/AgvData.cs +++ b/HMI/SubProject/AGV/Structure/AgvData.cs @@ -1,86 +1,86 @@ -using System; - -namespace arDev -{ - public partial class Narumi - { - - public class AgvData - { - - /// - /// S: Straight - /// L: Left - /// R: Right - /// - public char Sts { get; set; } - - /// - /// H : High - /// M : Middle - /// L : Low - /// S : Mark Stop - /// - public char Speed { get; set; } - - /// - /// F : Front - /// B : Back - /// - public char Direction { get; set; } - - public int guidesensor { get; set; } - - - public string TagString { get; set; } = string.Empty; - public ushort TagNo { get; set; } = 0; - public string CallString { get; set; } = string.Empty; - public int CallNo { get; set; } = -1; - public string CCAString { get; set; } = string.Empty; - public int CCANo { get; set; } = -1; - - - - - public override string ToString() - { - //모든사태값을 탭으로 구분하여 문자를 생성한다 - var sb = new System.Text.StringBuilder(); - - sb.AppendLine($"[Sts] : {Sts}"); - sb.AppendLine($"[Speed] : {Speed}"); - sb.AppendLine($"[Direction] : {Direction}"); - sb.AppendLine($"[guidesensor] : {guidesensor}"); - - sb.AppendLine($"[TagNo] : {TagNo}"); - sb.AppendLine($"[CallNo] : {CallNo}"); - sb.AppendLine($"[CCANo] : {CCANo}"); - - - return sb.ToString(); - } - - public string ToRtfString() - { - var sb = new System.Text.StringBuilder(); - sb.AppendLine(@"{\rtf1\ansi\deff0"); - sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue - - sb.AppendLine($"[Sts] : {Sts}" + @"\line"); - sb.AppendLine($"[Speed] : {Speed}" + @"\line"); - sb.AppendLine($"[Direction] : {Direction}" + @"\line"); - sb.AppendLine($"[guidesensor] : {guidesensor}" + @"\line"); - sb.AppendLine($"[TagNo] : {TagNo}" + @"\line"); - sb.AppendLine($"[CallNo] : {CallNo}" + @"\line"); - sb.AppendLine($"[CCANo] : {CCANo}" + @"\line"); - - sb.AppendLine("}"); - return sb.ToString(); - } - - - } - } - - -} +using System; + +namespace arDev +{ + public partial class Narumi + { + + public class AgvData + { + + /// + /// S: Straight + /// L: Left + /// R: Right + /// + public char Sts { get; set; } + + /// + /// H : High + /// M : Middle + /// L : Low + /// S : Mark Stop + /// + public char Speed { get; set; } + + /// + /// F : Front + /// B : Back + /// + public char Direction { get; set; } + + public int guidesensor { get; set; } + + + public string TagString { get; set; } = string.Empty; + public ushort TagNo { get; set; } = 0; + public string CallString { get; set; } = string.Empty; + public int CallNo { get; set; } = -1; + public string CCAString { get; set; } = string.Empty; + public int CCANo { get; set; } = -1; + + + + + public override string ToString() + { + //모든사태값을 탭으로 구분하여 문자를 생성한다 + var sb = new System.Text.StringBuilder(); + + sb.AppendLine($"[Sts] : {Sts}"); + sb.AppendLine($"[Speed] : {Speed}"); + sb.AppendLine($"[Direction] : {Direction}"); + sb.AppendLine($"[guidesensor] : {guidesensor}"); + + sb.AppendLine($"[TagNo] : {TagNo}"); + sb.AppendLine($"[CallNo] : {CallNo}"); + sb.AppendLine($"[CCANo] : {CCANo}"); + + + return sb.ToString(); + } + + public string ToRtfString() + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine(@"{\rtf1\ansi\deff0"); + sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue + + sb.AppendLine($"[Sts] : {Sts}" + @"\line"); + sb.AppendLine($"[Speed] : {Speed}" + @"\line"); + sb.AppendLine($"[Direction] : {Direction}" + @"\line"); + sb.AppendLine($"[guidesensor] : {guidesensor}" + @"\line"); + sb.AppendLine($"[TagNo] : {TagNo}" + @"\line"); + sb.AppendLine($"[CallNo] : {CallNo}" + @"\line"); + sb.AppendLine($"[CCANo] : {CCANo}" + @"\line"); + + sb.AppendLine("}"); + return sb.ToString(); + } + + + } + } + + +} diff --git a/Cs_HMI/SubProject/AGV/Structure/ErrorFlag.cs b/HMI/SubProject/AGV/Structure/ErrorFlag.cs similarity index 97% rename from Cs_HMI/SubProject/AGV/Structure/ErrorFlag.cs rename to HMI/SubProject/AGV/Structure/ErrorFlag.cs index 7c7dddf..e930f06 100644 --- a/Cs_HMI/SubProject/AGV/Structure/ErrorFlag.cs +++ b/HMI/SubProject/AGV/Structure/ErrorFlag.cs @@ -1,142 +1,142 @@ -using System; - -namespace arDev -{ - public partial class Narumi - { - - public class ErrorFlag - { - private COMM.Flag _value { get; set; } = new COMM.Flag(16); - public void SetValue(Int16 value) { this._value.writeValue(value); } - public UInt16 Value - { - get - { - return (UInt16)_value.Value; - } - } - public enum eflag - { - Emergency = 0, - Overcurrent, - Charger_run_error, - Charger_pos_error, - line_out_error = 4, - - /// - /// 기동시 자석 감지 에러 - /// - runerror_by_no_magent_line=5, - /// - /// 호출제어기 통신 오류 - /// - controller_comm_error =6, - - /// - /// 배터리 저전압 - /// - battery_low_voltage=7, - - spare08=8, - - lift_timeout=9, - lift_driver_overcurrent=10, - lift_driver_emergency = 11, - - /// - /// 도착경보기 통신 오류 - /// - arrive_ctl_comm_error, - - /// - /// 자동문제어기 통신 오류 - /// - door_ctl_comm_error, - - /// - /// 자동충전기 통신 오류 - /// - charger_comm_error, - - /// - /// 교차로 제어기 통신 오류 - /// - cross_ctrl_comm_error, - } - - public bool GetValue(eflag idx) - { - return _value.Get((int)idx); - } - public bool GetChanged(eflag idx) - { - return _value.GetChanged((int)idx); - } - - public bool Emergency { get { return GetValue(eflag.Emergency); } } - public bool Overcurrent { get { return GetValue(eflag.Overcurrent); } } - public bool Charger_run_error { get { return GetValue(eflag.Charger_run_error); } } - public bool Charger_pos_error { get { return GetValue(eflag.Charger_pos_error); } } - public bool line_out_error { get { return GetValue(eflag.line_out_error); } } - public bool runerror_by_no_magent_line { get { return GetValue(eflag.runerror_by_no_magent_line); } } - public bool controller_comm_error { get { return GetValue(eflag.controller_comm_error); } } - public bool arrive_ctl_comm_error { get { return GetValue(eflag.arrive_ctl_comm_error); } } - public bool door_ctl_comm_error { get { return GetValue(eflag.door_ctl_comm_error); } } - public bool charger_comm_error { get { return GetValue(eflag.charger_comm_error); } } - public bool cross_ctrl_comm_error { get { return GetValue(eflag.cross_ctrl_comm_error); } } - public override string ToString() - { - //모든사태값을 탭으로 구분하여 문자를 생성한다 - var sb = new System.Text.StringBuilder(); - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eflag), i); - if (def) - { - var flag = (eflag)i; - var value = _value.Get(i); - sb.AppendLine($"[{i:00}][{flag}] : {value}"); - } - - - } - return sb.ToString(); - } - - public string ToRtfString() - { - var sb = new System.Text.StringBuilder(); - sb.AppendLine(@"{\rtf1\ansi\deff0"); - sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue - - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eflag), i); - if (def) - { - var flag = (eflag)i; - var value = _value.Get(i); - string line = $"[{i:00}][{flag}] : {value}"; - - // : true가 포함된 줄은 파란색 - if (value == true) - { - sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); - } - else - { - sb.AppendLine(line + @"\line"); - } - } - } - - sb.AppendLine("}"); - return sb.ToString(); - } - } - - } - - -} +using System; + +namespace arDev +{ + public partial class Narumi + { + + public class ErrorFlag + { + private COMM.Flag _value { get; set; } = new COMM.Flag(16); + public void SetValue(Int16 value) { this._value.writeValue(value); } + public UInt16 Value + { + get + { + return (UInt16)_value.Value; + } + } + public enum eflag + { + Emergency = 0, + Overcurrent, + Charger_run_error, + Charger_pos_error, + line_out_error = 4, + + /// + /// 기동시 자석 감지 에러 + /// + runerror_by_no_magent_line=5, + /// + /// 호출제어기 통신 오류 + /// + controller_comm_error =6, + + /// + /// 배터리 저전압 + /// + battery_low_voltage=7, + + spare08=8, + + lift_timeout=9, + lift_driver_overcurrent=10, + lift_driver_emergency = 11, + + /// + /// 도착경보기 통신 오류 + /// + arrive_ctl_comm_error, + + /// + /// 자동문제어기 통신 오류 + /// + door_ctl_comm_error, + + /// + /// 자동충전기 통신 오류 + /// + charger_comm_error, + + /// + /// 교차로 제어기 통신 오류 + /// + cross_ctrl_comm_error, + } + + public bool GetValue(eflag idx) + { + return _value.Get((int)idx); + } + public bool GetChanged(eflag idx) + { + return _value.GetChanged((int)idx); + } + + public bool Emergency { get { return GetValue(eflag.Emergency); } } + public bool Overcurrent { get { return GetValue(eflag.Overcurrent); } } + public bool Charger_run_error { get { return GetValue(eflag.Charger_run_error); } } + public bool Charger_pos_error { get { return GetValue(eflag.Charger_pos_error); } } + public bool line_out_error { get { return GetValue(eflag.line_out_error); } } + public bool runerror_by_no_magent_line { get { return GetValue(eflag.runerror_by_no_magent_line); } } + public bool controller_comm_error { get { return GetValue(eflag.controller_comm_error); } } + public bool arrive_ctl_comm_error { get { return GetValue(eflag.arrive_ctl_comm_error); } } + public bool door_ctl_comm_error { get { return GetValue(eflag.door_ctl_comm_error); } } + public bool charger_comm_error { get { return GetValue(eflag.charger_comm_error); } } + public bool cross_ctrl_comm_error { get { return GetValue(eflag.cross_ctrl_comm_error); } } + public override string ToString() + { + //모든사태값을 탭으로 구분하여 문자를 생성한다 + var sb = new System.Text.StringBuilder(); + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eflag), i); + if (def) + { + var flag = (eflag)i; + var value = _value.Get(i); + sb.AppendLine($"[{i:00}][{flag}] : {value}"); + } + + + } + return sb.ToString(); + } + + public string ToRtfString() + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine(@"{\rtf1\ansi\deff0"); + sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue + + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eflag), i); + if (def) + { + var flag = (eflag)i; + var value = _value.Get(i); + string line = $"[{i:00}][{flag}] : {value}"; + + // : true가 포함된 줄은 파란색 + if (value == true) + { + sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); + } + else + { + sb.AppendLine(line + @"\line"); + } + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + } + + } + + +} diff --git a/Cs_HMI/SubProject/AGV/Structure/Signals.cs b/HMI/SubProject/AGV/Structure/Signals.cs similarity index 97% rename from Cs_HMI/SubProject/AGV/Structure/Signals.cs rename to HMI/SubProject/AGV/Structure/Signals.cs index c118d1e..683a16a 100644 --- a/Cs_HMI/SubProject/AGV/Structure/Signals.cs +++ b/HMI/SubProject/AGV/Structure/Signals.cs @@ -1,187 +1,187 @@ -using System; - -namespace arDev -{ - public partial class Narumi - { - public enum eSignal1 - { - front_gate_out = 0, - rear_gte_out, - mark_sensor_1, - mark_sensor_2, - lift_down_sensor, - lift_up_sensor, - magnet_relay, - charger_align_sensor, - } - public enum eSignal2 - { - cart_detect1 = 0, - cart_detect2, - } - - public class Signal1 - { - private COMM.Flag _value { get; set; } = new COMM.Flag(8); - public void SetValue(Int16 value) { this._value.writeValue(value); } - public UInt16 Value - { - get - { - return (UInt16)_value.Value; - } - } - - - public bool GetValue(eSignal1 idx) - { - return _value.Get((int)idx); - } - public bool GetChanged(eSignal1 idx) - { - return _value.GetChanged((int)idx); - } - - public Boolean front_gate_out { get { return GetValue(eSignal1.front_gate_out); } } - public Boolean rear_sensor_out { get { return GetValue(eSignal1.rear_gte_out); } } - public Boolean mark_sensor_1 { get { return GetValue(eSignal1.mark_sensor_1); } } - public Boolean mark_sensor_2 { get { return GetValue(eSignal1.mark_sensor_2); } } - public Boolean mark_sensor { get { return mark_sensor_1 || mark_sensor_2; } } - public Boolean charger_align_sensor { get { return GetValue(eSignal1.charger_align_sensor); } } - public Boolean lift_up { get { return GetValue(eSignal1.lift_up_sensor); } } - public Boolean lift_down { get { return GetValue(eSignal1.lift_down_sensor); } } - public Boolean magnet_on { get { return GetValue(eSignal1.magnet_relay); } } - - public override string ToString() - { - //모든사태값을 탭으로 구분하여 문자를 생성한다 - var sb = new System.Text.StringBuilder(); - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eSignal1), i); - if (def) - { - var flag = (eSignal1)i; - var value = _value.Get(i); - sb.AppendLine($"[{i:00}][{flag}] : {value}"); - } - - } - return sb.ToString(); - } - - public string ToRtfString() - { - var sb = new System.Text.StringBuilder(); - sb.AppendLine(@"{\rtf1\ansi\deff0"); - sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue - - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eSignal1), i); - if (def) - { - var flag = (eSignal1)i; - var value = _value.Get(i); - string line = $"[{i:00}][{flag}] : {value}"; - - // : true가 포함된 줄은 파란색 - if (value == true) - { - sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); - } - else - { - sb.AppendLine(line + @"\line"); - } - } - } - - sb.AppendLine("}"); - return sb.ToString(); - } - - } - - - public class Signal2 - { - private COMM.Flag _value { get; set; } = new COMM.Flag(8); - public void SetValue(Int16 value) { this._value.writeValue(value); } - public UInt16 Value - { - get - { - return (UInt16)_value.Value; - } - } - - - public bool GetValue(eSignal2 idx) - { - return _value.Get((int)idx); - } - public bool GetChanged(eSignal2 idx) - { - return _value.GetChanged((int)idx); - } - - - public Boolean cart_detect1 { get { return GetValue(eSignal2.cart_detect1); } } - public Boolean cart_detect2 { get { return GetValue(eSignal2.cart_detect2); } } - public override string ToString() - { - //모든사태값을 탭으로 구분하여 문자를 생성한다 - var sb = new System.Text.StringBuilder(); - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eSignal2), i); - if(def) - { - var flag = (eSignal2)i; - var value = _value.Get(i); - sb.AppendLine($"[{i:00}][{flag}] : {value}"); - } - - } - return sb.ToString(); - } - - public string ToRtfString() - { - var sb = new System.Text.StringBuilder(); - sb.AppendLine(@"{\rtf1\ansi\deff0"); - sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue - - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eSignal2), i); - if (def) - { - var flag = (eSignal2)i; - var value = _value.Get(i); - string line = $"[{i:00}][{flag}] : {value}"; - - // : true가 포함된 줄은 파란색 - if (value == true) - { - sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); - } - else - { - sb.AppendLine(line + @"\line"); - } - } - } - - sb.AppendLine("}"); - return sb.ToString(); - } - - } - - } - - -} +using System; + +namespace arDev +{ + public partial class Narumi + { + public enum eSignal1 + { + front_gate_out = 0, + rear_gte_out, + mark_sensor_1, + mark_sensor_2, + lift_down_sensor, + lift_up_sensor, + magnet_relay, + charger_align_sensor, + } + public enum eSignal2 + { + cart_detect1 = 0, + cart_detect2, + } + + public class Signal1 + { + private COMM.Flag _value { get; set; } = new COMM.Flag(8); + public void SetValue(Int16 value) { this._value.writeValue(value); } + public UInt16 Value + { + get + { + return (UInt16)_value.Value; + } + } + + + public bool GetValue(eSignal1 idx) + { + return _value.Get((int)idx); + } + public bool GetChanged(eSignal1 idx) + { + return _value.GetChanged((int)idx); + } + + public Boolean front_gate_out { get { return GetValue(eSignal1.front_gate_out); } } + public Boolean rear_sensor_out { get { return GetValue(eSignal1.rear_gte_out); } } + public Boolean mark_sensor_1 { get { return GetValue(eSignal1.mark_sensor_1); } } + public Boolean mark_sensor_2 { get { return GetValue(eSignal1.mark_sensor_2); } } + public Boolean mark_sensor { get { return mark_sensor_1 || mark_sensor_2; } } + public Boolean charger_align_sensor { get { return GetValue(eSignal1.charger_align_sensor); } } + public Boolean lift_up { get { return GetValue(eSignal1.lift_up_sensor); } } + public Boolean lift_down { get { return GetValue(eSignal1.lift_down_sensor); } } + public Boolean magnet_on { get { return GetValue(eSignal1.magnet_relay); } } + + public override string ToString() + { + //모든사태값을 탭으로 구분하여 문자를 생성한다 + var sb = new System.Text.StringBuilder(); + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eSignal1), i); + if (def) + { + var flag = (eSignal1)i; + var value = _value.Get(i); + sb.AppendLine($"[{i:00}][{flag}] : {value}"); + } + + } + return sb.ToString(); + } + + public string ToRtfString() + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine(@"{\rtf1\ansi\deff0"); + sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue + + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eSignal1), i); + if (def) + { + var flag = (eSignal1)i; + var value = _value.Get(i); + string line = $"[{i:00}][{flag}] : {value}"; + + // : true가 포함된 줄은 파란색 + if (value == true) + { + sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); + } + else + { + sb.AppendLine(line + @"\line"); + } + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + + } + + + public class Signal2 + { + private COMM.Flag _value { get; set; } = new COMM.Flag(8); + public void SetValue(Int16 value) { this._value.writeValue(value); } + public UInt16 Value + { + get + { + return (UInt16)_value.Value; + } + } + + + public bool GetValue(eSignal2 idx) + { + return _value.Get((int)idx); + } + public bool GetChanged(eSignal2 idx) + { + return _value.GetChanged((int)idx); + } + + + public Boolean cart_detect1 { get { return GetValue(eSignal2.cart_detect1); } } + public Boolean cart_detect2 { get { return GetValue(eSignal2.cart_detect2); } } + public override string ToString() + { + //모든사태값을 탭으로 구분하여 문자를 생성한다 + var sb = new System.Text.StringBuilder(); + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eSignal2), i); + if(def) + { + var flag = (eSignal2)i; + var value = _value.Get(i); + sb.AppendLine($"[{i:00}][{flag}] : {value}"); + } + + } + return sb.ToString(); + } + + public string ToRtfString() + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine(@"{\rtf1\ansi\deff0"); + sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue + + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eSignal2), i); + if (def) + { + var flag = (eSignal2)i; + var value = _value.Get(i); + string line = $"[{i:00}][{flag}] : {value}"; + + // : true가 포함된 줄은 파란색 + if (value == true) + { + sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); + } + else + { + sb.AppendLine(line + @"\line"); + } + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + + } + + } + + +} diff --git a/Cs_HMI/SubProject/AGV/Structure/SystemFlag0.cs b/HMI/SubProject/AGV/Structure/SystemFlag0.cs similarity index 97% rename from Cs_HMI/SubProject/AGV/Structure/SystemFlag0.cs rename to HMI/SubProject/AGV/Structure/SystemFlag0.cs index 2274b0e..dfc701a 100644 --- a/Cs_HMI/SubProject/AGV/Structure/SystemFlag0.cs +++ b/HMI/SubProject/AGV/Structure/SystemFlag0.cs @@ -1,108 +1,108 @@ -using System; - -namespace arDev -{ - public partial class Narumi - { - - public class SystemFlag0 - { - private COMM.Flag _value { get; set; } = new COMM.Flag(16); - public void SetValue(Int16 value) { this._value.writeValue(value); } - public UInt16 Value - { - get - { - return (UInt16)_value.Value; - } - } - - public enum eflag - { - Memory_RW_State = 5, - EXT_IO_Conn_State, - RFID_Conn_State, - M5E_Module_Run_State = 8, - Front_Ultrasonic_Conn_State, - Front_Untrasonic_Sensor_State, - Side_Ultrasonic_Conn_State, - Side_Ultrasonic_Sensor_State = 12, - Front_Guide_Sensor_State, - Rear_Guide_Sensor_State, - Battery_Level_Check - } - - public bool GetValue(eflag idx) - { - return _value.Get((int)idx); - } - public bool GetChanged(eflag idx) - { - return _value.GetChanged((int)idx); - } - public bool Memory_RW_State { get { return GetValue(eflag.Memory_RW_State); } } - public bool EXT_IO_Conn_State { get { return GetValue(eflag.EXT_IO_Conn_State); } } - public bool RFID_Conn_State { get { return GetValue(eflag.RFID_Conn_State); } } - public bool M5E_Module_Run_State { get { return GetValue(eflag.M5E_Module_Run_State); } } - public bool Front_Ultrasonic_Conn_State { get { return GetValue(eflag.Front_Ultrasonic_Conn_State); } } - public bool Front_Untrasonic_Sensor_State { get { return GetValue(eflag.Front_Untrasonic_Sensor_State); } } - public bool Side_Ultrasonic_Conn_State { get { return GetValue(eflag.Side_Ultrasonic_Conn_State); } } - public bool Side_Ultrasonic_Sensor_State { get { return GetValue(eflag.Side_Ultrasonic_Sensor_State); } } - public bool Front_Guide_Sensor_State { get { return GetValue(eflag.Front_Guide_Sensor_State); } } - public bool Rear_Guide_Sensor_State { get { return GetValue(eflag.Rear_Guide_Sensor_State); } } - public bool Battery_Level_Check { get { return GetValue(eflag.Battery_Level_Check); } } - - public override string ToString() - { - //모든사태값을 탭으로 구분하여 문자를 생성한다 - var sb = new System.Text.StringBuilder(); - for(int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eflag), i); - if (def) - { - var flag = (eflag)i; - var value = _value.Get(i); - sb.AppendLine($"[{i:00}][{flag}] : {value}"); - } - - } - return sb.ToString(); - } - - public string ToRtfString() - { - var sb = new System.Text.StringBuilder(); - sb.AppendLine(@"{\rtf1\ansi\deff0"); - sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue - - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eflag), i); - if (def) - { - var flag = (eflag)i; - var value = _value.Get(i); - string line = $"[{i:00}][{flag}] : {value}"; - - // : true가 포함된 줄은 파란색 - if (value == true) - { - sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); - } - else - { - sb.AppendLine(line + @"\line"); - } - } - } - - sb.AppendLine("}"); - return sb.ToString(); - } - } - - } - - -} +using System; + +namespace arDev +{ + public partial class Narumi + { + + public class SystemFlag0 + { + private COMM.Flag _value { get; set; } = new COMM.Flag(16); + public void SetValue(Int16 value) { this._value.writeValue(value); } + public UInt16 Value + { + get + { + return (UInt16)_value.Value; + } + } + + public enum eflag + { + Memory_RW_State = 5, + EXT_IO_Conn_State, + RFID_Conn_State, + M5E_Module_Run_State = 8, + Front_Ultrasonic_Conn_State, + Front_Untrasonic_Sensor_State, + Side_Ultrasonic_Conn_State, + Side_Ultrasonic_Sensor_State = 12, + Front_Guide_Sensor_State, + Rear_Guide_Sensor_State, + Battery_Level_Check + } + + public bool GetValue(eflag idx) + { + return _value.Get((int)idx); + } + public bool GetChanged(eflag idx) + { + return _value.GetChanged((int)idx); + } + public bool Memory_RW_State { get { return GetValue(eflag.Memory_RW_State); } } + public bool EXT_IO_Conn_State { get { return GetValue(eflag.EXT_IO_Conn_State); } } + public bool RFID_Conn_State { get { return GetValue(eflag.RFID_Conn_State); } } + public bool M5E_Module_Run_State { get { return GetValue(eflag.M5E_Module_Run_State); } } + public bool Front_Ultrasonic_Conn_State { get { return GetValue(eflag.Front_Ultrasonic_Conn_State); } } + public bool Front_Untrasonic_Sensor_State { get { return GetValue(eflag.Front_Untrasonic_Sensor_State); } } + public bool Side_Ultrasonic_Conn_State { get { return GetValue(eflag.Side_Ultrasonic_Conn_State); } } + public bool Side_Ultrasonic_Sensor_State { get { return GetValue(eflag.Side_Ultrasonic_Sensor_State); } } + public bool Front_Guide_Sensor_State { get { return GetValue(eflag.Front_Guide_Sensor_State); } } + public bool Rear_Guide_Sensor_State { get { return GetValue(eflag.Rear_Guide_Sensor_State); } } + public bool Battery_Level_Check { get { return GetValue(eflag.Battery_Level_Check); } } + + public override string ToString() + { + //모든사태값을 탭으로 구분하여 문자를 생성한다 + var sb = new System.Text.StringBuilder(); + for(int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eflag), i); + if (def) + { + var flag = (eflag)i; + var value = _value.Get(i); + sb.AppendLine($"[{i:00}][{flag}] : {value}"); + } + + } + return sb.ToString(); + } + + public string ToRtfString() + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine(@"{\rtf1\ansi\deff0"); + sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue + + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eflag), i); + if (def) + { + var flag = (eflag)i; + var value = _value.Get(i); + string line = $"[{i:00}][{flag}] : {value}"; + + // : true가 포함된 줄은 파란색 + if (value == true) + { + sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); + } + else + { + sb.AppendLine(line + @"\line"); + } + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + } + + } + + +} diff --git a/Cs_HMI/SubProject/AGV/Structure/SystemFlag1.cs b/HMI/SubProject/AGV/Structure/SystemFlag1.cs similarity index 97% rename from Cs_HMI/SubProject/AGV/Structure/SystemFlag1.cs rename to HMI/SubProject/AGV/Structure/SystemFlag1.cs index f6e82f7..0e021a6 100644 --- a/Cs_HMI/SubProject/AGV/Structure/SystemFlag1.cs +++ b/HMI/SubProject/AGV/Structure/SystemFlag1.cs @@ -1,128 +1,128 @@ -using System; - -namespace arDev -{ - public partial class Narumi - { - - public class SystemFlag1 - { - private COMM.Flag _value { get; set; } = new COMM.Flag(16); - public void SetValue(Int16 value) { this._value.writeValue(value); } - - public UInt16 Value - { - get - { - return (UInt16)_value.Value; - } - } - public enum eflag - { - Side_Detect_Ignore = 3, - Melody_check, - Mark2_check, - Mark1_check, - gateout_check, - Battery_charging = 8, - re_Start, - - /// - /// 전방 감지 무시 - /// - front_detect_ignore, - - /// - /// 전방장애물감지상태 - /// - front_detect_check, - - /// - /// 전방감지 후 정지 상태 - /// - stop_by_front_detect = 12, - /// - /// 교차로 진입 후 정지 상태 - /// - stop_by_cross_in, - agv_stop, - agv_run - } - - public bool GetValue(eflag idx) - { - return _value.Get((int)idx); - } - public bool GetChanged(eflag idx) - { - return _value.GetChanged((int)idx); - } - public bool Side_Detect_Ignore { get { return GetValue(eflag.Side_Detect_Ignore); } } - public bool Melody_check { get { return GetValue(eflag.Melody_check); } } - public bool Mark2_check { get { return GetValue(eflag.Mark2_check); } } - public bool Mark1_check { get { return GetValue(eflag.Mark1_check); } } - public bool gateout_check { get { return GetValue(eflag.gateout_check); } } - public bool Battery_charging { get { return GetValue(eflag.Battery_charging); } } - public bool re_Start { get { return GetValue(eflag.re_Start); } } - public bool front_detect_ignore { get { return GetValue(eflag.front_detect_ignore); } } - public bool front_detect_check { get { return GetValue(eflag.front_detect_check); } } - public bool stop_by_front_detect { get { return GetValue(eflag.stop_by_front_detect); } } - public bool stop_by_cross_in { get { return GetValue(eflag.stop_by_cross_in); } } - public bool agv_stop { get { return GetValue(eflag.agv_stop); } } - public bool agv_run { get { return GetValue(eflag.agv_run); } } - public bool agv_run_manual { get; set; } - public override string ToString() - { - //모든사태값을 탭으로 구분하여 문자를 생성한다 - var sb = new System.Text.StringBuilder(); - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eflag), i); - if (def) - { - var flag = (eflag)i; - var value = _value.Get(i); - sb.AppendLine($"[{i:00}][{flag}] : {value}"); - } - - } - return sb.ToString(); - } - - public string ToRtfString() - { - var sb = new System.Text.StringBuilder(); - sb.AppendLine(@"{\rtf1\ansi\deff0"); - sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue - - for (int i = 0; i < 16; i++) - { - var def = Enum.IsDefined(typeof(eflag), i); - if (def) - { - var flag = (eflag)i; - var value = _value.Get(i); - string line = $"[{i:00}][{flag}] : {value}"; - - // : true가 포함된 줄은 파란색 - if (value == true) - { - sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); - } - else - { - sb.AppendLine(line + @"\line"); - } - } - } - - sb.AppendLine("}"); - return sb.ToString(); - } - - } - - } - - -} +using System; + +namespace arDev +{ + public partial class Narumi + { + + public class SystemFlag1 + { + private COMM.Flag _value { get; set; } = new COMM.Flag(16); + public void SetValue(Int16 value) { this._value.writeValue(value); } + + public UInt16 Value + { + get + { + return (UInt16)_value.Value; + } + } + public enum eflag + { + Side_Detect_Ignore = 3, + Melody_check, + Mark2_check, + Mark1_check, + gateout_check, + Battery_charging = 8, + re_Start, + + /// + /// 전방 감지 무시 + /// + front_detect_ignore, + + /// + /// 전방장애물감지상태 + /// + front_detect_check, + + /// + /// 전방감지 후 정지 상태 + /// + stop_by_front_detect = 12, + /// + /// 교차로 진입 후 정지 상태 + /// + stop_by_cross_in, + agv_stop, + agv_run + } + + public bool GetValue(eflag idx) + { + return _value.Get((int)idx); + } + public bool GetChanged(eflag idx) + { + return _value.GetChanged((int)idx); + } + public bool Side_Detect_Ignore { get { return GetValue(eflag.Side_Detect_Ignore); } } + public bool Melody_check { get { return GetValue(eflag.Melody_check); } } + public bool Mark2_check { get { return GetValue(eflag.Mark2_check); } } + public bool Mark1_check { get { return GetValue(eflag.Mark1_check); } } + public bool gateout_check { get { return GetValue(eflag.gateout_check); } } + public bool Battery_charging { get { return GetValue(eflag.Battery_charging); } } + public bool re_Start { get { return GetValue(eflag.re_Start); } } + public bool front_detect_ignore { get { return GetValue(eflag.front_detect_ignore); } } + public bool front_detect_check { get { return GetValue(eflag.front_detect_check); } } + public bool stop_by_front_detect { get { return GetValue(eflag.stop_by_front_detect); } } + public bool stop_by_cross_in { get { return GetValue(eflag.stop_by_cross_in); } } + public bool agv_stop { get { return GetValue(eflag.agv_stop); } } + public bool agv_run { get { return GetValue(eflag.agv_run); } } + public bool agv_run_manual { get; set; } + public override string ToString() + { + //모든사태값을 탭으로 구분하여 문자를 생성한다 + var sb = new System.Text.StringBuilder(); + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eflag), i); + if (def) + { + var flag = (eflag)i; + var value = _value.Get(i); + sb.AppendLine($"[{i:00}][{flag}] : {value}"); + } + + } + return sb.ToString(); + } + + public string ToRtfString() + { + var sb = new System.Text.StringBuilder(); + sb.AppendLine(@"{\rtf1\ansi\deff0"); + sb.AppendLine(@"{\colortbl ;\red0\green0\blue255;}"); // Color 1 = Blue + + for (int i = 0; i < 16; i++) + { + var def = Enum.IsDefined(typeof(eflag), i); + if (def) + { + var flag = (eflag)i; + var value = _value.Get(i); + string line = $"[{i:00}][{flag}] : {value}"; + + // : true가 포함된 줄은 파란색 + if (value == true) + { + sb.AppendLine(@"\cf1 " + line + @"\cf0\line"); + } + else + { + sb.AppendLine(line + @"\line"); + } + } + } + + sb.AppendLine("}"); + return sb.ToString(); + } + + } + + } + + +} diff --git a/Cs_HMI/SubProject/AGVControl/AGVControl.sln b/HMI/SubProject/AGVControl/AGVControl.sln similarity index 97% rename from Cs_HMI/SubProject/AGVControl/AGVControl.sln rename to HMI/SubProject/AGVControl/AGVControl.sln index 51009aa..ae4d566 100644 --- a/Cs_HMI/SubProject/AGVControl/AGVControl.sln +++ b/HMI/SubProject/AGVControl/AGVControl.sln @@ -1,24 +1,24 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.5.2.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "agvControl", "agvControl.csproj", "{EB23DC0D-9A07-407C-762D-DF1CC8B3D822}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {586342A4-FEA6-4584-82F4-39BA06630ABB} - EndGlobalSection -EndGlobal +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "agvControl", "agvControl.csproj", "{EB23DC0D-9A07-407C-762D-DF1CC8B3D822}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EB23DC0D-9A07-407C-762D-DF1CC8B3D822}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {586342A4-FEA6-4584-82F4-39BA06630ABB} + EndGlobalSection +EndGlobal diff --git a/Cs_HMI/SubProject/AGVControl/BatteryLevelGauge.Designer.cs b/HMI/SubProject/AGVControl/BatteryLevelGauge.Designer.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/BatteryLevelGauge.Designer.cs rename to HMI/SubProject/AGVControl/BatteryLevelGauge.Designer.cs index 80eb48e..948df68 100644 --- a/Cs_HMI/SubProject/AGVControl/BatteryLevelGauge.Designer.cs +++ b/HMI/SubProject/AGVControl/BatteryLevelGauge.Designer.cs @@ -1,37 +1,37 @@ - -namespace AGVControl -{ - partial class BatteryLevelGauge - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region 구성 요소 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} + +namespace AGVControl +{ + partial class BatteryLevelGauge + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Cs_HMI/SubProject/AGVControl/BatteryLevelGauge.cs b/HMI/SubProject/AGVControl/BatteryLevelGauge.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/BatteryLevelGauge.cs rename to HMI/SubProject/AGVControl/BatteryLevelGauge.cs index e6e371f..afd941e 100644 --- a/Cs_HMI/SubProject/AGVControl/BatteryLevelGauge.cs +++ b/HMI/SubProject/AGVControl/BatteryLevelGauge.cs @@ -1,93 +1,93 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace AGVControl -{ - public partial class BatteryLevelGauge : Control - { - float _vlevel = 50; - public float VLevel { get { return _vlevel; } set { _vlevel = value; } } - public float Volt { get; set; } = 0; - public String sign { get; set; } = "%"; - public float CurA { get; set; } = 0; - public float MaxA { get; set; } = 0; - - bool isopen = false; - public Boolean IsOpen { get { return isopen; } set { isopen = value; this.Invalidate(); } } - - public Color BorderColor { get; set; } = Color.DimGray; - - public BatteryLevelGauge() - { - InitializeComponent(); - - // Set Optimized Double Buffer to reduce flickering - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); - - // Redraw when resized - this.SetStyle(ControlStyles.ResizeRedraw, true); - - this.Resize += arLabel_Resize; - } - - - protected override void OnPaint(PaintEventArgs pe) - { - pe.Graphics.InterpolationMode = InterpolationMode.High; - pe.Graphics.SmoothingMode = SmoothingMode.AntiAlias; - pe.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; - - //base.OnPaint(pe); - pe.Graphics.FillRectangle(new SolidBrush(BackColor), DisplayRectangle); - - var r = new RectangleF(this.DisplayRectangle.Left + Padding.Left, - this.DisplayRectangle.Top + Padding.Top, - this.DisplayRectangle.Width - Padding.Left - Padding.Right, - this.DisplayRectangle.Height - Padding.Top - Padding.Bottom); - - pe.Graphics.FillRectangle(new SolidBrush(this.BackColor), r); - - - var w = r.Width * (this.VLevel / 100f); - var lr = new RectangleF(r.Left, r.Top, w, r.Height); - - Color bColor = Color.Red; - if (VLevel > 80) bColor = Color.YellowGreen; - else if (VLevel > 60) bColor = Color.Yellow; - else if (VLevel > 40) bColor = Color.Orange; - else if (VLevel > 20) bColor = Color.Tomato; - else bColor = Color.Red; - pe.Graphics.FillRectangle(new SolidBrush(bColor), lr); - - Color textcolor = this.ForeColor; - if (IsOpen == false) textcolor = Color.Black; - var smg = IsOpen ? $"{ this.VLevel:N0}{ this.sign}" : "연결안됨"; - - pe.Graphics.DrawString(smg, this.Font, new SolidBrush(textcolor), r, - new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center - }); - - pe.Graphics.DrawRectangle(Pens.Black, r.Left, r.Top, r.Width, r.Height); - - - } - void arLabel_Resize(object sender, EventArgs e) - { - Invalidate(); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace AGVControl +{ + public partial class BatteryLevelGauge : Control + { + float _vlevel = 50; + public float VLevel { get { return _vlevel; } set { _vlevel = value; } } + public float Volt { get; set; } = 0; + public String sign { get; set; } = "%"; + public float CurA { get; set; } = 0; + public float MaxA { get; set; } = 0; + + bool isopen = false; + public Boolean IsOpen { get { return isopen; } set { isopen = value; this.Invalidate(); } } + + public Color BorderColor { get; set; } = Color.DimGray; + + public BatteryLevelGauge() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.Resize += arLabel_Resize; + } + + + protected override void OnPaint(PaintEventArgs pe) + { + pe.Graphics.InterpolationMode = InterpolationMode.High; + pe.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + pe.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; + + //base.OnPaint(pe); + pe.Graphics.FillRectangle(new SolidBrush(BackColor), DisplayRectangle); + + var r = new RectangleF(this.DisplayRectangle.Left + Padding.Left, + this.DisplayRectangle.Top + Padding.Top, + this.DisplayRectangle.Width - Padding.Left - Padding.Right, + this.DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + pe.Graphics.FillRectangle(new SolidBrush(this.BackColor), r); + + + var w = r.Width * (this.VLevel / 100f); + var lr = new RectangleF(r.Left, r.Top, w, r.Height); + + Color bColor = Color.Red; + if (VLevel > 80) bColor = Color.YellowGreen; + else if (VLevel > 60) bColor = Color.Yellow; + else if (VLevel > 40) bColor = Color.Orange; + else if (VLevel > 20) bColor = Color.Tomato; + else bColor = Color.Red; + pe.Graphics.FillRectangle(new SolidBrush(bColor), lr); + + Color textcolor = this.ForeColor; + if (IsOpen == false) textcolor = Color.Black; + var smg = IsOpen ? $"{ this.VLevel:N0}{ this.sign}" : "연결안됨"; + + pe.Graphics.DrawString(smg, this.Font, new SolidBrush(textcolor), r, + new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }); + + pe.Graphics.DrawRectangle(Pens.Black, r.Left, r.Top, r.Width, r.Height); + + + } + void arLabel_Resize(object sender, EventArgs e) + { + Invalidate(); + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.Designer.cs b/HMI/SubProject/AGVControl/Dialog/fMapDesign.Designer.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.Designer.cs rename to HMI/SubProject/AGVControl/Dialog/fMapDesign.Designer.cs index 60aedc6..9a8e5ff 100644 --- a/Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.Designer.cs +++ b/HMI/SubProject/AGVControl/Dialog/fMapDesign.Designer.cs @@ -1,103 +1,103 @@ -namespace AGVControl.Dialog -{ - partial class fMapDesign - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMapDesign)); - this.panel1 = new System.Windows.Forms.Panel(); - this.toolStrip1 = new System.Windows.Forms.ToolStrip(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.btOK = new System.Windows.Forms.ToolStripButton(); - this.toolStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); - this.panel1.Location = new System.Drawing.Point(0, 47); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(888, 547); - this.panel1.TabIndex = 22; - // - // toolStrip1 - // - this.toolStrip1.ImageScalingSize = new System.Drawing.Size(40, 40); - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.btOK}); - this.toolStrip1.Location = new System.Drawing.Point(0, 0); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Size = new System.Drawing.Size(888, 47); - this.toolStrip1.TabIndex = 23; - this.toolStrip1.Text = "toolStrip1"; - // - // statusStrip1 - // - this.statusStrip1.Location = new System.Drawing.Point(0, 594); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(888, 22); - this.statusStrip1.TabIndex = 24; - this.statusStrip1.Text = "statusStrip1"; - // - // btOK - // - this.btOK.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; - this.btOK.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.btOK.Image = ((System.Drawing.Image)(resources.GetObject("btOK.Image"))); - this.btOK.ImageTransparentColor = System.Drawing.Color.Magenta; - this.btOK.Name = "btOK"; - this.btOK.Size = new System.Drawing.Size(44, 44); - this.btOK.Text = "toolStripButton1"; - this.btOK.Click += new System.EventHandler(this.btOK_Click); - // - // fMapDesign - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(888, 616); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.toolStrip1); - this.Name = "fMapDesign"; - this.Text = "fMapDesign"; - this.Load += new System.EventHandler(this.fMapDesign_Load); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ToolStrip toolStrip1; - private System.Windows.Forms.ToolStripButton btOK; - private System.Windows.Forms.StatusStrip statusStrip1; - } +namespace AGVControl.Dialog +{ + partial class fMapDesign + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMapDesign)); + this.panel1 = new System.Windows.Forms.Panel(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.btOK = new System.Windows.Forms.ToolStripButton(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold); + this.panel1.Location = new System.Drawing.Point(0, 47); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(888, 547); + this.panel1.TabIndex = 22; + // + // toolStrip1 + // + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(40, 40); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.btOK}); + this.toolStrip1.Location = new System.Drawing.Point(0, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(888, 47); + this.toolStrip1.TabIndex = 23; + this.toolStrip1.Text = "toolStrip1"; + // + // statusStrip1 + // + this.statusStrip1.Location = new System.Drawing.Point(0, 594); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(888, 22); + this.statusStrip1.TabIndex = 24; + this.statusStrip1.Text = "statusStrip1"; + // + // btOK + // + this.btOK.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btOK.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.btOK.Image = ((System.Drawing.Image)(resources.GetObject("btOK.Image"))); + this.btOK.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(44, 44); + this.btOK.Text = "toolStripButton1"; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // fMapDesign + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(888, 616); + this.Controls.Add(this.panel1); + this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.toolStrip1); + this.Name = "fMapDesign"; + this.Text = "fMapDesign"; + this.Load += new System.EventHandler(this.fMapDesign_Load); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton btOK; + private System.Windows.Forms.StatusStrip statusStrip1; + } } \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.cs b/HMI/SubProject/AGVControl/Dialog/fMapDesign.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.cs rename to HMI/SubProject/AGVControl/Dialog/fMapDesign.cs index 04f91b4..b1fafb9 100644 --- a/Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.cs +++ b/HMI/SubProject/AGVControl/Dialog/fMapDesign.cs @@ -1,48 +1,48 @@ -using AR; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Security.Cryptography.X509Certificates; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace AGVControl.Dialog -{ - public partial class fMapDesign : Form - { - AGVControl.MapControl mapctl; - public fMapDesign(string fn) - { - InitializeComponent(); - - mapctl = new AGVControl.MapControl(); - mapctl.Dock = DockStyle.Fill; - mapctl.Visible = true; - mapctl.Font = this.panel1.Font; - mapctl.BackColor = Color.FromArgb(32, 32, 32); - this.panel1.Controls.Add(mapctl); - - if (System.IO.File.Exists(fn)) - { - //auto load - var rlt = mapctl.LoadFromFile(fn, out string errmsg); - if (rlt == false) AR.UTIL.MsgE(errmsg); - } - } - - private void fMapDesign_Load(object sender, EventArgs e) - { - - } - - private void btOK_Click(object sender, EventArgs e) - { - this.mapctl.SaveToFile(this.mapctl.Filename); - DialogResult = DialogResult.OK; - } - } -} +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace AGVControl.Dialog +{ + public partial class fMapDesign : Form + { + AGVControl.MapControl mapctl; + public fMapDesign(string fn) + { + InitializeComponent(); + + mapctl = new AGVControl.MapControl(); + mapctl.Dock = DockStyle.Fill; + mapctl.Visible = true; + mapctl.Font = this.panel1.Font; + mapctl.BackColor = Color.FromArgb(32, 32, 32); + this.panel1.Controls.Add(mapctl); + + if (System.IO.File.Exists(fn)) + { + //auto load + var rlt = mapctl.LoadFromFile(fn, out string errmsg); + if (rlt == false) AR.UTIL.MsgE(errmsg); + } + } + + private void fMapDesign_Load(object sender, EventArgs e) + { + + } + + private void btOK_Click(object sender, EventArgs e) + { + this.mapctl.SaveToFile(this.mapctl.Filename); + DialogResult = DialogResult.OK; + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.resx b/HMI/SubProject/AGVControl/Dialog/fMapDesign.resx similarity index 98% rename from Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.resx rename to HMI/SubProject/AGVControl/Dialog/fMapDesign.resx index 3a6bdfb..6b1dbc9 100644 --- a/Cs_HMI/SubProject/AGVControl/Dialog/fMapDesign.resx +++ b/HMI/SubProject/AGVControl/Dialog/fMapDesign.resx @@ -1,142 +1,142 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG - YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 - 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw - bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc - VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 - c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 - Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo - mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ - kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D - TgDQASA1MVpwzwAAAABJRU5ErkJggg== - - - - 124, 17 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 124, 17 + \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.Designer.cs b/HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.Designer.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.Designer.cs rename to HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.Designer.cs index dac7dd1..0494335 100644 --- a/Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.Designer.cs +++ b/HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.Designer.cs @@ -1,158 +1,158 @@ -namespace AGVControl.Dialog -{ - partial class fPropertyRFIDPoint - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.propertyGrid2 = new System.Windows.Forms.PropertyGrid(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label2 = new System.Windows.Forms.Label(); - this.panel2 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // propertyGrid1 - // - this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; - this.propertyGrid1.Location = new System.Drawing.Point(0, 31); - this.propertyGrid1.Name = "propertyGrid1"; - this.propertyGrid1.Size = new System.Drawing.Size(346, 456); - this.propertyGrid1.TabIndex = 0; - // - // comboBox1 - // - this.comboBox1.Dock = System.Windows.Forms.DockStyle.Top; - this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.comboBox1.Font = new System.Drawing.Font("굴림", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point(1, 32); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(519, 32); - this.comboBox1.TabIndex = 1; - this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); - // - // propertyGrid2 - // - this.propertyGrid2.Dock = System.Windows.Forms.DockStyle.Fill; - this.propertyGrid2.Location = new System.Drawing.Point(1, 64); - this.propertyGrid2.Name = "propertyGrid2"; - this.propertyGrid2.Size = new System.Drawing.Size(519, 362); - this.propertyGrid2.TabIndex = 2; - // - // panel1 - // - this.panel1.BackColor = System.Drawing.Color.Gray; - this.panel1.Controls.Add(this.propertyGrid2); - this.panel1.Controls.Add(this.button1); - this.panel1.Controls.Add(this.comboBox1); - this.panel1.Controls.Add(this.label2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(346, 0); - this.panel1.Name = "panel1"; - this.panel1.Padding = new System.Windows.Forms.Padding(1); - this.panel1.Size = new System.Drawing.Size(521, 487); - this.panel1.TabIndex = 3; - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.label2.Dock = System.Windows.Forms.DockStyle.Top; - this.label2.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label2.Location = new System.Drawing.Point(1, 1); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(519, 31); - this.label2.TabIndex = 3; - this.label2.Text = "Connection Information"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel2 - // - this.panel2.Controls.Add(this.propertyGrid1); - this.panel2.Controls.Add(this.label1); - this.panel2.Dock = System.Windows.Forms.DockStyle.Left; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(346, 487); - this.panel2.TabIndex = 4; - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.label1.Dock = System.Windows.Forms.DockStyle.Top; - this.label1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.label1.Location = new System.Drawing.Point(0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(346, 31); - this.label1.TabIndex = 0; - this.label1.Text = "Point Information"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // button1 - // - this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.button1.Font = new System.Drawing.Font("Arial Rounded MT Bold", 27.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(1, 426); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(519, 60); - this.button1.TabIndex = 4; - this.button1.Text = "P1 ↔ P2"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // fPropertyRFIDPoint - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(867, 487); - this.Controls.Add(this.panel1); - this.Controls.Add(this.panel2); - this.Name = "fPropertyRFIDPoint"; - this.Text = "fPropertyRFIDPoint"; - this.Load += new System.EventHandler(this.fPropertyRFIDPoint_Load); - this.panel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.PropertyGrid propertyGrid1; - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.PropertyGrid propertyGrid2; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button button1; - } +namespace AGVControl.Dialog +{ + partial class fPropertyRFIDPoint + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.propertyGrid2 = new System.Windows.Forms.PropertyGrid(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label2 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // propertyGrid1 + // + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Location = new System.Drawing.Point(0, 31); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.Size = new System.Drawing.Size(346, 456); + this.propertyGrid1.TabIndex = 0; + // + // comboBox1 + // + this.comboBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.Font = new System.Drawing.Font("굴림", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(1, 32); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(519, 32); + this.comboBox1.TabIndex = 1; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // propertyGrid2 + // + this.propertyGrid2.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid2.Location = new System.Drawing.Point(1, 64); + this.propertyGrid2.Name = "propertyGrid2"; + this.propertyGrid2.Size = new System.Drawing.Size(519, 362); + this.propertyGrid2.TabIndex = 2; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.Gray; + this.panel1.Controls.Add(this.propertyGrid2); + this.panel1.Controls.Add(this.button1); + this.panel1.Controls.Add(this.comboBox1); + this.panel1.Controls.Add(this.label2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(346, 0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(1); + this.panel1.Size = new System.Drawing.Size(521, 487); + this.panel1.TabIndex = 3; + // + // label2 + // + this.label2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.label2.Dock = System.Windows.Forms.DockStyle.Top; + this.label2.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(1, 1); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(519, 31); + this.label2.TabIndex = 3; + this.label2.Text = "Connection Information"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.Controls.Add(this.propertyGrid1); + this.panel2.Controls.Add(this.label1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Left; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(346, 487); + this.panel2.TabIndex = 4; + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.label1.Dock = System.Windows.Forms.DockStyle.Top; + this.label1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(346, 31); + this.label1.TabIndex = 0; + this.label1.Text = "Point Information"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Font = new System.Drawing.Font("Arial Rounded MT Bold", 27.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(1, 426); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(519, 60); + this.button1.TabIndex = 4; + this.button1.Text = "P1 ↔ P2"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fPropertyRFIDPoint + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(867, 487); + this.Controls.Add(this.panel1); + this.Controls.Add(this.panel2); + this.Name = "fPropertyRFIDPoint"; + this.Text = "fPropertyRFIDPoint"; + this.Load += new System.EventHandler(this.fPropertyRFIDPoint_Load); + this.panel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.PropertyGrid propertyGrid1; + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.PropertyGrid propertyGrid2; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button1; + } } \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.cs b/HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.cs rename to HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.cs index 917f1b1..32094d6 100644 --- a/Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.cs +++ b/HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.cs @@ -1,55 +1,55 @@ -using AGVControl.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace AGVControl.Dialog -{ - public partial class fPropertyRFIDPoint : Form - { - RFIDPoint RFIDPt; - List Connections; - public fPropertyRFIDPoint(RFIDPoint point, List connection) - { - InitializeComponent(); - this.RFIDPt = point; - this.Connections = connection; - this.propertyGrid1.SelectedObject = point; - this.KeyPreview = true; - this.KeyDown += (s1, e1) => { - if (e1.KeyCode == Keys.Escape) this.Close(); - }; - } - - private void fPropertyRFIDPoint_Load(object sender, EventArgs e) - { - foreach (var item in Connections) - comboBox1.Items.Add($"{item.P1.Value} ↔ {item.P2.Value}"); - - if(comboBox1.Items.Count > 0) - comboBox1.SelectedIndex = 0; - } - - private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) - { - this.propertyGrid2.SelectedObject = this.Connections[this.comboBox1.SelectedIndex]; - } - - private void button1_Click(object sender, EventArgs e) - { - var item = this.Connections[this.comboBox1.SelectedIndex]; - var p1 = item.P1; - var p2 = item.P2; - item.P2 = p1;// item.P1; - item.P1 = p2;// p1; - this.propertyGrid2.SelectedObject = item; - this.Validate(); - } - } -} +using AGVControl.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace AGVControl.Dialog +{ + public partial class fPropertyRFIDPoint : Form + { + RFIDPoint RFIDPt; + List Connections; + public fPropertyRFIDPoint(RFIDPoint point, List connection) + { + InitializeComponent(); + this.RFIDPt = point; + this.Connections = connection; + this.propertyGrid1.SelectedObject = point; + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + } + + private void fPropertyRFIDPoint_Load(object sender, EventArgs e) + { + foreach (var item in Connections) + comboBox1.Items.Add($"{item.P1.Value} ↔ {item.P2.Value}"); + + if(comboBox1.Items.Count > 0) + comboBox1.SelectedIndex = 0; + } + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + this.propertyGrid2.SelectedObject = this.Connections[this.comboBox1.SelectedIndex]; + } + + private void button1_Click(object sender, EventArgs e) + { + var item = this.Connections[this.comboBox1.SelectedIndex]; + var p1 = item.P1; + var p2 = item.P2; + item.P2 = p1;// item.P1; + item.P1 = p2;// p1; + this.propertyGrid2.SelectedObject = item; + this.Validate(); + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.resx b/HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.resx similarity index 97% rename from Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.resx rename to HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.resx +++ b/HMI/SubProject/AGVControl/Dialog/fPropertyRFIDPoint.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/GridView/ColorListItem.cs b/HMI/SubProject/AGVControl/GridView/ColorListItem.cs similarity index 100% rename from Cs_HMI/SubProject/AGVControl/GridView/ColorListItem.cs rename to HMI/SubProject/AGVControl/GridView/ColorListItem.cs diff --git a/Cs_HMI/SubProject/AGVControl/GridView/GridItem.cs b/HMI/SubProject/AGVControl/GridView/GridItem.cs similarity index 100% rename from Cs_HMI/SubProject/AGVControl/GridView/GridItem.cs rename to HMI/SubProject/AGVControl/GridView/GridItem.cs diff --git a/Cs_HMI/SubProject/AGVControl/GridView/GridView.Designer.cs b/HMI/SubProject/AGVControl/GridView/GridView.Designer.cs similarity index 100% rename from Cs_HMI/SubProject/AGVControl/GridView/GridView.Designer.cs rename to HMI/SubProject/AGVControl/GridView/GridView.Designer.cs diff --git a/Cs_HMI/SubProject/AGVControl/GridView/GridView.cs b/HMI/SubProject/AGVControl/GridView/GridView.cs similarity index 100% rename from Cs_HMI/SubProject/AGVControl/GridView/GridView.cs rename to HMI/SubProject/AGVControl/GridView/GridView.cs diff --git a/Cs_HMI/SubProject/AGVControl/GuideSensor.Designer.cs b/HMI/SubProject/AGVControl/GuideSensor.Designer.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/GuideSensor.Designer.cs rename to HMI/SubProject/AGVControl/GuideSensor.Designer.cs index 6e879bd..2ee4b0f 100644 --- a/Cs_HMI/SubProject/AGVControl/GuideSensor.Designer.cs +++ b/HMI/SubProject/AGVControl/GuideSensor.Designer.cs @@ -1,37 +1,37 @@ - -namespace Narumi.UC -{ - partial class GuideSensor - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region 구성 요소 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} + +namespace Narumi.UC +{ + partial class GuideSensor + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Cs_HMI/SubProject/AGVControl/GuideSensor.cs b/HMI/SubProject/AGVControl/GuideSensor.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/GuideSensor.cs rename to HMI/SubProject/AGVControl/GuideSensor.cs index ad196f6..4142c30 100644 --- a/Cs_HMI/SubProject/AGVControl/GuideSensor.cs +++ b/HMI/SubProject/AGVControl/GuideSensor.cs @@ -1,106 +1,106 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Narumi.UC -{ - public partial class GuideSensor : Control - { - public int SensorValue { get; set; } = 0; - public bool LMark { get; set; } = false; - public bool RMark { get; set; } = false; - - public GuideSensor() - { - InitializeComponent(); - // Set Optimized Double Buffer to reduce flickering - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); - - // Redraw when resized - this.SetStyle(ControlStyles.ResizeRedraw, true); - - this.Resize += arLabel_Resize; - } - void arLabel_Resize(object sender, EventArgs e) - { - Invalidate(); - } - - protected override void OnPaint(PaintEventArgs pe) - { - var boxcount = 11; - - var r = new RectangleF(this.DisplayRectangle.Left + Padding.Left, - this.DisplayRectangle.Top + Padding.Top, - this.DisplayRectangle.Width - Padding.Left - Padding.Right, - this.DisplayRectangle.Height - Padding.Top - Padding.Bottom); - - var term = 3; - var w = ((r.Width -1) - (term * (boxcount - 1))) / boxcount; - var h = r.Height -1; - - pe.Graphics.FillRectangle(new SolidBrush(this.BackColor), this.DisplayRectangle); - //pe.Graphics.DrawRectangle(Pens.Red, r.Left, r.Top, r.Width, r.Height); - - for (int i = 0; i < boxcount; i++) - { - var x = r.Left + i * term + i * w; - var y = r.Top; - var r2 = new RectangleF(x, y, w, h); - - if (this.Enabled == false) - { - pe.Graphics.FillRectangle(Brushes.LightGray, r2); - } - else - { - - if (i == 0) - { - if (LMark) - pe.Graphics.FillRectangle(Brushes.SkyBlue, r2); - else - pe.Graphics.FillRectangle(Brushes.LightGray, r2); - } - else if (i == 9) - { - if (RMark) - pe.Graphics.FillRectangle(Brushes.SkyBlue, r2); - else - pe.Graphics.FillRectangle(Brushes.LightGray, r2); - } - else - { - if (SensorValue == i) - pe.Graphics.FillRectangle(Brushes.Tomato, r2); - else - pe.Graphics.FillRectangle(Brushes.LightGray, r2); - } - - pe.Graphics.DrawRectangle(Pens.DimGray, r2.Left,r2.Top,r2.Width,r2.Height); - - if (i == 0 || i == 10) - { - pe.Graphics.DrawString("M/K", this.Font, - new SolidBrush(this.ForeColor), r2, - new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center - }); - } - } - - } - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Narumi.UC +{ + public partial class GuideSensor : Control + { + public int SensorValue { get; set; } = 0; + public bool LMark { get; set; } = false; + public bool RMark { get; set; } = false; + + public GuideSensor() + { + InitializeComponent(); + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.Resize += arLabel_Resize; + } + void arLabel_Resize(object sender, EventArgs e) + { + Invalidate(); + } + + protected override void OnPaint(PaintEventArgs pe) + { + var boxcount = 11; + + var r = new RectangleF(this.DisplayRectangle.Left + Padding.Left, + this.DisplayRectangle.Top + Padding.Top, + this.DisplayRectangle.Width - Padding.Left - Padding.Right, + this.DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + var term = 3; + var w = ((r.Width -1) - (term * (boxcount - 1))) / boxcount; + var h = r.Height -1; + + pe.Graphics.FillRectangle(new SolidBrush(this.BackColor), this.DisplayRectangle); + //pe.Graphics.DrawRectangle(Pens.Red, r.Left, r.Top, r.Width, r.Height); + + for (int i = 0; i < boxcount; i++) + { + var x = r.Left + i * term + i * w; + var y = r.Top; + var r2 = new RectangleF(x, y, w, h); + + if (this.Enabled == false) + { + pe.Graphics.FillRectangle(Brushes.LightGray, r2); + } + else + { + + if (i == 0) + { + if (LMark) + pe.Graphics.FillRectangle(Brushes.SkyBlue, r2); + else + pe.Graphics.FillRectangle(Brushes.LightGray, r2); + } + else if (i == 9) + { + if (RMark) + pe.Graphics.FillRectangle(Brushes.SkyBlue, r2); + else + pe.Graphics.FillRectangle(Brushes.LightGray, r2); + } + else + { + if (SensorValue == i) + pe.Graphics.FillRectangle(Brushes.Tomato, r2); + else + pe.Graphics.FillRectangle(Brushes.LightGray, r2); + } + + pe.Graphics.DrawRectangle(Pens.DimGray, r2.Left,r2.Top,r2.Width,r2.Height); + + if (i == 0 || i == 10) + { + pe.Graphics.DrawString("M/K", this.Font, + new SolidBrush(this.ForeColor), r2, + new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }); + } + } + + } + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/MapControl.Designer.cs b/HMI/SubProject/AGVControl/MapControl.Designer.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/MapControl.Designer.cs rename to HMI/SubProject/AGVControl/MapControl.Designer.cs index 81b5ff3..06ac64a 100644 --- a/Cs_HMI/SubProject/AGVControl/MapControl.Designer.cs +++ b/HMI/SubProject/AGVControl/MapControl.Designer.cs @@ -1,37 +1,37 @@ -namespace AGVControl -{ - partial class MapControl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - this.ClientSize = new System.Drawing.Size(800, 450); - } - - #endregion - } -} +namespace AGVControl +{ + partial class MapControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.ClientSize = new System.Drawing.Size(800, 450); + } + + #endregion + } +} diff --git a/Cs_HMI/SubProject/AGVControl/MapControl.cs b/HMI/SubProject/AGVControl/MapControl.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/MapControl.cs rename to HMI/SubProject/AGVControl/MapControl.cs index f7f9702..144b28d 100644 --- a/Cs_HMI/SubProject/AGVControl/MapControl.cs +++ b/HMI/SubProject/AGVControl/MapControl.cs @@ -1,2180 +1,2180 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.IO; -using System.Linq; -using System.Management.Instrumentation; -using System.Text.RegularExpressions; -using System.Threading; -using System.Windows.Forms; -using AGVControl.Models; -using AR; -using COMM; - -namespace AGVControl -{ - - public partial class MapControl : Control - { - #region 상수 정의 - private const int LINE_WIDTH = 20; // 선 굵기 - private const int TOOLBAR_WIDTH = 58; // 툴바 너비 - private const int TOOLBAR_WIDTHR = 78; // 우측 툴바 너비 - private const int TOOLBAR_BUTTON_HEIGHT = 40; // 툴바 버튼 높이 - private const int TOOLBAR_MARGIN = 5; // 툴바 마진 - private const int SELECTION_DISTANCE_POINT = 7; // 선택 가능 거리 - private const int SELECTION_DISTANCE_TEXT = 3; // 선택 가능 거리 - #endregion - - #region 멤버 변수 - // 맵 데이터 - - private List mapTexts; - //private List customLines; - private List rfidLines; - - public MapControlManager Manager = new MapControlManager(); - - // 화면 조작 관련 - private float zoom = 1.0f; - private PointF offset = PointF.Empty; - private Point lastMousePosition; - private Point currentMousePosition; - private bool isDragging = false; - private Point? previewStartPoint = null; - private Point? branchPoint = null; - - // 모드 관련 - private bool isAddingText = false; - private bool isAddingPoint = false; - private bool isDrawingCustomLine = false; - private bool isDrawingRFIDLine = false; - private bool isDeletingRFIDLine = false; - private bool isDrawingLine = false; - private bool isDraggingPoint = false; - private bool isDraggingText = false; - private Point dragOffset; - - // 선택된 객체 - private MapText selectedText = null; - private CustomLine selectedLine = null; - private RFIDPoint selectedRFID = null; - private RFIDLine selectedRFIDLine = null; - private Point? draggingPoint = null; - - // 툴바 관련 - private List toolbarRects; - - // RFID 관련 - public string RFIDStartNo { get; set; } = string.Empty; - public int RFIDLastNumber = 0; - public string Filename = string.Empty; - #endregion - - #region 속성 - public MapText SelectedText => selectedText; - public CustomLine SelectedLine => selectedLine; - public RFIDPoint SelectedRFID => selectedRFID; - public RFIDLine SelectedRFIDLine => selectedRFIDLine; - #endregion - - #region 생성자 및 초기화 - public MapControl() - { - this.DoubleBuffered = true; - mapTexts = new List(); - // customLines = new List(); - rfidLines = new List(); - - UpdateToolbarRects(); - } - #endregion - - #region 이벤트 핸들러 - public event EventHandler OnRightClick; - #endregion - - #region OVERRIDE - protected override void OnMouseUp(MouseEventArgs e) - { - base.OnMouseUp(e); - if (e.Button == MouseButtons.Middle) - { - isDragging = false; - this.Cursor = Cursors.Default; - } - else if (e.Button == MouseButtons.Left) - { - isDragging = false; - isDraggingPoint = false; - isDraggingText = false; - } - } - protected override void OnMouseClick(MouseEventArgs e) - { - base.OnMouseClick(e); - var mapPoint = ScreenToMap(e.Location); - if (e.Button == MouseButtons.Right) - { - OnRightClick?.Invoke(this, e); - this.MouseMode = eMouseMode.Default; - } - else if (e.Button == MouseButtons.Left) - { - // 툴바 버튼 클릭 처리 - var toolbar = toolbarRects.FirstOrDefault(t => t.Bounds.Contains(e.Location)); - if (toolbar != null) - { - switch (toolbar.Title.ToLower()) - { - case "+": ZoomIn(); break; - case "-": ZoomOut(); break; - case "1:1": ResetZoom(); break; - case "cut": MouseMode = (eMouseMode.rfidcut); break; - case "text": MouseMode = (eMouseMode.addtext); break; - case "line": MouseMode = (eMouseMode.addrfidline); break; - case "cline": MouseMode = (eMouseMode.addcustomline); break; - case "point": MouseMode = (eMouseMode.addrfidpoint); break; - case "clear": - Manager.agv.MainPath.Clear(); - break; - case "path": - - var input1 = AR.UTIL.InputBox("input start"); - if (input1.Item1 == false) return; - var input2 = AR.UTIL.InputBox("input end"); - if (input2.Item1 == false) return; - - var startRFID = input1.Item2; - var endRFID = input2.Item2; - - var valid1 = uint.TryParse(input1.Item2, out uint vstart); - var valid2 = uint.TryParse(input2.Item2, out uint vend); - - if (valid1 == false || valid2 == false) - { - MessageBox.Show("RFID값은 정수로 입력하세요", "경로 계산", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - - var rlt = Manager.CalculatePath(vstart, vend); - if (rlt.Success == false) - { - MessageBox.Show(rlt.Message, "경로 계산", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - else - { - SetCurrentPath(rlt.Path); //현재 경로로 설정함 - MessageBox.Show($"경로가 계산되었습니다.\nRFID 순서: {string.Join(" -> ", rlt.Path)}", - "경로 계산", MessageBoxButtons.OK, MessageBoxIcon.Information); - if (SetTargetPosition(vend) == false) - { - MessageBox.Show("목적지 설정 실패"); - } - } - break; - case "pos": - var tag = AR.UTIL.InputBox("input rfid tag value"); - if (tag.Item1 && tag.Item2 != "" && uint.TryParse(tag.Item2, out uint val) == true) - { - var targetRFID = SetCurrentPosition((ushort)val); - } - break; - case "save": - using (var od = new SaveFileDialog()) - { - od.Filter = "path data|*.route"; - od.FilterIndex = 0; - od.RestoreDirectory = true; - if (Filename.isEmpty() == false) - { - od.FileName = System.IO.Path.GetFileName(Filename); - od.InitialDirectory = System.IO.Path.GetDirectoryName(Filename); - } - - if (od.ShowDialog() == DialogResult.OK) - { - Filename = od.FileName; - this.SaveToFile(Filename); - this.Invalidate(); - } - } - break; - case "load": - using (var od = new OpenFileDialog()) - { - od.Filter = "path data|*.route"; - od.FilterIndex = 0; - - - if (string.IsNullOrEmpty(this.Filename) == false) - { - od.FileName = System.IO.Path.GetFileName(this.Filename); - od.InitialDirectory = System.IO.Path.GetDirectoryName(this.Filename); - } - else - { - od.RestoreDirectory = true; - } - - - if (od.ShowDialog() == DialogResult.OK) - { - this.LoadFromFile(od.FileName, out string errmsg); - if (errmsg.isEmpty() == false) UTIL.MsgE(errmsg); - this.Invalidate(); - } - } - break; - } - return; - } - - // RFID 포인트 선택 - var clickedRFID = Manager.RFIDPoints.FirstOrDefault(r => Manager.GetDistance(mapPoint, r.Location) <= SELECTION_DISTANCE_POINT); - switch (mousemode) - { - case eMouseMode.rfidcut: - DeleteNearbyRFIDLine(mapPoint); - break; - case eMouseMode.addrfidpoint: - if (string.IsNullOrEmpty(this.RFIDStartNo) == false) - { - if (ushort.TryParse(this.RFIDStartNo, out ushort rfidvalue)) - { - AddRFIDPoint(mapPoint, rfidvalue); - - // 숫자로 끝나는 RFID 값인 경우 자동 증가 - if (Regex.IsMatch(RFIDStartNo, @"^[A-Za-z]+\d+$")) - { - // 마지막 숫자 부분 추출 - Match match = Regex.Match(RFIDStartNo, @"\d+$"); - if (match.Success) - { - int currentNumber = int.Parse(match.Value); - if (currentNumber > this.RFIDLastNumber) - { - RFIDLastNumber = currentNumber; - } - RFIDLastNumber++; - - // 숫자 부분을 새로운 번호로 교체 - RFIDStartNo = RFIDStartNo.Substring(0, match.Index) + RFIDLastNumber.ToString("D4"); - } - } - } - - } - break; - case eMouseMode.addtext: - var text = new MapText - { - Location = mapPoint, - Text = "새 텍스트", - TextColor = Color.Black, - BackgroundColor = Color.Transparent, - Font = new Font("Arial", 12) - }; - mapTexts.Add(text); - selectedText = text; - this.mousemode = eMouseMode.Default; - this.Invalidate(); - break; - //case eMouseMode.addcustomline: - // if (previewStartPoint == null) - // { - // previewStartPoint = mapPoint; - // } - // else - // { - // var line = new CustomLine - // { - // StartPoint = previewStartPoint.Value, - // EndPoint = mapPoint, - // LineColor = Color.Red, - // LineWidth = 2 - // }; - // customLines.Add(line); - // selectedLine = line; - // previewStartPoint = null; - // this.Invalidate(); - // } - // break; - case eMouseMode.addrfidline: - if (clickedRFID != null) - { - if (previewStartPoint == null) - { - previewStartPoint = clickedRFID.Location; - } - else - { - var startRFID = Manager.RFIDPoints.FirstOrDefault(r => r.Location == previewStartPoint); - if (startRFID != null) - { - var line = new RFIDLine - { - StartPoint = previewStartPoint.Value, - EndPoint = clickedRFID.Location, - }; - rfidLines.Add(line); - selectedRFIDLine = line; - - // RFID 연결 정보 처리 - ProcessRFIDConnections(); - } - // 다음 라인을 위해 현재 클릭한 RFID를 시작점으로 설정 - previewStartPoint = clickedRFID.Location; - } - this.Invalidate(); - } - break; - } - } - } - protected override void OnMouseDoubleClick(MouseEventArgs e) - { - base.OnMouseDoubleClick(e); - - if (e.Button == MouseButtons.Left) - { - var mapPoint = ScreenToMap(e.Location); - - //RFID 포인트 찾기 - var selected_rfid = Manager.RFIDPoints.Where(t => t.Bounds.Expand(SELECTION_DISTANCE_POINT, SELECTION_DISTANCE_POINT).Contains(mapPoint)).FirstOrDefault(); - if (selected_rfid != null) - { - //연결정보확인 - List connections = new List(); - var p1 = Manager.rfidConnections.Where(t => t.P1.Value == selected_rfid.Value); - var p2 = Manager.rfidConnections.Where(t => t.P2.Value == selected_rfid.Value); - if (p1.Any()) connections.AddRange(p1.ToArray()); - if (p2.Any()) connections.AddRange(p2.ToArray()); - - - using (var f = new Dialog.fPropertyRFIDPoint(selected_rfid, connections)) - f.ShowDialog(); - //UTIL.ShowPropertyDialog(selected_rfid); - this.Invalidate(); - return; - } - - // 텍스트 객체 찾기 - var selected_txt = mapTexts.Where(t => t.Bounds.Expand(SELECTION_DISTANCE_TEXT , SELECTION_DISTANCE_TEXT).Contains(mapPoint)).FirstOrDefault(); - if (selected_txt != null) - { - UTIL.ShowPropertyDialog(selected_txt); - this.Invalidate(); - return; - } - } - } - - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - UpdateToolbarRects(); - this.Invalidate(); - } - - protected override void OnMouseWheel(MouseEventArgs e) - { - base.OnMouseWheel(e); - if (e.Delta > 0) - { - zoom *= 1.1f; - } - else - { - zoom /= 1.2f; - } - - zoom = Math.Max(0.1f, Math.Min(10.0f, zoom)); - this.Invalidate(); - } - - protected override void OnMouseDown(MouseEventArgs e) - { - base.OnMouseDown(e); - lastMousePosition = e.Location; - var mapPoint = ScreenToMap(e.Location); - - if (e.Button == MouseButtons.Middle) - { - isDragging = true; - this.Cursor = Cursors.SizeAll; - } - else if (e.Button == MouseButtons.Left && !isAddingText && !isDrawingCustomLine && !isDrawingRFIDLine) - { - isDragging = true; - - // 텍스트 선택 및 드래그 시작 - foreach (var text in mapTexts) - { - var textSize = CreateGraphics().MeasureString(text.Text, text.Font); - var rect = new RectangleF( - text.Location.X - SELECTION_DISTANCE_TEXT, - text.Location.Y - SELECTION_DISTANCE_TEXT, - textSize.Width + SELECTION_DISTANCE_TEXT * 2, - textSize.Height + SELECTION_DISTANCE_TEXT * 2 - ); - - if (rect.Contains(mapPoint)) - { - selectedText = text; - isDraggingText = true; - // 드래그 시작점과 텍스트 위치의 차이를 저장 - dragOffset = new Point( - text.Location.X - mapPoint.X, - text.Location.Y - mapPoint.Y - ); - return; - } - } - - //// 커스텀 라인 선택 및 드래그 포인트 설정 - //foreach (var line in customLines) - //{ - // float startDistance = Manager.GetDistance(mapPoint, line.StartPoint); - // float endDistance = Manager.GetDistance(mapPoint, line.EndPoint); - - // if (startDistance < SELECTION_DISTANCE) - // { - // selectedLine = line; - // draggingPoint = line.StartPoint; - // isDraggingPoint = true; - // return; - // } - // else if (endDistance < SELECTION_DISTANCE) - // { - // selectedLine = line; - // draggingPoint = line.EndPoint; - // isDraggingPoint = true; - // return; - // } - //} - - - // RFID 포인트 선택 - var clickedRFID = Manager.RFIDPoints.FirstOrDefault(r => - Manager.GetDistance(mapPoint, r.Location) <= SELECTION_DISTANCE_POINT); - if (clickedRFID != null) - { - selectedRFID = clickedRFID; - draggingPoint = clickedRFID.Location; - isDraggingPoint = true; - return; - } - - - } - } - - protected override void OnMouseMove(MouseEventArgs e) - { - base.OnMouseMove(e); - currentMousePosition = e.Location; - var mapPoint = ScreenToMap(e.Location); - - if ((mousemode == eMouseMode.addcustomline || mousemode == eMouseMode.addrfidline) && branchPoint.HasValue) - { - UpdatePreviewLine(e.Location); - } - - // 툴바 버튼 호버 상태 업데이트 - var oldHovering = toolbarRects.OrderBy(t => t.Idx).Select(t => t.isHovering).ToArray(); - - //toolbar check - toolbarRects.ForEach(t => t.isHovering = t.Bounds.Contains(e.Location)); - - //hovering check - if (toolbarRects.Where(t => t.isHovering).Any()) - { - this.Cursor = Cursors.Hand; - } - else if (isDeletingRFIDLine) - { - this.Cursor = GetScissorsCursor(); - } - else - { - this.Cursor = Cursors.Default; - } - - //hovering display update - if (toolbarRects.Where(t => t.Dirty).Any()) - { - this.Invalidate(); - } - - if (isDragging) - { - if (e.Button == MouseButtons.Middle) - { - offset = new PointF( - offset.X + (e.Location.X - lastMousePosition.X), - offset.Y + (e.Location.Y - lastMousePosition.Y) - ); - } - else if (isDraggingText && selectedText != null) - { - // 텍스트 이동 - 드래그 오프셋 적용 - selectedText.Location = new Point( - mapPoint.X + dragOffset.X, - mapPoint.Y + dragOffset.Y - ); - } - else if (isDraggingPoint && draggingPoint.HasValue) - { - // 포인트 이동 - var delta = new Point( - mapPoint.X - ScreenToMap(lastMousePosition).X, - mapPoint.Y - ScreenToMap(lastMousePosition).Y - ); - - if (selectedLine != null) - { - // 커스텀 라인 포인트 이동 - if (draggingPoint.Value == selectedLine.StartPoint) - { - selectedLine.StartPoint = new Point( - selectedLine.StartPoint.X + delta.X, - selectedLine.StartPoint.Y + delta.Y - ); - } - else if (draggingPoint.Value == selectedLine.EndPoint) - { - selectedLine.EndPoint = new Point( - selectedLine.EndPoint.X + delta.X, - selectedLine.EndPoint.Y + delta.Y - ); - } - } - else if (selectedRFID != null) // RFID 포인트 이동 - { - // RFID 포인트 위치 업데이트 - selectedRFID.Location = new Point( - selectedRFID.Location.X + delta.X, - selectedRFID.Location.Y + delta.Y - ); - - // 연결된 RFID 라인 업데이트 - foreach (var line in rfidLines) - { - if (line.StartPoint == draggingPoint.Value) - { - line.StartPoint = selectedRFID.Location; - } - if (line.EndPoint == draggingPoint.Value) - { - line.EndPoint = selectedRFID.Location; - } - } - } - } - - lastMousePosition = e.Location; - this.Invalidate(); - } - - // 미리보기 라인 업데이트를 위한 마우스 위치 저장 - if (isDrawingRFIDLine || isDrawingCustomLine || previewStartPoint.HasValue) - { - currentMousePosition = mapPoint; - } - - this.Invalidate(); - } - - #endregion - - #region 기타 메서드 - - private PointF DrawLineWithLength(Graphics graphics, Pen pen, PointF p1, PointF p2, float length) - { - // 두 점 사이의 벡터 계산 - float dx = p2.X - p1.X; - float dy = p2.Y - p1.Y; - - // 두 점 사이의 거리 계산 - float distance = (float)Math.Sqrt(dx * dx + dy * dy); - - // 거리가 0이면 선을 그릴 수 없음 - if (distance == 0) - return PointF.Empty; - - // 단위 벡터 계산 (방향) - float unitX = dx / distance; - float unitY = dy / distance; - - // 시작점에서 지정된 길이만큼 떨어진 끝점 계산 - PointF endPoint = new PointF( - p1.X + unitX * length, - p1.Y + unitY * length - ); - - // 선 그리기 - graphics.DrawLine(pen, p1, endPoint); - return endPoint; - } - - - private void UpdateToolbarRects() - { - int x, y, c, row; - var idx = 0; - - if (this.toolbarRects == null) this.toolbarRects = new List(); - else this.toolbarRects.Clear(); - - //left toolbar - x = TOOLBAR_MARGIN; - y = 10; - - var menu_left = new string[] { "+", "-", "1:1", "Cut" }; - foreach (var item in menu_left) - { - toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = item, Bounds = new Rectangle(x, y, TOOLBAR_WIDTH - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - } - - - //right toolbar - y = 10; - row = 0; - x = DisplayRectangle.Right - TOOLBAR_WIDTHR - TOOLBAR_MARGIN; - - var menu_right = new string[] { "Text", "Line", "Point", "Magnet", "Load", "Save", "Pos", "Path", "Clear" }; - foreach (var item in menu_right) - { - toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = item, Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - } - - - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Line", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Point", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Magnet", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Load", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Save", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Pos", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Path", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; - //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Clear", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); - - } - - public void SetPreviewStartPoint(Point? point) - { - previewStartPoint = point; - this.Invalidate(); - } - - public void UpdatePreviewLine(Point currentPosition) - { - currentMousePosition = currentPosition; - this.Invalidate(); - } - - private Point SnapToPoint(Point point) - { - // RFID 포인트와 근접한지 확인 - foreach (var rfid in Manager.RFIDPoints) - { - if (Manager.GetDistance(point, rfid.Location) <= SELECTION_DISTANCE_POINT) - { - return rfid.Location; - } - } - - return point; - } - - - - /// - /// 현재위치를 설정합니다 - /// - /// RFID TagNo - /// - public bool SetCurrentPosition(ushort rfidTagNo) - { - var rfidPoint = Manager.FindRFIDPoint(rfidTagNo); - if (rfidPoint != null) - { - // 이동 경로에 추가 (위치 업데이트보다 먼저) - Manager.agv.AddToMovementHistory(rfidTagNo, rfidPoint.Location, Manager.agv.Current_Motor_Direction); - - // AGV 위치 업데이트 - Manager.agv.CurrentRFID = rfidPoint; - - // 목적지가 설정되어 있고 경로가 있는 경우 검증 - if (Manager.agv.TargetRFID.IsEmpty == false && Manager.agv.MainPath.Count > 0) - { - // 현재 위치가 경로에 있는지 확인 - bool isOnPath = Manager.agv.MainPath.Contains(Manager.agv.CurrentRFID); - - if (!isOnPath) - { - // 경로를 벗어났으므로 새로운 경로 계산 - var pathResult = Manager.CalculatePath(Manager.agv.CurrentRFID, Manager.agv.TargetRFID); - if (pathResult.Success) - { - SetCurrentPath(pathResult.Path); - } - } - } - - // 목적지 RFID에 도착했고, 해당 RFID에 고정방향이 있으면 TargetDirection을 강제 설정 - if (Manager.agv.TargetRFID.Value == rfidTagNo) - { - var destRFID = Manager.FindRFIDPoint(rfidTagNo); - if (destRFID != null && destRFID.FixedDirection.HasValue) - { - Manager.agv.TargetDirection = destRFID.FixedDirection.Value; - } - } - - this.Invalidate(); - return true; - } - return false; - } - - - - - public bool SetTargetPosition(uint rfidValue) - { - var rfidPoint = Manager.FindRFIDPoint(rfidValue); - if (rfidPoint != null) - { - Manager.agv.TargetRFID = rfidPoint; - this.Invalidate(); - return true; - } - return false; - } - - public void SetRFIDPoints(List points) - { - Manager.RFIDPoints = points; - this.Invalidate(); - } - - public void SetAGV(AGV vehicle) - { - Manager.agv = vehicle; - this.Invalidate(); - } - - public void SetMapTexts(List texts) - { - mapTexts = texts; - if (mapTexts == null) mapTexts = new List(); - this.Invalidate(); - } - - //public void SetCustomLines(List lines) - //{ - // customLines = lines; - // if (customLines == null) customLines = new List(); - // this.Invalidate(); - //} - - public void SetIsAddingText(bool value) - { - isAddingText = value; - isDrawingCustomLine = false; - this.Cursor = value ? Cursors.IBeam : Cursors.Default; - } - - public void SetIsDrawingCustomLine(bool value) - { - isDrawingCustomLine = value; - isAddingText = false; - this.Cursor = value ? Cursors.Cross : Cursors.Default; - } - - public void SetIsDrawingRFIDLine(bool value) - { - isDrawingRFIDLine = value; - isDrawingCustomLine = false; - isAddingText = false; - this.Cursor = value ? Cursors.Cross : Cursors.Default; - } - - public void SetIsDeletingRFIDLine(bool value) - { - isDeletingRFIDLine = value; - isDrawingCustomLine = false; - isAddingText = false; - isDrawingRFIDLine = false; - this.Cursor = value ? GetScissorsCursor() : Cursors.Default; - } - - public void SetIsDrawingLine(bool value) - { - isDrawingLine = value; - isDrawingCustomLine = false; - isAddingText = false; - isDrawingRFIDLine = false; - this.Cursor = value ? Cursors.Cross : Cursors.Default; - } - - public enum eMouseMode : byte - { - Default = 0, - pan, - rfidcut, - addtext, - addcustomline, - addrfidpoint, - addrfidline, - } - - private eMouseMode mousemode = eMouseMode.Default; - public eMouseMode MouseMode - { - get { return mousemode; } - set - { - if (this.mousemode == value) mousemode = eMouseMode.Default; - else this.mousemode = value; - switch (this.mousemode) - { - case eMouseMode.pan: this.Cursor = Cursors.Hand; break; - case eMouseMode.addrfidline: this.Cursor = Cursors.Default; break; - case eMouseMode.addrfidpoint: this.Cursor = Cursors.Default; break; - case eMouseMode.addtext: this.Cursor = Cursors.Default; break; - case eMouseMode.addcustomline: this.Cursor = Cursors.Default; break; - default: this.Cursor = Cursors.Default; break; - } - previewStartPoint = null; - Invalidate(); - } - } - - public void SetIsAddingMagnet(bool value) - { - - } - - public void SetIsAddingPoint(bool value) - { - isDrawingCustomLine = false; - isDrawingLine = false; - isDrawingRFIDLine = false; - isAddingPoint = value; - this.Cursor = value ? Cursors.Cross : Cursors.Default; - } - - private Cursor GetScissorsCursor() - { - // 가위 커서 아이콘 생성 - using (var bitmap = new Bitmap(32, 32)) - using (var g = Graphics.FromImage(bitmap)) - { - g.Clear(Color.Transparent); - - // 가위 모양 그리기 - using (var pen = new Pen(Color.Black, 2)) - { - // 가위 손잡이 - g.DrawEllipse(pen, 12, 20, 8, 8); - g.DrawLine(pen, 16, 20, 16, 16); - - // 가위 날 - g.DrawLine(pen, 16, 16, 8, 8); - g.DrawLine(pen, 16, 16, 24, 8); - } - - return new Cursor(bitmap.GetHicon()); - } - } - - public void SetCurrentPath(List path) - { - Manager.agv.MainPath = path; - this.Invalidate(); - } - - protected override void OnPaint(PaintEventArgs e) - { - //base.OnPaint(e); - - e.Graphics.TranslateTransform(offset.X, offset.Y); - e.Graphics.ScaleTransform(zoom, zoom); - - DrawRFIDLines(e.Graphics); - DrawRFIDPoints(e.Graphics); - //DrawCustomLines(e.Graphics); - DrawMapTexts(e.Graphics); - - DrawPath(e.Graphics); - DrawAGV(e.Graphics); - //DrawAGVMotor(e.Graphics); - DrawTargetFlag(e.Graphics); // 목적지 깃발 그리기 추가 - - // 선택된 개체 강조 표시 - if (selectedRFID != null) - { - using (Pen pen = new Pen(Color.Magenta, 2)) - { - pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - e.Graphics.DrawEllipse(pen, - selectedRFID.Location.X - 10, - selectedRFID.Location.Y - 10, - 20, 20); - } - } - - if (selectedRFIDLine != null) - { - using (Pen pen = new Pen(Color.Magenta, 2)) - { - pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - e.Graphics.DrawLine(pen, selectedRFIDLine.StartPoint, selectedRFIDLine.EndPoint); - } - } - - // 미리보기 라인 그리기 - if (previewStartPoint.HasValue) - { - using (Pen previewPen = new Pen(Color.FromArgb(180, Color.Yellow), LINE_WIDTH)) - { - previewPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - e.Graphics.DrawLine(previewPen, previewStartPoint.Value, currentMousePosition); - } - } - - // 그래픽스 변환 초기화 - e.Graphics.ResetTransform(); - - // 툴바 버튼 그리기 - foreach (var item in this.toolbarRects) - DrawToolbarButton(e.Graphics, item.Bounds, item.Title, item.isHovering); - - //예측값디스플레잉(임시) - var predictresult = Manager.PredictResult; - if (predictresult != null) - { - var nextRFID = predictresult.NextRFID?.Value.ToString() ?? ""; - var nextSPD = predictresult.MoveSpeed?.ToString() ?? string.Empty; - var nextDIV = predictresult.MoveDiv?.ToString() ?? string.Empty; - var str = $"{predictresult.ReasonCode}|{predictresult.MoveState}|{predictresult.Direction}|Next:{nextRFID}|SPD:{nextSPD}|DIV:{nextDIV}"; - var strsize = e.Graphics.MeasureString(str, this.Font); - var textcolor = Color.Red; - if (predictresult.MoveState == AGVMoveState.Stop) textcolor = Color.Gold; - - using (var sb = new SolidBrush(textcolor)) - e.Graphics.DrawString(str, this.Font, sb, this.Right - strsize.Width - 10, this.Bottom - strsize.Height - 10); - } - - //경로정보표시(임시) - var pathstr = ""; - if (Manager.agv.MainPath.Any()) - { - pathstr = "● Path : " + string.Join("▶", Manager.agv.MainPath.Select(t => t.Value).ToArray()); - //pathstr += "\n● Target Direction Match : " + (agv.IsTargetDirectionMatch ? "O" : "X"); - } - else pathstr = "● Path : no data"; - using (var f = new Font("Arial", 10, FontStyle.Bold)) - e.Graphics.DrawString(pathstr, f, Brushes.DeepSkyBlue, this.Left + 65, this.Top + 10); - - var histstr = ""; - if (Manager.agv.MovementHistory.Count > 1) - { - histstr = "● History : " + string.Join("▶", Manager.agv.MovementHistory.Select(t => t.Value.ToString() + $"[{t.Direction.ToString()[0]}]").ToArray()); - } - else histstr = "● History : no data"; - using (var f = new Font("Arial", 10, FontStyle.Bold)) - e.Graphics.DrawString(histstr, f, Brushes.DeepSkyBlue, this.Left + 65, this.Top + 30); - - } - - private void DrawRFIDPoints(Graphics g) - { - // RFID 포인트 그리기 - foreach (var rfid in Manager.RFIDPoints) - { - var MarkerSize = 5; - var half = MarkerSize / 2f; - rfid.Bounds = new RectangleF(rfid.Location.X - half, rfid.Location.Y - half, MarkerSize, MarkerSize); - - // 종단 RFID는 특별한 색상으로 표시 - Color pointColor; - if (rfid.IsTerminal) - { - pointColor = Color.Orange; // 종단은 주황색 - } - else if (rfid.IsRotatable) - { - pointColor = Color.Yellow; // 회전 가능은 노란색 - } - else - { - pointColor = Color.Green; // 일반은 초록색 - } - - using (var brush = new SolidBrush(pointColor)) - { - g.FillEllipse(brush, rfid.Bounds); - } - - // 회전가능 항목 테두리 색상 표시 - if (rfid.IsRotatable) - { - Color borderColor = Color.Yellow; - using (var pen = new Pen(borderColor, 2)) - { - g.DrawEllipse(pen, rfid.Bounds.Expand(16, 16)); - g.DrawEllipse(pen, rfid.Bounds.Expand(10, 10)); - g.DrawEllipse(pen, rfid.Bounds.Expand(4, 4)); - } - } - - - // 고정방향이 있으면 테두리 색상 표시 - if (rfid.FixedDirection.HasValue) - { - Color borderColor = rfid.FixedDirection.Value == AgvDir.Forward ? Color.DeepSkyBlue : Color.Gold; - using (var pen = new Pen(borderColor, 2)) - { - g.DrawEllipse(pen, rfid.Bounds.Expand(5, 5)); - } - } - - // 종단 RFID는 특별한 테두리 표시 - if (rfid.IsTerminal) - { - using (var pen = new Pen(Color.Red, 3)) - { - pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - g.DrawEllipse(pen, rfid.Bounds.Expand(8, 8)); - } - } - - var str = rfid.Value.ToString(); - g.DrawString(str, this.Font, Brushes.DarkGray, rfid.Bounds.X, rfid.Bounds.Y + 5); - } - - - } - - private void DrawAGV(Graphics g) - { - var agvsize = 30; - var halfsize = (int)(agvsize / 2); - - // AGV의 현재 위치를 중심으로 하는 원 - var circleRect = new Rectangle( - Manager.agv.CurrentRFID.Location.X - halfsize, - Manager.agv.CurrentRFID.Location.Y - halfsize, - agvsize, agvsize); - - - //이동경로정보를 따라서 리프트의 위치를 표시해준다. - if (Manager.agv.MovementHistory.Any() && Manager.agv.MovementHistory.Count > 1) - { - var prept = Manager.agv.MovementHistory.Skip(Manager.agv.MovementHistory.Count - 2).First(); - var lstpt = Manager.agv.MovementHistory.Last(); - - RFIDPoint TargetPT = null; - - //뒤로이동하는경우라면 이전위치에 리프트가 있다. - if (lstpt.Direction == AgvDir.Backward) - { - TargetPT = prept; - } - else //앞으로이동한다면 이동방향과 동일하다 - { - //이전위치는 제거 하고 처음발견된 것을 대상으로 한다 - TargetPT = Manager.GetNeighbors(lstpt).Where(t => t.Value != prept.Value).FirstOrDefault(); - } - - if (TargetPT != null) - { - using (var p = new Pen(Color.Black, 3)) - { - var circleRadius = 6; - var pt = DrawLineWithLength(g, p, lstpt.Location, TargetPT.Location, 25); - var liftRect = new RectangleF(pt.X - circleRadius, pt.Y - circleRadius, circleRadius * 2, circleRadius * 2); - g.FillEllipse(Brushes.Black, liftRect); - - var liftColor = Manager.agv.IsTargetDirectionMatch ? Color.White : Color.HotPink; - using (var pBorder = new Pen(liftColor, 3)) - g.DrawEllipse(pBorder, liftRect); - } - } - } - - - - // --- BodyAngle이 결정되지 않은 경우: 기본 방향으로 그림 --- - Color bgcolor = Manager.agv.BatteryLevel > 80 ? Color.Lime : (Manager.agv.BatteryLevel > 60 ? Color.Gold : Color.Tomato); - using (var circleBrush = new SolidBrush(Color.FromArgb(150, bgcolor))) - g.FillEllipse(circleBrush, circleRect); - using (var circlePen = new Pen(Color.Black, 4)) - g.DrawEllipse(circlePen, circleRect); - - //motor direction - var str = Manager.agv.Current_Motor_Direction.ToString().Substring(0, 1); - var strsize = g.MeasureString(str, this.Font); - g.DrawString(str, this.Font, Brushes.White, circleRect, new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center - }); - - - // 과거 이동 경로 화살표 그리기 - //DrawMovementHistoryArrows(g); - } - - private void DrawAGVMotor(Graphics g) - { - var agvsize = 30; - var halfsize = (int)(agvsize / 2); - - // 삼각형 포인트 계산 (회전 중심점 0,0 기준) - Point[] trianglePoints = new Point[3]; - var arrowSize = halfsize - 5; - trianglePoints[0] = new Point(0, -arrowSize); // 꼭짓점 - trianglePoints[1] = new Point(-arrowSize, arrowSize); // 왼쪽 아래 - trianglePoints[2] = new Point(arrowSize, arrowSize); // 오른쪽 아래 - - // 삼각형 그리기 - using (var arrowBrush = new SolidBrush(Color.FromArgb(200, Color.White))) - g.FillPolygon(arrowBrush, trianglePoints); - using (var arrowPen = new Pen(Color.Black, 2)) - g.DrawPolygon(arrowPen, trianglePoints); - } - - // 과거 이동 경로를 화살표로 표시 - private void DrawMovementHistoryArrows(Graphics g) - { - if (Manager.agv.MovementHistory.Count < 2) - return; - - // 최근 3개의 이동 경로 표시 (가장 오래된 것부터) - int startIndex = Math.Max(0, Manager.agv.MovementHistory.Count - 3); - - for (int i = startIndex; i < Manager.agv.MovementHistory.Count - 1; i++) - { - var startRFID = Manager.agv.MovementHistory[i]; - var endRFID = Manager.agv.MovementHistory[i + 1]; - //var startPos = agv.PositionHistory[i]; - //var endPos = agv.PositionHistory[i + 1]; - - // 시간에 따른 투명도 계산 - int age = Manager.agv.MovementHistory.Count - 1 - i; - int alpha = Math.Max(50, 255 - (age * 50)); - - var directConnection = Manager.rfidConnections.FirstOrDefault(c => - (c.P1.Value == startRFID.Value && c.P2.Value == endRFID.Value) || - (c.P1.Value == endRFID.Value && c.P2.Value == startRFID.Value)); - - if (directConnection != null) - { - // 직접 연결된 경우: 실선 화살표 - Color arrowColor = (directConnection.P1.Value == startRFID.Value) ? Color.Lime : Color.Red; - arrowColor = Color.FromArgb(alpha, arrowColor); - DrawArrow(g, startRFID.Location, endRFID.Location, arrowColor, 3); - } - else - { - // 직접 연결되지 않은 경우: 경로 탐색 후 점선 화살표 체인 - var pathResult = Manager.CalculatePath(startRFID, endRFID); - if (pathResult.Success && pathResult.Path != null && pathResult.Path.Count > 1) - { - // 경로의 첫 단계 방향으로 전체 색상 결정 - Color arrowColor = Color.Gray; - var firstStepEndPoint = pathResult.Path[1]; - var firstStepEndRfidPoint = Manager.RFIDPoints.FirstOrDefault(p => p.Location == firstStepEndPoint.Location); - if (firstStepEndRfidPoint != null) - { - var firstStepConnection = Manager.rfidConnections.FirstOrDefault(c => - (c.P1.Value == startRFID.Value && c.P2.Value == firstStepEndRfidPoint.Value) || - (c.P1.Value == firstStepEndRfidPoint.Value && c.P2.Value == startRFID.Value)); - - if (firstStepConnection != null) - { - arrowColor = (firstStepConnection.P1.Value == startRFID.Value) ? Color.Lime : Color.Red; - } - } - - arrowColor = Color.FromArgb(alpha, arrowColor); - - // 경로의 각 세그먼트를 점선 화살표로 그리기 - for (int j = 0; j < pathResult.Path.Count - 1; j++) - { - Point segmentStart = pathResult.Path[j].Location; - Point segmentEnd = pathResult.Path[j + 1].Location; - DrawDashedArrow(g, segmentStart, segmentEnd, arrowColor, 3); - } - } - } - } - } - - // 점선 화살표 그리기 헬퍼 메서드 - private void DrawDashedArrow(Graphics g, Point start, Point end, Color color, int width) - { - using (var pen = new Pen(color, width)) - { - pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - - // 선 그리기 - g.DrawLine(pen, start, end); - - // 화살표 머리 그리기 (실선으로) - pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; - var arrowSize = 8; - var angle = Math.Atan2(end.Y - start.Y, end.X - start.X); - var arrowAngle = Math.PI / 6; // 30도 - - // 화살표 끝점에서 약간 뒤로 이동 - var arrowStart = new PointF( - end.X - (float)(arrowSize * Math.Cos(angle)), - end.Y - (float)(arrowSize * Math.Sin(angle)) - ); - - // 화살표 날개 그리기 - var arrow1 = new PointF( - arrowStart.X - (float)(arrowSize * Math.Cos(angle - arrowAngle)), - arrowStart.Y - (float)(arrowSize * Math.Sin(angle - arrowAngle)) - ); - var arrow2 = new PointF( - arrowStart.X - (float)(arrowSize * Math.Cos(angle + arrowAngle)), - arrowStart.Y - (float)(arrowSize * Math.Sin(angle + arrowAngle)) - ); - - g.DrawLine(pen, arrowStart, arrow1); - g.DrawLine(pen, arrowStart, arrow2); - } - } - - // 실선 화살표 그리기 헬퍼 메서드 - private void DrawArrow(Graphics g, Point start, Point end, Color color, int width, int arrowSize = 8) - { - using (var pen = new Pen(color, width)) - { - // 선 그리기 - g.DrawLine(pen, start, end); - - // 화살표 머리 그리기 - //var arrowSize = 8; - var angle = Math.Atan2(end.Y - start.Y, end.X - start.X); - var arrowAngle = Math.PI / 6; // 30도 - - // 화살표 끝점에서 약간 뒤로 이동 - var arrowStart = new PointF( - end.X - (float)(arrowSize / 4f * Math.Cos(angle)), - end.Y - (float)(arrowSize / 4f * Math.Sin(angle)) - ); - - // 화살표 날개 그리기 - var arrow1 = new PointF( - arrowStart.X - (float)(arrowSize * Math.Cos(angle - arrowAngle)), - arrowStart.Y - (float)(arrowSize * Math.Sin(angle - arrowAngle)) - ); - var arrow2 = new PointF( - arrowStart.X - (float)(arrowSize * Math.Cos(angle + arrowAngle)), - arrowStart.Y - (float)(arrowSize * Math.Sin(angle + arrowAngle)) - ); - - g.DrawLine(pen, arrowStart, arrow1); - g.DrawLine(pen, arrowStart, arrow2); - } - } - - //private void DrawCustomLines(Graphics g) - //{ - // if (customLines == null) return; - // foreach (var line in customLines) - // { - // using (Pen linePen = new Pen(line.LineColor, line.LineWidth)) - // { - // g.DrawLine(linePen, line.StartPoint, line.EndPoint); - // } - // } - //} - - private void DrawMapTexts(Graphics g) - { - if (mapTexts == null) return; - foreach (var text in mapTexts) - { - var textSize = g.MeasureString(text.Text, text.Font); - if (text.Dirty) - { - text.Bounds = new RectangleF( - text.Location.X, - text.Location.Y, - textSize.Width, - textSize.Height - ); - text.Dirty = false; - } - - if (text.BackgroundColor != Color.Transparent) - { - using (var brush = new SolidBrush(text.BackgroundColor)) - { - g.FillRectangle(brush, text.Bounds); - } - } - - using (var brush = new SolidBrush(text.TextColor)) - { - g.DrawString(text.Text, text.Font, brush, text.Location); - } - - if (text == selectedText) - { - using (Pen pen = new Pen(Color.Blue, 1)) - { - pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - g.DrawRectangle(pen, text.Bounds.X, text.Bounds.Y, text.Bounds.Width, text.Bounds.Height); - } - } - } - } - - public void ShowDesign() - { - using (var f = new Dialog.fMapDesign(this.Filename)) - if (f.ShowDialog() == DialogResult.OK) - this.LoadFromFile(this.Filename, out string ermsg); - } - - private void DrawRFIDLines(Graphics g) - { - var idx = 0; - using (Font f = new Font("arial", 4)) - { - //foreach (var item in rfidLines) - //{ - // var sp = item.StartPoint; - // var ep = item.EndPoint; - // using (var p = new Pen(Color.FromArgb(50, Color.White), 10)) - // { - // g.DrawLine(p, sp, ep); - // var x = sp.X; - // var y = sp.Y; - // g.DrawString($"{idx}", f, Brushes.Gold, x, y); - - // x = ep.X; - // y = ep.Y; - // g.DrawString($"{idx}", f, Brushes.Pink, x, y); - // idx++; - // } - //} - } - - //연결정보에서 그림을 그린다. - var didx = 0; - foreach (var connection in Manager.rfidConnections) - { - didx += 1; - var SP = Manager.RFIDPoints.FirstOrDefault(p => p.Value == connection.P1.Value)?.Location ?? Point.Empty; - var EP = Manager.RFIDPoints.FirstOrDefault(p => p.Value == connection.P2.Value)?.Location ?? Point.Empty; - - if (SP.IsEmpty || EP.IsEmpty) continue; - - //var lcolor = didx % 2 == 0 ? Color.White : Color.LightSkyBlue; - var lineColorP = connection.EnableP ? Color.White : Color.Red; - var lineColorN = connection.EnableN ? Color.White : Color.Red; - - var boundBoxP = new Rectangle(SP.X + 1, SP.Y - 6, EP.X - SP.X - 2, 10); - var boundBoxN = new Rectangle(SP.X + 1, SP.Y + 6, EP.X - SP.X - 2, 10); - - var RotatePts = GetRotatedRectangle(SP, EP, 6); - var RotatePtsP = GetRotatedRectangle(RotatePts[0], RotatePts[1], 4); - var RotatePtsN = GetRotatedRectangle(RotatePts[2], RotatePts[3], 4); - var RectP = this.GetRotatedRectanglePath(RotatePtsP); - var RectN = this.GetRotatedRectanglePath(RotatePtsN); - - //foreach (var item in RotatePts) - //{ - // var ballsize = 1f; - // var r = new Rectangle((int)(item.X - ballsize), (int)(item.Y - ballsize), (int)(ballsize * 2), (int)(ballsize * 2)); - // g.FillEllipse(Brushes.WhiteSmoke, r); - //} - - using(var p = new Pen(Color.FromArgb(130,Color.Red),1)) - g.DrawPath(p, RectP); - using (var p = new Pen(Color.FromArgb(130, Color.Blue), 1)) - g.DrawPath(p, RectN); - - using (Pen linePen = new Pen(Color.FromArgb(30, lineColorP), 1)) - { - var DriveMethod = ""; - var nulChar = "■"; - if (connection.MoveDirectionP != null) - { - // if (DriveMethod.isEmpty() == false) DriveMethod += "|"; - DriveMethod += ((AgvSts)connection.MoveDirectionP).ToString()[0]; - } - else DriveMethod += nulChar; - if (connection.MoveSpeedP != null) - { - // if (DriveMethod.isEmpty() == false) DriveMethod += "|"; - DriveMethod += ((AgvSpeed)connection.MoveSpeedP).ToString()[0]; - } - else DriveMethod += nulChar; - if (connection.LiftDirectionP != null) - { - //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; - DriveMethod += ((AgvSts)connection.LiftDirectionP).ToString()[0]; - } - else DriveMethod += nulChar; - - //g.DrawLine(linePen, SP, EP); - //g.DrawLine(Pens.SlateGray, SP, EP); - //g.DrawRectangle(linePen, boundBoxP); - - if (connection.EnableP == false) - { - g.DrawLine(linePen, boundBoxP.Left, boundBoxP.Top, boundBoxP.Right, boundBoxP.Bottom); - g.DrawLine(linePen, boundBoxP.Right, boundBoxP.Top, boundBoxP.Left, boundBoxP.Bottom); - } - else - { - //DrawArrow(g, - //new Point(boundBoxP.X, (int)(boundBoxP.Y + boundBoxP.Height / 2f)), - //new Point(boundBoxP.Right, (int)(boundBoxP.Y + boundBoxP.Height / 2f)), - //lineColorP, 1); - } - - if (DriveMethod.isEmpty() == false && DriveMethod.Equals($"{nulChar}{nulChar}{nulChar}") == false) - using (Font f = new Font("Consolas", 5, FontStyle.Bold)) - g.DrawString(DriveMethod, f, Brushes.Gold, boundBoxP, new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center, - }); - - } - - - using (Pen linePen = new Pen(Color.FromArgb(30, lineColorN), 1)) - { - - var DriveMethod = ""; - var nulChar = "■"; - if (connection.MoveDirectionN != null) - { - //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; - DriveMethod += ((AgvSts)connection.MoveDirectionN).ToString()[0]; - } - else DriveMethod += nulChar; - if (connection.MoveSpeedN != null) - { - //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; - DriveMethod += ((AgvSpeed)connection.MoveSpeedN).ToString()[0]; - } - else DriveMethod += nulChar; - if (connection.LiftDirectionN != null) - { - //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; - DriveMethod += ((AgvSts)connection.LiftDirectionN).ToString()[0]; - } - else DriveMethod += nulChar; - - - //g.DrawLine(linePen, SP, EP); - //g.DrawLine(Pens.SlateGray, SP, EP); - //g.DrawRectangle(linePen, boundBoxN); - if (connection.EnableP == false) - { - g.DrawLine(linePen, boundBoxN.Left, boundBoxN.Top, boundBoxN.Right, boundBoxN.Bottom); - g.DrawLine(linePen, boundBoxN.Right, boundBoxN.Top, boundBoxN.Left, boundBoxN.Bottom); - } - else - { - // DrawArrow(g, - //new Point(boundBoxN.Right, (int)(boundBoxN.Y + boundBoxN.Height / 2f)), - //new Point(boundBoxN.X, (int)(boundBoxN.Y + boundBoxN.Height / 2f)), - //lineColorN, 1); - } - - if (DriveMethod.isEmpty() == false && DriveMethod.Equals($"{nulChar}{nulChar}{nulChar}") == false) - using (Font f = new Font("Consolas", 5, FontStyle.Bold)) - g.DrawString(DriveMethod, f, Brushes.Gold, boundBoxN, new StringFormat - { - Alignment = StringAlignment.Center, - LineAlignment = StringAlignment.Center, - }); - - } - - //g.DrawLine(Pens.SlateGray, SP, EP); - } - - // 미리보기 라인 그리기 - if (previewStartPoint.HasValue && isDrawingRFIDLine) - { - using (Pen previewPen = new Pen(Color.FromArgb(180, Color.Green), 2)) - { - previewPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - var currentMapPosition = ScreenToMap(currentMousePosition); - g.DrawLine(previewPen, previewStartPoint.Value, currentMapPosition); - } - } - } - - private void DrawPath(Graphics g) - { - if (Manager.agv.MainPath == null || Manager.agv.MainPath.Count < 2) - return; - - Color pathColor = Color.FromArgb(150, Color.White); - if (Manager.agv.SubPath != null && Manager.agv.SubPath.Any()) - pathColor = Color.FromArgb(70, Color.LightGray); - int pathWidth = 10; - - using (Pen pathPen = new Pen(pathColor, pathWidth)) - { - pathPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - for (int i = 0; i < Manager.agv.MainPath.Count - 1; i++) - { - g.DrawLine(pathPen, Manager.agv.MainPath[i].Location, Manager.agv.MainPath[i + 1].Location); - } - } - - if (Manager.agv.SubPath == null || Manager.agv.SubPath.Count < 2) - return; - - pathColor = Color.FromArgb(150, Color.DeepSkyBlue); - pathWidth = 10; - - using (Pen pathPen = new Pen(pathColor, pathWidth)) - { - pathPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; - for (int i = 0; i < Manager.agv.SubPath.Count - 1; i++) - { - g.DrawLine(pathPen, Manager.agv.SubPath[i].Location, Manager.agv.SubPath[i + 1].Location); - } - } - } - - public List GetRFIDPoints() - { - return Manager.RFIDPoints; - } - - public List GetRFIDLines() - { - return rfidLines; - } - - public void SetRFIDLines(List lines) - { - rfidLines = lines; - this.Invalidate(); - } - - public void AddRFIDConnection(RFIDConnection item) - { - //item 의 rfid를 찾아서 연결해야함 - item.P1 = Manager.RFIDPoints.Where(t => t.Value == item.P1.Value).FirstOrDefault(); - item.P2 = Manager.RFIDPoints.Where(t => t.Value == item.P2.Value).FirstOrDefault(); - - Manager.rfidConnections.Add(item); - this.Invalidate(); - } - - - //public void AddRFIDLine(Point startPoint, Point endPoint) - //{ - // // 시작점과 끝점 사이의 모든 RFID 포인트 찾기 - // var allPoints = new List<(RFIDPoint Point, float Distance)>(); - // var lineVector = new Point(endPoint.X - startPoint.X, endPoint.Y - startPoint.Y); - // var lineLength = (float)Math.Sqrt(lineVector.X * lineVector.X + lineVector.Y * lineVector.Y); - - // foreach (var rfid in Manager.RFIDPoints) - // { - // if (rfid.Location == startPoint || rfid.Location == endPoint) - // continue; - - // // RFID 포인트가 선 위에 있는지 확인 - // var pointVector = new Point(rfid.Location.X - startPoint.X, rfid.Location.Y - startPoint.Y); - // var dotProduct = pointVector.X * lineVector.X + pointVector.Y * lineVector.Y; - // var projectionLength = dotProduct / (lineLength * lineLength); - - // if (projectionLength >= 0 && projectionLength <= 1) - // { - // // 선과 RFID 포인트 사이의 거리 계산 - // var distance = GetDistanceToLine(rfid.Location, startPoint, endPoint); - // if (distance <= SNAP_DISTANCE) - // { - // allPoints.Add((rfid, projectionLength)); - // } - // } - // } - - // // 시작점에서 끝점 방향으로 정렬 - // allPoints.Sort((a, b) => a.Distance.CompareTo(b.Distance)); - - // // 모든 연결 정보를 포함하는 RFID 라인 생성 - // var line = new RFIDLine - // { - // StartPoint = startPoint, - // EndPoint = endPoint, - // }; - - - // rfidLines.Add(line); - // this.Invalidate(); - //} - - public void ClearMap() - { - Manager.RFIDPoints.Clear(); - Manager.rfidConnections.Clear(); - - mapTexts.Clear(); - // customLines.Clear(); - rfidLines.Clear(); - - // 선택 상태도 초기화 - selectedText = null; - selectedLine = null; - selectedRFID = null; - selectedRFIDLine = null; - draggingPoint = null; - - // 미리보기 상태도 초기화 - previewStartPoint = null; - - // 화면 갱신 - this.Invalidate(); - } - - public void AddRFIDPoint(Point mapLocation, ushort rfidValue) - { - var rfidPoint = new RFIDPoint - { - Location = mapLocation, - Value = rfidValue - }; - - Manager.RFIDPoints.Add(rfidPoint); - this.Invalidate(); - } - - public void SaveToFile(string filename) - { - var lines = new List(); - - // RFID 포인트 저장 - lines.Add("[RFID_POINTS]"); - foreach (var point in Manager.RFIDPoints) - { - lines.Add($"{point.Location.X},{point.Location.Y},{point.Value},{point.IsRotatable},{point.FixedDirection},{point.IsTerminal}"); - } - - //// RFID 라인 저장 - //lines.Add("[RFID_LINES]"); - //foreach (var connection in Manager.rfidConnections) - //{ - // var startPoint = Manager.RFIDPoints.First(p => p.Value == connection.P1.Value).Location; - // var endPoint = Manager.RFIDPoints.First(p => p.Value == connection.P2.Value).Location; - // lines.Add($"{startPoint.X},{startPoint.Y},{endPoint.X},{endPoint.Y}," + - // $"{connection.P1},{connection.P2},false,false,0"); - //} - - // RFID 연결 정보 - lines.Add("[RFID_CONNECTION]"); - foreach (var connection in Manager.rfidConnections) - { - lines.Add(connection.DataFileString); - } - - // 텍스트 저장 - lines.Add("[MAP_TEXTS]"); - foreach (var text in mapTexts) - { - lines.Add($"{text.Location.X},{text.Location.Y},{text.TextColor.ToArgb()},{text.BackgroundColor.ToArgb()},{text.Font.Name},{text.Font.Size},{text.Text}"); - } - - //// 커스텀 라인 저장 - //lines.Add("[CUSTOM_LINES]"); - //foreach (var line in customLines) - //{ - // lines.Add($"{line.StartPoint.X},{line.StartPoint.Y},{line.EndPoint.X},{line.EndPoint.Y},{line.LineColor.ToArgb()},{line.LineWidth}"); - //} - - - File.WriteAllLines(filename, lines); - this.Filename = filename; - } - - public bool LoadFromFile(string filename, out string message) - { - this.Filename = filename; - message = string.Empty; - ClearMap(); - - var lines = File.ReadAllLines(filename); - var section = ""; - - var sb = new System.Text.StringBuilder(); - - foreach (var line in lines) - { - if (line.StartsWith("[") && line.EndsWith("]")) - { - section = line; - continue; - } - - switch (section) - { - case "[RFID_POINTS]": - var rfidParts = line.Split(','); - if (rfidParts.Length >= 3) - { - var validX = int.TryParse(rfidParts[0], out int valX); - var validY = int.TryParse(rfidParts[1], out int valY); - var validN = ushort.TryParse(rfidParts[2], out ushort valRfid); - - if (validX && validY && validN) - { - if (Manager.RFIDPoints.Where(t => t.Value == valRfid).Any()) - { - //이미존재한다 - var newvalue = - sb.AppendLine($"rfid중복{valRfid}"); - } - - var rfidPoint = new RFIDPoint - { - Location = new Point(valX, valY), - Value = valRfid - }; - - // 추가 속성 로드 (기본값 처리) - if (rfidParts.Length >= 4) - { - bool isRotatable; - bool.TryParse(rfidParts[3], out isRotatable); - rfidPoint.IsRotatable = isRotatable; - } - if (rfidParts.Length >= 5 && !string.IsNullOrEmpty(rfidParts[4])) - rfidPoint.FixedDirection = (AgvDir)Enum.Parse(typeof(AgvDir), rfidParts[4]); - if (rfidParts.Length >= 6) - { - bool isTerminal; - bool.TryParse(rfidParts[5], out isTerminal); - rfidPoint.IsTerminal = isTerminal; - } - - Manager.RFIDPoints.Add(rfidPoint); - } - else sb.AppendLine($"[{section}] {line}"); - } - break; - - case "[RFID_CONNECTION]": - AddRFIDConnection(new RFIDConnection(line)); - break; - - - //case "[RFID_LINES]": - // var rfidLineParts = line.Split(','); - // if (rfidLineParts.Length >= 8) - // { - // AddRFIDLine( - // new Point(int.Parse(rfidLineParts[0]), int.Parse(rfidLineParts[1])), - // new Point(int.Parse(rfidLineParts[2]), int.Parse(rfidLineParts[3])) - // ); - // } - // break; - - case "[MAP_TEXTS]": - var textParts = line.Split(','); - if (textParts.Length >= 7) - { - var text = new MapText - { - Location = new Point(int.Parse(textParts[0]), int.Parse(textParts[1])), - TextColor = Color.FromArgb(int.Parse(textParts[2])), - BackgroundColor = Color.FromArgb(int.Parse(textParts[3])), - Font = new Font(textParts[4], float.Parse(textParts[5])), - Text = string.Join(",", textParts.Skip(6)) // 텍스트에 쉼표가 포함될 수 있으므로 - }; - mapTexts.Add(text); - } - break; - - //case "[CUSTOM_LINES]": - // var customLineParts = line.Split(','); - // if (customLineParts.Length >= 6) - // { - // var customLine = new CustomLine - // { - // StartPoint = new Point(int.Parse(customLineParts[0]), int.Parse(customLineParts[1])), - // EndPoint = new Point(int.Parse(customLineParts[2]), int.Parse(customLineParts[3])), - // LineColor = Color.FromArgb(int.Parse(customLineParts[4])), - // LineWidth = int.Parse(customLineParts[5]) - // }; - // customLines.Add(customLine); - // } - // break; - } - } - - // RFID 연결 정보 처리 - ProcessRFIDConnections(); - - this.Invalidate(); - - message = sb.ToString(); - return true; - } - - private void ProcessRFIDConnections() - { - return; - Manager.rfidConnections.Clear(); - var connectionSet = new HashSet(); - - foreach (var line in rfidLines) - { - var start = line.StartPoint; - var end = line.EndPoint; - - // 1. 선 위의 모든 RFID 포인트(시작, 끝 포함)를 projectionRatio로 정렬 - var pointsOnThisLine = Manager.RFIDPoints - .Where(p => IsPointOnLine(p.Location, start, end, 10f)) // 오차 허용치 넉넉히 - .Select(p => new - { - RFID = p.Value, - Ratio = GetProjectionRatio(p.Location, start, end) - }) - .ToList(); - - //// 2. 시작/끝 RFID가 목록에 없으면 강제로 추가 - //if (!pointsOnThisLine.Any(p => p.RFID == line.StartRFID)) - // pointsOnThisLine.Add(new { RFID = line.StartRFID, Ratio = 0f }); - //if (!pointsOnThisLine.Any(p => p.RFID == line.EndRFID)) - // pointsOnThisLine.Add(new { RFID = line.EndRFID, Ratio = 1f }); - - // 3. 정렬 - pointsOnThisLine = pointsOnThisLine.OrderBy(p => p.Ratio).ToList(); - - // 4. 순서대로 1:1 연결 - for (int i = 0; i < pointsOnThisLine.Count - 1; i++) - { - var from = pointsOnThisLine[i].RFID; - var to = pointsOnThisLine[i + 1].RFID; - var key = $"{Math.Min(from, to)}_{Math.Max(from, to)}"; - if (connectionSet.Contains(key)) continue; - - var fromItem = Manager.RFIDPoints.FirstOrDefault(p => p.Value == from); - var toItem = Manager.RFIDPoints.FirstOrDefault(p => p.Value == to); - var fromPt = fromItem?.Location ?? line.StartPoint; - var toPt = toItem?.Location ?? line.EndPoint; - - Manager.rfidConnections.Add(new RFIDConnection - { - P1 = fromItem, - P2 = toItem, - }); - connectionSet.Add(key); - } - } - } - - - - // tolerance 인자를 받는 IsPointOnLine - private bool IsPointOnLine(Point point, Point lineStart, Point lineEnd, float tolerance = 10.0f) - { - var distance = GetDistanceToLine(point, lineStart, lineEnd); - if (distance > tolerance) return false; - - var projectionRatio = Math.Round(GetProjectionRatio(point, lineStart, lineEnd), 2); - return projectionRatio >= 0 && projectionRatio <= 1.0; - } - - private void DeleteNearbyRFIDLine(Point clickPoint) - { - const float DELETE_DISTANCE = 10.0f; // 클릭 지점으로부터의 허용 거리 - RFIDLine lineToDelete = null; - float minDistance = float.MaxValue; - - foreach (var line in rfidLines) - { - float distance = GetDistanceToLine(clickPoint, line.StartPoint, line.EndPoint); - if (distance < DELETE_DISTANCE && distance < minDistance) - { - minDistance = distance; - lineToDelete = line; - } - } - - if (lineToDelete != null) - { - rfidLines.Remove(lineToDelete); - this.Invalidate(); - } - } - - private void ZoomIn() - { - zoom *= 1.2f; - zoom = Math.Min(10.0f, zoom); - this.Invalidate(); - } - - private void ZoomOut() - { - zoom /= 1.2f; - zoom = Math.Max(0.1f, zoom); - this.Invalidate(); - } - - private void ResetZoom() - { - zoom = 1.0f; - offset = PointF.Empty; - this.Invalidate(); - } - - private void DrawToolbarButton(Graphics g, Rectangle rect, string text, bool isHovering) - { - var color1 = isHovering ? Color.LightSkyBlue : Color.White; - var color2 = isHovering ? Color.DeepSkyBlue : Color.WhiteSmoke; - using (var brush = new LinearGradientBrush(rect, color1, color2, LinearGradientMode.Vertical)) - using (var pen = new Pen(Color.Gray)) - using (var font = new Font("Tahoma", 9, FontStyle.Bold)) - using (var format = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }) - { - g.FillRectangle(Brushes.LightGray, rect.X + 2, rect.Y + 2, rect.Width, rect.Height); - g.FillRectangle(brush, rect); - g.DrawRectangle(pen, rect); - g.DrawString(text, font, Brushes.Black, rect, format); - } - } - - /// - /// 목적지에 깃발 표시 - /// - /// - private void DrawTargetFlag(Graphics g) - { - //대상이없다면 진행하지 않습니다 - if (Manager.agv.TargetRFID.IsEmpty) return; - - // 바닥에 흰색 원 그리기 - using (var baseBrush = new SolidBrush(Color.Red)) - using (var basePen = new Pen(Color.Black, 1)) - { - var baseSize = 8; - g.FillEllipse(baseBrush, - Manager.agv.TargetRFID.Location.X - baseSize / 2, - Manager.agv.TargetRFID.Location.Y - baseSize / 2, - baseSize, baseSize); - g.DrawEllipse(basePen, - Manager.agv.TargetRFID.Location.X - baseSize / 2, - Manager.agv.TargetRFID.Location.Y - baseSize / 2, - baseSize, baseSize); - } - - // 깃대 그리기 (길이를 2/3로 줄임) - using (var polePen = new Pen(Color.Brown, 3)) - { - var poleLength = 27; // 40 * 2/3 ≈ 27 - g.DrawLine(polePen, - Manager.agv.TargetRFID.Location.X, - Manager.agv.TargetRFID.Location.Y, - Manager.agv.TargetRFID.Location.X, - Manager.agv.TargetRFID.Location.Y - poleLength); - } - - // 깃발 그리기 - Point[] flagPoints = new Point[3]; - flagPoints[0] = new Point(Manager.agv.TargetRFID.Location.X, Manager.agv.TargetRFID.Location.Y - 27); // 깃대 길이에 맞춤 - flagPoints[1] = new Point(Manager.agv.TargetRFID.Location.X + 20, Manager.agv.TargetRFID.Location.Y - 22); - flagPoints[2] = new Point(Manager.agv.TargetRFID.Location.X, Manager.agv.TargetRFID.Location.Y - 17); - - using (var flagBrush = new SolidBrush(Color.Red)) - using (var flagPen = new Pen(Color.DarkRed, 1)) - { - g.FillPolygon(flagBrush, flagPoints); - g.DrawPolygon(flagPen, flagPoints); - } - } - - - - // AGV 다음행동 예측 함수 - - #endregion - - - #region Rotate Rectangle Helper - - - public System.Drawing.Drawing2D.GraphicsPath GetRotatedRectanglePath(PointF[] pts) - { - var p = new GraphicsPath(); - p.AddLine(pts[0], pts[1]); - p.AddLine(pts[1], pts[2]); - p.AddLine(pts[2], pts[3]); - p.AddLine(pts[0], pts[3]); - return p; - } - - /// - /// 두 점을 연결하는 선분을 중심으로 하는 회전된 사각형의 네 꼭지점을 구합니다. - /// - /// 첫 번째 점 - /// 두 번째 점 - /// 사각형의 세로 길이 (기본값: 5) - /// 사각형의 네 꼭지점 배열 (시계방향 순서) - public PointF[] GetRotatedRectangle(PointF point1, PointF point2, float height = 5f) - { - // 두 점 사이의 거리 (가로 길이) - float width = (float)Math.Sqrt(Math.Pow(point2.X - point1.X, 2) + Math.Pow(point2.Y - point1.Y, 2)); - - // 두 점을 연결하는 선분의 각도 (라디안) - float angle = (float)Math.Atan2(point2.Y - point1.Y, point2.X - point1.X); - - // 선분의 중점 - PointF center = new PointF((point1.X + point2.X) / 2f, (point1.Y + point2.Y) / 2f); - - // 사각형의 반 크기 - float halfWidth = width / 2f; - float halfHeight = height / 2f; - - // 회전하지 않은 상태의 사각형 꼭지점들 (중점 기준) - PointF[] localPoints = new PointF[] - { - new PointF(-halfWidth, -halfHeight), // 좌상단 - new PointF(halfWidth, -halfHeight), // 우상단 - new PointF(halfWidth, halfHeight), // 우하단 - new PointF(-halfWidth, halfHeight) // 좌하단 - }; - - // 회전 변환 적용 - PointF[] rotatedPoints = new PointF[4]; - float cos = (float)Math.Cos(angle); - float sin = (float)Math.Sin(angle); - - for (int i = 0; i < 4; i++) - { - // 회전 변환 공식 적용 - float rotatedX = localPoints[i].X * cos - localPoints[i].Y * sin; - float rotatedY = localPoints[i].X * sin + localPoints[i].Y * cos; - - // 중점으로 이동 - rotatedPoints[i] = new PointF(center.X + rotatedX, center.Y + rotatedY); - } - - return rotatedPoints; - } - - /// - /// 오버로드: 개별 좌표값으로 입력받는 버전 - /// - public PointF[] GetRotatedRectangle(float x1, float y1, float x2, float y2, float height = 5f) - { - return GetRotatedRectangle(new PointF(x1, y1), new PointF(x2, y2), height); - } - - /// - /// 회전된 사각형의 경계 사각형(Bounding Rectangle)을 구합니다. - /// - public static RectangleF GetBoundingRectangle(PointF[] rotatedPoints) - { - float minX = float.MaxValue; - float minY = float.MaxValue; - float maxX = float.MinValue; - float maxY = float.MinValue; - - foreach (var point in rotatedPoints) - { - minX = Math.Min(minX, point.X); - minY = Math.Min(minY, point.Y); - maxX = Math.Max(maxX, point.X); - maxY = Math.Max(maxY, point.Y); - } - - return new RectangleF(minX, minY, maxX - minX, maxY - minY); - } - - #endregion - - /// - /// 마지막으로 읽힌 연재위치에 해당하는 RFID 포인트값을 반환 합니다 - /// - public RFIDPoint GetCurrentPosition - { - get - { - return Manager.agv.CurrentRFID; - } - } - - #region 좌표 변환 및 계산 - - - // 화면 좌표를 실제 맵 좌표로 변환 - public Point ScreenToMap(Point screenPoint) - { - int adjustedX = screenPoint.X; - return new Point( - (int)((adjustedX - offset.X) / zoom), - (int)((screenPoint.Y - offset.Y) / zoom) - ); - } - - - private float GetProjectionRatio(Point point, Point lineStart, Point lineEnd) - { - float lineLength = Manager.GetDistance(lineStart, lineEnd); - if (lineLength == 0) return 0; - - return ((point.X - lineStart.X) * (lineEnd.X - lineStart.X) + - (point.Y - lineStart.Y) * (lineEnd.Y - lineStart.Y)) / (lineLength * lineLength); - } - - - private float GetDistanceToLine(Point point, Point lineStart, Point lineEnd) - { - float lineLength = Manager.GetDistance(lineStart, lineEnd); - if (lineLength == 0) return Manager.GetDistance(point, lineStart); - - float t = ((point.X - lineStart.X) * (lineEnd.X - lineStart.X) + - (point.Y - lineStart.Y) * (lineEnd.Y - lineStart.Y)) / (lineLength * lineLength); - - t = Math.Max(0, Math.Min(1, t)); - - float projectionX = lineStart.X + t * (lineEnd.X - lineStart.X); - float projectionY = lineStart.Y + t * (lineEnd.Y - lineStart.Y); - - return Manager.GetDistance(point, new Point((int)projectionX, (int)projectionY)); - } - #endregion - } -} +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Linq; +using System.Management.Instrumentation; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows.Forms; +using AGVControl.Models; +using AR; +using COMM; + +namespace AGVControl +{ + + public partial class MapControl : Control + { + #region 상수 정의 + private const int LINE_WIDTH = 20; // 선 굵기 + private const int TOOLBAR_WIDTH = 58; // 툴바 너비 + private const int TOOLBAR_WIDTHR = 78; // 우측 툴바 너비 + private const int TOOLBAR_BUTTON_HEIGHT = 40; // 툴바 버튼 높이 + private const int TOOLBAR_MARGIN = 5; // 툴바 마진 + private const int SELECTION_DISTANCE_POINT = 7; // 선택 가능 거리 + private const int SELECTION_DISTANCE_TEXT = 3; // 선택 가능 거리 + #endregion + + #region 멤버 변수 + // 맵 데이터 + + private List mapTexts; + //private List customLines; + private List rfidLines; + + public MapControlManager Manager = new MapControlManager(); + + // 화면 조작 관련 + private float zoom = 1.0f; + private PointF offset = PointF.Empty; + private Point lastMousePosition; + private Point currentMousePosition; + private bool isDragging = false; + private Point? previewStartPoint = null; + private Point? branchPoint = null; + + // 모드 관련 + private bool isAddingText = false; + private bool isAddingPoint = false; + private bool isDrawingCustomLine = false; + private bool isDrawingRFIDLine = false; + private bool isDeletingRFIDLine = false; + private bool isDrawingLine = false; + private bool isDraggingPoint = false; + private bool isDraggingText = false; + private Point dragOffset; + + // 선택된 객체 + private MapText selectedText = null; + private CustomLine selectedLine = null; + private RFIDPoint selectedRFID = null; + private RFIDLine selectedRFIDLine = null; + private Point? draggingPoint = null; + + // 툴바 관련 + private List toolbarRects; + + // RFID 관련 + public string RFIDStartNo { get; set; } = string.Empty; + public int RFIDLastNumber = 0; + public string Filename = string.Empty; + #endregion + + #region 속성 + public MapText SelectedText => selectedText; + public CustomLine SelectedLine => selectedLine; + public RFIDPoint SelectedRFID => selectedRFID; + public RFIDLine SelectedRFIDLine => selectedRFIDLine; + #endregion + + #region 생성자 및 초기화 + public MapControl() + { + this.DoubleBuffered = true; + mapTexts = new List(); + // customLines = new List(); + rfidLines = new List(); + + UpdateToolbarRects(); + } + #endregion + + #region 이벤트 핸들러 + public event EventHandler OnRightClick; + #endregion + + #region OVERRIDE + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + if (e.Button == MouseButtons.Middle) + { + isDragging = false; + this.Cursor = Cursors.Default; + } + else if (e.Button == MouseButtons.Left) + { + isDragging = false; + isDraggingPoint = false; + isDraggingText = false; + } + } + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + var mapPoint = ScreenToMap(e.Location); + if (e.Button == MouseButtons.Right) + { + OnRightClick?.Invoke(this, e); + this.MouseMode = eMouseMode.Default; + } + else if (e.Button == MouseButtons.Left) + { + // 툴바 버튼 클릭 처리 + var toolbar = toolbarRects.FirstOrDefault(t => t.Bounds.Contains(e.Location)); + if (toolbar != null) + { + switch (toolbar.Title.ToLower()) + { + case "+": ZoomIn(); break; + case "-": ZoomOut(); break; + case "1:1": ResetZoom(); break; + case "cut": MouseMode = (eMouseMode.rfidcut); break; + case "text": MouseMode = (eMouseMode.addtext); break; + case "line": MouseMode = (eMouseMode.addrfidline); break; + case "cline": MouseMode = (eMouseMode.addcustomline); break; + case "point": MouseMode = (eMouseMode.addrfidpoint); break; + case "clear": + Manager.agv.MainPath.Clear(); + break; + case "path": + + var input1 = AR.UTIL.InputBox("input start"); + if (input1.Item1 == false) return; + var input2 = AR.UTIL.InputBox("input end"); + if (input2.Item1 == false) return; + + var startRFID = input1.Item2; + var endRFID = input2.Item2; + + var valid1 = uint.TryParse(input1.Item2, out uint vstart); + var valid2 = uint.TryParse(input2.Item2, out uint vend); + + if (valid1 == false || valid2 == false) + { + MessageBox.Show("RFID값은 정수로 입력하세요", "경로 계산", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + var rlt = Manager.CalculatePath(vstart, vend); + if (rlt.Success == false) + { + MessageBox.Show(rlt.Message, "경로 계산", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + else + { + SetCurrentPath(rlt.Path); //현재 경로로 설정함 + MessageBox.Show($"경로가 계산되었습니다.\nRFID 순서: {string.Join(" -> ", rlt.Path)}", + "경로 계산", MessageBoxButtons.OK, MessageBoxIcon.Information); + if (SetTargetPosition(vend) == false) + { + MessageBox.Show("목적지 설정 실패"); + } + } + break; + case "pos": + var tag = AR.UTIL.InputBox("input rfid tag value"); + if (tag.Item1 && tag.Item2 != "" && uint.TryParse(tag.Item2, out uint val) == true) + { + var targetRFID = SetCurrentPosition((ushort)val); + } + break; + case "save": + using (var od = new SaveFileDialog()) + { + od.Filter = "path data|*.route"; + od.FilterIndex = 0; + od.RestoreDirectory = true; + if (Filename.isEmpty() == false) + { + od.FileName = System.IO.Path.GetFileName(Filename); + od.InitialDirectory = System.IO.Path.GetDirectoryName(Filename); + } + + if (od.ShowDialog() == DialogResult.OK) + { + Filename = od.FileName; + this.SaveToFile(Filename); + this.Invalidate(); + } + } + break; + case "load": + using (var od = new OpenFileDialog()) + { + od.Filter = "path data|*.route"; + od.FilterIndex = 0; + + + if (string.IsNullOrEmpty(this.Filename) == false) + { + od.FileName = System.IO.Path.GetFileName(this.Filename); + od.InitialDirectory = System.IO.Path.GetDirectoryName(this.Filename); + } + else + { + od.RestoreDirectory = true; + } + + + if (od.ShowDialog() == DialogResult.OK) + { + this.LoadFromFile(od.FileName, out string errmsg); + if (errmsg.isEmpty() == false) UTIL.MsgE(errmsg); + this.Invalidate(); + } + } + break; + } + return; + } + + // RFID 포인트 선택 + var clickedRFID = Manager.RFIDPoints.FirstOrDefault(r => Manager.GetDistance(mapPoint, r.Location) <= SELECTION_DISTANCE_POINT); + switch (mousemode) + { + case eMouseMode.rfidcut: + DeleteNearbyRFIDLine(mapPoint); + break; + case eMouseMode.addrfidpoint: + if (string.IsNullOrEmpty(this.RFIDStartNo) == false) + { + if (ushort.TryParse(this.RFIDStartNo, out ushort rfidvalue)) + { + AddRFIDPoint(mapPoint, rfidvalue); + + // 숫자로 끝나는 RFID 값인 경우 자동 증가 + if (Regex.IsMatch(RFIDStartNo, @"^[A-Za-z]+\d+$")) + { + // 마지막 숫자 부분 추출 + Match match = Regex.Match(RFIDStartNo, @"\d+$"); + if (match.Success) + { + int currentNumber = int.Parse(match.Value); + if (currentNumber > this.RFIDLastNumber) + { + RFIDLastNumber = currentNumber; + } + RFIDLastNumber++; + + // 숫자 부분을 새로운 번호로 교체 + RFIDStartNo = RFIDStartNo.Substring(0, match.Index) + RFIDLastNumber.ToString("D4"); + } + } + } + + } + break; + case eMouseMode.addtext: + var text = new MapText + { + Location = mapPoint, + Text = "새 텍스트", + TextColor = Color.Black, + BackgroundColor = Color.Transparent, + Font = new Font("Arial", 12) + }; + mapTexts.Add(text); + selectedText = text; + this.mousemode = eMouseMode.Default; + this.Invalidate(); + break; + //case eMouseMode.addcustomline: + // if (previewStartPoint == null) + // { + // previewStartPoint = mapPoint; + // } + // else + // { + // var line = new CustomLine + // { + // StartPoint = previewStartPoint.Value, + // EndPoint = mapPoint, + // LineColor = Color.Red, + // LineWidth = 2 + // }; + // customLines.Add(line); + // selectedLine = line; + // previewStartPoint = null; + // this.Invalidate(); + // } + // break; + case eMouseMode.addrfidline: + if (clickedRFID != null) + { + if (previewStartPoint == null) + { + previewStartPoint = clickedRFID.Location; + } + else + { + var startRFID = Manager.RFIDPoints.FirstOrDefault(r => r.Location == previewStartPoint); + if (startRFID != null) + { + var line = new RFIDLine + { + StartPoint = previewStartPoint.Value, + EndPoint = clickedRFID.Location, + }; + rfidLines.Add(line); + selectedRFIDLine = line; + + // RFID 연결 정보 처리 + ProcessRFIDConnections(); + } + // 다음 라인을 위해 현재 클릭한 RFID를 시작점으로 설정 + previewStartPoint = clickedRFID.Location; + } + this.Invalidate(); + } + break; + } + } + } + protected override void OnMouseDoubleClick(MouseEventArgs e) + { + base.OnMouseDoubleClick(e); + + if (e.Button == MouseButtons.Left) + { + var mapPoint = ScreenToMap(e.Location); + + //RFID 포인트 찾기 + var selected_rfid = Manager.RFIDPoints.Where(t => t.Bounds.Expand(SELECTION_DISTANCE_POINT, SELECTION_DISTANCE_POINT).Contains(mapPoint)).FirstOrDefault(); + if (selected_rfid != null) + { + //연결정보확인 + List connections = new List(); + var p1 = Manager.rfidConnections.Where(t => t.P1.Value == selected_rfid.Value); + var p2 = Manager.rfidConnections.Where(t => t.P2.Value == selected_rfid.Value); + if (p1.Any()) connections.AddRange(p1.ToArray()); + if (p2.Any()) connections.AddRange(p2.ToArray()); + + + using (var f = new Dialog.fPropertyRFIDPoint(selected_rfid, connections)) + f.ShowDialog(); + //UTIL.ShowPropertyDialog(selected_rfid); + this.Invalidate(); + return; + } + + // 텍스트 객체 찾기 + var selected_txt = mapTexts.Where(t => t.Bounds.Expand(SELECTION_DISTANCE_TEXT , SELECTION_DISTANCE_TEXT).Contains(mapPoint)).FirstOrDefault(); + if (selected_txt != null) + { + UTIL.ShowPropertyDialog(selected_txt); + this.Invalidate(); + return; + } + } + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + UpdateToolbarRects(); + this.Invalidate(); + } + + protected override void OnMouseWheel(MouseEventArgs e) + { + base.OnMouseWheel(e); + if (e.Delta > 0) + { + zoom *= 1.1f; + } + else + { + zoom /= 1.2f; + } + + zoom = Math.Max(0.1f, Math.Min(10.0f, zoom)); + this.Invalidate(); + } + + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + lastMousePosition = e.Location; + var mapPoint = ScreenToMap(e.Location); + + if (e.Button == MouseButtons.Middle) + { + isDragging = true; + this.Cursor = Cursors.SizeAll; + } + else if (e.Button == MouseButtons.Left && !isAddingText && !isDrawingCustomLine && !isDrawingRFIDLine) + { + isDragging = true; + + // 텍스트 선택 및 드래그 시작 + foreach (var text in mapTexts) + { + var textSize = CreateGraphics().MeasureString(text.Text, text.Font); + var rect = new RectangleF( + text.Location.X - SELECTION_DISTANCE_TEXT, + text.Location.Y - SELECTION_DISTANCE_TEXT, + textSize.Width + SELECTION_DISTANCE_TEXT * 2, + textSize.Height + SELECTION_DISTANCE_TEXT * 2 + ); + + if (rect.Contains(mapPoint)) + { + selectedText = text; + isDraggingText = true; + // 드래그 시작점과 텍스트 위치의 차이를 저장 + dragOffset = new Point( + text.Location.X - mapPoint.X, + text.Location.Y - mapPoint.Y + ); + return; + } + } + + //// 커스텀 라인 선택 및 드래그 포인트 설정 + //foreach (var line in customLines) + //{ + // float startDistance = Manager.GetDistance(mapPoint, line.StartPoint); + // float endDistance = Manager.GetDistance(mapPoint, line.EndPoint); + + // if (startDistance < SELECTION_DISTANCE) + // { + // selectedLine = line; + // draggingPoint = line.StartPoint; + // isDraggingPoint = true; + // return; + // } + // else if (endDistance < SELECTION_DISTANCE) + // { + // selectedLine = line; + // draggingPoint = line.EndPoint; + // isDraggingPoint = true; + // return; + // } + //} + + + // RFID 포인트 선택 + var clickedRFID = Manager.RFIDPoints.FirstOrDefault(r => + Manager.GetDistance(mapPoint, r.Location) <= SELECTION_DISTANCE_POINT); + if (clickedRFID != null) + { + selectedRFID = clickedRFID; + draggingPoint = clickedRFID.Location; + isDraggingPoint = true; + return; + } + + + } + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + currentMousePosition = e.Location; + var mapPoint = ScreenToMap(e.Location); + + if ((mousemode == eMouseMode.addcustomline || mousemode == eMouseMode.addrfidline) && branchPoint.HasValue) + { + UpdatePreviewLine(e.Location); + } + + // 툴바 버튼 호버 상태 업데이트 + var oldHovering = toolbarRects.OrderBy(t => t.Idx).Select(t => t.isHovering).ToArray(); + + //toolbar check + toolbarRects.ForEach(t => t.isHovering = t.Bounds.Contains(e.Location)); + + //hovering check + if (toolbarRects.Where(t => t.isHovering).Any()) + { + this.Cursor = Cursors.Hand; + } + else if (isDeletingRFIDLine) + { + this.Cursor = GetScissorsCursor(); + } + else + { + this.Cursor = Cursors.Default; + } + + //hovering display update + if (toolbarRects.Where(t => t.Dirty).Any()) + { + this.Invalidate(); + } + + if (isDragging) + { + if (e.Button == MouseButtons.Middle) + { + offset = new PointF( + offset.X + (e.Location.X - lastMousePosition.X), + offset.Y + (e.Location.Y - lastMousePosition.Y) + ); + } + else if (isDraggingText && selectedText != null) + { + // 텍스트 이동 - 드래그 오프셋 적용 + selectedText.Location = new Point( + mapPoint.X + dragOffset.X, + mapPoint.Y + dragOffset.Y + ); + } + else if (isDraggingPoint && draggingPoint.HasValue) + { + // 포인트 이동 + var delta = new Point( + mapPoint.X - ScreenToMap(lastMousePosition).X, + mapPoint.Y - ScreenToMap(lastMousePosition).Y + ); + + if (selectedLine != null) + { + // 커스텀 라인 포인트 이동 + if (draggingPoint.Value == selectedLine.StartPoint) + { + selectedLine.StartPoint = new Point( + selectedLine.StartPoint.X + delta.X, + selectedLine.StartPoint.Y + delta.Y + ); + } + else if (draggingPoint.Value == selectedLine.EndPoint) + { + selectedLine.EndPoint = new Point( + selectedLine.EndPoint.X + delta.X, + selectedLine.EndPoint.Y + delta.Y + ); + } + } + else if (selectedRFID != null) // RFID 포인트 이동 + { + // RFID 포인트 위치 업데이트 + selectedRFID.Location = new Point( + selectedRFID.Location.X + delta.X, + selectedRFID.Location.Y + delta.Y + ); + + // 연결된 RFID 라인 업데이트 + foreach (var line in rfidLines) + { + if (line.StartPoint == draggingPoint.Value) + { + line.StartPoint = selectedRFID.Location; + } + if (line.EndPoint == draggingPoint.Value) + { + line.EndPoint = selectedRFID.Location; + } + } + } + } + + lastMousePosition = e.Location; + this.Invalidate(); + } + + // 미리보기 라인 업데이트를 위한 마우스 위치 저장 + if (isDrawingRFIDLine || isDrawingCustomLine || previewStartPoint.HasValue) + { + currentMousePosition = mapPoint; + } + + this.Invalidate(); + } + + #endregion + + #region 기타 메서드 + + private PointF DrawLineWithLength(Graphics graphics, Pen pen, PointF p1, PointF p2, float length) + { + // 두 점 사이의 벡터 계산 + float dx = p2.X - p1.X; + float dy = p2.Y - p1.Y; + + // 두 점 사이의 거리 계산 + float distance = (float)Math.Sqrt(dx * dx + dy * dy); + + // 거리가 0이면 선을 그릴 수 없음 + if (distance == 0) + return PointF.Empty; + + // 단위 벡터 계산 (방향) + float unitX = dx / distance; + float unitY = dy / distance; + + // 시작점에서 지정된 길이만큼 떨어진 끝점 계산 + PointF endPoint = new PointF( + p1.X + unitX * length, + p1.Y + unitY * length + ); + + // 선 그리기 + graphics.DrawLine(pen, p1, endPoint); + return endPoint; + } + + + private void UpdateToolbarRects() + { + int x, y, c, row; + var idx = 0; + + if (this.toolbarRects == null) this.toolbarRects = new List(); + else this.toolbarRects.Clear(); + + //left toolbar + x = TOOLBAR_MARGIN; + y = 10; + + var menu_left = new string[] { "+", "-", "1:1", "Cut" }; + foreach (var item in menu_left) + { + toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = item, Bounds = new Rectangle(x, y, TOOLBAR_WIDTH - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + } + + + //right toolbar + y = 10; + row = 0; + x = DisplayRectangle.Right - TOOLBAR_WIDTHR - TOOLBAR_MARGIN; + + var menu_right = new string[] { "Text", "Line", "Point", "Magnet", "Load", "Save", "Pos", "Path", "Clear" }; + foreach (var item in menu_right) + { + toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = item, Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + } + + + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Line", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Point", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Magnet", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Load", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Save", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Pos", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Path", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + //y += TOOLBAR_BUTTON_HEIGHT + TOOLBAR_MARGIN; + //toolbarRects.Add(new ToolBarItem { Idx = idx++, Title = "Clear", Bounds = new Rectangle(x, y, TOOLBAR_WIDTHR - 2 * TOOLBAR_MARGIN, TOOLBAR_BUTTON_HEIGHT) }); + + } + + public void SetPreviewStartPoint(Point? point) + { + previewStartPoint = point; + this.Invalidate(); + } + + public void UpdatePreviewLine(Point currentPosition) + { + currentMousePosition = currentPosition; + this.Invalidate(); + } + + private Point SnapToPoint(Point point) + { + // RFID 포인트와 근접한지 확인 + foreach (var rfid in Manager.RFIDPoints) + { + if (Manager.GetDistance(point, rfid.Location) <= SELECTION_DISTANCE_POINT) + { + return rfid.Location; + } + } + + return point; + } + + + + /// + /// 현재위치를 설정합니다 + /// + /// RFID TagNo + /// + public bool SetCurrentPosition(ushort rfidTagNo) + { + var rfidPoint = Manager.FindRFIDPoint(rfidTagNo); + if (rfidPoint != null) + { + // 이동 경로에 추가 (위치 업데이트보다 먼저) + Manager.agv.AddToMovementHistory(rfidTagNo, rfidPoint.Location, Manager.agv.Current_Motor_Direction); + + // AGV 위치 업데이트 + Manager.agv.CurrentRFID = rfidPoint; + + // 목적지가 설정되어 있고 경로가 있는 경우 검증 + if (Manager.agv.TargetRFID.IsEmpty == false && Manager.agv.MainPath.Count > 0) + { + // 현재 위치가 경로에 있는지 확인 + bool isOnPath = Manager.agv.MainPath.Contains(Manager.agv.CurrentRFID); + + if (!isOnPath) + { + // 경로를 벗어났으므로 새로운 경로 계산 + var pathResult = Manager.CalculatePath(Manager.agv.CurrentRFID, Manager.agv.TargetRFID); + if (pathResult.Success) + { + SetCurrentPath(pathResult.Path); + } + } + } + + // 목적지 RFID에 도착했고, 해당 RFID에 고정방향이 있으면 TargetDirection을 강제 설정 + if (Manager.agv.TargetRFID.Value == rfidTagNo) + { + var destRFID = Manager.FindRFIDPoint(rfidTagNo); + if (destRFID != null && destRFID.FixedDirection.HasValue) + { + Manager.agv.TargetDirection = destRFID.FixedDirection.Value; + } + } + + this.Invalidate(); + return true; + } + return false; + } + + + + + public bool SetTargetPosition(uint rfidValue) + { + var rfidPoint = Manager.FindRFIDPoint(rfidValue); + if (rfidPoint != null) + { + Manager.agv.TargetRFID = rfidPoint; + this.Invalidate(); + return true; + } + return false; + } + + public void SetRFIDPoints(List points) + { + Manager.RFIDPoints = points; + this.Invalidate(); + } + + public void SetAGV(AGV vehicle) + { + Manager.agv = vehicle; + this.Invalidate(); + } + + public void SetMapTexts(List texts) + { + mapTexts = texts; + if (mapTexts == null) mapTexts = new List(); + this.Invalidate(); + } + + //public void SetCustomLines(List lines) + //{ + // customLines = lines; + // if (customLines == null) customLines = new List(); + // this.Invalidate(); + //} + + public void SetIsAddingText(bool value) + { + isAddingText = value; + isDrawingCustomLine = false; + this.Cursor = value ? Cursors.IBeam : Cursors.Default; + } + + public void SetIsDrawingCustomLine(bool value) + { + isDrawingCustomLine = value; + isAddingText = false; + this.Cursor = value ? Cursors.Cross : Cursors.Default; + } + + public void SetIsDrawingRFIDLine(bool value) + { + isDrawingRFIDLine = value; + isDrawingCustomLine = false; + isAddingText = false; + this.Cursor = value ? Cursors.Cross : Cursors.Default; + } + + public void SetIsDeletingRFIDLine(bool value) + { + isDeletingRFIDLine = value; + isDrawingCustomLine = false; + isAddingText = false; + isDrawingRFIDLine = false; + this.Cursor = value ? GetScissorsCursor() : Cursors.Default; + } + + public void SetIsDrawingLine(bool value) + { + isDrawingLine = value; + isDrawingCustomLine = false; + isAddingText = false; + isDrawingRFIDLine = false; + this.Cursor = value ? Cursors.Cross : Cursors.Default; + } + + public enum eMouseMode : byte + { + Default = 0, + pan, + rfidcut, + addtext, + addcustomline, + addrfidpoint, + addrfidline, + } + + private eMouseMode mousemode = eMouseMode.Default; + public eMouseMode MouseMode + { + get { return mousemode; } + set + { + if (this.mousemode == value) mousemode = eMouseMode.Default; + else this.mousemode = value; + switch (this.mousemode) + { + case eMouseMode.pan: this.Cursor = Cursors.Hand; break; + case eMouseMode.addrfidline: this.Cursor = Cursors.Default; break; + case eMouseMode.addrfidpoint: this.Cursor = Cursors.Default; break; + case eMouseMode.addtext: this.Cursor = Cursors.Default; break; + case eMouseMode.addcustomline: this.Cursor = Cursors.Default; break; + default: this.Cursor = Cursors.Default; break; + } + previewStartPoint = null; + Invalidate(); + } + } + + public void SetIsAddingMagnet(bool value) + { + + } + + public void SetIsAddingPoint(bool value) + { + isDrawingCustomLine = false; + isDrawingLine = false; + isDrawingRFIDLine = false; + isAddingPoint = value; + this.Cursor = value ? Cursors.Cross : Cursors.Default; + } + + private Cursor GetScissorsCursor() + { + // 가위 커서 아이콘 생성 + using (var bitmap = new Bitmap(32, 32)) + using (var g = Graphics.FromImage(bitmap)) + { + g.Clear(Color.Transparent); + + // 가위 모양 그리기 + using (var pen = new Pen(Color.Black, 2)) + { + // 가위 손잡이 + g.DrawEllipse(pen, 12, 20, 8, 8); + g.DrawLine(pen, 16, 20, 16, 16); + + // 가위 날 + g.DrawLine(pen, 16, 16, 8, 8); + g.DrawLine(pen, 16, 16, 24, 8); + } + + return new Cursor(bitmap.GetHicon()); + } + } + + public void SetCurrentPath(List path) + { + Manager.agv.MainPath = path; + this.Invalidate(); + } + + protected override void OnPaint(PaintEventArgs e) + { + //base.OnPaint(e); + + e.Graphics.TranslateTransform(offset.X, offset.Y); + e.Graphics.ScaleTransform(zoom, zoom); + + DrawRFIDLines(e.Graphics); + DrawRFIDPoints(e.Graphics); + //DrawCustomLines(e.Graphics); + DrawMapTexts(e.Graphics); + + DrawPath(e.Graphics); + DrawAGV(e.Graphics); + //DrawAGVMotor(e.Graphics); + DrawTargetFlag(e.Graphics); // 목적지 깃발 그리기 추가 + + // 선택된 개체 강조 표시 + if (selectedRFID != null) + { + using (Pen pen = new Pen(Color.Magenta, 2)) + { + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + e.Graphics.DrawEllipse(pen, + selectedRFID.Location.X - 10, + selectedRFID.Location.Y - 10, + 20, 20); + } + } + + if (selectedRFIDLine != null) + { + using (Pen pen = new Pen(Color.Magenta, 2)) + { + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + e.Graphics.DrawLine(pen, selectedRFIDLine.StartPoint, selectedRFIDLine.EndPoint); + } + } + + // 미리보기 라인 그리기 + if (previewStartPoint.HasValue) + { + using (Pen previewPen = new Pen(Color.FromArgb(180, Color.Yellow), LINE_WIDTH)) + { + previewPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + e.Graphics.DrawLine(previewPen, previewStartPoint.Value, currentMousePosition); + } + } + + // 그래픽스 변환 초기화 + e.Graphics.ResetTransform(); + + // 툴바 버튼 그리기 + foreach (var item in this.toolbarRects) + DrawToolbarButton(e.Graphics, item.Bounds, item.Title, item.isHovering); + + //예측값디스플레잉(임시) + var predictresult = Manager.PredictResult; + if (predictresult != null) + { + var nextRFID = predictresult.NextRFID?.Value.ToString() ?? ""; + var nextSPD = predictresult.MoveSpeed?.ToString() ?? string.Empty; + var nextDIV = predictresult.MoveDiv?.ToString() ?? string.Empty; + var str = $"{predictresult.ReasonCode}|{predictresult.MoveState}|{predictresult.Direction}|Next:{nextRFID}|SPD:{nextSPD}|DIV:{nextDIV}"; + var strsize = e.Graphics.MeasureString(str, this.Font); + var textcolor = Color.Red; + if (predictresult.MoveState == AGVMoveState.Stop) textcolor = Color.Gold; + + using (var sb = new SolidBrush(textcolor)) + e.Graphics.DrawString(str, this.Font, sb, this.Right - strsize.Width - 10, this.Bottom - strsize.Height - 10); + } + + //경로정보표시(임시) + var pathstr = ""; + if (Manager.agv.MainPath.Any()) + { + pathstr = "● Path : " + string.Join("▶", Manager.agv.MainPath.Select(t => t.Value).ToArray()); + //pathstr += "\n● Target Direction Match : " + (agv.IsTargetDirectionMatch ? "O" : "X"); + } + else pathstr = "● Path : no data"; + using (var f = new Font("Arial", 10, FontStyle.Bold)) + e.Graphics.DrawString(pathstr, f, Brushes.DeepSkyBlue, this.Left + 65, this.Top + 10); + + var histstr = ""; + if (Manager.agv.MovementHistory.Count > 1) + { + histstr = "● History : " + string.Join("▶", Manager.agv.MovementHistory.Select(t => t.Value.ToString() + $"[{t.Direction.ToString()[0]}]").ToArray()); + } + else histstr = "● History : no data"; + using (var f = new Font("Arial", 10, FontStyle.Bold)) + e.Graphics.DrawString(histstr, f, Brushes.DeepSkyBlue, this.Left + 65, this.Top + 30); + + } + + private void DrawRFIDPoints(Graphics g) + { + // RFID 포인트 그리기 + foreach (var rfid in Manager.RFIDPoints) + { + var MarkerSize = 5; + var half = MarkerSize / 2f; + rfid.Bounds = new RectangleF(rfid.Location.X - half, rfid.Location.Y - half, MarkerSize, MarkerSize); + + // 종단 RFID는 특별한 색상으로 표시 + Color pointColor; + if (rfid.IsTerminal) + { + pointColor = Color.Orange; // 종단은 주황색 + } + else if (rfid.IsRotatable) + { + pointColor = Color.Yellow; // 회전 가능은 노란색 + } + else + { + pointColor = Color.Green; // 일반은 초록색 + } + + using (var brush = new SolidBrush(pointColor)) + { + g.FillEllipse(brush, rfid.Bounds); + } + + // 회전가능 항목 테두리 색상 표시 + if (rfid.IsRotatable) + { + Color borderColor = Color.Yellow; + using (var pen = new Pen(borderColor, 2)) + { + g.DrawEllipse(pen, rfid.Bounds.Expand(16, 16)); + g.DrawEllipse(pen, rfid.Bounds.Expand(10, 10)); + g.DrawEllipse(pen, rfid.Bounds.Expand(4, 4)); + } + } + + + // 고정방향이 있으면 테두리 색상 표시 + if (rfid.FixedDirection.HasValue) + { + Color borderColor = rfid.FixedDirection.Value == AgvDir.Forward ? Color.DeepSkyBlue : Color.Gold; + using (var pen = new Pen(borderColor, 2)) + { + g.DrawEllipse(pen, rfid.Bounds.Expand(5, 5)); + } + } + + // 종단 RFID는 특별한 테두리 표시 + if (rfid.IsTerminal) + { + using (var pen = new Pen(Color.Red, 3)) + { + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + g.DrawEllipse(pen, rfid.Bounds.Expand(8, 8)); + } + } + + var str = rfid.Value.ToString(); + g.DrawString(str, this.Font, Brushes.DarkGray, rfid.Bounds.X, rfid.Bounds.Y + 5); + } + + + } + + private void DrawAGV(Graphics g) + { + var agvsize = 30; + var halfsize = (int)(agvsize / 2); + + // AGV의 현재 위치를 중심으로 하는 원 + var circleRect = new Rectangle( + Manager.agv.CurrentRFID.Location.X - halfsize, + Manager.agv.CurrentRFID.Location.Y - halfsize, + agvsize, agvsize); + + + //이동경로정보를 따라서 리프트의 위치를 표시해준다. + if (Manager.agv.MovementHistory.Any() && Manager.agv.MovementHistory.Count > 1) + { + var prept = Manager.agv.MovementHistory.Skip(Manager.agv.MovementHistory.Count - 2).First(); + var lstpt = Manager.agv.MovementHistory.Last(); + + RFIDPoint TargetPT = null; + + //뒤로이동하는경우라면 이전위치에 리프트가 있다. + if (lstpt.Direction == AgvDir.Backward) + { + TargetPT = prept; + } + else //앞으로이동한다면 이동방향과 동일하다 + { + //이전위치는 제거 하고 처음발견된 것을 대상으로 한다 + TargetPT = Manager.GetNeighbors(lstpt).Where(t => t.Value != prept.Value).FirstOrDefault(); + } + + if (TargetPT != null) + { + using (var p = new Pen(Color.Black, 3)) + { + var circleRadius = 6; + var pt = DrawLineWithLength(g, p, lstpt.Location, TargetPT.Location, 25); + var liftRect = new RectangleF(pt.X - circleRadius, pt.Y - circleRadius, circleRadius * 2, circleRadius * 2); + g.FillEllipse(Brushes.Black, liftRect); + + var liftColor = Manager.agv.IsTargetDirectionMatch ? Color.White : Color.HotPink; + using (var pBorder = new Pen(liftColor, 3)) + g.DrawEllipse(pBorder, liftRect); + } + } + } + + + + // --- BodyAngle이 결정되지 않은 경우: 기본 방향으로 그림 --- + Color bgcolor = Manager.agv.BatteryLevel > 80 ? Color.Lime : (Manager.agv.BatteryLevel > 60 ? Color.Gold : Color.Tomato); + using (var circleBrush = new SolidBrush(Color.FromArgb(150, bgcolor))) + g.FillEllipse(circleBrush, circleRect); + using (var circlePen = new Pen(Color.Black, 4)) + g.DrawEllipse(circlePen, circleRect); + + //motor direction + var str = Manager.agv.Current_Motor_Direction.ToString().Substring(0, 1); + var strsize = g.MeasureString(str, this.Font); + g.DrawString(str, this.Font, Brushes.White, circleRect, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }); + + + // 과거 이동 경로 화살표 그리기 + //DrawMovementHistoryArrows(g); + } + + private void DrawAGVMotor(Graphics g) + { + var agvsize = 30; + var halfsize = (int)(agvsize / 2); + + // 삼각형 포인트 계산 (회전 중심점 0,0 기준) + Point[] trianglePoints = new Point[3]; + var arrowSize = halfsize - 5; + trianglePoints[0] = new Point(0, -arrowSize); // 꼭짓점 + trianglePoints[1] = new Point(-arrowSize, arrowSize); // 왼쪽 아래 + trianglePoints[2] = new Point(arrowSize, arrowSize); // 오른쪽 아래 + + // 삼각형 그리기 + using (var arrowBrush = new SolidBrush(Color.FromArgb(200, Color.White))) + g.FillPolygon(arrowBrush, trianglePoints); + using (var arrowPen = new Pen(Color.Black, 2)) + g.DrawPolygon(arrowPen, trianglePoints); + } + + // 과거 이동 경로를 화살표로 표시 + private void DrawMovementHistoryArrows(Graphics g) + { + if (Manager.agv.MovementHistory.Count < 2) + return; + + // 최근 3개의 이동 경로 표시 (가장 오래된 것부터) + int startIndex = Math.Max(0, Manager.agv.MovementHistory.Count - 3); + + for (int i = startIndex; i < Manager.agv.MovementHistory.Count - 1; i++) + { + var startRFID = Manager.agv.MovementHistory[i]; + var endRFID = Manager.agv.MovementHistory[i + 1]; + //var startPos = agv.PositionHistory[i]; + //var endPos = agv.PositionHistory[i + 1]; + + // 시간에 따른 투명도 계산 + int age = Manager.agv.MovementHistory.Count - 1 - i; + int alpha = Math.Max(50, 255 - (age * 50)); + + var directConnection = Manager.rfidConnections.FirstOrDefault(c => + (c.P1.Value == startRFID.Value && c.P2.Value == endRFID.Value) || + (c.P1.Value == endRFID.Value && c.P2.Value == startRFID.Value)); + + if (directConnection != null) + { + // 직접 연결된 경우: 실선 화살표 + Color arrowColor = (directConnection.P1.Value == startRFID.Value) ? Color.Lime : Color.Red; + arrowColor = Color.FromArgb(alpha, arrowColor); + DrawArrow(g, startRFID.Location, endRFID.Location, arrowColor, 3); + } + else + { + // 직접 연결되지 않은 경우: 경로 탐색 후 점선 화살표 체인 + var pathResult = Manager.CalculatePath(startRFID, endRFID); + if (pathResult.Success && pathResult.Path != null && pathResult.Path.Count > 1) + { + // 경로의 첫 단계 방향으로 전체 색상 결정 + Color arrowColor = Color.Gray; + var firstStepEndPoint = pathResult.Path[1]; + var firstStepEndRfidPoint = Manager.RFIDPoints.FirstOrDefault(p => p.Location == firstStepEndPoint.Location); + if (firstStepEndRfidPoint != null) + { + var firstStepConnection = Manager.rfidConnections.FirstOrDefault(c => + (c.P1.Value == startRFID.Value && c.P2.Value == firstStepEndRfidPoint.Value) || + (c.P1.Value == firstStepEndRfidPoint.Value && c.P2.Value == startRFID.Value)); + + if (firstStepConnection != null) + { + arrowColor = (firstStepConnection.P1.Value == startRFID.Value) ? Color.Lime : Color.Red; + } + } + + arrowColor = Color.FromArgb(alpha, arrowColor); + + // 경로의 각 세그먼트를 점선 화살표로 그리기 + for (int j = 0; j < pathResult.Path.Count - 1; j++) + { + Point segmentStart = pathResult.Path[j].Location; + Point segmentEnd = pathResult.Path[j + 1].Location; + DrawDashedArrow(g, segmentStart, segmentEnd, arrowColor, 3); + } + } + } + } + } + + // 점선 화살표 그리기 헬퍼 메서드 + private void DrawDashedArrow(Graphics g, Point start, Point end, Color color, int width) + { + using (var pen = new Pen(color, width)) + { + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + + // 선 그리기 + g.DrawLine(pen, start, end); + + // 화살표 머리 그리기 (실선으로) + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid; + var arrowSize = 8; + var angle = Math.Atan2(end.Y - start.Y, end.X - start.X); + var arrowAngle = Math.PI / 6; // 30도 + + // 화살표 끝점에서 약간 뒤로 이동 + var arrowStart = new PointF( + end.X - (float)(arrowSize * Math.Cos(angle)), + end.Y - (float)(arrowSize * Math.Sin(angle)) + ); + + // 화살표 날개 그리기 + var arrow1 = new PointF( + arrowStart.X - (float)(arrowSize * Math.Cos(angle - arrowAngle)), + arrowStart.Y - (float)(arrowSize * Math.Sin(angle - arrowAngle)) + ); + var arrow2 = new PointF( + arrowStart.X - (float)(arrowSize * Math.Cos(angle + arrowAngle)), + arrowStart.Y - (float)(arrowSize * Math.Sin(angle + arrowAngle)) + ); + + g.DrawLine(pen, arrowStart, arrow1); + g.DrawLine(pen, arrowStart, arrow2); + } + } + + // 실선 화살표 그리기 헬퍼 메서드 + private void DrawArrow(Graphics g, Point start, Point end, Color color, int width, int arrowSize = 8) + { + using (var pen = new Pen(color, width)) + { + // 선 그리기 + g.DrawLine(pen, start, end); + + // 화살표 머리 그리기 + //var arrowSize = 8; + var angle = Math.Atan2(end.Y - start.Y, end.X - start.X); + var arrowAngle = Math.PI / 6; // 30도 + + // 화살표 끝점에서 약간 뒤로 이동 + var arrowStart = new PointF( + end.X - (float)(arrowSize / 4f * Math.Cos(angle)), + end.Y - (float)(arrowSize / 4f * Math.Sin(angle)) + ); + + // 화살표 날개 그리기 + var arrow1 = new PointF( + arrowStart.X - (float)(arrowSize * Math.Cos(angle - arrowAngle)), + arrowStart.Y - (float)(arrowSize * Math.Sin(angle - arrowAngle)) + ); + var arrow2 = new PointF( + arrowStart.X - (float)(arrowSize * Math.Cos(angle + arrowAngle)), + arrowStart.Y - (float)(arrowSize * Math.Sin(angle + arrowAngle)) + ); + + g.DrawLine(pen, arrowStart, arrow1); + g.DrawLine(pen, arrowStart, arrow2); + } + } + + //private void DrawCustomLines(Graphics g) + //{ + // if (customLines == null) return; + // foreach (var line in customLines) + // { + // using (Pen linePen = new Pen(line.LineColor, line.LineWidth)) + // { + // g.DrawLine(linePen, line.StartPoint, line.EndPoint); + // } + // } + //} + + private void DrawMapTexts(Graphics g) + { + if (mapTexts == null) return; + foreach (var text in mapTexts) + { + var textSize = g.MeasureString(text.Text, text.Font); + if (text.Dirty) + { + text.Bounds = new RectangleF( + text.Location.X, + text.Location.Y, + textSize.Width, + textSize.Height + ); + text.Dirty = false; + } + + if (text.BackgroundColor != Color.Transparent) + { + using (var brush = new SolidBrush(text.BackgroundColor)) + { + g.FillRectangle(brush, text.Bounds); + } + } + + using (var brush = new SolidBrush(text.TextColor)) + { + g.DrawString(text.Text, text.Font, brush, text.Location); + } + + if (text == selectedText) + { + using (Pen pen = new Pen(Color.Blue, 1)) + { + pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + g.DrawRectangle(pen, text.Bounds.X, text.Bounds.Y, text.Bounds.Width, text.Bounds.Height); + } + } + } + } + + public void ShowDesign() + { + using (var f = new Dialog.fMapDesign(this.Filename)) + if (f.ShowDialog() == DialogResult.OK) + this.LoadFromFile(this.Filename, out string ermsg); + } + + private void DrawRFIDLines(Graphics g) + { + var idx = 0; + using (Font f = new Font("arial", 4)) + { + //foreach (var item in rfidLines) + //{ + // var sp = item.StartPoint; + // var ep = item.EndPoint; + // using (var p = new Pen(Color.FromArgb(50, Color.White), 10)) + // { + // g.DrawLine(p, sp, ep); + // var x = sp.X; + // var y = sp.Y; + // g.DrawString($"{idx}", f, Brushes.Gold, x, y); + + // x = ep.X; + // y = ep.Y; + // g.DrawString($"{idx}", f, Brushes.Pink, x, y); + // idx++; + // } + //} + } + + //연결정보에서 그림을 그린다. + var didx = 0; + foreach (var connection in Manager.rfidConnections) + { + didx += 1; + var SP = Manager.RFIDPoints.FirstOrDefault(p => p.Value == connection.P1.Value)?.Location ?? Point.Empty; + var EP = Manager.RFIDPoints.FirstOrDefault(p => p.Value == connection.P2.Value)?.Location ?? Point.Empty; + + if (SP.IsEmpty || EP.IsEmpty) continue; + + //var lcolor = didx % 2 == 0 ? Color.White : Color.LightSkyBlue; + var lineColorP = connection.EnableP ? Color.White : Color.Red; + var lineColorN = connection.EnableN ? Color.White : Color.Red; + + var boundBoxP = new Rectangle(SP.X + 1, SP.Y - 6, EP.X - SP.X - 2, 10); + var boundBoxN = new Rectangle(SP.X + 1, SP.Y + 6, EP.X - SP.X - 2, 10); + + var RotatePts = GetRotatedRectangle(SP, EP, 6); + var RotatePtsP = GetRotatedRectangle(RotatePts[0], RotatePts[1], 4); + var RotatePtsN = GetRotatedRectangle(RotatePts[2], RotatePts[3], 4); + var RectP = this.GetRotatedRectanglePath(RotatePtsP); + var RectN = this.GetRotatedRectanglePath(RotatePtsN); + + //foreach (var item in RotatePts) + //{ + // var ballsize = 1f; + // var r = new Rectangle((int)(item.X - ballsize), (int)(item.Y - ballsize), (int)(ballsize * 2), (int)(ballsize * 2)); + // g.FillEllipse(Brushes.WhiteSmoke, r); + //} + + using(var p = new Pen(Color.FromArgb(130,Color.Red),1)) + g.DrawPath(p, RectP); + using (var p = new Pen(Color.FromArgb(130, Color.Blue), 1)) + g.DrawPath(p, RectN); + + using (Pen linePen = new Pen(Color.FromArgb(30, lineColorP), 1)) + { + var DriveMethod = ""; + var nulChar = "■"; + if (connection.MoveDirectionP != null) + { + // if (DriveMethod.isEmpty() == false) DriveMethod += "|"; + DriveMethod += ((AgvSts)connection.MoveDirectionP).ToString()[0]; + } + else DriveMethod += nulChar; + if (connection.MoveSpeedP != null) + { + // if (DriveMethod.isEmpty() == false) DriveMethod += "|"; + DriveMethod += ((AgvSpeed)connection.MoveSpeedP).ToString()[0]; + } + else DriveMethod += nulChar; + if (connection.LiftDirectionP != null) + { + //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; + DriveMethod += ((AgvSts)connection.LiftDirectionP).ToString()[0]; + } + else DriveMethod += nulChar; + + //g.DrawLine(linePen, SP, EP); + //g.DrawLine(Pens.SlateGray, SP, EP); + //g.DrawRectangle(linePen, boundBoxP); + + if (connection.EnableP == false) + { + g.DrawLine(linePen, boundBoxP.Left, boundBoxP.Top, boundBoxP.Right, boundBoxP.Bottom); + g.DrawLine(linePen, boundBoxP.Right, boundBoxP.Top, boundBoxP.Left, boundBoxP.Bottom); + } + else + { + //DrawArrow(g, + //new Point(boundBoxP.X, (int)(boundBoxP.Y + boundBoxP.Height / 2f)), + //new Point(boundBoxP.Right, (int)(boundBoxP.Y + boundBoxP.Height / 2f)), + //lineColorP, 1); + } + + if (DriveMethod.isEmpty() == false && DriveMethod.Equals($"{nulChar}{nulChar}{nulChar}") == false) + using (Font f = new Font("Consolas", 5, FontStyle.Bold)) + g.DrawString(DriveMethod, f, Brushes.Gold, boundBoxP, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + }); + + } + + + using (Pen linePen = new Pen(Color.FromArgb(30, lineColorN), 1)) + { + + var DriveMethod = ""; + var nulChar = "■"; + if (connection.MoveDirectionN != null) + { + //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; + DriveMethod += ((AgvSts)connection.MoveDirectionN).ToString()[0]; + } + else DriveMethod += nulChar; + if (connection.MoveSpeedN != null) + { + //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; + DriveMethod += ((AgvSpeed)connection.MoveSpeedN).ToString()[0]; + } + else DriveMethod += nulChar; + if (connection.LiftDirectionN != null) + { + //if (DriveMethod.isEmpty() == false) DriveMethod += "|"; + DriveMethod += ((AgvSts)connection.LiftDirectionN).ToString()[0]; + } + else DriveMethod += nulChar; + + + //g.DrawLine(linePen, SP, EP); + //g.DrawLine(Pens.SlateGray, SP, EP); + //g.DrawRectangle(linePen, boundBoxN); + if (connection.EnableP == false) + { + g.DrawLine(linePen, boundBoxN.Left, boundBoxN.Top, boundBoxN.Right, boundBoxN.Bottom); + g.DrawLine(linePen, boundBoxN.Right, boundBoxN.Top, boundBoxN.Left, boundBoxN.Bottom); + } + else + { + // DrawArrow(g, + //new Point(boundBoxN.Right, (int)(boundBoxN.Y + boundBoxN.Height / 2f)), + //new Point(boundBoxN.X, (int)(boundBoxN.Y + boundBoxN.Height / 2f)), + //lineColorN, 1); + } + + if (DriveMethod.isEmpty() == false && DriveMethod.Equals($"{nulChar}{nulChar}{nulChar}") == false) + using (Font f = new Font("Consolas", 5, FontStyle.Bold)) + g.DrawString(DriveMethod, f, Brushes.Gold, boundBoxN, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + }); + + } + + //g.DrawLine(Pens.SlateGray, SP, EP); + } + + // 미리보기 라인 그리기 + if (previewStartPoint.HasValue && isDrawingRFIDLine) + { + using (Pen previewPen = new Pen(Color.FromArgb(180, Color.Green), 2)) + { + previewPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + var currentMapPosition = ScreenToMap(currentMousePosition); + g.DrawLine(previewPen, previewStartPoint.Value, currentMapPosition); + } + } + } + + private void DrawPath(Graphics g) + { + if (Manager.agv.MainPath == null || Manager.agv.MainPath.Count < 2) + return; + + Color pathColor = Color.FromArgb(150, Color.White); + if (Manager.agv.SubPath != null && Manager.agv.SubPath.Any()) + pathColor = Color.FromArgb(70, Color.LightGray); + int pathWidth = 10; + + using (Pen pathPen = new Pen(pathColor, pathWidth)) + { + pathPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + for (int i = 0; i < Manager.agv.MainPath.Count - 1; i++) + { + g.DrawLine(pathPen, Manager.agv.MainPath[i].Location, Manager.agv.MainPath[i + 1].Location); + } + } + + if (Manager.agv.SubPath == null || Manager.agv.SubPath.Count < 2) + return; + + pathColor = Color.FromArgb(150, Color.DeepSkyBlue); + pathWidth = 10; + + using (Pen pathPen = new Pen(pathColor, pathWidth)) + { + pathPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; + for (int i = 0; i < Manager.agv.SubPath.Count - 1; i++) + { + g.DrawLine(pathPen, Manager.agv.SubPath[i].Location, Manager.agv.SubPath[i + 1].Location); + } + } + } + + public List GetRFIDPoints() + { + return Manager.RFIDPoints; + } + + public List GetRFIDLines() + { + return rfidLines; + } + + public void SetRFIDLines(List lines) + { + rfidLines = lines; + this.Invalidate(); + } + + public void AddRFIDConnection(RFIDConnection item) + { + //item 의 rfid를 찾아서 연결해야함 + item.P1 = Manager.RFIDPoints.Where(t => t.Value == item.P1.Value).FirstOrDefault(); + item.P2 = Manager.RFIDPoints.Where(t => t.Value == item.P2.Value).FirstOrDefault(); + + Manager.rfidConnections.Add(item); + this.Invalidate(); + } + + + //public void AddRFIDLine(Point startPoint, Point endPoint) + //{ + // // 시작점과 끝점 사이의 모든 RFID 포인트 찾기 + // var allPoints = new List<(RFIDPoint Point, float Distance)>(); + // var lineVector = new Point(endPoint.X - startPoint.X, endPoint.Y - startPoint.Y); + // var lineLength = (float)Math.Sqrt(lineVector.X * lineVector.X + lineVector.Y * lineVector.Y); + + // foreach (var rfid in Manager.RFIDPoints) + // { + // if (rfid.Location == startPoint || rfid.Location == endPoint) + // continue; + + // // RFID 포인트가 선 위에 있는지 확인 + // var pointVector = new Point(rfid.Location.X - startPoint.X, rfid.Location.Y - startPoint.Y); + // var dotProduct = pointVector.X * lineVector.X + pointVector.Y * lineVector.Y; + // var projectionLength = dotProduct / (lineLength * lineLength); + + // if (projectionLength >= 0 && projectionLength <= 1) + // { + // // 선과 RFID 포인트 사이의 거리 계산 + // var distance = GetDistanceToLine(rfid.Location, startPoint, endPoint); + // if (distance <= SNAP_DISTANCE) + // { + // allPoints.Add((rfid, projectionLength)); + // } + // } + // } + + // // 시작점에서 끝점 방향으로 정렬 + // allPoints.Sort((a, b) => a.Distance.CompareTo(b.Distance)); + + // // 모든 연결 정보를 포함하는 RFID 라인 생성 + // var line = new RFIDLine + // { + // StartPoint = startPoint, + // EndPoint = endPoint, + // }; + + + // rfidLines.Add(line); + // this.Invalidate(); + //} + + public void ClearMap() + { + Manager.RFIDPoints.Clear(); + Manager.rfidConnections.Clear(); + + mapTexts.Clear(); + // customLines.Clear(); + rfidLines.Clear(); + + // 선택 상태도 초기화 + selectedText = null; + selectedLine = null; + selectedRFID = null; + selectedRFIDLine = null; + draggingPoint = null; + + // 미리보기 상태도 초기화 + previewStartPoint = null; + + // 화면 갱신 + this.Invalidate(); + } + + public void AddRFIDPoint(Point mapLocation, ushort rfidValue) + { + var rfidPoint = new RFIDPoint + { + Location = mapLocation, + Value = rfidValue + }; + + Manager.RFIDPoints.Add(rfidPoint); + this.Invalidate(); + } + + public void SaveToFile(string filename) + { + var lines = new List(); + + // RFID 포인트 저장 + lines.Add("[RFID_POINTS]"); + foreach (var point in Manager.RFIDPoints) + { + lines.Add($"{point.Location.X},{point.Location.Y},{point.Value},{point.IsRotatable},{point.FixedDirection},{point.IsTerminal}"); + } + + //// RFID 라인 저장 + //lines.Add("[RFID_LINES]"); + //foreach (var connection in Manager.rfidConnections) + //{ + // var startPoint = Manager.RFIDPoints.First(p => p.Value == connection.P1.Value).Location; + // var endPoint = Manager.RFIDPoints.First(p => p.Value == connection.P2.Value).Location; + // lines.Add($"{startPoint.X},{startPoint.Y},{endPoint.X},{endPoint.Y}," + + // $"{connection.P1},{connection.P2},false,false,0"); + //} + + // RFID 연결 정보 + lines.Add("[RFID_CONNECTION]"); + foreach (var connection in Manager.rfidConnections) + { + lines.Add(connection.DataFileString); + } + + // 텍스트 저장 + lines.Add("[MAP_TEXTS]"); + foreach (var text in mapTexts) + { + lines.Add($"{text.Location.X},{text.Location.Y},{text.TextColor.ToArgb()},{text.BackgroundColor.ToArgb()},{text.Font.Name},{text.Font.Size},{text.Text}"); + } + + //// 커스텀 라인 저장 + //lines.Add("[CUSTOM_LINES]"); + //foreach (var line in customLines) + //{ + // lines.Add($"{line.StartPoint.X},{line.StartPoint.Y},{line.EndPoint.X},{line.EndPoint.Y},{line.LineColor.ToArgb()},{line.LineWidth}"); + //} + + + File.WriteAllLines(filename, lines); + this.Filename = filename; + } + + public bool LoadFromFile(string filename, out string message) + { + this.Filename = filename; + message = string.Empty; + ClearMap(); + + var lines = File.ReadAllLines(filename); + var section = ""; + + var sb = new System.Text.StringBuilder(); + + foreach (var line in lines) + { + if (line.StartsWith("[") && line.EndsWith("]")) + { + section = line; + continue; + } + + switch (section) + { + case "[RFID_POINTS]": + var rfidParts = line.Split(','); + if (rfidParts.Length >= 3) + { + var validX = int.TryParse(rfidParts[0], out int valX); + var validY = int.TryParse(rfidParts[1], out int valY); + var validN = ushort.TryParse(rfidParts[2], out ushort valRfid); + + if (validX && validY && validN) + { + if (Manager.RFIDPoints.Where(t => t.Value == valRfid).Any()) + { + //이미존재한다 + var newvalue = + sb.AppendLine($"rfid중복{valRfid}"); + } + + var rfidPoint = new RFIDPoint + { + Location = new Point(valX, valY), + Value = valRfid + }; + + // 추가 속성 로드 (기본값 처리) + if (rfidParts.Length >= 4) + { + bool isRotatable; + bool.TryParse(rfidParts[3], out isRotatable); + rfidPoint.IsRotatable = isRotatable; + } + if (rfidParts.Length >= 5 && !string.IsNullOrEmpty(rfidParts[4])) + rfidPoint.FixedDirection = (AgvDir)Enum.Parse(typeof(AgvDir), rfidParts[4]); + if (rfidParts.Length >= 6) + { + bool isTerminal; + bool.TryParse(rfidParts[5], out isTerminal); + rfidPoint.IsTerminal = isTerminal; + } + + Manager.RFIDPoints.Add(rfidPoint); + } + else sb.AppendLine($"[{section}] {line}"); + } + break; + + case "[RFID_CONNECTION]": + AddRFIDConnection(new RFIDConnection(line)); + break; + + + //case "[RFID_LINES]": + // var rfidLineParts = line.Split(','); + // if (rfidLineParts.Length >= 8) + // { + // AddRFIDLine( + // new Point(int.Parse(rfidLineParts[0]), int.Parse(rfidLineParts[1])), + // new Point(int.Parse(rfidLineParts[2]), int.Parse(rfidLineParts[3])) + // ); + // } + // break; + + case "[MAP_TEXTS]": + var textParts = line.Split(','); + if (textParts.Length >= 7) + { + var text = new MapText + { + Location = new Point(int.Parse(textParts[0]), int.Parse(textParts[1])), + TextColor = Color.FromArgb(int.Parse(textParts[2])), + BackgroundColor = Color.FromArgb(int.Parse(textParts[3])), + Font = new Font(textParts[4], float.Parse(textParts[5])), + Text = string.Join(",", textParts.Skip(6)) // 텍스트에 쉼표가 포함될 수 있으므로 + }; + mapTexts.Add(text); + } + break; + + //case "[CUSTOM_LINES]": + // var customLineParts = line.Split(','); + // if (customLineParts.Length >= 6) + // { + // var customLine = new CustomLine + // { + // StartPoint = new Point(int.Parse(customLineParts[0]), int.Parse(customLineParts[1])), + // EndPoint = new Point(int.Parse(customLineParts[2]), int.Parse(customLineParts[3])), + // LineColor = Color.FromArgb(int.Parse(customLineParts[4])), + // LineWidth = int.Parse(customLineParts[5]) + // }; + // customLines.Add(customLine); + // } + // break; + } + } + + // RFID 연결 정보 처리 + ProcessRFIDConnections(); + + this.Invalidate(); + + message = sb.ToString(); + return true; + } + + private void ProcessRFIDConnections() + { + return; + Manager.rfidConnections.Clear(); + var connectionSet = new HashSet(); + + foreach (var line in rfidLines) + { + var start = line.StartPoint; + var end = line.EndPoint; + + // 1. 선 위의 모든 RFID 포인트(시작, 끝 포함)를 projectionRatio로 정렬 + var pointsOnThisLine = Manager.RFIDPoints + .Where(p => IsPointOnLine(p.Location, start, end, 10f)) // 오차 허용치 넉넉히 + .Select(p => new + { + RFID = p.Value, + Ratio = GetProjectionRatio(p.Location, start, end) + }) + .ToList(); + + //// 2. 시작/끝 RFID가 목록에 없으면 강제로 추가 + //if (!pointsOnThisLine.Any(p => p.RFID == line.StartRFID)) + // pointsOnThisLine.Add(new { RFID = line.StartRFID, Ratio = 0f }); + //if (!pointsOnThisLine.Any(p => p.RFID == line.EndRFID)) + // pointsOnThisLine.Add(new { RFID = line.EndRFID, Ratio = 1f }); + + // 3. 정렬 + pointsOnThisLine = pointsOnThisLine.OrderBy(p => p.Ratio).ToList(); + + // 4. 순서대로 1:1 연결 + for (int i = 0; i < pointsOnThisLine.Count - 1; i++) + { + var from = pointsOnThisLine[i].RFID; + var to = pointsOnThisLine[i + 1].RFID; + var key = $"{Math.Min(from, to)}_{Math.Max(from, to)}"; + if (connectionSet.Contains(key)) continue; + + var fromItem = Manager.RFIDPoints.FirstOrDefault(p => p.Value == from); + var toItem = Manager.RFIDPoints.FirstOrDefault(p => p.Value == to); + var fromPt = fromItem?.Location ?? line.StartPoint; + var toPt = toItem?.Location ?? line.EndPoint; + + Manager.rfidConnections.Add(new RFIDConnection + { + P1 = fromItem, + P2 = toItem, + }); + connectionSet.Add(key); + } + } + } + + + + // tolerance 인자를 받는 IsPointOnLine + private bool IsPointOnLine(Point point, Point lineStart, Point lineEnd, float tolerance = 10.0f) + { + var distance = GetDistanceToLine(point, lineStart, lineEnd); + if (distance > tolerance) return false; + + var projectionRatio = Math.Round(GetProjectionRatio(point, lineStart, lineEnd), 2); + return projectionRatio >= 0 && projectionRatio <= 1.0; + } + + private void DeleteNearbyRFIDLine(Point clickPoint) + { + const float DELETE_DISTANCE = 10.0f; // 클릭 지점으로부터의 허용 거리 + RFIDLine lineToDelete = null; + float minDistance = float.MaxValue; + + foreach (var line in rfidLines) + { + float distance = GetDistanceToLine(clickPoint, line.StartPoint, line.EndPoint); + if (distance < DELETE_DISTANCE && distance < minDistance) + { + minDistance = distance; + lineToDelete = line; + } + } + + if (lineToDelete != null) + { + rfidLines.Remove(lineToDelete); + this.Invalidate(); + } + } + + private void ZoomIn() + { + zoom *= 1.2f; + zoom = Math.Min(10.0f, zoom); + this.Invalidate(); + } + + private void ZoomOut() + { + zoom /= 1.2f; + zoom = Math.Max(0.1f, zoom); + this.Invalidate(); + } + + private void ResetZoom() + { + zoom = 1.0f; + offset = PointF.Empty; + this.Invalidate(); + } + + private void DrawToolbarButton(Graphics g, Rectangle rect, string text, bool isHovering) + { + var color1 = isHovering ? Color.LightSkyBlue : Color.White; + var color2 = isHovering ? Color.DeepSkyBlue : Color.WhiteSmoke; + using (var brush = new LinearGradientBrush(rect, color1, color2, LinearGradientMode.Vertical)) + using (var pen = new Pen(Color.Gray)) + using (var font = new Font("Tahoma", 9, FontStyle.Bold)) + using (var format = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }) + { + g.FillRectangle(Brushes.LightGray, rect.X + 2, rect.Y + 2, rect.Width, rect.Height); + g.FillRectangle(brush, rect); + g.DrawRectangle(pen, rect); + g.DrawString(text, font, Brushes.Black, rect, format); + } + } + + /// + /// 목적지에 깃발 표시 + /// + /// + private void DrawTargetFlag(Graphics g) + { + //대상이없다면 진행하지 않습니다 + if (Manager.agv.TargetRFID.IsEmpty) return; + + // 바닥에 흰색 원 그리기 + using (var baseBrush = new SolidBrush(Color.Red)) + using (var basePen = new Pen(Color.Black, 1)) + { + var baseSize = 8; + g.FillEllipse(baseBrush, + Manager.agv.TargetRFID.Location.X - baseSize / 2, + Manager.agv.TargetRFID.Location.Y - baseSize / 2, + baseSize, baseSize); + g.DrawEllipse(basePen, + Manager.agv.TargetRFID.Location.X - baseSize / 2, + Manager.agv.TargetRFID.Location.Y - baseSize / 2, + baseSize, baseSize); + } + + // 깃대 그리기 (길이를 2/3로 줄임) + using (var polePen = new Pen(Color.Brown, 3)) + { + var poleLength = 27; // 40 * 2/3 ≈ 27 + g.DrawLine(polePen, + Manager.agv.TargetRFID.Location.X, + Manager.agv.TargetRFID.Location.Y, + Manager.agv.TargetRFID.Location.X, + Manager.agv.TargetRFID.Location.Y - poleLength); + } + + // 깃발 그리기 + Point[] flagPoints = new Point[3]; + flagPoints[0] = new Point(Manager.agv.TargetRFID.Location.X, Manager.agv.TargetRFID.Location.Y - 27); // 깃대 길이에 맞춤 + flagPoints[1] = new Point(Manager.agv.TargetRFID.Location.X + 20, Manager.agv.TargetRFID.Location.Y - 22); + flagPoints[2] = new Point(Manager.agv.TargetRFID.Location.X, Manager.agv.TargetRFID.Location.Y - 17); + + using (var flagBrush = new SolidBrush(Color.Red)) + using (var flagPen = new Pen(Color.DarkRed, 1)) + { + g.FillPolygon(flagBrush, flagPoints); + g.DrawPolygon(flagPen, flagPoints); + } + } + + + + // AGV 다음행동 예측 함수 + + #endregion + + + #region Rotate Rectangle Helper + + + public System.Drawing.Drawing2D.GraphicsPath GetRotatedRectanglePath(PointF[] pts) + { + var p = new GraphicsPath(); + p.AddLine(pts[0], pts[1]); + p.AddLine(pts[1], pts[2]); + p.AddLine(pts[2], pts[3]); + p.AddLine(pts[0], pts[3]); + return p; + } + + /// + /// 두 점을 연결하는 선분을 중심으로 하는 회전된 사각형의 네 꼭지점을 구합니다. + /// + /// 첫 번째 점 + /// 두 번째 점 + /// 사각형의 세로 길이 (기본값: 5) + /// 사각형의 네 꼭지점 배열 (시계방향 순서) + public PointF[] GetRotatedRectangle(PointF point1, PointF point2, float height = 5f) + { + // 두 점 사이의 거리 (가로 길이) + float width = (float)Math.Sqrt(Math.Pow(point2.X - point1.X, 2) + Math.Pow(point2.Y - point1.Y, 2)); + + // 두 점을 연결하는 선분의 각도 (라디안) + float angle = (float)Math.Atan2(point2.Y - point1.Y, point2.X - point1.X); + + // 선분의 중점 + PointF center = new PointF((point1.X + point2.X) / 2f, (point1.Y + point2.Y) / 2f); + + // 사각형의 반 크기 + float halfWidth = width / 2f; + float halfHeight = height / 2f; + + // 회전하지 않은 상태의 사각형 꼭지점들 (중점 기준) + PointF[] localPoints = new PointF[] + { + new PointF(-halfWidth, -halfHeight), // 좌상단 + new PointF(halfWidth, -halfHeight), // 우상단 + new PointF(halfWidth, halfHeight), // 우하단 + new PointF(-halfWidth, halfHeight) // 좌하단 + }; + + // 회전 변환 적용 + PointF[] rotatedPoints = new PointF[4]; + float cos = (float)Math.Cos(angle); + float sin = (float)Math.Sin(angle); + + for (int i = 0; i < 4; i++) + { + // 회전 변환 공식 적용 + float rotatedX = localPoints[i].X * cos - localPoints[i].Y * sin; + float rotatedY = localPoints[i].X * sin + localPoints[i].Y * cos; + + // 중점으로 이동 + rotatedPoints[i] = new PointF(center.X + rotatedX, center.Y + rotatedY); + } + + return rotatedPoints; + } + + /// + /// 오버로드: 개별 좌표값으로 입력받는 버전 + /// + public PointF[] GetRotatedRectangle(float x1, float y1, float x2, float y2, float height = 5f) + { + return GetRotatedRectangle(new PointF(x1, y1), new PointF(x2, y2), height); + } + + /// + /// 회전된 사각형의 경계 사각형(Bounding Rectangle)을 구합니다. + /// + public static RectangleF GetBoundingRectangle(PointF[] rotatedPoints) + { + float minX = float.MaxValue; + float minY = float.MaxValue; + float maxX = float.MinValue; + float maxY = float.MinValue; + + foreach (var point in rotatedPoints) + { + minX = Math.Min(minX, point.X); + minY = Math.Min(minY, point.Y); + maxX = Math.Max(maxX, point.X); + maxY = Math.Max(maxY, point.Y); + } + + return new RectangleF(minX, minY, maxX - minX, maxY - minY); + } + + #endregion + + /// + /// 마지막으로 읽힌 연재위치에 해당하는 RFID 포인트값을 반환 합니다 + /// + public RFIDPoint GetCurrentPosition + { + get + { + return Manager.agv.CurrentRFID; + } + } + + #region 좌표 변환 및 계산 + + + // 화면 좌표를 실제 맵 좌표로 변환 + public Point ScreenToMap(Point screenPoint) + { + int adjustedX = screenPoint.X; + return new Point( + (int)((adjustedX - offset.X) / zoom), + (int)((screenPoint.Y - offset.Y) / zoom) + ); + } + + + private float GetProjectionRatio(Point point, Point lineStart, Point lineEnd) + { + float lineLength = Manager.GetDistance(lineStart, lineEnd); + if (lineLength == 0) return 0; + + return ((point.X - lineStart.X) * (lineEnd.X - lineStart.X) + + (point.Y - lineStart.Y) * (lineEnd.Y - lineStart.Y)) / (lineLength * lineLength); + } + + + private float GetDistanceToLine(Point point, Point lineStart, Point lineEnd) + { + float lineLength = Manager.GetDistance(lineStart, lineEnd); + if (lineLength == 0) return Manager.GetDistance(point, lineStart); + + float t = ((point.X - lineStart.X) * (lineEnd.X - lineStart.X) + + (point.Y - lineStart.Y) * (lineEnd.Y - lineStart.Y)) / (lineLength * lineLength); + + t = Math.Max(0, Math.Min(1, t)); + + float projectionX = lineStart.X + t * (lineEnd.X - lineStart.X); + float projectionY = lineStart.Y + t * (lineEnd.Y - lineStart.Y); + + return Manager.GetDistance(point, new Point((int)projectionX, (int)projectionY)); + } + #endregion + } +} diff --git a/Cs_HMI/SubProject/AGVControl/MapControl.resx b/HMI/SubProject/AGVControl/MapControl.resx similarity index 97% rename from Cs_HMI/SubProject/AGVControl/MapControl.resx rename to HMI/SubProject/AGVControl/MapControl.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/SubProject/AGVControl/MapControl.resx +++ b/HMI/SubProject/AGVControl/MapControl.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/MapControlManager.cs b/HMI/SubProject/AGVControl/MapControlManager.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/MapControlManager.cs rename to HMI/SubProject/AGVControl/MapControlManager.cs index 23207a2..8f66a18 100644 --- a/Cs_HMI/SubProject/AGVControl/MapControlManager.cs +++ b/HMI/SubProject/AGVControl/MapControlManager.cs @@ -1,621 +1,621 @@ -using AGVControl.Models; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Security.Cryptography.X509Certificates; -using System.Threading; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox; - -namespace AGVControl -{ - public class MapControlManager - { - public AGVActionPrediction PredictResult = null; - public AGV agv = new AGV(); - public List RFIDPoints = new List(); - public HashSet rfidConnections = new HashSet(); - - private ManualResetEvent mrepredict = new ManualResetEvent(true); - - public MapControlManager() - { - - } - ~MapControlManager() - { - - } - - /// - /// 목표지정으로 모터방향이 이동하고 있는가? - /// history 데이터가 있어야 하며 기준데이터가 없는 경우 null 반환 - /// - /// - public bool? IsMotDirection_To_Target() - { - if (agv.MovementHistory.Any() == false || agv.MovementHistory.Count < 2) return null; - if (agv.MainPath.Any() == false) return null; - - - var prept = agv.MovementHistory.Skip(agv.MovementHistory.Count - 2).First(); - var lstpt = agv.MovementHistory.Last(); - - //현재 이후의 경로를 가져온다 - var curidx = agv.MainPath.FindIndex(t => t.Value == lstpt.Value); - var preidx = agv.MainPath.FindIndex(t => t.Value == prept.Value); - if (curidx == -1 || preidx == -1) return null; - - //지정된경로 반대방향으로 이동하고 있다 - return preidx < curidx; - } - public float GetDistance(Point p1, Point p2) - { - float dx = p1.X - p2.X; - float dy = p1.Y - p2.Y; - return (float)Math.Sqrt(dx * dx + dy * dy); // double을 float로 명시적 캐스팅 - } - - public AGVActionPrediction PredictNextAction() - { - if (mrepredict.WaitOne(1) == false) - { - PredictResult = CreatePrediction("이전 작업이 완료되지 않았습니다", - AGVActionReasonCode.busy, - AGVMoveState.Stop, - agv.Current_Motor_Direction, false); - return PredictResult; - } - - mrepredict.Reset(); - try - { - // 0. 설정경로와 리프트 방향 체크 (경로설정이 없을때에는 직선이동경로내의 방향들과 체크한다) - agv.IsTargetDirectionMatch = IsLiftDirectionMatch() ?? false; - - // 1. 위치를 모를 때 (CurrentRFID가 0 또는 미설정) - if (agv.CurrentRFID.Value == 0) - { - PredictResult = CreatePrediction("AGV 위치 미확정(처음 기동)", - AGVActionReasonCode.NoPosition, - AGVMoveState.Run, - AgvDir.Backward, true, - moveSpeed: AgvSpeed.Low, - moveDiv: AgvSts.Straight); - return PredictResult; - } - - //2. 이동방향을 모른다 - if (agv.MovementHistory.Any() == false || agv.MovementHistory.Count < 2) - { - PredictResult = CreatePrediction("AGV이동방향 알수없음", - AGVActionReasonCode.NoDirection, - AGVMoveState.Run, - AgvDir.Backward, true, - moveSpeed: AgvSpeed.Low, - moveDiv: AgvSts.Straight); - return PredictResult; - } - - // 3. 경로가 없거나 현재 위치가 경로에 없음 - if ((agv.MainPath?.Count ?? 0) < 2 || agv.MainPath.Last().Value != agv.TargetRFID.Value) - { - //목적지가 없다면 진행할 수 없다 - if (agv.TargetRFID == null) - { - PredictResult = CreatePrediction("경로 없음 또는 현재 위치 미확정", - AGVActionReasonCode.NoPath, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true); - return PredictResult; - } - else - { - //목적지가 있는데 경로가 없다면 경로 예측을 진행해야한다. - var CurPt = agv.MovementHistory.Last(); - var prlt = CalculatePath(CurPt, agv.TargetRFID); - if (prlt.Success == false) - { - PredictResult = CreatePrediction("목적지 경로 예측 실패", - AGVActionReasonCode.Unknown, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true, - nextRFID: agv.TargetRFID); - return PredictResult; - } - else - { - //신규목적지에 대한 경로예측이 성공했다 - agv.SubPath.Clear(); - agv.MainPath = prlt.Path; - } - } - } - - // 4. 경로상에서 다음 RFID 예측 - int idx = agv.MainPath.FindIndex(p => p.Value == agv.CurrentRFID.Value); - if (idx < 0) - { - PredictResult = CreatePrediction("현재 위치가 경로에 없음", - AGVActionReasonCode.NotOnPath, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true); - return PredictResult; - } - - // 4. 목적지 도달 전, 회전이 필요한경우인가? - // 목적지 RFID 정보 - var destRFID = agv.MainPath.Last(); - - //리프트 방향이 맞는가? - var IsLiftDir = IsLiftDirectionMatch() ?? false; - - //모션이동방향이 맞는가? - var IsMotDir = IsMotDirection_To_Target() ?? false; - - var PrePT = agv.MovementHistory.Skip(agv.MovementHistory.Count - 2).First(); - var curPT = agv.MovementHistory.Last(); - - //리프트방향이 맞지 않다면 회전가능한 위치로 이동을 해야한다 - if (IsLiftDir == false) - { - AgvSpeed? agv_spd = null; - AgvSts? agv_dir = null; - - //회전가능한 위치로 이동을 해야한다 - - //1. 가까운 회전위치를 찾는다 - var nearTurnPoint = RFIDPoints.Where(t => t.IsRotatable)?.OrderBy(t => GetDistance(t.Location, agv.CurrentRFID.Location)).FirstOrDefault() ?? null; - if (nearTurnPoint == null) - { - PredictResult = CreatePrediction("회전 가능한 위치가 없습니다", - AGVActionReasonCode.NoTurnPoint, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true); - return PredictResult; - } - - //2. 이동하기위한 경로계산 및 이동을 한다 (생성조건) - //2-1. 서브경로가없는경우 - //2-2. 시작과 종료번호가 다른 경우(경로가 변경이 되는 조건이다) - if (agv.CurrentRFID.Value != nearTurnPoint.Value) - { - if (agv.SubPath.Any() == false || agv.SubPath.Count < 2 || - agv.SubPath.First().Value != agv.CurrentRFID.Value || - agv.SubPath.Last().Value != nearTurnPoint.Value) - { - var rlt = CalculatePath(agv.CurrentRFID, nearTurnPoint); //이전포인트도 추가를 해준다 - if (rlt.Success) agv.SubPath = rlt.Path; - else - { - agv.SubPath.Clear(); - PredictResult = CreatePrediction("회전 위치까지의 경로를 계산할 수 없습니다", - AGVActionReasonCode.PathCalcError, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true, - nextRFID: nearTurnPoint); - return PredictResult; - } - } - - - //현재 모터방향을 확인하여 대상까지 이동하도록 해야한다 - var curidx = agv.SubPath.FindIndex(t => t.Value == curPT.Value); - var preidx = agv.SubPath.FindIndex(t => t.Value == PrePT.Value); - AgvDir newdirection = agv.Current_Motor_Direction; - string message = "턴위치로 이동중"; - - - - if (preidx > curidx) - { - //지정경로를 거꾸로 이동하고 있다 - if (agv.Current_Motor_Direction == AgvDir.Forward) - newdirection = AgvDir.Backward; - else - newdirection = AgvDir.Forward; - message += "(방향전환)"; - } - - //도로정보를 확인하여 속도와 분기명령을 실행한다 - var roadinfo = GetRoadInfo(agv.SubPath, curPT); - agv_spd = roadinfo.spd; - agv_dir = roadinfo.dir; - - PredictResult = CreatePrediction(message, - AGVActionReasonCode.MoveForTurn, - AGVMoveState.Run, - newdirection, true, - moveSpeed: agv_spd, - moveDiv: agv_dir, - nextRFID: nearTurnPoint); - return PredictResult; - } - - var roadinfo2 = GetRoadInfo(agv.SubPath.Any() ? agv.SubPath : agv.MainPath, curPT); - agv_spd = roadinfo2.spd; - agv_dir = roadinfo2.dir; - - - PredictResult = CreatePrediction("턴(이동) 완료 대기", - AGVActionReasonCode.NeedTurnMove, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true, - moveSpeed: agv_spd, - moveDiv: agv_dir, - nextRFID: nearTurnPoint); - return PredictResult; - } - - //보조이동선제거 - if (agv.SubPath != null && agv.SubPath.Any()) - agv.SubPath.Clear(); - - //현재위치의 RFID에서 턴이 필요한경우 - if (agv.CurrentRFID.NeedTurn) - { - //Turn이 완료되지 않았다면 턴 완료를 대기한다. - if (agv.CurrentRFID.TurnOK == false) - { - //아직 턴위치에 멈추지 않았다 - if (agv.CurrentRFID.TurnStop == false) - { - //현재위치로 마크스탑이동을 하게한다 - PredictResult = CreatePrediction("Wait for Turn(P)-Mark Stop", - AGVActionReasonCode.WaitForMarkStop, - AGVMoveState.Run, - agv.Current_Motor_Direction, true, - moveSpeed: agv.CurrentSpeed, - moveDiv: agv.CurrentSTS); - } - else - { - //턴위치에 정지했으니. 턴완료를 기다려야 한다 - PredictResult = CreatePrediction("Wait for Turn(P)", - AGVActionReasonCode.NeedTurnPoint, - AGVMoveState.Run, - agv.Current_Motor_Direction, true, - moveSpeed: agv.CurrentSpeed, - moveDiv: agv.CurrentSTS); - } - return PredictResult; - } - } - - - //3. 목적지위치까지 이동이 완료되지 않았다면 계속 이동을 하게한다 - if (agv.CurrentRFID.Value != destRFID.Value) - { - //현재 모터방향을 확인하여 대상까지 이동하도록 해야한다 - var curidx = agv.MainPath.FindIndex(t => t.Value == curPT.Value); - var preidx = agv.MainPath.FindIndex(t => t.Value == PrePT.Value); - AgvDir newdirection = agv.Current_Motor_Direction; - string message = "목적지 이동중"; - if (preidx > curidx) - { - //지정경로를 거꾸로 이동하고 있다 - if (agv.Current_Motor_Direction == AgvDir.Forward) - newdirection = AgvDir.Backward; - else - newdirection = AgvDir.Forward; - message += "(방향전환)"; - } - - //경로상 바로 다음 위치를 확인한다 - var nexstRFID = agv.MainPath.Skip(agv.MainPath.FindIndex(t => t.Value == curPT.Value) + 1).First(); - var roadinfo = GetRoadInfo(agv.MainPath, curPT); - - - PredictResult = CreatePrediction(message, - AGVActionReasonCode.Normal, - AGVMoveState.Run, - newdirection, true, - moveSpeed: roadinfo.spd, - moveDiv: roadinfo.dir, - nextRFID: nexstRFID); - return PredictResult; - } - - - // 5. 목적지 도달 시 - PredictResult = CreatePrediction("경로의 마지막 지점(목적지 도달)", - AGVActionReasonCode.Arrived, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true, - nextRFID: destRFID); - return PredictResult; - } - catch (Exception ex) - { - - PredictResult = CreatePrediction($"ERR:{ex.Message}", - AGVActionReasonCode.Unknown, - AGVMoveState.Stop, - agv.Current_Motor_Direction, true); - return PredictResult; - } - finally - { - mrepredict.Set(); - } - - } - - (AgvSpeed? spd, AgvSts? dir, RFIDConnection info) GetRoadInfo(List paths, RFIDPoint curPT) - { - //도로정보를 확인하여 속도와 분기명령을 실행한다 - AgvSpeed? agv_spd = null; - AgvSts? agv_div = null; - RFIDConnection info = null; - - var nextpt = paths.Skip(paths.FindIndex(t => t.Value == curPT.Value) + 1).FirstOrDefault(); - if (nextpt != null) - { - var p1 = rfidConnections.Where(t => t.P1.Value == curPT.Value && t.P2.Value == nextpt.Value).FirstOrDefault(); - if (p1 != null) - { - //positive - agv_spd = p1.MoveSpeedP; - agv_div = p1.MoveDirectionP; - info = p1; - } - - var p2 = rfidConnections.Where(t => t.P2.Value == curPT.Value && t.P1.Value == nextpt.Value).FirstOrDefault(); - if (p2 != null) - { - //negative - agv_spd = p2.MoveSpeedN; - agv_div = p2.MoveDirectionN; - info = p2; - } - } - return (agv_spd, agv_div, info); - } - - /// - /// 이웃포인터를 반환합니다 - /// - /// - /// - public List GetNeighbors(RFIDPoint pt) - { - var neighbors = new List(); - - //값이 없는 경우 오류 반환 - if (pt == null) return neighbors; - - //연결정보에서 데이터를 찾은 후 반환한다 - foreach (var connection in rfidConnections) - { - RFIDPoint nPT = null; - if (connection.P1.Value == pt.Value) - { - nPT = connection.P2; - } - else if (connection.P2.Value == pt.Value) - { - nPT = connection.P1; - } - - if (nPT != null) neighbors.Add(nPT); - } - - //중복제거후 반한 - return neighbors.Distinct().ToList(); - } - - public RFIDPoint FindRFIDPoint(uint rfidValue) - { - if (RFIDPoints == null || RFIDPoints.Any() == false) return null; - return RFIDPoints.FirstOrDefault(r => r.Value == rfidValue); - } - private float Heuristic(Point a, Point b) - { - return (float)Math.Sqrt(Math.Pow(a.X - b.X, 2) + Math.Pow(a.Y - b.Y, 2)); - } - - private PathResult ReconstructPath(Dictionary cameFrom, RFIDPoint current) - { - var path = new List { current }; - while (cameFrom.ContainsKey(current.Value)) - { - current = cameFrom[current.Value]; - if (path.Contains(current) == false) - path.Insert(0, current); - else - break; //왜인지 반복되는경우가있어 종료한다 - } - return new PathResult - { - Path = path, - }; - } - public PathResult CalculatePath(RFIDPoint start, RFIDPoint end) - { - var openList = new List { start }; - var closedList = new List(); - var cameFrom = new Dictionary(); - var gScore = new Dictionary { { start, 0 } }; - var fScore = new Dictionary { { start, Heuristic(start.Location, end.Location) } }; - - - - if (start.Value == end.Value) - { - return new PathResult - { - Message = "시작위치와 대상위치가 동일 합니다", - Path = null, - }; - } - - //if (autorun) openList.Clear(); - - - while (openList.Count > 0) - { - var current = openList.OrderBy(p => fScore.ContainsKey(p) ? fScore[p] : float.MaxValue).First(); - - if (current.Value == end.Value) - { - return ReconstructPath(cameFrom, current); - } - - openList.Remove(current); - closedList.Add(current); - - var nb = GetNeighbors(current); - foreach (var neighbor in nb) - { - if (closedList.Contains(neighbor)) - continue; - - float tentativeGScore = gScore[current] + GetDistance(current.Location, neighbor.Location); - - if (!openList.Contains(neighbor)) - openList.Add(neighbor); - else if (tentativeGScore >= gScore[neighbor]) - continue; - - cameFrom[neighbor.Value] = (RFIDPoint)current; - gScore[neighbor] = tentativeGScore; - fScore[neighbor] = gScore[neighbor] + Heuristic(neighbor.Location, end.Location); - - - } - - } - - return new PathResult - { - Path = openList, - }; - - } - public PathResult CalculatePath(uint tagStrt, uint tagEnd) - { - var retval = new PathResult - { - Message = string.Empty, - Path = new List(), - }; - - var startPoint = FindRFIDPoint(tagStrt); - var endPoint = FindRFIDPoint(tagEnd); - if (startPoint == null || endPoint == null) - { - retval.Message = "유효한 RFID 값을 입력해주세요."; - return retval; - } - - retval = CalculatePath(startPoint, endPoint); - if (retval.Success == false) - retval.Message = "경로를 찾을 수 없습니다"; - - return retval; - } - - /// - /// 리프트방향과 대상위치와의 방향이 일치하는가? - /// 목적지경로가 셋팅된 경우 현재 이동방향이 목적지방향과 일치하는가? - /// 이동경로정보가 없거나 목적지가 없으면 null 이 반환됨 - /// - /// - public bool? IsLiftDirectionMatch() - { - - if (agv.MovementHistory.Any() && agv.MovementHistory.Count > 1) - { - RFIDPoint TargetPT = null; - var prept = agv.MovementHistory.Skip(agv.MovementHistory.Count - 2).First(); - var lstpt = agv.MovementHistory.Last(); - - //뒤로이동하는경우라면 이전위치에 리프트가 있다. - if (lstpt.Direction == AgvDir.Backward) - { - TargetPT = prept; - } - else //앞으로 이동한다면 이동방향과 동일하다 - { - //이전위치는 제거 하고 처음발견된 것을 대상으로 한다 - TargetPT = GetNeighbors(lstpt).Where(t => t.Value != prept.Value).FirstOrDefault(); - } - - //목적지가 있다면 목적지의 방향과 일치하는지 확인해야한다 - //남은경로중에 방향이 고정된 핀이 있다면 그것과 일치하는지 확인해야 한다 - if (agv.MainPath.Any()) - { - //지정된경로 반대방향으로 이동하고 있다 - if ((IsMotDirection_To_Target() ?? false) == false) - { - return false; - } - else - { - var nextRoutes = agv.MainPath.Skip(agv.MainPath.FindIndex(t => t.Value == lstpt.Value) + 1).ToList(); - var DirectionMatch = true; - foreach (var item in nextRoutes) - { - if (item.FixedDirection != null && item.FixedDirection != lstpt.Direction) - { - DirectionMatch = false; - break; - } - } - return DirectionMatch; - } - } - else - { - //대상포인트와의 방향만 체크한다. - //고정대상이없다면 방향이 맞는것으로 한다 - return (TargetPT.FixedDirection ?? lstpt.Direction) == lstpt.Direction; - } - } - else - { - //이동된경로정보가 없다면 리프트 방향을 체크할 수 없으므로 대상과 위치가 맞지 않는걸로 기본값을 설정한다 - //이렇게 설정하면 대상으로 이동불가하고 뒤로 가도록 유도된다 - return null; - } - } - - // Changed 속성 설정을 위한 헬퍼 메서드 - private bool IsPredictionChanged(AGVActionPrediction newPrediction) - { - if (PredictResult == null) return true; // 이전 예측이 없으면 변경됨 - - // Idx와 Changed를 제외하고 비교 - return !PredictResult.Equals(newPrediction); - } - - private AGVActionPrediction CreatePrediction( - string reason, - AGVActionReasonCode reasonCode, - AGVMoveState moveState, - AgvDir direction, bool IDXUpdate = true, - AgvSpeed? moveSpeed = null, - AgvSts? moveDiv = null, - RFIDPoint nextRFID = null - ) - { - var newPrediction = new AGVActionPrediction - { - NextRFID = nextRFID, - Reason = reason, - ReasonCode = reasonCode, - MoveState = moveState, - Direction = direction, - MoveSpeed = moveSpeed, - MoveDiv = moveDiv, - Idx = IDXUpdate ? (PredictResult?.Idx + 1 ?? 1) : (PredictResult?.Idx ?? 0), - CreateTime = DateTime.Now, - }; - - newPrediction.Changed = IsPredictionChanged(newPrediction); - return newPrediction; - } - - } -} +using AGVControl.Models; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Security.Cryptography.X509Certificates; +using System.Threading; +using static System.Windows.Forms.VisualStyles.VisualStyleElement.TextBox; + +namespace AGVControl +{ + public class MapControlManager + { + public AGVActionPrediction PredictResult = null; + public AGV agv = new AGV(); + public List RFIDPoints = new List(); + public HashSet rfidConnections = new HashSet(); + + private ManualResetEvent mrepredict = new ManualResetEvent(true); + + public MapControlManager() + { + + } + ~MapControlManager() + { + + } + + /// + /// 목표지정으로 모터방향이 이동하고 있는가? + /// history 데이터가 있어야 하며 기준데이터가 없는 경우 null 반환 + /// + /// + public bool? IsMotDirection_To_Target() + { + if (agv.MovementHistory.Any() == false || agv.MovementHistory.Count < 2) return null; + if (agv.MainPath.Any() == false) return null; + + + var prept = agv.MovementHistory.Skip(agv.MovementHistory.Count - 2).First(); + var lstpt = agv.MovementHistory.Last(); + + //현재 이후의 경로를 가져온다 + var curidx = agv.MainPath.FindIndex(t => t.Value == lstpt.Value); + var preidx = agv.MainPath.FindIndex(t => t.Value == prept.Value); + if (curidx == -1 || preidx == -1) return null; + + //지정된경로 반대방향으로 이동하고 있다 + return preidx < curidx; + } + public float GetDistance(Point p1, Point p2) + { + float dx = p1.X - p2.X; + float dy = p1.Y - p2.Y; + return (float)Math.Sqrt(dx * dx + dy * dy); // double을 float로 명시적 캐스팅 + } + + public AGVActionPrediction PredictNextAction() + { + if (mrepredict.WaitOne(1) == false) + { + PredictResult = CreatePrediction("이전 작업이 완료되지 않았습니다", + AGVActionReasonCode.busy, + AGVMoveState.Stop, + agv.Current_Motor_Direction, false); + return PredictResult; + } + + mrepredict.Reset(); + try + { + // 0. 설정경로와 리프트 방향 체크 (경로설정이 없을때에는 직선이동경로내의 방향들과 체크한다) + agv.IsTargetDirectionMatch = IsLiftDirectionMatch() ?? false; + + // 1. 위치를 모를 때 (CurrentRFID가 0 또는 미설정) + if (agv.CurrentRFID.Value == 0) + { + PredictResult = CreatePrediction("AGV 위치 미확정(처음 기동)", + AGVActionReasonCode.NoPosition, + AGVMoveState.Run, + AgvDir.Backward, true, + moveSpeed: AgvSpeed.Low, + moveDiv: AgvSts.Straight); + return PredictResult; + } + + //2. 이동방향을 모른다 + if (agv.MovementHistory.Any() == false || agv.MovementHistory.Count < 2) + { + PredictResult = CreatePrediction("AGV이동방향 알수없음", + AGVActionReasonCode.NoDirection, + AGVMoveState.Run, + AgvDir.Backward, true, + moveSpeed: AgvSpeed.Low, + moveDiv: AgvSts.Straight); + return PredictResult; + } + + // 3. 경로가 없거나 현재 위치가 경로에 없음 + if ((agv.MainPath?.Count ?? 0) < 2 || agv.MainPath.Last().Value != agv.TargetRFID.Value) + { + //목적지가 없다면 진행할 수 없다 + if (agv.TargetRFID == null) + { + PredictResult = CreatePrediction("경로 없음 또는 현재 위치 미확정", + AGVActionReasonCode.NoPath, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true); + return PredictResult; + } + else + { + //목적지가 있는데 경로가 없다면 경로 예측을 진행해야한다. + var CurPt = agv.MovementHistory.Last(); + var prlt = CalculatePath(CurPt, agv.TargetRFID); + if (prlt.Success == false) + { + PredictResult = CreatePrediction("목적지 경로 예측 실패", + AGVActionReasonCode.Unknown, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true, + nextRFID: agv.TargetRFID); + return PredictResult; + } + else + { + //신규목적지에 대한 경로예측이 성공했다 + agv.SubPath.Clear(); + agv.MainPath = prlt.Path; + } + } + } + + // 4. 경로상에서 다음 RFID 예측 + int idx = agv.MainPath.FindIndex(p => p.Value == agv.CurrentRFID.Value); + if (idx < 0) + { + PredictResult = CreatePrediction("현재 위치가 경로에 없음", + AGVActionReasonCode.NotOnPath, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true); + return PredictResult; + } + + // 4. 목적지 도달 전, 회전이 필요한경우인가? + // 목적지 RFID 정보 + var destRFID = agv.MainPath.Last(); + + //리프트 방향이 맞는가? + var IsLiftDir = IsLiftDirectionMatch() ?? false; + + //모션이동방향이 맞는가? + var IsMotDir = IsMotDirection_To_Target() ?? false; + + var PrePT = agv.MovementHistory.Skip(agv.MovementHistory.Count - 2).First(); + var curPT = agv.MovementHistory.Last(); + + //리프트방향이 맞지 않다면 회전가능한 위치로 이동을 해야한다 + if (IsLiftDir == false) + { + AgvSpeed? agv_spd = null; + AgvSts? agv_dir = null; + + //회전가능한 위치로 이동을 해야한다 + + //1. 가까운 회전위치를 찾는다 + var nearTurnPoint = RFIDPoints.Where(t => t.IsRotatable)?.OrderBy(t => GetDistance(t.Location, agv.CurrentRFID.Location)).FirstOrDefault() ?? null; + if (nearTurnPoint == null) + { + PredictResult = CreatePrediction("회전 가능한 위치가 없습니다", + AGVActionReasonCode.NoTurnPoint, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true); + return PredictResult; + } + + //2. 이동하기위한 경로계산 및 이동을 한다 (생성조건) + //2-1. 서브경로가없는경우 + //2-2. 시작과 종료번호가 다른 경우(경로가 변경이 되는 조건이다) + if (agv.CurrentRFID.Value != nearTurnPoint.Value) + { + if (agv.SubPath.Any() == false || agv.SubPath.Count < 2 || + agv.SubPath.First().Value != agv.CurrentRFID.Value || + agv.SubPath.Last().Value != nearTurnPoint.Value) + { + var rlt = CalculatePath(agv.CurrentRFID, nearTurnPoint); //이전포인트도 추가를 해준다 + if (rlt.Success) agv.SubPath = rlt.Path; + else + { + agv.SubPath.Clear(); + PredictResult = CreatePrediction("회전 위치까지의 경로를 계산할 수 없습니다", + AGVActionReasonCode.PathCalcError, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true, + nextRFID: nearTurnPoint); + return PredictResult; + } + } + + + //현재 모터방향을 확인하여 대상까지 이동하도록 해야한다 + var curidx = agv.SubPath.FindIndex(t => t.Value == curPT.Value); + var preidx = agv.SubPath.FindIndex(t => t.Value == PrePT.Value); + AgvDir newdirection = agv.Current_Motor_Direction; + string message = "턴위치로 이동중"; + + + + if (preidx > curidx) + { + //지정경로를 거꾸로 이동하고 있다 + if (agv.Current_Motor_Direction == AgvDir.Forward) + newdirection = AgvDir.Backward; + else + newdirection = AgvDir.Forward; + message += "(방향전환)"; + } + + //도로정보를 확인하여 속도와 분기명령을 실행한다 + var roadinfo = GetRoadInfo(agv.SubPath, curPT); + agv_spd = roadinfo.spd; + agv_dir = roadinfo.dir; + + PredictResult = CreatePrediction(message, + AGVActionReasonCode.MoveForTurn, + AGVMoveState.Run, + newdirection, true, + moveSpeed: agv_spd, + moveDiv: agv_dir, + nextRFID: nearTurnPoint); + return PredictResult; + } + + var roadinfo2 = GetRoadInfo(agv.SubPath.Any() ? agv.SubPath : agv.MainPath, curPT); + agv_spd = roadinfo2.spd; + agv_dir = roadinfo2.dir; + + + PredictResult = CreatePrediction("턴(이동) 완료 대기", + AGVActionReasonCode.NeedTurnMove, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true, + moveSpeed: agv_spd, + moveDiv: agv_dir, + nextRFID: nearTurnPoint); + return PredictResult; + } + + //보조이동선제거 + if (agv.SubPath != null && agv.SubPath.Any()) + agv.SubPath.Clear(); + + //현재위치의 RFID에서 턴이 필요한경우 + if (agv.CurrentRFID.NeedTurn) + { + //Turn이 완료되지 않았다면 턴 완료를 대기한다. + if (agv.CurrentRFID.TurnOK == false) + { + //아직 턴위치에 멈추지 않았다 + if (agv.CurrentRFID.TurnStop == false) + { + //현재위치로 마크스탑이동을 하게한다 + PredictResult = CreatePrediction("Wait for Turn(P)-Mark Stop", + AGVActionReasonCode.WaitForMarkStop, + AGVMoveState.Run, + agv.Current_Motor_Direction, true, + moveSpeed: agv.CurrentSpeed, + moveDiv: agv.CurrentSTS); + } + else + { + //턴위치에 정지했으니. 턴완료를 기다려야 한다 + PredictResult = CreatePrediction("Wait for Turn(P)", + AGVActionReasonCode.NeedTurnPoint, + AGVMoveState.Run, + agv.Current_Motor_Direction, true, + moveSpeed: agv.CurrentSpeed, + moveDiv: agv.CurrentSTS); + } + return PredictResult; + } + } + + + //3. 목적지위치까지 이동이 완료되지 않았다면 계속 이동을 하게한다 + if (agv.CurrentRFID.Value != destRFID.Value) + { + //현재 모터방향을 확인하여 대상까지 이동하도록 해야한다 + var curidx = agv.MainPath.FindIndex(t => t.Value == curPT.Value); + var preidx = agv.MainPath.FindIndex(t => t.Value == PrePT.Value); + AgvDir newdirection = agv.Current_Motor_Direction; + string message = "목적지 이동중"; + if (preidx > curidx) + { + //지정경로를 거꾸로 이동하고 있다 + if (agv.Current_Motor_Direction == AgvDir.Forward) + newdirection = AgvDir.Backward; + else + newdirection = AgvDir.Forward; + message += "(방향전환)"; + } + + //경로상 바로 다음 위치를 확인한다 + var nexstRFID = agv.MainPath.Skip(agv.MainPath.FindIndex(t => t.Value == curPT.Value) + 1).First(); + var roadinfo = GetRoadInfo(agv.MainPath, curPT); + + + PredictResult = CreatePrediction(message, + AGVActionReasonCode.Normal, + AGVMoveState.Run, + newdirection, true, + moveSpeed: roadinfo.spd, + moveDiv: roadinfo.dir, + nextRFID: nexstRFID); + return PredictResult; + } + + + // 5. 목적지 도달 시 + PredictResult = CreatePrediction("경로의 마지막 지점(목적지 도달)", + AGVActionReasonCode.Arrived, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true, + nextRFID: destRFID); + return PredictResult; + } + catch (Exception ex) + { + + PredictResult = CreatePrediction($"ERR:{ex.Message}", + AGVActionReasonCode.Unknown, + AGVMoveState.Stop, + agv.Current_Motor_Direction, true); + return PredictResult; + } + finally + { + mrepredict.Set(); + } + + } + + (AgvSpeed? spd, AgvSts? dir, RFIDConnection info) GetRoadInfo(List paths, RFIDPoint curPT) + { + //도로정보를 확인하여 속도와 분기명령을 실행한다 + AgvSpeed? agv_spd = null; + AgvSts? agv_div = null; + RFIDConnection info = null; + + var nextpt = paths.Skip(paths.FindIndex(t => t.Value == curPT.Value) + 1).FirstOrDefault(); + if (nextpt != null) + { + var p1 = rfidConnections.Where(t => t.P1.Value == curPT.Value && t.P2.Value == nextpt.Value).FirstOrDefault(); + if (p1 != null) + { + //positive + agv_spd = p1.MoveSpeedP; + agv_div = p1.MoveDirectionP; + info = p1; + } + + var p2 = rfidConnections.Where(t => t.P2.Value == curPT.Value && t.P1.Value == nextpt.Value).FirstOrDefault(); + if (p2 != null) + { + //negative + agv_spd = p2.MoveSpeedN; + agv_div = p2.MoveDirectionN; + info = p2; + } + } + return (agv_spd, agv_div, info); + } + + /// + /// 이웃포인터를 반환합니다 + /// + /// + /// + public List GetNeighbors(RFIDPoint pt) + { + var neighbors = new List(); + + //값이 없는 경우 오류 반환 + if (pt == null) return neighbors; + + //연결정보에서 데이터를 찾은 후 반환한다 + foreach (var connection in rfidConnections) + { + RFIDPoint nPT = null; + if (connection.P1.Value == pt.Value) + { + nPT = connection.P2; + } + else if (connection.P2.Value == pt.Value) + { + nPT = connection.P1; + } + + if (nPT != null) neighbors.Add(nPT); + } + + //중복제거후 반한 + return neighbors.Distinct().ToList(); + } + + public RFIDPoint FindRFIDPoint(uint rfidValue) + { + if (RFIDPoints == null || RFIDPoints.Any() == false) return null; + return RFIDPoints.FirstOrDefault(r => r.Value == rfidValue); + } + private float Heuristic(Point a, Point b) + { + return (float)Math.Sqrt(Math.Pow(a.X - b.X, 2) + Math.Pow(a.Y - b.Y, 2)); + } + + private PathResult ReconstructPath(Dictionary cameFrom, RFIDPoint current) + { + var path = new List { current }; + while (cameFrom.ContainsKey(current.Value)) + { + current = cameFrom[current.Value]; + if (path.Contains(current) == false) + path.Insert(0, current); + else + break; //왜인지 반복되는경우가있어 종료한다 + } + return new PathResult + { + Path = path, + }; + } + public PathResult CalculatePath(RFIDPoint start, RFIDPoint end) + { + var openList = new List { start }; + var closedList = new List(); + var cameFrom = new Dictionary(); + var gScore = new Dictionary { { start, 0 } }; + var fScore = new Dictionary { { start, Heuristic(start.Location, end.Location) } }; + + + + if (start.Value == end.Value) + { + return new PathResult + { + Message = "시작위치와 대상위치가 동일 합니다", + Path = null, + }; + } + + //if (autorun) openList.Clear(); + + + while (openList.Count > 0) + { + var current = openList.OrderBy(p => fScore.ContainsKey(p) ? fScore[p] : float.MaxValue).First(); + + if (current.Value == end.Value) + { + return ReconstructPath(cameFrom, current); + } + + openList.Remove(current); + closedList.Add(current); + + var nb = GetNeighbors(current); + foreach (var neighbor in nb) + { + if (closedList.Contains(neighbor)) + continue; + + float tentativeGScore = gScore[current] + GetDistance(current.Location, neighbor.Location); + + if (!openList.Contains(neighbor)) + openList.Add(neighbor); + else if (tentativeGScore >= gScore[neighbor]) + continue; + + cameFrom[neighbor.Value] = (RFIDPoint)current; + gScore[neighbor] = tentativeGScore; + fScore[neighbor] = gScore[neighbor] + Heuristic(neighbor.Location, end.Location); + + + } + + } + + return new PathResult + { + Path = openList, + }; + + } + public PathResult CalculatePath(uint tagStrt, uint tagEnd) + { + var retval = new PathResult + { + Message = string.Empty, + Path = new List(), + }; + + var startPoint = FindRFIDPoint(tagStrt); + var endPoint = FindRFIDPoint(tagEnd); + if (startPoint == null || endPoint == null) + { + retval.Message = "유효한 RFID 값을 입력해주세요."; + return retval; + } + + retval = CalculatePath(startPoint, endPoint); + if (retval.Success == false) + retval.Message = "경로를 찾을 수 없습니다"; + + return retval; + } + + /// + /// 리프트방향과 대상위치와의 방향이 일치하는가? + /// 목적지경로가 셋팅된 경우 현재 이동방향이 목적지방향과 일치하는가? + /// 이동경로정보가 없거나 목적지가 없으면 null 이 반환됨 + /// + /// + public bool? IsLiftDirectionMatch() + { + + if (agv.MovementHistory.Any() && agv.MovementHistory.Count > 1) + { + RFIDPoint TargetPT = null; + var prept = agv.MovementHistory.Skip(agv.MovementHistory.Count - 2).First(); + var lstpt = agv.MovementHistory.Last(); + + //뒤로이동하는경우라면 이전위치에 리프트가 있다. + if (lstpt.Direction == AgvDir.Backward) + { + TargetPT = prept; + } + else //앞으로 이동한다면 이동방향과 동일하다 + { + //이전위치는 제거 하고 처음발견된 것을 대상으로 한다 + TargetPT = GetNeighbors(lstpt).Where(t => t.Value != prept.Value).FirstOrDefault(); + } + + //목적지가 있다면 목적지의 방향과 일치하는지 확인해야한다 + //남은경로중에 방향이 고정된 핀이 있다면 그것과 일치하는지 확인해야 한다 + if (agv.MainPath.Any()) + { + //지정된경로 반대방향으로 이동하고 있다 + if ((IsMotDirection_To_Target() ?? false) == false) + { + return false; + } + else + { + var nextRoutes = agv.MainPath.Skip(agv.MainPath.FindIndex(t => t.Value == lstpt.Value) + 1).ToList(); + var DirectionMatch = true; + foreach (var item in nextRoutes) + { + if (item.FixedDirection != null && item.FixedDirection != lstpt.Direction) + { + DirectionMatch = false; + break; + } + } + return DirectionMatch; + } + } + else + { + //대상포인트와의 방향만 체크한다. + //고정대상이없다면 방향이 맞는것으로 한다 + return (TargetPT.FixedDirection ?? lstpt.Direction) == lstpt.Direction; + } + } + else + { + //이동된경로정보가 없다면 리프트 방향을 체크할 수 없으므로 대상과 위치가 맞지 않는걸로 기본값을 설정한다 + //이렇게 설정하면 대상으로 이동불가하고 뒤로 가도록 유도된다 + return null; + } + } + + // Changed 속성 설정을 위한 헬퍼 메서드 + private bool IsPredictionChanged(AGVActionPrediction newPrediction) + { + if (PredictResult == null) return true; // 이전 예측이 없으면 변경됨 + + // Idx와 Changed를 제외하고 비교 + return !PredictResult.Equals(newPrediction); + } + + private AGVActionPrediction CreatePrediction( + string reason, + AGVActionReasonCode reasonCode, + AGVMoveState moveState, + AgvDir direction, bool IDXUpdate = true, + AgvSpeed? moveSpeed = null, + AgvSts? moveDiv = null, + RFIDPoint nextRFID = null + ) + { + var newPrediction = new AGVActionPrediction + { + NextRFID = nextRFID, + Reason = reason, + ReasonCode = reasonCode, + MoveState = moveState, + Direction = direction, + MoveSpeed = moveSpeed, + MoveDiv = moveDiv, + Idx = IDXUpdate ? (PredictResult?.Idx + 1 ?? 1) : (PredictResult?.Idx ?? 0), + CreateTime = DateTime.Now, + }; + + newPrediction.Changed = IsPredictionChanged(newPrediction); + return newPrediction; + } + + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Models/AGV.cs b/HMI/SubProject/AGVControl/Models/AGV.cs similarity index 100% rename from Cs_HMI/SubProject/AGVControl/Models/AGV.cs rename to HMI/SubProject/AGVControl/Models/AGV.cs diff --git a/Cs_HMI/SubProject/AGVControl/Models/AGVActionPrediction.cs b/HMI/SubProject/AGVControl/Models/AGVActionPrediction.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/Models/AGVActionPrediction.cs rename to HMI/SubProject/AGVControl/Models/AGVActionPrediction.cs index 3e0f7a4..16c0b91 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/AGVActionPrediction.cs +++ b/HMI/SubProject/AGVControl/Models/AGVActionPrediction.cs @@ -1,58 +1,58 @@ -using AGVControl.Models; -using System; - -namespace AGVControl -{ - public class AGVActionPrediction - { - public AgvDir Direction { get; set; } - public RFIDPoint NextRFID { get; set; } - public string Reason { get; set; } - public AGVActionReasonCode ReasonCode { get; set; } - public AGVMoveState MoveState { get; set; } // RUN 또는 STOP - public AgvSpeed? MoveSpeed { get; set; } - public AgvSts? MoveDiv { get; set; } - public UInt32 Idx { get; set; } - public bool Changed { get; set; } - public DateTime CreateTime { get; set; } - - // override object.Equals - public bool Equals(AGVActionPrediction obj) - { - // null 체크 - if (obj == null) return false; - - // 참조가 같으면 true - if (ReferenceEquals(this, obj)) return true; - - // 핵심 속성들만 비교 (Idx, Changed 제외) - if (obj.Direction != this.Direction) return false; - if (obj.ReasonCode != this.ReasonCode) return false; - if (obj.MoveState != this.MoveState) return false; - if (obj.MoveSpeed != this.MoveSpeed) return false; - if (obj.MoveDiv != this.MoveDiv) return false; - - // NextRFID 비교 (null 체크 포함) - if (obj.NextRFID == null || this.NextRFID == null) - { - if (obj.NextRFID != this.NextRFID) return false; // 하나만 null이면 false - } - else - { - if (obj.NextRFID.Value != this.NextRFID.Value) return false; - } - - // Reason 비교 (null 체크 포함) - if (obj.Reason == null || this.Reason == null) - { - if (obj.Reason != this.Reason) return false; // 하나만 null이면 false - } - else - { - if (obj.Reason != this.Reason) return false; - } - - return true; - } - } -} +using AGVControl.Models; +using System; + +namespace AGVControl +{ + public class AGVActionPrediction + { + public AgvDir Direction { get; set; } + public RFIDPoint NextRFID { get; set; } + public string Reason { get; set; } + public AGVActionReasonCode ReasonCode { get; set; } + public AGVMoveState MoveState { get; set; } // RUN 또는 STOP + public AgvSpeed? MoveSpeed { get; set; } + public AgvSts? MoveDiv { get; set; } + public UInt32 Idx { get; set; } + public bool Changed { get; set; } + public DateTime CreateTime { get; set; } + + // override object.Equals + public bool Equals(AGVActionPrediction obj) + { + // null 체크 + if (obj == null) return false; + + // 참조가 같으면 true + if (ReferenceEquals(this, obj)) return true; + + // 핵심 속성들만 비교 (Idx, Changed 제외) + if (obj.Direction != this.Direction) return false; + if (obj.ReasonCode != this.ReasonCode) return false; + if (obj.MoveState != this.MoveState) return false; + if (obj.MoveSpeed != this.MoveSpeed) return false; + if (obj.MoveDiv != this.MoveDiv) return false; + + // NextRFID 비교 (null 체크 포함) + if (obj.NextRFID == null || this.NextRFID == null) + { + if (obj.NextRFID != this.NextRFID) return false; // 하나만 null이면 false + } + else + { + if (obj.NextRFID.Value != this.NextRFID.Value) return false; + } + + // Reason 비교 (null 체크 포함) + if (obj.Reason == null || this.Reason == null) + { + if (obj.Reason != this.Reason) return false; // 하나만 null이면 false + } + else + { + if (obj.Reason != this.Reason) return false; + } + + return true; + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Models/CustomLine.cs b/HMI/SubProject/AGVControl/Models/CustomLine.cs similarity index 99% rename from Cs_HMI/SubProject/AGVControl/Models/CustomLine.cs rename to HMI/SubProject/AGVControl/Models/CustomLine.cs index 1f00452..2b8fdff 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/CustomLine.cs +++ b/HMI/SubProject/AGVControl/Models/CustomLine.cs @@ -1,7 +1,7 @@ using System.Drawing; using System; - - + + namespace AGVControl.Models { public class CustomLine diff --git a/Cs_HMI/SubProject/AGVControl/Models/MagnetLine.cs b/HMI/SubProject/AGVControl/Models/MagnetLine.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/Models/MagnetLine.cs rename to HMI/SubProject/AGVControl/Models/MagnetLine.cs index 0753003..3e1ee14 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/MagnetLine.cs +++ b/HMI/SubProject/AGVControl/Models/MagnetLine.cs @@ -2,74 +2,74 @@ using System.Drawing; using System; using System.Collections.Generic; using System.Windows.Forms; - + namespace AGVControl.Models -{ - - - /// - /// Ư +{ + + + /// + /// Ư /// - public class RoadInformation - { - /// - /// - /// - public RFIDPoint P1 { get; set; } - - /// - /// - /// - public RFIDPoint P2 { get; set; } - - /// - /// 뿩 - /// - public bool Enable { get; set; } - - /// - /// AGV ̵(Ʈ) - /// ġ ش ֵ - /// - public AgvDir? LiftDirection { get; set; } - - /// - /// AGV̵ ӵ (high, middle, low) - /// - public AgvSpeed? MoveSpeed { get; set; } - - - - /// - /// AGV̵ (ºб, , б) - /// - public AgvSts? MoveDirection { get; set; } - - public RoadInformation() - { - P1 = null; - P2 = null; - LiftDirection = null; - MoveSpeed = null; - MoveDirection = null; - Enable = false; - } - - /// - /// Ǿִ - /// - public bool HasValue - { - get - { - if (P1 == null || P2 == null) return false; - if (LiftDirection == null && MoveSpeed == null && MoveDirection == null) return false; - return true; - } - } - } - - + public class RoadInformation + { + /// + /// + /// + public RFIDPoint P1 { get; set; } + + /// + /// + /// + public RFIDPoint P2 { get; set; } + + /// + /// 뿩 + /// + public bool Enable { get; set; } + + /// + /// AGV ̵(Ʈ) + /// ġ ش ֵ + /// + public AgvDir? LiftDirection { get; set; } + + /// + /// AGV̵ ӵ (high, middle, low) + /// + public AgvSpeed? MoveSpeed { get; set; } + + + + /// + /// AGV̵ (ºб, , б) + /// + public AgvSts? MoveDirection { get; set; } + + public RoadInformation() + { + P1 = null; + P2 = null; + LiftDirection = null; + MoveSpeed = null; + MoveDirection = null; + Enable = false; + } + + /// + /// Ǿִ + /// + public bool HasValue + { + get + { + if (P1 == null || P2 == null) return false; + if (LiftDirection == null && MoveSpeed == null && MoveDirection == null) return false; + return true; + } + } + } + + public class MagnetLine { public Point StartPoint { get; set; } diff --git a/Cs_HMI/SubProject/AGVControl/Models/MapElements.cs b/HMI/SubProject/AGVControl/Models/MapElements.cs similarity index 94% rename from Cs_HMI/SubProject/AGVControl/Models/MapElements.cs rename to HMI/SubProject/AGVControl/Models/MapElements.cs index ca60db6..a1a1473 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/MapElements.cs +++ b/HMI/SubProject/AGVControl/Models/MapElements.cs @@ -1,13 +1,13 @@ -using System.Drawing; -using System; -using System.Collections.Generic; - -namespace AGVControl.Models -{ - public enum BranchDirection - { - Left, - Straight, - Right - } +using System.Drawing; +using System; +using System.Collections.Generic; + +namespace AGVControl.Models +{ + public enum BranchDirection + { + Left, + Straight, + Right + } } \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/Models/MapText.cs b/HMI/SubProject/AGVControl/Models/MapText.cs similarity index 100% rename from Cs_HMI/SubProject/AGVControl/Models/MapText.cs rename to HMI/SubProject/AGVControl/Models/MapText.cs diff --git a/Cs_HMI/SubProject/AGVControl/Models/PathResult.cs b/HMI/SubProject/AGVControl/Models/PathResult.cs similarity index 94% rename from Cs_HMI/SubProject/AGVControl/Models/PathResult.cs rename to HMI/SubProject/AGVControl/Models/PathResult.cs index 463bdbe..d09e5b1 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/PathResult.cs +++ b/HMI/SubProject/AGVControl/Models/PathResult.cs @@ -1,23 +1,23 @@ -using AGVControl.Models; -using System.Collections.Generic; -using System.Linq; - -namespace AGVControl -{ - public class PathResult - - { - public bool Success - { - get - { - return Path != null && Path.Any(); - } - } - public string Message { get; set; } - public List Path { get; set; } - - - } - -} +using AGVControl.Models; +using System.Collections.Generic; +using System.Linq; + +namespace AGVControl +{ + public class PathResult + + { + public bool Success + { + get + { + return Path != null && Path.Any(); + } + } + public string Message { get; set; } + public List Path { get; set; } + + + } + +} diff --git a/Cs_HMI/SubProject/AGVControl/Models/RFIDConnection.cs b/HMI/SubProject/AGVControl/Models/RFIDConnection.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/Models/RFIDConnection.cs rename to HMI/SubProject/AGVControl/Models/RFIDConnection.cs index 2dea26b..562be58 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/RFIDConnection.cs +++ b/HMI/SubProject/AGVControl/Models/RFIDConnection.cs @@ -1,214 +1,214 @@ -using AGVControl.Models; -using AR; -using System.Collections.Specialized; -using System.ComponentModel; -using System.Diagnostics.Tracing; - -namespace AGVControl -{ - public class RFIDConnection - { - /// - /// 시작지점 - /// - public RFIDPoint P1 { get; set; } - - /// - /// 종료지점 - /// - public RFIDPoint P2 { get; set; } - - /// - /// 도로의 사용여부 - /// - public bool EnableP { get; set; } - public bool EnableN { get; set; } - - /// - /// AGV의 이동방향(리프트방향) - /// 목적지 방향과의 일치를 위해 해당 방향을 설정할 수 있따 - /// - public AgvDir? LiftDirectionP { get; set; } - public AgvDir? LiftDirectionN { get; set; } - - /// - /// AGV이동시 속도 (high, middle, low) - /// - public AgvSpeed? MoveSpeedP { get; set; } - public AgvSpeed? MoveSpeedN { get; set; } - - /// - /// AGV이동시 방향모드(좌분기, 전진, 우분기) - /// - public AgvSts? MoveDirectionP { get; set; } - public AgvSts? MoveDirectionN { get; set; } - - /// - /// 파일저장 및 불러오기시 사용하는 문자열로 반환 - /// - [Browsable(false)] - public string DataFileString - { - get - { - var str_enbP = EnableP ? "1" : "0"; - var str_liftP = ""; - if (LiftDirectionP != null) str_liftP = ((int)LiftDirectionP).ToString(); - - var str_movespeedP = ""; - if (MoveSpeedP != null) str_movespeedP = ((int)MoveSpeedP).ToString(); - - var str_movdirP = ""; - if (MoveDirectionP != null) str_movdirP = ((int)MoveDirectionP).ToString(); - - var str_enbN = EnableP ? "1" : "0"; - var str_liftN = ""; - if (LiftDirectionN != null) str_liftN = ((int)LiftDirectionN).ToString(); - - var str_movespeedN = ""; - if (MoveSpeedN != null) str_movespeedN = ((int)MoveSpeedN).ToString(); - - var str_movdirN = ""; - if (MoveDirectionN != null) str_movdirN = ((int)MoveDirectionN).ToString(); - - - var PStr= $"{P1.Location.X},{P1.Location.Y},{P2.Location.X},{P2.Location.Y}," + //location - $"{P1.Value},{P2.Value}," + //rfid values - $"{str_enbP};{str_liftP};{str_movespeedP};{str_movdirP}," + - $"{str_enbN};{str_liftN};{str_movespeedN};{str_movdirN}"; - - - return $"{PStr}"; - - - } - set - { - var buf = value.Split(','); - if (buf.Length >= 2) - { - var p1x = int.Parse(buf[0]); - var p1y = int.Parse(buf[1]); - var p2x = int.Parse(buf[2]); - var p2y = int.Parse(buf[3]); - var p1v = ushort.Parse(buf[4]); - var p2v = ushort.Parse(buf[5]); - - if (P1 == null) P1 = new RFIDPoint(); - P1.Location = new System.Drawing.Point(p1x, p1y); - P1.Value = p1v; - - if (P2 == null) P2 = new RFIDPoint(); - P2.Location = new System.Drawing.Point(p2x, p2y); - P2.Value = p2v; - - - if (buf[6].Contains(";")) //양방향 정보 - { - var StrP = buf[6].Split(';'); - var StrN = buf[7].Split(';'); - - //Positive - this.EnableP = StrP[0] == "1"; - - if (StrP[1].isEmpty()) LiftDirectionP = null; - else LiftDirectionP = (AgvDir)int.Parse(StrP[1]); - - if (StrP[2].isEmpty()) MoveSpeedP = null; - else MoveSpeedP = (AgvSpeed)int.Parse(StrP[2]); - - if (StrP[3].isEmpty()) MoveDirectionP = null; - else MoveDirectionP = (AgvSts)int.Parse(StrP[3]); - - //Negative - this.EnableN = StrN[0] == "1"; - - if (StrN[1].isEmpty()) LiftDirectionN = null; - else LiftDirectionN = (AgvDir)int.Parse(StrN[1]); - - if (StrN[2].isEmpty()) MoveSpeedN = null; - else MoveSpeedN = (AgvSpeed)int.Parse(StrN[2]); - - if (StrN[3].isEmpty()) MoveDirectionN = null; - else MoveDirectionN = (AgvSts)int.Parse(StrN[3]); - } - else - { - this.EnableP = buf[6] == "1"; - - if (buf[7].isEmpty()) LiftDirectionP = null; - else LiftDirectionP = (AgvDir)int.Parse(buf[7]); - - if (buf[8].isEmpty()) MoveSpeedP = null; - else MoveSpeedP = (AgvSpeed)int.Parse(buf[8]); - - if (buf[9].isEmpty()) MoveDirectionP = null; - else MoveDirectionP = (AgvSts)int.Parse(buf[9]); - - this.EnableN = this.EnableP; - this.LiftDirectionN = this.LiftDirectionP; - this.MoveSpeedN = this.MoveSpeedP; - this.MoveDirectionN = this.MoveDirectionP; - } - - - - - - } - } - } - - public RFIDConnection(string dataline = "") - { - P1 = null; - P2 = null; - LiftDirectionP = null; - MoveSpeedP = null; - MoveDirectionP = null; - EnableP = false; - - LiftDirectionN = null; - MoveSpeedN = null; - MoveDirectionP = null; - EnableP = false; - - - if (dataline.isEmpty() == false) DataFileString = dataline; - } - - /// - /// 값이 설정되어있는지 - /// - public bool HasValue - { - get - { - if (P1 == null || P2 == null) return false; - if (LiftDirectionP == null && MoveSpeedP == null && MoveDirectionP == null && - LiftDirectionN == null && MoveSpeedN == null && MoveDirectionN == null) return false; - return true; - } - } - - - public override bool Equals(object obj) - { - if (obj is RFIDConnection other) - { - return (P1 == other.P1 && P2 == other.P2); - } - return false; - } - - public override int GetHashCode() - { - return P1.GetHashCode() ^ P2.GetHashCode(); - } - public override string ToString() - { - //연결정보를 확인 - return $"{P1.Value} ↔ {P2.Value},ENB:{(EnableP ? "O" : "X")}|{(EnableN ? "O" : "X")}"; - } - } -} +using AGVControl.Models; +using AR; +using System.Collections.Specialized; +using System.ComponentModel; +using System.Diagnostics.Tracing; + +namespace AGVControl +{ + public class RFIDConnection + { + /// + /// 시작지점 + /// + public RFIDPoint P1 { get; set; } + + /// + /// 종료지점 + /// + public RFIDPoint P2 { get; set; } + + /// + /// 도로의 사용여부 + /// + public bool EnableP { get; set; } + public bool EnableN { get; set; } + + /// + /// AGV의 이동방향(리프트방향) + /// 목적지 방향과의 일치를 위해 해당 방향을 설정할 수 있따 + /// + public AgvDir? LiftDirectionP { get; set; } + public AgvDir? LiftDirectionN { get; set; } + + /// + /// AGV이동시 속도 (high, middle, low) + /// + public AgvSpeed? MoveSpeedP { get; set; } + public AgvSpeed? MoveSpeedN { get; set; } + + /// + /// AGV이동시 방향모드(좌분기, 전진, 우분기) + /// + public AgvSts? MoveDirectionP { get; set; } + public AgvSts? MoveDirectionN { get; set; } + + /// + /// 파일저장 및 불러오기시 사용하는 문자열로 반환 + /// + [Browsable(false)] + public string DataFileString + { + get + { + var str_enbP = EnableP ? "1" : "0"; + var str_liftP = ""; + if (LiftDirectionP != null) str_liftP = ((int)LiftDirectionP).ToString(); + + var str_movespeedP = ""; + if (MoveSpeedP != null) str_movespeedP = ((int)MoveSpeedP).ToString(); + + var str_movdirP = ""; + if (MoveDirectionP != null) str_movdirP = ((int)MoveDirectionP).ToString(); + + var str_enbN = EnableP ? "1" : "0"; + var str_liftN = ""; + if (LiftDirectionN != null) str_liftN = ((int)LiftDirectionN).ToString(); + + var str_movespeedN = ""; + if (MoveSpeedN != null) str_movespeedN = ((int)MoveSpeedN).ToString(); + + var str_movdirN = ""; + if (MoveDirectionN != null) str_movdirN = ((int)MoveDirectionN).ToString(); + + + var PStr= $"{P1.Location.X},{P1.Location.Y},{P2.Location.X},{P2.Location.Y}," + //location + $"{P1.Value},{P2.Value}," + //rfid values + $"{str_enbP};{str_liftP};{str_movespeedP};{str_movdirP}," + + $"{str_enbN};{str_liftN};{str_movespeedN};{str_movdirN}"; + + + return $"{PStr}"; + + + } + set + { + var buf = value.Split(','); + if (buf.Length >= 2) + { + var p1x = int.Parse(buf[0]); + var p1y = int.Parse(buf[1]); + var p2x = int.Parse(buf[2]); + var p2y = int.Parse(buf[3]); + var p1v = ushort.Parse(buf[4]); + var p2v = ushort.Parse(buf[5]); + + if (P1 == null) P1 = new RFIDPoint(); + P1.Location = new System.Drawing.Point(p1x, p1y); + P1.Value = p1v; + + if (P2 == null) P2 = new RFIDPoint(); + P2.Location = new System.Drawing.Point(p2x, p2y); + P2.Value = p2v; + + + if (buf[6].Contains(";")) //양방향 정보 + { + var StrP = buf[6].Split(';'); + var StrN = buf[7].Split(';'); + + //Positive + this.EnableP = StrP[0] == "1"; + + if (StrP[1].isEmpty()) LiftDirectionP = null; + else LiftDirectionP = (AgvDir)int.Parse(StrP[1]); + + if (StrP[2].isEmpty()) MoveSpeedP = null; + else MoveSpeedP = (AgvSpeed)int.Parse(StrP[2]); + + if (StrP[3].isEmpty()) MoveDirectionP = null; + else MoveDirectionP = (AgvSts)int.Parse(StrP[3]); + + //Negative + this.EnableN = StrN[0] == "1"; + + if (StrN[1].isEmpty()) LiftDirectionN = null; + else LiftDirectionN = (AgvDir)int.Parse(StrN[1]); + + if (StrN[2].isEmpty()) MoveSpeedN = null; + else MoveSpeedN = (AgvSpeed)int.Parse(StrN[2]); + + if (StrN[3].isEmpty()) MoveDirectionN = null; + else MoveDirectionN = (AgvSts)int.Parse(StrN[3]); + } + else + { + this.EnableP = buf[6] == "1"; + + if (buf[7].isEmpty()) LiftDirectionP = null; + else LiftDirectionP = (AgvDir)int.Parse(buf[7]); + + if (buf[8].isEmpty()) MoveSpeedP = null; + else MoveSpeedP = (AgvSpeed)int.Parse(buf[8]); + + if (buf[9].isEmpty()) MoveDirectionP = null; + else MoveDirectionP = (AgvSts)int.Parse(buf[9]); + + this.EnableN = this.EnableP; + this.LiftDirectionN = this.LiftDirectionP; + this.MoveSpeedN = this.MoveSpeedP; + this.MoveDirectionN = this.MoveDirectionP; + } + + + + + + } + } + } + + public RFIDConnection(string dataline = "") + { + P1 = null; + P2 = null; + LiftDirectionP = null; + MoveSpeedP = null; + MoveDirectionP = null; + EnableP = false; + + LiftDirectionN = null; + MoveSpeedN = null; + MoveDirectionP = null; + EnableP = false; + + + if (dataline.isEmpty() == false) DataFileString = dataline; + } + + /// + /// 값이 설정되어있는지 + /// + public bool HasValue + { + get + { + if (P1 == null || P2 == null) return false; + if (LiftDirectionP == null && MoveSpeedP == null && MoveDirectionP == null && + LiftDirectionN == null && MoveSpeedN == null && MoveDirectionN == null) return false; + return true; + } + } + + + public override bool Equals(object obj) + { + if (obj is RFIDConnection other) + { + return (P1 == other.P1 && P2 == other.P2); + } + return false; + } + + public override int GetHashCode() + { + return P1.GetHashCode() ^ P2.GetHashCode(); + } + public override string ToString() + { + //연결정보를 확인 + return $"{P1.Value} ↔ {P2.Value},ENB:{(EnableP ? "O" : "X")}|{(EnableN ? "O" : "X")}"; + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Models/RFIDLine.cs b/HMI/SubProject/AGVControl/Models/RFIDLine.cs similarity index 99% rename from Cs_HMI/SubProject/AGVControl/Models/RFIDLine.cs rename to HMI/SubProject/AGVControl/Models/RFIDLine.cs index 36df3b8..2891201 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/RFIDLine.cs +++ b/HMI/SubProject/AGVControl/Models/RFIDLine.cs @@ -7,14 +7,14 @@ namespace AGVControl.Models public class RFIDLine { public Point StartPoint { get; set; } - public Point EndPoint { get; set; } - + public Point EndPoint { get; set; } + public float Distance { - get { - float dx = StartPoint.X - EndPoint.X; - float dy = StartPoint.Y - EndPoint.Y; - return (float)Math.Sqrt(dx * dx + dy * dy); // double을 float로 명시적 캐스팅 + get { + float dx = StartPoint.X - EndPoint.X; + float dy = StartPoint.Y - EndPoint.Y; + return (float)Math.Sqrt(dx * dx + dy * dy); // double을 float로 명시적 캐스팅 } } diff --git a/Cs_HMI/SubProject/AGVControl/Models/RFIDPoint.cs b/HMI/SubProject/AGVControl/Models/RFIDPoint.cs similarity index 98% rename from Cs_HMI/SubProject/AGVControl/Models/RFIDPoint.cs rename to HMI/SubProject/AGVControl/Models/RFIDPoint.cs index e3ae68d..a1e8659 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/RFIDPoint.cs +++ b/HMI/SubProject/AGVControl/Models/RFIDPoint.cs @@ -12,35 +12,35 @@ namespace AGVControl.Models public bool IsBidirectional { get; set; } // 양방향 연결 여부 public bool IsRotatable { get; set; } // 회전 가능 여부 public AgvDir? FixedDirection { get; set; } // 고정 방향(없으면 null) - public bool IsTerminal { get; set; } // 종단 여부 - public bool NeedTurn { get; set; } - - public bool TurnStop { get; set; } - public bool TurnOK { get; set; } - public DateTime TurnStart { get; set; } - public DateTime TurnEnd { get; set; } - + public bool IsTerminal { get; set; } // 종단 여부 + public bool NeedTurn { get; set; } + + public bool TurnStop { get; set; } + public bool TurnOK { get; set; } + public DateTime TurnStart { get; set; } + public DateTime TurnEnd { get; set; } + [Browsable(false)] public RectangleF Bounds { get; set; } - public void Clear() - { - this.Location = Point.Empty; - this.Value = 0; - TurnStop = false; - TurnOK = false; - TurnStart = new DateTime(1982, 11, 23); - TurnEnd = new DateTime(1982, 11, 23); + public void Clear() + { + this.Location = Point.Empty; + this.Value = 0; + TurnStop = false; + TurnOK = false; + TurnStart = new DateTime(1982, 11, 23); + TurnEnd = new DateTime(1982, 11, 23); } - public bool IsEmpty - { - get - { - //RFID값이나 위치 값이 없으면 비어있는 것으로 한다. - if (this.Location.IsEmpty) return true; + public bool IsEmpty + { + get + { + //RFID값이나 위치 값이 없으면 비어있는 것으로 한다. + if (this.Location.IsEmpty) return true; if ((this.Value < 1)) return true; - return false; - } + return false; + } } public RFIDPoint() { @@ -51,9 +51,9 @@ namespace AGVControl.Models Clear(); } - public override string ToString() - { - return $"[RFIDPoint] {Value},P:{Location.X},{Location.Y}"; + public override string ToString() + { + return $"[RFIDPoint] {Value},P:{Location.X},{Location.Y}"; } } } \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/Models/ToolBarItem.cs b/HMI/SubProject/AGVControl/Models/ToolBarItem.cs similarity index 95% rename from Cs_HMI/SubProject/AGVControl/Models/ToolBarItem.cs rename to HMI/SubProject/AGVControl/Models/ToolBarItem.cs index e01eb4b..a486bd2 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/ToolBarItem.cs +++ b/HMI/SubProject/AGVControl/Models/ToolBarItem.cs @@ -1,34 +1,34 @@ -using System.Drawing; -using System.Collections.Generic; -using System.Linq; - -namespace AGVControl.Models -{ - public class ToolBarItem - { - private bool _ishovering = false; - public int Idx { get; set; } - public Rectangle Bounds { get; set; } - public bool isHovering - { - get { return _ishovering; } - set - { - Dirty = _ishovering != value; - _ishovering = value; - } - } - - public string Title { get; set; } - public bool Dirty { get; private set; } - - public ToolBarItem() - { - Bounds = Rectangle.Empty; - } - - - } - - +using System.Drawing; +using System.Collections.Generic; +using System.Linq; + +namespace AGVControl.Models +{ + public class ToolBarItem + { + private bool _ishovering = false; + public int Idx { get; set; } + public Rectangle Bounds { get; set; } + public bool isHovering + { + get { return _ishovering; } + set + { + Dirty = _ishovering != value; + _ishovering = value; + } + } + + public string Title { get; set; } + public bool Dirty { get; private set; } + + public ToolBarItem() + { + Bounds = Rectangle.Empty; + } + + + } + + } \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/Models/enumStruct.cs b/HMI/SubProject/AGVControl/Models/enumStruct.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/Models/enumStruct.cs rename to HMI/SubProject/AGVControl/Models/enumStruct.cs index d1e4bea..2b8a903 100644 --- a/Cs_HMI/SubProject/AGVControl/Models/enumStruct.cs +++ b/HMI/SubProject/AGVControl/Models/enumStruct.cs @@ -1,72 +1,72 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AGVControl -{ - /// - /// 실제 AGV컨트롤러의 STS값에는 F,B의 값이 들어있고 - /// 아래 항목은 해당 문자의 ASCII코드값이다 첫자를 byte로 변경하고 변환하면 된다 - /// - public enum AgvDir : byte - { - Forward = 0x46, - Backward = 0x42, - } - - public enum AGVMoveState - { - Stop = 0, - Run - } - - /// - /// 실제 AGV컨트롤러의 STS값에는 H,L,M,S의 값이 들어있고 - /// 아래 항목은 해당 문자의 ASCII코드값이다 첫자를 byte로 변경하고 변환하면 된다 - /// - public enum AgvSpeed : byte - { - High = 0x48, - Middle = 0x4D, - Low = 0x4C, - MarkStop = 0x53, - } - - /// - /// STS : S,L,R - /// - public enum AgvSts : byte - { - Straight = 0x53, - Left = 0x4c, - Right = 0x052, - } - - public enum AGVActionReasonCode - { - Unknown = 0, - NoPosition, // 위치 미확정(처음 기동) - NoPath, // 경로 없음 또는 현재 위치 미확정 - NotOnPath, // 현재 위치가 경로에 없음 - Arrived, // 경로의 마지막 지점(목적지 도달) - Normal, // 정상(다음 RFID 있음) - - /// - /// 방향전환을 위한 턴이다 - /// - NeedTurnMove, - - /// - /// 지정된 RFID위치에서 TURN이 요청되었다 - /// - NeedTurnPoint, - NoTurnPoint, - PathCalcError, - NoDirection, - MoveForTurn, - busy, - WaitForMarkStop, - } +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AGVControl +{ + /// + /// 실제 AGV컨트롤러의 STS값에는 F,B의 값이 들어있고 + /// 아래 항목은 해당 문자의 ASCII코드값이다 첫자를 byte로 변경하고 변환하면 된다 + /// + public enum AgvDir : byte + { + Forward = 0x46, + Backward = 0x42, + } + + public enum AGVMoveState + { + Stop = 0, + Run + } + + /// + /// 실제 AGV컨트롤러의 STS값에는 H,L,M,S의 값이 들어있고 + /// 아래 항목은 해당 문자의 ASCII코드값이다 첫자를 byte로 변경하고 변환하면 된다 + /// + public enum AgvSpeed : byte + { + High = 0x48, + Middle = 0x4D, + Low = 0x4C, + MarkStop = 0x53, + } + + /// + /// STS : S,L,R + /// + public enum AgvSts : byte + { + Straight = 0x53, + Left = 0x4c, + Right = 0x052, + } + + public enum AGVActionReasonCode + { + Unknown = 0, + NoPosition, // 위치 미확정(처음 기동) + NoPath, // 경로 없음 또는 현재 위치 미확정 + NotOnPath, // 현재 위치가 경로에 없음 + Arrived, // 경로의 마지막 지점(목적지 도달) + Normal, // 정상(다음 RFID 있음) + + /// + /// 방향전환을 위한 턴이다 + /// + NeedTurnMove, + + /// + /// 지정된 RFID위치에서 TURN이 요청되었다 + /// + NeedTurnPoint, + NoTurnPoint, + PathCalcError, + NoDirection, + MoveForTurn, + busy, + WaitForMarkStop, + } } \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/MyRadioButton.Designer.cs b/HMI/SubProject/AGVControl/MyRadioButton.Designer.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/MyRadioButton.Designer.cs rename to HMI/SubProject/AGVControl/MyRadioButton.Designer.cs index 74af0ba..3fa114d 100644 --- a/Cs_HMI/SubProject/AGVControl/MyRadioButton.Designer.cs +++ b/HMI/SubProject/AGVControl/MyRadioButton.Designer.cs @@ -1,37 +1,37 @@ - -namespace AGVControl -{ - partial class MyRadioButton - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region 구성 요소 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} + +namespace AGVControl +{ + partial class MyRadioButton + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Cs_HMI/SubProject/AGVControl/MyRadioButton.cs b/HMI/SubProject/AGVControl/MyRadioButton.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/MyRadioButton.cs rename to HMI/SubProject/AGVControl/MyRadioButton.cs index 8843fe2..5e594d5 100644 --- a/Cs_HMI/SubProject/AGVControl/MyRadioButton.cs +++ b/HMI/SubProject/AGVControl/MyRadioButton.cs @@ -1,88 +1,88 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace AGVControl -{ - public partial class MyRadioButton : RadioButton - { - public int CheckWidth { get; set; } = 30; - public Color CheckOnColor { get; set; } = Color.OrangeRed; - public Color CheckOffColor { get; set; } = Color.DimGray; - public Color Bordercolor { get; set; } = Color.DimGray; - public int BorderSize { get; set; } = 2; - public int BorderRadius { get; set; } = 7; - public MyRadioButton() - { - InitializeComponent(); - // Set Optimized Double Buffer to reduce flickering - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); - - // Redraw when resized - this.SetStyle(ControlStyles.ResizeRedraw, true); - - this.Resize += arLabel_Resize; - } - - protected override void OnPaint(PaintEventArgs pe) - { - pe.Graphics.InterpolationMode = InterpolationMode.High; - pe.Graphics.SmoothingMode = SmoothingMode.AntiAlias; - pe.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; - - pe.Graphics.Clear(this.BackColor); - - var XPosition = this.DisplayRectangle.Left; - var YPosition = this.DisplayRectangle.Top; - using (GraphicsPath Path = new GraphicsPath()) - { - Path.AddLine(XPosition + BorderRadius, YPosition, XPosition + Width - (BorderRadius * 2), YPosition); - Path.AddArc(XPosition + Width - (BorderRadius * 2), YPosition, BorderRadius * 2, BorderRadius * 2, 270, 90); - Path.AddLine(XPosition + Width, YPosition + BorderRadius, XPosition + Width, YPosition + Height - (BorderRadius * 2)); - Path.AddArc(XPosition + Width - (BorderRadius * 2), YPosition + Height - (BorderRadius * 2), BorderRadius * 2, BorderRadius * 2, 0, 90); - Path.AddLine(XPosition + Width - (BorderRadius * 2), YPosition + Height, XPosition + BorderRadius, YPosition + Height); - Path.AddArc(XPosition, YPosition + Height - (BorderRadius * 2), BorderRadius * 2, BorderRadius * 2, 90, 90); - Path.AddLine(XPosition, YPosition + Height - (BorderRadius * 2), XPosition, YPosition + BorderRadius); - Path.AddArc(XPosition, YPosition, BorderRadius * 2, BorderRadius * 2, 180, 90); - Path.CloseFigure(); - - - - - var r1 = new Rectangle( - DisplayRectangle.Left, DisplayRectangle.Top, - CheckWidth, - DisplayRectangle.Height - 1); - var r2 = new Rectangle(r1.Right + 3, r1.Top, DisplayRectangle.Width - r1.Width - 3 - Padding.Right, r1.Height); - var CC = Checked ? CheckOnColor : CheckOffColor; - pe.Graphics.FillRectangle(new SolidBrush(CC), r1); - StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; - if (this.TextAlign == ContentAlignment.MiddleLeft) sf.Alignment = StringAlignment.Near; - else if (this.TextAlign == ContentAlignment.MiddleRight) sf.Alignment = StringAlignment.Far; - pe.Graphics.DrawString(this.Text, this.Font, new SolidBrush(ForeColor), r2, sf); - //pe.Graphics.DrawRectangle(new Pen(this.Bordercolor, this.BorderSize), DisplayRectangle); - this.Region = new System.Drawing.Region(Path); - - - pe.Graphics.DrawPath(new Pen(this.Bordercolor, this.BorderSize), Path); - - - - } - } - void arLabel_Resize(object sender, EventArgs e) - { - Invalidate(); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace AGVControl +{ + public partial class MyRadioButton : RadioButton + { + public int CheckWidth { get; set; } = 30; + public Color CheckOnColor { get; set; } = Color.OrangeRed; + public Color CheckOffColor { get; set; } = Color.DimGray; + public Color Bordercolor { get; set; } = Color.DimGray; + public int BorderSize { get; set; } = 2; + public int BorderRadius { get; set; } = 7; + public MyRadioButton() + { + InitializeComponent(); + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.Resize += arLabel_Resize; + } + + protected override void OnPaint(PaintEventArgs pe) + { + pe.Graphics.InterpolationMode = InterpolationMode.High; + pe.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + pe.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; + + pe.Graphics.Clear(this.BackColor); + + var XPosition = this.DisplayRectangle.Left; + var YPosition = this.DisplayRectangle.Top; + using (GraphicsPath Path = new GraphicsPath()) + { + Path.AddLine(XPosition + BorderRadius, YPosition, XPosition + Width - (BorderRadius * 2), YPosition); + Path.AddArc(XPosition + Width - (BorderRadius * 2), YPosition, BorderRadius * 2, BorderRadius * 2, 270, 90); + Path.AddLine(XPosition + Width, YPosition + BorderRadius, XPosition + Width, YPosition + Height - (BorderRadius * 2)); + Path.AddArc(XPosition + Width - (BorderRadius * 2), YPosition + Height - (BorderRadius * 2), BorderRadius * 2, BorderRadius * 2, 0, 90); + Path.AddLine(XPosition + Width - (BorderRadius * 2), YPosition + Height, XPosition + BorderRadius, YPosition + Height); + Path.AddArc(XPosition, YPosition + Height - (BorderRadius * 2), BorderRadius * 2, BorderRadius * 2, 90, 90); + Path.AddLine(XPosition, YPosition + Height - (BorderRadius * 2), XPosition, YPosition + BorderRadius); + Path.AddArc(XPosition, YPosition, BorderRadius * 2, BorderRadius * 2, 180, 90); + Path.CloseFigure(); + + + + + var r1 = new Rectangle( + DisplayRectangle.Left, DisplayRectangle.Top, + CheckWidth, + DisplayRectangle.Height - 1); + var r2 = new Rectangle(r1.Right + 3, r1.Top, DisplayRectangle.Width - r1.Width - 3 - Padding.Right, r1.Height); + var CC = Checked ? CheckOnColor : CheckOffColor; + pe.Graphics.FillRectangle(new SolidBrush(CC), r1); + StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; + if (this.TextAlign == ContentAlignment.MiddleLeft) sf.Alignment = StringAlignment.Near; + else if (this.TextAlign == ContentAlignment.MiddleRight) sf.Alignment = StringAlignment.Far; + pe.Graphics.DrawString(this.Text, this.Font, new SolidBrush(ForeColor), r2, sf); + //pe.Graphics.DrawRectangle(new Pen(this.Bordercolor, this.BorderSize), DisplayRectangle); + this.Region = new System.Drawing.Region(Path); + + + pe.Graphics.DrawPath(new Pen(this.Bordercolor, this.BorderSize), Path); + + + + } + } + void arLabel_Resize(object sender, EventArgs e) + { + Invalidate(); + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Properties/AssemblyInfo.cs b/HMI/SubProject/AGVControl/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/Properties/AssemblyInfo.cs rename to HMI/SubProject/AGVControl/Properties/AssemblyInfo.cs index 53f3556..8285392 100644 --- a/Cs_HMI/SubProject/AGVControl/Properties/AssemblyInfo.cs +++ b/HMI/SubProject/AGVControl/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("AGVControl")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AGVControl")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("8cb883c0-99c3-4dd4-b017-f9b92010a806")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 -// 기본값으로 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("AGVControl")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AGVControl")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("8cb883c0-99c3-4dd4-b017-f9b92010a806")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs_HMI/SubProject/AGVControl/Properties/Resources.Designer.cs b/HMI/SubProject/AGVControl/Properties/Resources.Designer.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/Properties/Resources.Designer.cs rename to HMI/SubProject/AGVControl/Properties/Resources.Designer.cs index f1f5a9b..b455360 100644 --- a/Cs_HMI/SubProject/AGVControl/Properties/Resources.Designer.cs +++ b/HMI/SubProject/AGVControl/Properties/Resources.Designer.cs @@ -1,73 +1,73 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace AGVControl.Properties { - using System; - - - /// - /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. - /// - // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder - // 클래스에서 자동으로 생성되었습니다. - // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 - // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AGVControl.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대한 현재 스레드의 CurrentUICulture - /// 속성을 재정의합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. - /// - internal static System.Drawing.Bitmap ico_navi_40 { - get { - object obj = ResourceManager.GetObject("ico_navi_40", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace AGVControl.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AGVControl.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대한 현재 스레드의 CurrentUICulture + /// 속성을 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap ico_navi_40 { + get { + object obj = ResourceManager.GetObject("ico_navi_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/Properties/Resources.resx b/HMI/SubProject/AGVControl/Properties/Resources.resx similarity index 98% rename from Cs_HMI/SubProject/AGVControl/Properties/Resources.resx rename to HMI/SubProject/AGVControl/Properties/Resources.resx index cfb902b..4bba961 100644 --- a/Cs_HMI/SubProject/AGVControl/Properties/Resources.resx +++ b/HMI/SubProject/AGVControl/Properties/Resources.resx @@ -1,124 +1,124 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\ico_navi_40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\ico_navi_40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/Resources/ico_navi_40.png b/HMI/SubProject/AGVControl/Resources/ico_navi_40.png similarity index 100% rename from Cs_HMI/SubProject/AGVControl/Resources/ico_navi_40.png rename to HMI/SubProject/AGVControl/Resources/ico_navi_40.png diff --git a/Cs_HMI/SubProject/AGVControl/RoundButton.Designer.cs b/HMI/SubProject/AGVControl/RoundButton.Designer.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/RoundButton.Designer.cs rename to HMI/SubProject/AGVControl/RoundButton.Designer.cs index 7c57131..aa847d5 100644 --- a/Cs_HMI/SubProject/AGVControl/RoundButton.Designer.cs +++ b/HMI/SubProject/AGVControl/RoundButton.Designer.cs @@ -1,37 +1,37 @@ - -namespace AGVControl -{ - partial class RoundButton - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region 구성 요소 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} + +namespace AGVControl +{ + partial class RoundButton + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Cs_HMI/SubProject/AGVControl/RoundButton.cs b/HMI/SubProject/AGVControl/RoundButton.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/RoundButton.cs rename to HMI/SubProject/AGVControl/RoundButton.cs index ad8352b..00ce73e 100644 --- a/Cs_HMI/SubProject/AGVControl/RoundButton.cs +++ b/HMI/SubProject/AGVControl/RoundButton.cs @@ -1,63 +1,63 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace AGVControl -{ - public partial class RoundButton : Button - { - public int CornerRadius { get; set; } = 7; - public RoundButton() - { - InitializeComponent(); - - // Set Optimized Double Buffer to reduce flickering - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); - - // Redraw when resized - this.SetStyle(ControlStyles.ResizeRedraw, true); - - this.Resize += arLabel_Resize; - } - - protected override void OnPaint(PaintEventArgs pevent) - { - pevent.Graphics.InterpolationMode = InterpolationMode.High; - pevent.Graphics.SmoothingMode = SmoothingMode.AntiAlias; - pevent.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; - - var XPosition = this.DisplayRectangle.Left; - var YPosition = this.DisplayRectangle.Top; - using (GraphicsPath Path = new GraphicsPath()) - { - Path.AddLine(XPosition + CornerRadius, YPosition, XPosition + Width - (CornerRadius * 2), YPosition); - Path.AddArc(XPosition + Width - (CornerRadius * 2), YPosition, CornerRadius * 2, CornerRadius * 2, 270, 90); - Path.AddLine(XPosition + Width, YPosition + CornerRadius, XPosition + Width, YPosition + Height - (CornerRadius * 2)); - Path.AddArc(XPosition + Width - (CornerRadius * 2), YPosition + Height - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 0, 90); - Path.AddLine(XPosition + Width - (CornerRadius * 2), YPosition + Height, XPosition + CornerRadius, YPosition + Height); - Path.AddArc(XPosition, YPosition + Height - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 90, 90); - Path.AddLine(XPosition, YPosition + Height - (CornerRadius * 2), XPosition, YPosition + CornerRadius); - Path.AddArc(XPosition, YPosition, CornerRadius * 2, CornerRadius * 2, 180, 90); - Path.CloseFigure(); - this.Region = new System.Drawing.Region(Path); - } - base.OnPaint(pevent); - } - - void arLabel_Resize(object sender, EventArgs e) - { - Invalidate(); - } - - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace AGVControl +{ + public partial class RoundButton : Button + { + public int CornerRadius { get; set; } = 7; + public RoundButton() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.Resize += arLabel_Resize; + } + + protected override void OnPaint(PaintEventArgs pevent) + { + pevent.Graphics.InterpolationMode = InterpolationMode.High; + pevent.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + pevent.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; + + var XPosition = this.DisplayRectangle.Left; + var YPosition = this.DisplayRectangle.Top; + using (GraphicsPath Path = new GraphicsPath()) + { + Path.AddLine(XPosition + CornerRadius, YPosition, XPosition + Width - (CornerRadius * 2), YPosition); + Path.AddArc(XPosition + Width - (CornerRadius * 2), YPosition, CornerRadius * 2, CornerRadius * 2, 270, 90); + Path.AddLine(XPosition + Width, YPosition + CornerRadius, XPosition + Width, YPosition + Height - (CornerRadius * 2)); + Path.AddArc(XPosition + Width - (CornerRadius * 2), YPosition + Height - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 0, 90); + Path.AddLine(XPosition + Width - (CornerRadius * 2), YPosition + Height, XPosition + CornerRadius, YPosition + Height); + Path.AddArc(XPosition, YPosition + Height - (CornerRadius * 2), CornerRadius * 2, CornerRadius * 2, 90, 90); + Path.AddLine(XPosition, YPosition + Height - (CornerRadius * 2), XPosition, YPosition + CornerRadius); + Path.AddArc(XPosition, YPosition, CornerRadius * 2, CornerRadius * 2, 180, 90); + Path.CloseFigure(); + this.Region = new System.Drawing.Region(Path); + } + base.OnPaint(pevent); + } + + void arLabel_Resize(object sender, EventArgs e) + { + Invalidate(); + } + + } +} diff --git a/Cs_HMI/SubProject/AGVControl/ValueSelect.Designer.cs b/HMI/SubProject/AGVControl/ValueSelect.Designer.cs similarity index 96% rename from Cs_HMI/SubProject/AGVControl/ValueSelect.Designer.cs rename to HMI/SubProject/AGVControl/ValueSelect.Designer.cs index 24f89d2..27862c1 100644 --- a/Cs_HMI/SubProject/AGVControl/ValueSelect.Designer.cs +++ b/HMI/SubProject/AGVControl/ValueSelect.Designer.cs @@ -1,36 +1,36 @@ -namespace AGVControl -{ - partial class ValueSelect - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region 구성 요소 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} +namespace AGVControl +{ + partial class ValueSelect + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Cs_HMI/SubProject/AGVControl/ValueSelect.cs b/HMI/SubProject/AGVControl/ValueSelect.cs similarity index 97% rename from Cs_HMI/SubProject/AGVControl/ValueSelect.cs rename to HMI/SubProject/AGVControl/ValueSelect.cs index 67f6ea2..724c48e 100644 --- a/Cs_HMI/SubProject/AGVControl/ValueSelect.cs +++ b/HMI/SubProject/AGVControl/ValueSelect.cs @@ -1,262 +1,262 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Runtime.Remoting.Messaging; -using System.Text; -using System.Windows.Forms; - -namespace AGVControl -{ - public partial class ValueSelect : Control - { - public ValueSelect() - { - InitializeComponent(); - - // Set Optimized Double Buffer to reduce flickering - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); - this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); - - // Redraw when resized - this.SetStyle(ControlStyles.ResizeRedraw, true); - this.Resize += arLabel_Resize; - this.MouseClick += ValueSelect_MouseClick; - this.MouseEnter += (s1, e1) => { this.Cursor = Cursors.Hand; }; - this.MouseLeave += (s1, e1) => { this.Cursor = Cursors.Default; }; - } - - private void ValueSelect_MouseClick(object sender, MouseEventArgs e) - { - //마우스클릭 - if (rectLButton.IsEmpty == false && rectLButton.Contains(e.Location)) - { - if (SideButtonClickValue != 0.0) - { - var newvalue = this.Value - SideButtonClickValue; - if (newvalue < MinValue) newvalue = MinValue; - this.Value = newvalue; - } - - if (ButtonClick != null) ButtonClick(this, new ButtonClickEventArgs(MouseButtons.Left)); - } - - - if (rectRButton.IsEmpty == false && rectRButton.Contains(e.Location)) - { - if (SideButtonClickValue != 0.0) - { - var newvalue = this.Value + SideButtonClickValue; - if (newvalue > MaxValue) newvalue = MaxValue; - this.Value = newvalue; - } - - if (ButtonClick != null) ButtonClick(this, new ButtonClickEventArgs(MouseButtons.Right)); - } - - - if (rectCButton.IsEmpty == false && rectCButton.Contains(e.Location)) - if (ButtonClick != null) ButtonClick(this, new ButtonClickEventArgs(MouseButtons.Middle)); - } - - private Rectangle rectLButton; - private Rectangle rectRButton; - private Rectangle rectCButton; - private Boolean bMakeRect = true; - - private double _minvalue = 0.0; - private double _maxvalue = 9999999999.0; - public double MinValue { get { return _minvalue; } set { _minvalue = value; Invalidate(); } } - - public double MaxValue { get { return _maxvalue; } set { _maxvalue = value; Invalidate(); } } - - - - private UInt16 _decimalposition = 0; - private string _buttonwdith = string.Empty; - private double _value = 0; - private Color _border = Color.Lime; - private double buttongabp; - public double SideButtonClickValue { get { return buttongabp; } set { buttongabp = value; Invalidate(); } } - - private Color _backbutton = Color.White; - private Color _sidebutto = Color.Black; - - public Color BackColorButton { get { return _backbutton; } set { _backbutton = value; Invalidate(); } } - public Color ForeColorButton { get { return _sidebutto; } set { _sidebutto = value; Invalidate(); } } - - - - public Color ColorBorder { get { return _border; } set { _border = value; Invalidate(); } } - - public override string Text - { - get => Value.ToString(); - set - { - if (double.TryParse(value, out double dblval) == true) - this.Value = dblval; - } - } - - public double Value - { - get { return _value; } - set - { - if (_value != value) - { - //이 값이 범위를 초과했는지 확인 - if (value < MinValue) - { - _value = MinValue; - //throw new Exception(string.Format("입력값이 컨트롤의 최소값보다 작습니다(입력:{0},최소값:{1})",value,MinValue)); - } - else if (value > MaxValue) - { - _value = MaxValue; - //throw new Exception(string.Format("입력값이 컨트롤의 최대값보다 작습니다(입력:{0},최대값:{1})", value, MaxValue)); - } - else - { - _value = value; - - } - Invalidate(); - if (ValueChanged != null) ValueChanged(this, new EventArgs()); - } - } - } - public UInt16 DecimalPosition { get { return _decimalposition; } set { _decimalposition = value; Invalidate(); } } - public string ButtonWidth { get { return _buttonwdith; } set { _buttonwdith = value; Invalidate(); } } - - private string _nulldisplay = string.Empty; - public string NullDisplay { get { return _nulldisplay; } set { _nulldisplay = value; Invalidate(); } } - - private Font _sidefont; - public Font FontSideButton { get { if (_sidefont == null) return this.Font; else return _sidefont; } set { _sidefont = value; Invalidate(); } } - - void arLabel_Resize(object sender, EventArgs e) - { - this.bMakeRect = true; - Invalidate(); - } - - public class ButtonClickEventArgs : EventArgs - { - public MouseButtons Button; - public ButtonClickEventArgs(MouseButtons button) - { - this.Button = button; - // Console.WriteLine("button clickc : " +button.ToString()); - } - } - - public event EventHandler ButtonClick; - public event EventHandler ValueChanged; - - protected override void OnPaint(PaintEventArgs pe) - { - //base.OnPaint(pe); - if (bMakeRect) MakeRect(); - - - - StringFormat sf = new StringFormat(); - sf.Alignment = StringAlignment.Center; - sf.LineAlignment = StringAlignment.Center; - sf.Trimming = StringTrimming.None; - sf.FormatFlags = StringFormatFlags.NoWrap; - - //좌측버튼표시 - if (rectLButton.IsEmpty == false) - { - pe.Graphics.FillRectangle(new SolidBrush(BackColorButton), rectLButton); - pe.Graphics.DrawString("<<", this.FontSideButton, new SolidBrush(this.ForeColorButton), rectLButton, sf); - } - - if (rectRButton.IsEmpty == false) - { - pe.Graphics.FillRectangle(new SolidBrush(BackColorButton), rectRButton); - pe.Graphics.DrawString(">>", this.FontSideButton, new SolidBrush(this.ForeColorButton), rectRButton, sf); - } - - //값표시 - string valuestr; - if (Value == 0.0 && string.IsNullOrEmpty(NullDisplay) == false) - valuestr = NullDisplay; - else - valuestr = Value.ToString("N" + DecimalPosition.ToString()); - - pe.Graphics.FillRectangle(new SolidBrush(BackColor), rectCButton); - pe.Graphics.DrawString(valuestr, this.Font, new SolidBrush(this.ForeColor), rectCButton, sf); - sf.Dispose(); - - - //테두리표시 - if (rectLButton.IsEmpty == false) - pe.Graphics.DrawRectangle(new Pen(ColorBorder), rectLButton); - if (rectRButton.IsEmpty == false) - pe.Graphics.DrawRectangle(new Pen(ColorBorder), rectRButton); - pe.Graphics.DrawRectangle(new Pen(ColorBorder), rectCButton); - } - - void MakeRect() - { - int bWidth; - if (string.IsNullOrEmpty(ButtonWidth) == false) - { - if (ButtonWidth.EndsWith("%")) - { - if (int.TryParse(ButtonWidth.Substring(0, ButtonWidth.Length - 1), out bWidth) == false) - bWidth = 0; //숫자로 바꾸는거 실패 - else bWidth = (int)(this.DisplayRectangle.Width * (bWidth / 100.0)); - } - else - { - if (int.TryParse(ButtonWidth, out bWidth) == false) - bWidth = 0; - } - } - else bWidth = 0; - - if (bWidth > 0) - { - int buttongap = 1; - //각버튼간 2px 간격을 띄운다. - bWidth = bWidth - buttongap * 2; - rectLButton = new Rectangle( - DisplayRectangle.Left, - DisplayRectangle.Top, - bWidth, - DisplayRectangle.Height - 1); - - rectCButton = new Rectangle( - rectLButton.Right + buttongap, - DisplayRectangle.Top, - DisplayRectangle.Width - rectLButton.Width * 2 - buttongap * 2, - DisplayRectangle.Height - 1); - - rectRButton = new Rectangle( - rectCButton.Right + buttongap, - DisplayRectangle.Top, - bWidth - 1, - DisplayRectangle.Height - 1); - } - else - { - rectLButton = Rectangle.Empty; - rectRButton = Rectangle.Empty; - rectCButton = new Rectangle(DisplayRectangle.Left, - DisplayRectangle.Top, - DisplayRectangle.Width - 1, - DisplayRectangle.Height - 1); - } - bMakeRect = true; - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Runtime.Remoting.Messaging; +using System.Text; +using System.Windows.Forms; + +namespace AGVControl +{ + public partial class ValueSelect : Control + { + public ValueSelect() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + this.Resize += arLabel_Resize; + this.MouseClick += ValueSelect_MouseClick; + this.MouseEnter += (s1, e1) => { this.Cursor = Cursors.Hand; }; + this.MouseLeave += (s1, e1) => { this.Cursor = Cursors.Default; }; + } + + private void ValueSelect_MouseClick(object sender, MouseEventArgs e) + { + //마우스클릭 + if (rectLButton.IsEmpty == false && rectLButton.Contains(e.Location)) + { + if (SideButtonClickValue != 0.0) + { + var newvalue = this.Value - SideButtonClickValue; + if (newvalue < MinValue) newvalue = MinValue; + this.Value = newvalue; + } + + if (ButtonClick != null) ButtonClick(this, new ButtonClickEventArgs(MouseButtons.Left)); + } + + + if (rectRButton.IsEmpty == false && rectRButton.Contains(e.Location)) + { + if (SideButtonClickValue != 0.0) + { + var newvalue = this.Value + SideButtonClickValue; + if (newvalue > MaxValue) newvalue = MaxValue; + this.Value = newvalue; + } + + if (ButtonClick != null) ButtonClick(this, new ButtonClickEventArgs(MouseButtons.Right)); + } + + + if (rectCButton.IsEmpty == false && rectCButton.Contains(e.Location)) + if (ButtonClick != null) ButtonClick(this, new ButtonClickEventArgs(MouseButtons.Middle)); + } + + private Rectangle rectLButton; + private Rectangle rectRButton; + private Rectangle rectCButton; + private Boolean bMakeRect = true; + + private double _minvalue = 0.0; + private double _maxvalue = 9999999999.0; + public double MinValue { get { return _minvalue; } set { _minvalue = value; Invalidate(); } } + + public double MaxValue { get { return _maxvalue; } set { _maxvalue = value; Invalidate(); } } + + + + private UInt16 _decimalposition = 0; + private string _buttonwdith = string.Empty; + private double _value = 0; + private Color _border = Color.Lime; + private double buttongabp; + public double SideButtonClickValue { get { return buttongabp; } set { buttongabp = value; Invalidate(); } } + + private Color _backbutton = Color.White; + private Color _sidebutto = Color.Black; + + public Color BackColorButton { get { return _backbutton; } set { _backbutton = value; Invalidate(); } } + public Color ForeColorButton { get { return _sidebutto; } set { _sidebutto = value; Invalidate(); } } + + + + public Color ColorBorder { get { return _border; } set { _border = value; Invalidate(); } } + + public override string Text + { + get => Value.ToString(); + set + { + if (double.TryParse(value, out double dblval) == true) + this.Value = dblval; + } + } + + public double Value + { + get { return _value; } + set + { + if (_value != value) + { + //이 값이 범위를 초과했는지 확인 + if (value < MinValue) + { + _value = MinValue; + //throw new Exception(string.Format("입력값이 컨트롤의 최소값보다 작습니다(입력:{0},최소값:{1})",value,MinValue)); + } + else if (value > MaxValue) + { + _value = MaxValue; + //throw new Exception(string.Format("입력값이 컨트롤의 최대값보다 작습니다(입력:{0},최대값:{1})", value, MaxValue)); + } + else + { + _value = value; + + } + Invalidate(); + if (ValueChanged != null) ValueChanged(this, new EventArgs()); + } + } + } + public UInt16 DecimalPosition { get { return _decimalposition; } set { _decimalposition = value; Invalidate(); } } + public string ButtonWidth { get { return _buttonwdith; } set { _buttonwdith = value; Invalidate(); } } + + private string _nulldisplay = string.Empty; + public string NullDisplay { get { return _nulldisplay; } set { _nulldisplay = value; Invalidate(); } } + + private Font _sidefont; + public Font FontSideButton { get { if (_sidefont == null) return this.Font; else return _sidefont; } set { _sidefont = value; Invalidate(); } } + + void arLabel_Resize(object sender, EventArgs e) + { + this.bMakeRect = true; + Invalidate(); + } + + public class ButtonClickEventArgs : EventArgs + { + public MouseButtons Button; + public ButtonClickEventArgs(MouseButtons button) + { + this.Button = button; + // Console.WriteLine("button clickc : " +button.ToString()); + } + } + + public event EventHandler ButtonClick; + public event EventHandler ValueChanged; + + protected override void OnPaint(PaintEventArgs pe) + { + //base.OnPaint(pe); + if (bMakeRect) MakeRect(); + + + + StringFormat sf = new StringFormat(); + sf.Alignment = StringAlignment.Center; + sf.LineAlignment = StringAlignment.Center; + sf.Trimming = StringTrimming.None; + sf.FormatFlags = StringFormatFlags.NoWrap; + + //좌측버튼표시 + if (rectLButton.IsEmpty == false) + { + pe.Graphics.FillRectangle(new SolidBrush(BackColorButton), rectLButton); + pe.Graphics.DrawString("<<", this.FontSideButton, new SolidBrush(this.ForeColorButton), rectLButton, sf); + } + + if (rectRButton.IsEmpty == false) + { + pe.Graphics.FillRectangle(new SolidBrush(BackColorButton), rectRButton); + pe.Graphics.DrawString(">>", this.FontSideButton, new SolidBrush(this.ForeColorButton), rectRButton, sf); + } + + //값표시 + string valuestr; + if (Value == 0.0 && string.IsNullOrEmpty(NullDisplay) == false) + valuestr = NullDisplay; + else + valuestr = Value.ToString("N" + DecimalPosition.ToString()); + + pe.Graphics.FillRectangle(new SolidBrush(BackColor), rectCButton); + pe.Graphics.DrawString(valuestr, this.Font, new SolidBrush(this.ForeColor), rectCButton, sf); + sf.Dispose(); + + + //테두리표시 + if (rectLButton.IsEmpty == false) + pe.Graphics.DrawRectangle(new Pen(ColorBorder), rectLButton); + if (rectRButton.IsEmpty == false) + pe.Graphics.DrawRectangle(new Pen(ColorBorder), rectRButton); + pe.Graphics.DrawRectangle(new Pen(ColorBorder), rectCButton); + } + + void MakeRect() + { + int bWidth; + if (string.IsNullOrEmpty(ButtonWidth) == false) + { + if (ButtonWidth.EndsWith("%")) + { + if (int.TryParse(ButtonWidth.Substring(0, ButtonWidth.Length - 1), out bWidth) == false) + bWidth = 0; //숫자로 바꾸는거 실패 + else bWidth = (int)(this.DisplayRectangle.Width * (bWidth / 100.0)); + } + else + { + if (int.TryParse(ButtonWidth, out bWidth) == false) + bWidth = 0; + } + } + else bWidth = 0; + + if (bWidth > 0) + { + int buttongap = 1; + //각버튼간 2px 간격을 띄운다. + bWidth = bWidth - buttongap * 2; + rectLButton = new Rectangle( + DisplayRectangle.Left, + DisplayRectangle.Top, + bWidth, + DisplayRectangle.Height - 1); + + rectCButton = new Rectangle( + rectLButton.Right + buttongap, + DisplayRectangle.Top, + DisplayRectangle.Width - rectLButton.Width * 2 - buttongap * 2, + DisplayRectangle.Height - 1); + + rectRButton = new Rectangle( + rectCButton.Right + buttongap, + DisplayRectangle.Top, + bWidth - 1, + DisplayRectangle.Height - 1); + } + else + { + rectLButton = Rectangle.Empty; + rectRButton = Rectangle.Empty; + rectCButton = new Rectangle(DisplayRectangle.Left, + DisplayRectangle.Top, + DisplayRectangle.Width - 1, + DisplayRectangle.Height - 1); + } + bMakeRect = true; + } + } +} diff --git a/Cs_HMI/SubProject/AGVControl/agvControl.csproj b/HMI/SubProject/AGVControl/agvControl.csproj similarity index 96% rename from Cs_HMI/SubProject/AGVControl/agvControl.csproj rename to HMI/SubProject/AGVControl/agvControl.csproj index 87f5699..5d76cae 100644 --- a/Cs_HMI/SubProject/AGVControl/agvControl.csproj +++ b/HMI/SubProject/AGVControl/agvControl.csproj @@ -1,153 +1,153 @@ - - - - - Debug - AnyCPU - {8CB883C0-99C3-4DD4-B017-F9B92010A806} - Library - Properties - AGVControl - AGVControl - v4.8 - 512 - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\..\DLL\arCommUtil.dll - - - - - - - - - - - - - - Form - - - fMapDesign.cs - - - Form - - - fPropertyRFIDPoint.cs - - - - - Component - - - GridView.cs - - - - - Component - - - BatteryLevelGauge.cs - - - Component - - - GuideSensor.cs - - - Component - - - MapControl.cs - - - - - - - - - - - - - Component - - - MyRadioButton.cs - - - - True - True - Resources.resx - - - - Component - - - RoundButton.cs - - - Component - - - ValueSelect.cs - - - - - fMapDesign.cs - - - fPropertyRFIDPoint.cs - - - MapControl.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - - {14e8c9a5-013e-49ba-b435-efefc77dd623} - CommData - - - - - - - + + + + + Debug + AnyCPU + {8CB883C0-99C3-4DD4-B017-F9B92010A806} + Library + Properties + AGVControl + AGVControl + v4.8 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\..\..\DLL\arCommUtil.dll + + + + + + + + + + + + + + Form + + + fMapDesign.cs + + + Form + + + fPropertyRFIDPoint.cs + + + + + Component + + + GridView.cs + + + + + Component + + + BatteryLevelGauge.cs + + + Component + + + GuideSensor.cs + + + Component + + + MapControl.cs + + + + + + + + + + + + + Component + + + MyRadioButton.cs + + + + True + True + Resources.resx + + + + Component + + + RoundButton.cs + + + Component + + + ValueSelect.cs + + + + + fMapDesign.cs + + + fPropertyRFIDPoint.cs + + + MapControl.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/SubProject/AGVControl/sample.route b/HMI/SubProject/AGVControl/sample.route similarity index 96% rename from Cs_HMI/SubProject/AGVControl/sample.route rename to HMI/SubProject/AGVControl/sample.route index cea5fcc..e21557d 100644 --- a/Cs_HMI/SubProject/AGVControl/sample.route +++ b/HMI/SubProject/AGVControl/sample.route @@ -1,105 +1,105 @@ -[RFID_POINTS] -100,486,517 -173,488,516 -230,493,515 -309,489,514 -370,490,513 -437,487,512 -483,459,511 -511,421,510 -543,371,509 -569,329,508 -608,289,507 -661,279,506 -701,297,505 -698,349,504 -698,391,503 -699,449,502 -691,491,501 -570,275,400 -517,264,401 -454,264,402 -388,262,403 -315,258,404 -639,234,600 -621,182,601 -641,183,602 -657,101,603 -627,82,604 -560,73,605 -499,65,606 -432,65,607 -264,232,405 -363,60,608 -654,508,500 -96,542,100 -159,542,101 -226,542,102 -309,541,103 -369,542,104 -483,165,753 -735,163,700 -523,170,752 -565,175,751 -597,182,750 -665,181,703 -700,176,702 -722,170,701 -[RFID_LINES] -100,486,173,488,517,516,False,73.02739 -173,488,230,493,516,515,False,57.21888 -230,493,309,489,515,514,False,79.1012 -309,489,370,490,514,513,False,61.0082 -370,490,437,487,513,512,False,67.06713 -437,487,483,459,512,511,False,53.85165 -483,459,511,421,511,510,False,47.20169 -511,421,543,371,510,509,False,59.36329 -543,371,569,329,509,508,False,49.39635 -569,329,608,289,508,507,False,55.86591 -608,289,639,234,507,600,False,63.13478 -639,234,665,181,600,703,False,59.03389 -665,181,657,101,703,603,False,80.399 -657,101,627,82,603,604,False,35.51056 -627,82,560,73,604,605,False,67.60178 -560,73,499,65,605,606,False,61.52235 -499,65,432,65,606,607,False,67 -432,65,363,60,607,608,False,69.18092 -641,183,665,181,602,703,False,24.08319 -665,181,700,176,703,702,False,35.35534 -700,176,722,170,702,701,False,22.80351 -722,170,735,163,701,700,False,14.76482 -641,183,621,182,602,601,False,20.02498 -621,182,597,182,601,750,False,24 -597,182,565,175,750,751,False,32.75668 -565,175,523,170,751,752,False,42.29657 -523,170,483,165,752,753,False,40.31129 -264,232,315,258,405,404,False,57.24509 -315,258,388,262,404,403,False,73.1095 -388,262,454,264,403,402,False,66.0303 -454,264,517,264,402,401,False,63 -517,264,570,275,401,400,False,54.12947 -570,275,608,289,400,507,False,40.49691 -608,289,661,279,507,506,False,53.93515 -661,279,701,297,506,505,False,43.86343 -701,297,698,349,505,504,False,52.08647 -698,349,698,391,504,503,False,42 -698,391,699,449,503,502,False,58.00862 -699,449,691,491,502,501,False,42.75512 -691,491,654,508,501,500,False,40.71855 -96,542,100,486,100,517,False,56.14267 -159,542,173,488,101,516,False,55.7853 -226,542,230,493,102,515,False,49.16299 -309,541,309,489,103,514,False,52 -369,542,370,490,104,513,False,52.00961 -[MAP_TEXTS] -179,251,-1,-16777216,Arial,12,OPS-2 -239,52,-256,-65408,Arial,12,SSOTRON-3 -617,527,-16711936,-16777216,Arial,12,SSOTRON-1 -87,551,-16777216,16777215,Arial,12,B1 -150,550,-16777216,16777215,Arial,12,B2 -227,553,-16777216,16777215,Arial,12,B3 -299,555,-16777216,16777215,Arial,12,B4 -367,554,-16777216,16777215,Arial,12,B5 -453,128,-16777216,-8323073,Arial,12,CHG1 -725,124,-16777216,-8323073,Arial,12,CHG2 -[CUSTOM_LINES] +[RFID_POINTS] +100,486,517 +173,488,516 +230,493,515 +309,489,514 +370,490,513 +437,487,512 +483,459,511 +511,421,510 +543,371,509 +569,329,508 +608,289,507 +661,279,506 +701,297,505 +698,349,504 +698,391,503 +699,449,502 +691,491,501 +570,275,400 +517,264,401 +454,264,402 +388,262,403 +315,258,404 +639,234,600 +621,182,601 +641,183,602 +657,101,603 +627,82,604 +560,73,605 +499,65,606 +432,65,607 +264,232,405 +363,60,608 +654,508,500 +96,542,100 +159,542,101 +226,542,102 +309,541,103 +369,542,104 +483,165,753 +735,163,700 +523,170,752 +565,175,751 +597,182,750 +665,181,703 +700,176,702 +722,170,701 +[RFID_LINES] +100,486,173,488,517,516,False,73.02739 +173,488,230,493,516,515,False,57.21888 +230,493,309,489,515,514,False,79.1012 +309,489,370,490,514,513,False,61.0082 +370,490,437,487,513,512,False,67.06713 +437,487,483,459,512,511,False,53.85165 +483,459,511,421,511,510,False,47.20169 +511,421,543,371,510,509,False,59.36329 +543,371,569,329,509,508,False,49.39635 +569,329,608,289,508,507,False,55.86591 +608,289,639,234,507,600,False,63.13478 +639,234,665,181,600,703,False,59.03389 +665,181,657,101,703,603,False,80.399 +657,101,627,82,603,604,False,35.51056 +627,82,560,73,604,605,False,67.60178 +560,73,499,65,605,606,False,61.52235 +499,65,432,65,606,607,False,67 +432,65,363,60,607,608,False,69.18092 +641,183,665,181,602,703,False,24.08319 +665,181,700,176,703,702,False,35.35534 +700,176,722,170,702,701,False,22.80351 +722,170,735,163,701,700,False,14.76482 +641,183,621,182,602,601,False,20.02498 +621,182,597,182,601,750,False,24 +597,182,565,175,750,751,False,32.75668 +565,175,523,170,751,752,False,42.29657 +523,170,483,165,752,753,False,40.31129 +264,232,315,258,405,404,False,57.24509 +315,258,388,262,404,403,False,73.1095 +388,262,454,264,403,402,False,66.0303 +454,264,517,264,402,401,False,63 +517,264,570,275,401,400,False,54.12947 +570,275,608,289,400,507,False,40.49691 +608,289,661,279,507,506,False,53.93515 +661,279,701,297,506,505,False,43.86343 +701,297,698,349,505,504,False,52.08647 +698,349,698,391,504,503,False,42 +698,391,699,449,503,502,False,58.00862 +699,449,691,491,502,501,False,42.75512 +691,491,654,508,501,500,False,40.71855 +96,542,100,486,100,517,False,56.14267 +159,542,173,488,101,516,False,55.7853 +226,542,230,493,102,515,False,49.16299 +309,541,309,489,103,514,False,52 +369,542,370,490,104,513,False,52.00961 +[MAP_TEXTS] +179,251,-1,-16777216,Arial,12,OPS-2 +239,52,-256,-65408,Arial,12,SSOTRON-3 +617,527,-16711936,-16777216,Arial,12,SSOTRON-1 +87,551,-16777216,16777215,Arial,12,B1 +150,550,-16777216,16777215,Arial,12,B2 +227,553,-16777216,16777215,Arial,12,B3 +299,555,-16777216,16777215,Arial,12,B4 +367,554,-16777216,16777215,Arial,12,B5 +453,128,-16777216,-8323073,Arial,12,CHG1 +725,124,-16777216,-8323073,Arial,12,CHG2 +[CUSTOM_LINES] diff --git a/Cs_HMI/SubProject/CommData/CommData.csproj b/HMI/SubProject/CommData/CommData.csproj similarity index 97% rename from Cs_HMI/SubProject/CommData/CommData.csproj rename to HMI/SubProject/CommData/CommData.csproj index b5ceab2..ca76332 100644 --- a/Cs_HMI/SubProject/CommData/CommData.csproj +++ b/HMI/SubProject/CommData/CommData.csproj @@ -1,54 +1,54 @@ - - - - - Debug - AnyCPU - {14E8C9A5-013E-49BA-B435-EFEFC77DD623} - Library - Properties - VarData - VarData - v4.0 - 512 - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - - - - - - - - - - - - - - - - + + + + + Debug + AnyCPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623} + Library + Properties + VarData + VarData + v4.0 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/SubProject/CommData/Enum.cs b/HMI/SubProject/CommData/Enum.cs similarity index 95% rename from Cs_HMI/SubProject/CommData/Enum.cs rename to HMI/SubProject/CommData/Enum.cs index f21c5ee..2c527db 100644 --- a/Cs_HMI/SubProject/CommData/Enum.cs +++ b/HMI/SubProject/CommData/Enum.cs @@ -1,217 +1,217 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace COMM -{ - public enum eVarInt32 - { - PickOnCount = 0, - PickOfCount, - LPickOnCount, - SumQty, - ChargeWaitSec, - SyncItemCount, - PathValidationError, - } - public enum eVarUInt32 - { - Spare=0, - } - - public enum eVarDBL - { - LeftJogSpeed, - RightJogSpeed, - CurrentLeftJogSpeed, - CurrentRightJogSpeed, - SpeedOffsetCW, - SpeedOffsetCCW, - MaxSpeedCW, - MaxSpeedCCW, - SQLConnection, - } - - public enum eVarByte - { - None = 0, - /// - /// 충전명련전송횟수 - /// - CHARGE_CMDCNT, - ButtonJog, - DataIndex , - } - - public enum eVarBool - { - //comm area start(0~31) - None = 0, - DebugMode, - SQLCONN, - - //plc area start (32~63) - FLAG_STOPZ = 32, - FLAG_SETUP, - FLAG_SYNC, - FLAG_WAIT, - /// - /// 상태머신이 동작중인가 - /// 장비동작은 AGV_RUN 플래그를 확인 하세요. - /// - FLAG_AUTORUN, - FLAG_MANUALRUN, - FLAG_LIMITHIGH, - FLAG_LIMITLOW, - FLAG_POWERLOSS, - - /// - /// AGV 진행방향(UP = backward, DOWN = forward) - /// - AGVDIR_BACK, - - /// - /// 마크센서가 감지되면 활성화됨 - /// (알림용으로도 쓰니 삭제 안됨) - /// - MARK_SENSOR, - MARK_SENSOROFF, - FLAG_LEFT_RUN, - FLAG_RIGHT_RUN, - FLAG_RUN_CMD, - FLAG_GO_CHAGER, - FLAG_NEXTSTOP_ALIGN, - ///NEXTSTOP_MARK, - - /// - /// mark 1 혹은 2 의 값이 들어오면 설정됨 - /// - //SENSOR_MARK, - CHG_POSERR, - FLAG_CHARGEONA, - FLAG_CHARGEONM, - OVERLOAD, - OVERLOADL, - OVERLOADR, - BATTERY_LOW, - BATTERY_HIGH, - MINSPACE, - CHARGE_CMDCNT, - CHARGE_READY, - CHARGE_WAIT, - - AGV_ERROR, - WAIT_COVER_DOWN, - WAIT_COVER_UP, - EMERGENCY, - - ITEMON, - - - /// - /// 충전시작명령을 전송했다 - /// - WAIT_CHARGEACK, - - //agv area start ( 64 ~ 95) - DISABLE_AUTOCONN_XBEE, - - //area start (96~127) - - } - - public enum eVarString - { - - MCStatus, - DataIndex, - StatusMessage, - JOBType, - JOBCustCode, - SWVersion, - ChargeCheckMsg, - } - - public enum eVarTime - { - LastConnTry_PLC, - LastConn_PLC, - LastRecv_PLC, - - LastConnTry_XBE, - LastConn_XBE, - LastRecv_XBE, - - LastConnTry_BAT, - LastConn_BAT, - LastRecv_BAT, - LastSend_CMD, - LastSend_BAT, - - LastConnTry_AGV, - LastConn_AGV, - LastRecv_AGV, - - /// - /// 상태머신이 IDLE 전환시 설정 - /// - IdleStart, - /// - /// 충전시도시 설정 - /// - ChargeTry, - /// - /// 충전시작(확인)시 설정 - /// - ChargeStart, - - /// - /// 충전종료시점 - /// - ChargeEnd, - /// - /// 장비가동중 READY상태 전환시 설정 - /// - ReadyStart, - - MarkSensorOn, - MarkSensorOff, - - /// - /// 상태머신이 RUN되는 경우에 설정 - /// 단 세부스텝이 READY 인 경우는 제외 - /// - RunStart, - - SendChargeOff, - ChargeSearch, - - BatWarnTime, - IdleStopTime, - StatusReporttime, - - CheckGotoTargetSet, - SendGotoCommand, - - /// - /// 마지막으로 멈춤 명령을 전송한 시간 - /// - LastStopCommandTime, - - /// - /// 마지막으로 멈춤(마크스탑) 명령을 전송한 시간 - /// - LastMarkStopCommandTime, - - /// - /// 마지막으로 턴 명령을 전송한 시간 - /// - LastTurnCommandTime, - - /// - /// 마지막을 실행 명령을 전송한 시간 - /// - LastRunCommandTime, - } +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace COMM +{ + public enum eVarInt32 + { + PickOnCount = 0, + PickOfCount, + LPickOnCount, + SumQty, + ChargeWaitSec, + SyncItemCount, + PathValidationError, + } + public enum eVarUInt32 + { + Spare=0, + } + + public enum eVarDBL + { + LeftJogSpeed, + RightJogSpeed, + CurrentLeftJogSpeed, + CurrentRightJogSpeed, + SpeedOffsetCW, + SpeedOffsetCCW, + MaxSpeedCW, + MaxSpeedCCW, + SQLConnection, + } + + public enum eVarByte + { + None = 0, + /// + /// 충전명련전송횟수 + /// + CHARGE_CMDCNT, + ButtonJog, + DataIndex , + } + + public enum eVarBool + { + //comm area start(0~31) + None = 0, + DebugMode, + SQLCONN, + + //plc area start (32~63) + FLAG_STOPZ = 32, + FLAG_SETUP, + FLAG_SYNC, + FLAG_WAIT, + /// + /// 상태머신이 동작중인가 + /// 장비동작은 AGV_RUN 플래그를 확인 하세요. + /// + FLAG_AUTORUN, + FLAG_MANUALRUN, + FLAG_LIMITHIGH, + FLAG_LIMITLOW, + FLAG_POWERLOSS, + + /// + /// AGV 진행방향(UP = backward, DOWN = forward) + /// + AGVDIR_BACK, + + /// + /// 마크센서가 감지되면 활성화됨 + /// (알림용으로도 쓰니 삭제 안됨) + /// + MARK_SENSOR, + MARK_SENSOROFF, + FLAG_LEFT_RUN, + FLAG_RIGHT_RUN, + FLAG_RUN_CMD, + FLAG_GO_CHAGER, + FLAG_NEXTSTOP_ALIGN, + ///NEXTSTOP_MARK, + + /// + /// mark 1 혹은 2 의 값이 들어오면 설정됨 + /// + //SENSOR_MARK, + CHG_POSERR, + FLAG_CHARGEONA, + FLAG_CHARGEONM, + OVERLOAD, + OVERLOADL, + OVERLOADR, + BATTERY_LOW, + BATTERY_HIGH, + MINSPACE, + CHARGE_CMDCNT, + CHARGE_READY, + CHARGE_WAIT, + + AGV_ERROR, + WAIT_COVER_DOWN, + WAIT_COVER_UP, + EMERGENCY, + + ITEMON, + + + /// + /// 충전시작명령을 전송했다 + /// + WAIT_CHARGEACK, + + //agv area start ( 64 ~ 95) + DISABLE_AUTOCONN_XBEE, + + //area start (96~127) + + } + + public enum eVarString + { + + MCStatus, + DataIndex, + StatusMessage, + JOBType, + JOBCustCode, + SWVersion, + ChargeCheckMsg, + } + + public enum eVarTime + { + LastConnTry_PLC, + LastConn_PLC, + LastRecv_PLC, + + LastConnTry_XBE, + LastConn_XBE, + LastRecv_XBE, + + LastConnTry_BAT, + LastConn_BAT, + LastRecv_BAT, + LastSend_CMD, + LastSend_BAT, + + LastConnTry_AGV, + LastConn_AGV, + LastRecv_AGV, + + /// + /// 상태머신이 IDLE 전환시 설정 + /// + IdleStart, + /// + /// 충전시도시 설정 + /// + ChargeTry, + /// + /// 충전시작(확인)시 설정 + /// + ChargeStart, + + /// + /// 충전종료시점 + /// + ChargeEnd, + /// + /// 장비가동중 READY상태 전환시 설정 + /// + ReadyStart, + + MarkSensorOn, + MarkSensorOff, + + /// + /// 상태머신이 RUN되는 경우에 설정 + /// 단 세부스텝이 READY 인 경우는 제외 + /// + RunStart, + + SendChargeOff, + ChargeSearch, + + BatWarnTime, + IdleStopTime, + StatusReporttime, + + CheckGotoTargetSet, + SendGotoCommand, + + /// + /// 마지막으로 멈춤 명령을 전송한 시간 + /// + LastStopCommandTime, + + /// + /// 마지막으로 멈춤(마크스탑) 명령을 전송한 시간 + /// + LastMarkStopCommandTime, + + /// + /// 마지막으로 턴 명령을 전송한 시간 + /// + LastTurnCommandTime, + + /// + /// 마지막을 실행 명령을 전송한 시간 + /// + LastRunCommandTime, + } } \ No newline at end of file diff --git a/Cs_HMI/SubProject/CommData/Flag.cs b/HMI/SubProject/CommData/Flag.cs similarity index 96% rename from Cs_HMI/SubProject/CommData/Flag.cs rename to HMI/SubProject/CommData/Flag.cs index 360708d..32010ae 100644 --- a/Cs_HMI/SubProject/CommData/Flag.cs +++ b/HMI/SubProject/CommData/Flag.cs @@ -1,108 +1,108 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace COMM -{ - public class Flag - { - public Boolean IsInit; //H/W설정이 안된경우에만 FALSE로 한다 - public string errorMessage; - - public int PortCount; - private UInt64 _value; - private UInt64 _changed; - public string[] Name; - - public UInt64 Value { get { return _value; } } - - public event EventHandler ValueChanged; - public class ValueEventArgs : EventArgs - { - private int _arridx; - private Boolean _oldvalue; - private Boolean _newvalue; - - public int ArrIDX { get { return _arridx; } } - public Boolean OldValue { get { return _oldvalue; } } - public Boolean NewValue { get { return _newvalue; } } - - public ValueEventArgs(int arridx, Boolean oldvalue, Boolean newvalue) - { - _arridx = arridx; - _oldvalue = oldvalue; - _newvalue = newvalue; - } - } - - public Flag(int pcnt) - { - if (pcnt > 64) throw new Exception("Max count is 64"); - PortCount = pcnt; - IsInit = true; - errorMessage = string.Empty; - _value = 0; - _changed = 0; - Name = new string[PortCount]; - for (int i = 0; i < Name.Length; i++) - { - Name[i] = string.Empty; - } - } - - public void writeValue(Int16 val) - { - var NewValue = (ulong)val; - _changed = this._value ^ NewValue; - this._value = NewValue; - } - - //private Boolean readValue(ref UInt64 value, int idx) - //{ - // var offset = (UInt64)(1 << idx); - // return ((value & offset) != 0); - //} - - public Boolean Get(int idx) - { - var offset = (UInt64)(1 << idx); - return (_value & offset) != 0; - } - - /// - /// 변경여부를 확인 합니다 - /// - /// - /// - public Boolean GetChanged(int idx) - { - var offset = (UInt64)(1 << idx); - return (this._changed & offset) != 0; - } - - public void Set(int idx, Boolean value) - { - var oldvalue = Get(idx); - - if (value) - { - var offset = (UInt64)(1 << idx); - _value = _value | offset; - } - else - { - var offset = (UInt64)(~(1 << idx)); - _value = _value & offset; - } - - if (oldvalue != value) - { - if (ValueChanged != null) - ValueChanged(this, new ValueEventArgs(idx, oldvalue, value)); - } - } - - - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace COMM +{ + public class Flag + { + public Boolean IsInit; //H/W설정이 안된경우에만 FALSE로 한다 + public string errorMessage; + + public int PortCount; + private UInt64 _value; + private UInt64 _changed; + public string[] Name; + + public UInt64 Value { get { return _value; } } + + public event EventHandler ValueChanged; + public class ValueEventArgs : EventArgs + { + private int _arridx; + private Boolean _oldvalue; + private Boolean _newvalue; + + public int ArrIDX { get { return _arridx; } } + public Boolean OldValue { get { return _oldvalue; } } + public Boolean NewValue { get { return _newvalue; } } + + public ValueEventArgs(int arridx, Boolean oldvalue, Boolean newvalue) + { + _arridx = arridx; + _oldvalue = oldvalue; + _newvalue = newvalue; + } + } + + public Flag(int pcnt) + { + if (pcnt > 64) throw new Exception("Max count is 64"); + PortCount = pcnt; + IsInit = true; + errorMessage = string.Empty; + _value = 0; + _changed = 0; + Name = new string[PortCount]; + for (int i = 0; i < Name.Length; i++) + { + Name[i] = string.Empty; + } + } + + public void writeValue(Int16 val) + { + var NewValue = (ulong)val; + _changed = this._value ^ NewValue; + this._value = NewValue; + } + + //private Boolean readValue(ref UInt64 value, int idx) + //{ + // var offset = (UInt64)(1 << idx); + // return ((value & offset) != 0); + //} + + public Boolean Get(int idx) + { + var offset = (UInt64)(1 << idx); + return (_value & offset) != 0; + } + + /// + /// 변경여부를 확인 합니다 + /// + /// + /// + public Boolean GetChanged(int idx) + { + var offset = (UInt64)(1 << idx); + return (this._changed & offset) != 0; + } + + public void Set(int idx, Boolean value) + { + var oldvalue = Get(idx); + + if (value) + { + var offset = (UInt64)(1 << idx); + _value = _value | offset; + } + else + { + var offset = (UInt64)(~(1 << idx)); + _value = _value & offset; + } + + if (oldvalue != value) + { + if (ValueChanged != null) + ValueChanged(this, new ValueEventArgs(idx, oldvalue, value)); + } + } + + + } +} diff --git a/Cs_HMI/SubProject/CommData/ISerialComm.cs b/HMI/SubProject/CommData/ISerialComm.cs similarity index 100% rename from Cs_HMI/SubProject/CommData/ISerialComm.cs rename to HMI/SubProject/CommData/ISerialComm.cs diff --git a/Cs_HMI/SubProject/CommData/Properties/AssemblyInfo.cs b/HMI/SubProject/CommData/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/SubProject/CommData/Properties/AssemblyInfo.cs rename to HMI/SubProject/CommData/Properties/AssemblyInfo.cs index 428bb8c..8d44db4 100644 --- a/Cs_HMI/SubProject/CommData/Properties/AssemblyInfo.cs +++ b/HMI/SubProject/CommData/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("VarData")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("VarData")] -[assembly: AssemblyCopyright("Copyright © 2022")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("14e8c9a5-013e-49ba-b435-efefc77dd623")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 -// 기본값으로 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("VarData")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("VarData")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("14e8c9a5-013e-49ba-b435-efefc77dd623")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs_HMI/SubProject/CommData/RS232.cs b/HMI/SubProject/CommData/RS232.cs similarity index 97% rename from Cs_HMI/SubProject/CommData/RS232.cs rename to HMI/SubProject/CommData/RS232.cs index fa00a38..269755f 100644 --- a/Cs_HMI/SubProject/CommData/RS232.cs +++ b/HMI/SubProject/CommData/RS232.cs @@ -1,493 +1,493 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading; - -namespace arDev -{ - - public abstract partial class arRS232 : ISerialComm, IDisposable - { - protected System.IO.Ports.SerialPort _device; - protected ManualResetEvent _mre; - protected byte[] LastReceiveBuffer = new byte[] { }; - /// - /// 최종 전송 메세지 - /// - public byte[] lastSendBuffer = new byte[] { }; - //public int ValidCheckTimeMSec { get; set; } = 5000; - protected List tempBuffer = new List(); - protected Boolean findSTX = false; - public string ErrorMessage { get; set; } - public DateTime LastConnTime { get; set; } - public DateTime LastConnTryTime { get; set; } - public DateTime lastSendTime; - /// - /// 메세지 수신시 사용하는 내부버퍼 - /// - protected List _buffer = new List(); - /// - /// 데이터조회간격(초) - /// - public float ScanInterval { get; set; } - - // public byte[] LastRecvData; - public string LastRecvString - { - get - { - if (LastReceiveBuffer == null) return String.Empty; - else return System.Text.Encoding.Default.GetString(LastReceiveBuffer); - } - } - /// - /// 마지막으로 데이터를 받은 시간 - /// - public DateTime lastRecvTime; - - - public int WriteError = 0; - public string WriteErrorMessage = string.Empty; - public int WaitTimeout { get; set; } = 1000; - public int MinRecvLength { get; set; } = 1; - /// - /// 포트이름 - /// - [Description("시리얼 포트 이름")] - [Category("설정"), DisplayName("Port Name")] - public string PortName - { - get - { - if (_device == null) return string.Empty; - else return _device.PortName; - } - set - { - if (this.IsOpen) - { - Message?.Invoke(this, new MessageEventArgs("포트가 열려있어 포트이름을 변경할 수 없습니다", true)); - } - else if (String.IsNullOrEmpty(value) == false) - _device.PortName = value; - else - { - Message?.Invoke(this, new MessageEventArgs("No PortName", true)); - } - } - } - - public int BaudRate - { - get - { - if (_device == null) return 0; - else return _device.BaudRate; - } - set - { - if (this.IsOpen) - { - Message?.Invoke(this, new MessageEventArgs("포트가 열려있어 BaudRate(를) 변경할 수 없습니다", true)); - } - else if (value != 0) - _device.BaudRate = value; - else Message?.Invoke(this, new MessageEventArgs("No baud rate", true)); - } - } - - - public arRS232() - { - _device = new System.IO.Ports.SerialPort(); - this.BaudRate = 9600; - ScanInterval = 10; - _device.DataReceived += barcode_DataReceived; - _device.ErrorReceived += this.barcode_ErrorReceived; - _device.WriteTimeout = 5000; - _device.ReadTimeout = 5000; - // _device.DtrEnable = false; - _device.ReadBufferSize = 8192; - _device.WriteBufferSize = 8192; - - ErrorMessage = string.Empty; - lastRecvTime = DateTime.Parse("1982-11-23"); - LastConnTime = DateTime.Parse("1982-11-23"); - LastConnTryTime = DateTime.Parse("1982-11-23"); - lastRecvTime = DateTime.Parse("1982-11-23"); - this._mre = new ManualResetEvent(true); - } - - ~arRS232() - { - Dispose(false); - } - - - // Flag: Has Dispose already been called? - bool disposed = false; - - // Public implementation of Dispose pattern callable by consumers. - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - // Protected implementation of Dispose pattern. - protected virtual void Dispose(bool disposing) - { - if (disposed) - return; - - if (disposing) - { - // Free any other managed objects here. - // - } - - _device.DataReceived -= barcode_DataReceived; - _device.ErrorReceived -= this.barcode_ErrorReceived; - - // Free any unmanaged objects here. - // - disposed = true; - } - - public Boolean Open() - { - try - { - _device.Open(); - return IsOpen; - } - catch (Exception ex) - { - ErrorMessage = ex.Message; - Message.Invoke(this, new MessageEventArgs(ex.Message, true)); - return false; - } - } - public string GetHexString(Byte[] input) - { - System.Text.StringBuilder sb = new System.Text.StringBuilder(); - foreach (byte b in input) - sb.Append(" " + b.ToString("X2")); - return sb.ToString(); - } - - /// - /// 포트가 열려있는지 확인 - /// - [Description("현재 시리얼포트가 열려있는지 확인합니다")] - [Category("정보"), DisplayName("Port Open")] - public Boolean IsOpen - { - get - { - if (_device == null) return false; - return _device.IsOpen; - } - } - - public virtual bool Close() - { - if (_device != null && _device.IsOpen) - { - _device.DiscardInBuffer(); - _device.DiscardOutBuffer(); - _device.Close(); //dispose에서는 포트를 직접 클리어하지 않게 해뒀다. - return true; - } - else return false; - } - protected Boolean RaiseRecvData() - { - return RaiseRecvData(LastReceiveBuffer.ToArray(), false); - } - /// - /// 수신받은 메세지를 발생 시킵니다 - /// - /// - /// - public virtual Boolean RaiseRecvData(byte[] Data, bool udpatelastbuffer) - { - //181206 - 최종수신 메세지 기록 - lastRecvTime = DateTime.Now; - if (udpatelastbuffer && Data != null) - { - if (LastReceiveBuffer == null || LastReceiveBuffer.Length != Data.Length) - { - LastReceiveBuffer = new byte[Data.Length]; - Array.Copy(Data, LastReceiveBuffer, Data.Length); - } - } - - try - { - Message?.Invoke(this, new MessageEventArgs(Data, true)); //recvmessage - if (ProcessRecvData(Data) == false) - { - //Message?.Invoke(this, new MessageEventArgs(Data, true)); //recvmessage - Message?.Invoke(this, new MessageEventArgs(this.ErrorMessage, true)); //errormessage - return false; - } - else - { - - return true; - } - } - catch (Exception ex) - { - this.ErrorMessage = ex.Message; - this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true)); - return false; - } - } - - /// - /// 수신받은 자료를 처리한다 - /// - /// - /// - public abstract bool ProcessRecvData(byte[] data); - - #region "Internal Events" - - void barcode_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e) - { - Message?.Invoke(this, new MessageEventArgs(e.ToString(), true)); - } - - byte[] buffer = new byte[] { }; - void barcode_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) - { - - try - { - int ReadCount = _device.BytesToRead; - - buffer = new byte[ReadCount]; - _device.Read(buffer, 0, buffer.Length); - - System.Text.StringBuilder LogMsg = new StringBuilder(); - - byte[] remainBuffer; - Repeat: - if (CustomParser(buffer, out remainBuffer)) - { - //분석완료이므로 받은 데이터를 버퍼에 기록한다 - if (LastReceiveBuffer == null || (LastReceiveBuffer.Length != tempBuffer.Count)) - Array.Resize(ref LastReceiveBuffer, tempBuffer.Count); - Array.Copy(tempBuffer.ToArray(), LastReceiveBuffer, tempBuffer.Count); - tempBuffer.Clear(); - - //수신메세지발생 - RaiseRecvData(); - if (remainBuffer != null && remainBuffer.Length > 0) - { - //버퍼를 변경해서 다시 전송을 해준다. - Array.Resize(ref buffer, remainBuffer.Length); - Array.Copy(remainBuffer, buffer, remainBuffer.Length); - goto Repeat; //남은 버퍼가 있다면 진행을 해준다. - } - } - - } - catch (Exception ex) - { - //if (IsOpen) - //{ - // //_device.DiscardInBuffer(); - // //_device.DiscardOutBuffer(); - //} - ErrorMessage = ex.Message; - this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true)); - } - - } - - - #endregion - - #region "External Events" - - - /// - /// 오류 및 기타 일반 메세지 - /// - public event EventHandler Message; - - #endregion - - #region "Event Args" - - /// - /// 데이터를 수신할떄 사용함(RAW 포함) - /// - public class ReceiveDataEventArgs : EventArgs - { - private byte[] _buffer = null; - - /// - /// 바이트배열의 버퍼값 - /// - public byte[] Value { get { return _buffer; } } - - /// - /// 버퍼(바이트배열)의 데이터를 문자로 반환합니다. - /// - public string StrValue - { - get - { - //return string.Empty; - - if (_buffer == null || _buffer.Length < 1) return string.Empty; - else return System.Text.Encoding.Default.GetString(_buffer); - } - } - public ReceiveDataEventArgs(byte[] buffer) - { - _buffer = buffer; - } - } - - /// - /// 메세지를 강제 발생 - /// - /// - /// - protected virtual void RaiseMessage(MessageType mt, string message) - { - this.Message?.Invoke(this, new MessageEventArgs(mt, message)); - } - public enum MessageType - { - Normal, - Error, - Send, - Recv, - } - - public class MessageEventArgs : EventArgs - { - public MessageType MsgType { get; set; } - private string _message = string.Empty; - - /// - /// Recv,Send,Normal,Error 모두 지원 - /// - public string Message { get { return _message; } } - - private byte[] _data = null; - - /// - /// Recv,Send에서만 값이 존재 합니다 - /// - public byte[] Data { get { return _data; } } - public MessageEventArgs(string Message, bool isError = false) - { - if (isError) MsgType = MessageType.Error; - else MsgType = MessageType.Normal; - _message = Message; - } - public MessageEventArgs(MessageType msgtype, string Message) - { - MsgType = msgtype; - _message = Message; - _data = System.Text.Encoding.Default.GetBytes(Message); - } - - public MessageEventArgs(byte[] buffer, bool isRecv = true) - { - if (isRecv) MsgType = MessageType.Recv; - else MsgType = MessageType.Send; - _data = new byte[buffer.Length]; - Array.Copy(buffer, _data, Data.Length); - _message = System.Text.Encoding.Default.GetString(_data); - } - - } - - #endregion - - - - protected abstract bool CustomParser(byte[] buf, out byte[] remainBuffer); - - /// - /// 포트가 열려있거나 데이터 수신시간이 없는경우 false를 반환합니다 - /// - public Boolean IsValid - { - get - { - if (IsOpen == false) return false; - if (lastRecvTime.Year == 1982) return false; - var ts = DateTime.Now - lastRecvTime; - if (ts.TotalSeconds > (this.ScanInterval * 2.5)) return false; - return true; - } - } - protected bool WriteData(string cmd) - { - return WriteData(System.Text.Encoding.Default.GetBytes(cmd)); - } - /// - /// 포트에 쓰기(barcode_DataReceived 이벤트로 메세지수신) - /// - protected Boolean WriteData(byte[] data) - { - Boolean bRet = false; - - //171205 : 타임아웃시간추가 - if (!_mre.WaitOne(WaitTimeout)) - { - ErrorMessage = $"WriteData:MRE:WaitOne:TimeOut {WaitTimeout}ms"; - this.Message?.Invoke(this, new MessageEventArgs(ErrorMessage, true)); - return false; - } - - _mre.Reset(); - - //Array.Resize(ref data, data.Length + 2); - - try - { - lastSendTime = DateTime.Now; - if (lastSendBuffer == null) lastSendBuffer = new byte[data.Length]; //171113 - else Array.Resize(ref lastSendBuffer, data.Length); - Array.Copy(data, lastSendBuffer, data.Length); - - for (int i = 0; i < data.Length; i++) - _device.Write(data, i, 1); - - //_device.Write(data, 0, data.Length); - - //171113 - this.Message?.Invoke(this, new MessageEventArgs(data, false)); - - bRet = true; - WriteError = 0; - WriteErrorMessage = string.Empty; - } - catch (Exception ex) - { - // this.isinit = false; - this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true)); - bRet = false; - WriteError += 1; //연속쓰기오류횟수 - WriteErrorMessage = ex.Message; - } - finally - { - _mre.Set(); - } - return bRet; - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading; + +namespace arDev +{ + + public abstract partial class arRS232 : ISerialComm, IDisposable + { + protected System.IO.Ports.SerialPort _device; + protected ManualResetEvent _mre; + protected byte[] LastReceiveBuffer = new byte[] { }; + /// + /// 최종 전송 메세지 + /// + public byte[] lastSendBuffer = new byte[] { }; + //public int ValidCheckTimeMSec { get; set; } = 5000; + protected List tempBuffer = new List(); + protected Boolean findSTX = false; + public string ErrorMessage { get; set; } + public DateTime LastConnTime { get; set; } + public DateTime LastConnTryTime { get; set; } + public DateTime lastSendTime; + /// + /// 메세지 수신시 사용하는 내부버퍼 + /// + protected List _buffer = new List(); + /// + /// 데이터조회간격(초) + /// + public float ScanInterval { get; set; } + + // public byte[] LastRecvData; + public string LastRecvString + { + get + { + if (LastReceiveBuffer == null) return String.Empty; + else return System.Text.Encoding.Default.GetString(LastReceiveBuffer); + } + } + /// + /// 마지막으로 데이터를 받은 시간 + /// + public DateTime lastRecvTime; + + + public int WriteError = 0; + public string WriteErrorMessage = string.Empty; + public int WaitTimeout { get; set; } = 1000; + public int MinRecvLength { get; set; } = 1; + /// + /// 포트이름 + /// + [Description("시리얼 포트 이름")] + [Category("설정"), DisplayName("Port Name")] + public string PortName + { + get + { + if (_device == null) return string.Empty; + else return _device.PortName; + } + set + { + if (this.IsOpen) + { + Message?.Invoke(this, new MessageEventArgs("포트가 열려있어 포트이름을 변경할 수 없습니다", true)); + } + else if (String.IsNullOrEmpty(value) == false) + _device.PortName = value; + else + { + Message?.Invoke(this, new MessageEventArgs("No PortName", true)); + } + } + } + + public int BaudRate + { + get + { + if (_device == null) return 0; + else return _device.BaudRate; + } + set + { + if (this.IsOpen) + { + Message?.Invoke(this, new MessageEventArgs("포트가 열려있어 BaudRate(를) 변경할 수 없습니다", true)); + } + else if (value != 0) + _device.BaudRate = value; + else Message?.Invoke(this, new MessageEventArgs("No baud rate", true)); + } + } + + + public arRS232() + { + _device = new System.IO.Ports.SerialPort(); + this.BaudRate = 9600; + ScanInterval = 10; + _device.DataReceived += barcode_DataReceived; + _device.ErrorReceived += this.barcode_ErrorReceived; + _device.WriteTimeout = 5000; + _device.ReadTimeout = 5000; + // _device.DtrEnable = false; + _device.ReadBufferSize = 8192; + _device.WriteBufferSize = 8192; + + ErrorMessage = string.Empty; + lastRecvTime = DateTime.Parse("1982-11-23"); + LastConnTime = DateTime.Parse("1982-11-23"); + LastConnTryTime = DateTime.Parse("1982-11-23"); + lastRecvTime = DateTime.Parse("1982-11-23"); + this._mre = new ManualResetEvent(true); + } + + ~arRS232() + { + Dispose(false); + } + + + // Flag: Has Dispose already been called? + bool disposed = false; + + // Public implementation of Dispose pattern callable by consumers. + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + // Protected implementation of Dispose pattern. + protected virtual void Dispose(bool disposing) + { + if (disposed) + return; + + if (disposing) + { + // Free any other managed objects here. + // + } + + _device.DataReceived -= barcode_DataReceived; + _device.ErrorReceived -= this.barcode_ErrorReceived; + + // Free any unmanaged objects here. + // + disposed = true; + } + + public Boolean Open() + { + try + { + _device.Open(); + return IsOpen; + } + catch (Exception ex) + { + ErrorMessage = ex.Message; + Message.Invoke(this, new MessageEventArgs(ex.Message, true)); + return false; + } + } + public string GetHexString(Byte[] input) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + foreach (byte b in input) + sb.Append(" " + b.ToString("X2")); + return sb.ToString(); + } + + /// + /// 포트가 열려있는지 확인 + /// + [Description("현재 시리얼포트가 열려있는지 확인합니다")] + [Category("정보"), DisplayName("Port Open")] + public Boolean IsOpen + { + get + { + if (_device == null) return false; + return _device.IsOpen; + } + } + + public virtual bool Close() + { + if (_device != null && _device.IsOpen) + { + _device.DiscardInBuffer(); + _device.DiscardOutBuffer(); + _device.Close(); //dispose에서는 포트를 직접 클리어하지 않게 해뒀다. + return true; + } + else return false; + } + protected Boolean RaiseRecvData() + { + return RaiseRecvData(LastReceiveBuffer.ToArray(), false); + } + /// + /// 수신받은 메세지를 발생 시킵니다 + /// + /// + /// + public virtual Boolean RaiseRecvData(byte[] Data, bool udpatelastbuffer) + { + //181206 - 최종수신 메세지 기록 + lastRecvTime = DateTime.Now; + if (udpatelastbuffer && Data != null) + { + if (LastReceiveBuffer == null || LastReceiveBuffer.Length != Data.Length) + { + LastReceiveBuffer = new byte[Data.Length]; + Array.Copy(Data, LastReceiveBuffer, Data.Length); + } + } + + try + { + Message?.Invoke(this, new MessageEventArgs(Data, true)); //recvmessage + if (ProcessRecvData(Data) == false) + { + //Message?.Invoke(this, new MessageEventArgs(Data, true)); //recvmessage + Message?.Invoke(this, new MessageEventArgs(this.ErrorMessage, true)); //errormessage + return false; + } + else + { + + return true; + } + } + catch (Exception ex) + { + this.ErrorMessage = ex.Message; + this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true)); + return false; + } + } + + /// + /// 수신받은 자료를 처리한다 + /// + /// + /// + public abstract bool ProcessRecvData(byte[] data); + + #region "Internal Events" + + void barcode_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e) + { + Message?.Invoke(this, new MessageEventArgs(e.ToString(), true)); + } + + byte[] buffer = new byte[] { }; + void barcode_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + + try + { + int ReadCount = _device.BytesToRead; + + buffer = new byte[ReadCount]; + _device.Read(buffer, 0, buffer.Length); + + System.Text.StringBuilder LogMsg = new StringBuilder(); + + byte[] remainBuffer; + Repeat: + if (CustomParser(buffer, out remainBuffer)) + { + //분석완료이므로 받은 데이터를 버퍼에 기록한다 + if (LastReceiveBuffer == null || (LastReceiveBuffer.Length != tempBuffer.Count)) + Array.Resize(ref LastReceiveBuffer, tempBuffer.Count); + Array.Copy(tempBuffer.ToArray(), LastReceiveBuffer, tempBuffer.Count); + tempBuffer.Clear(); + + //수신메세지발생 + RaiseRecvData(); + if (remainBuffer != null && remainBuffer.Length > 0) + { + //버퍼를 변경해서 다시 전송을 해준다. + Array.Resize(ref buffer, remainBuffer.Length); + Array.Copy(remainBuffer, buffer, remainBuffer.Length); + goto Repeat; //남은 버퍼가 있다면 진행을 해준다. + } + } + + } + catch (Exception ex) + { + //if (IsOpen) + //{ + // //_device.DiscardInBuffer(); + // //_device.DiscardOutBuffer(); + //} + ErrorMessage = ex.Message; + this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true)); + } + + } + + + #endregion + + #region "External Events" + + + /// + /// 오류 및 기타 일반 메세지 + /// + public event EventHandler Message; + + #endregion + + #region "Event Args" + + /// + /// 데이터를 수신할떄 사용함(RAW 포함) + /// + public class ReceiveDataEventArgs : EventArgs + { + private byte[] _buffer = null; + + /// + /// 바이트배열의 버퍼값 + /// + public byte[] Value { get { return _buffer; } } + + /// + /// 버퍼(바이트배열)의 데이터를 문자로 반환합니다. + /// + public string StrValue + { + get + { + //return string.Empty; + + if (_buffer == null || _buffer.Length < 1) return string.Empty; + else return System.Text.Encoding.Default.GetString(_buffer); + } + } + public ReceiveDataEventArgs(byte[] buffer) + { + _buffer = buffer; + } + } + + /// + /// 메세지를 강제 발생 + /// + /// + /// + protected virtual void RaiseMessage(MessageType mt, string message) + { + this.Message?.Invoke(this, new MessageEventArgs(mt, message)); + } + public enum MessageType + { + Normal, + Error, + Send, + Recv, + } + + public class MessageEventArgs : EventArgs + { + public MessageType MsgType { get; set; } + private string _message = string.Empty; + + /// + /// Recv,Send,Normal,Error 모두 지원 + /// + public string Message { get { return _message; } } + + private byte[] _data = null; + + /// + /// Recv,Send에서만 값이 존재 합니다 + /// + public byte[] Data { get { return _data; } } + public MessageEventArgs(string Message, bool isError = false) + { + if (isError) MsgType = MessageType.Error; + else MsgType = MessageType.Normal; + _message = Message; + } + public MessageEventArgs(MessageType msgtype, string Message) + { + MsgType = msgtype; + _message = Message; + _data = System.Text.Encoding.Default.GetBytes(Message); + } + + public MessageEventArgs(byte[] buffer, bool isRecv = true) + { + if (isRecv) MsgType = MessageType.Recv; + else MsgType = MessageType.Send; + _data = new byte[buffer.Length]; + Array.Copy(buffer, _data, Data.Length); + _message = System.Text.Encoding.Default.GetString(_data); + } + + } + + #endregion + + + + protected abstract bool CustomParser(byte[] buf, out byte[] remainBuffer); + + /// + /// 포트가 열려있거나 데이터 수신시간이 없는경우 false를 반환합니다 + /// + public Boolean IsValid + { + get + { + if (IsOpen == false) return false; + if (lastRecvTime.Year == 1982) return false; + var ts = DateTime.Now - lastRecvTime; + if (ts.TotalSeconds > (this.ScanInterval * 2.5)) return false; + return true; + } + } + protected bool WriteData(string cmd) + { + return WriteData(System.Text.Encoding.Default.GetBytes(cmd)); + } + /// + /// 포트에 쓰기(barcode_DataReceived 이벤트로 메세지수신) + /// + protected Boolean WriteData(byte[] data) + { + Boolean bRet = false; + + //171205 : 타임아웃시간추가 + if (!_mre.WaitOne(WaitTimeout)) + { + ErrorMessage = $"WriteData:MRE:WaitOne:TimeOut {WaitTimeout}ms"; + this.Message?.Invoke(this, new MessageEventArgs(ErrorMessage, true)); + return false; + } + + _mre.Reset(); + + //Array.Resize(ref data, data.Length + 2); + + try + { + lastSendTime = DateTime.Now; + if (lastSendBuffer == null) lastSendBuffer = new byte[data.Length]; //171113 + else Array.Resize(ref lastSendBuffer, data.Length); + Array.Copy(data, lastSendBuffer, data.Length); + + for (int i = 0; i < data.Length; i++) + _device.Write(data, i, 1); + + //_device.Write(data, 0, data.Length); + + //171113 + this.Message?.Invoke(this, new MessageEventArgs(data, false)); + + bRet = true; + WriteError = 0; + WriteErrorMessage = string.Empty; + } + catch (Exception ex) + { + // this.isinit = false; + this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true)); + bRet = false; + WriteError += 1; //연속쓰기오류횟수 + WriteErrorMessage = ex.Message; + } + finally + { + _mre.Set(); + } + return bRet; + } + } +} diff --git a/Cs_HMI/SubProject/CommData/Var.cs b/HMI/SubProject/CommData/Var.cs similarity index 96% rename from Cs_HMI/SubProject/CommData/Var.cs rename to HMI/SubProject/CommData/Var.cs index aa3b3f0..5b07398 100644 --- a/Cs_HMI/SubProject/CommData/Var.cs +++ b/HMI/SubProject/CommData/Var.cs @@ -1,340 +1,340 @@ -//using System; -//using System.Collections.Generic; -//using System.ComponentModel; -//using System.Linq; -//using System.Text; - -//namespace COMM -//{ -// public abstract class VarData : INotifyPropertyChanged -// { -// protected T[] _values; -// protected T defaultvalue; -// protected string[] _code; -// protected string[] _desc; - -// public event PropertyChangedEventHandler PropertyChanged; - -// protected void OnPropertyChanged(string name) -// { -// PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); -// } - -// public T this[int idx] -// { -// get { return Get(idx); } -// set { Set(idx, value); } -// } - -// public string StrType -// { -// get -// { -// return typeof(T).ToString(); -// } -// } -// public VarData(int capa, T defvalue = default(T)) -// { -// _values = new T[capa]; -// _code = new string[capa]; -// _desc = new string[capa]; - -// defaultvalue = defvalue; -// Clear(); - -// if (typeof(T) == typeof(UInt16)) SupportAdd = true; -// else if (typeof(T) == typeof(UInt32)) SupportAdd = true; -// else if (typeof(T) == typeof(Int16)) SupportAdd = true; -// else if (typeof(T) == typeof(Int32)) SupportAdd = true; -// else if (typeof(T) == typeof(Int64)) SupportAdd = true; -// else if (typeof(T) == typeof(UInt64)) SupportAdd = true; -// else if (typeof(T) == typeof(byte)) SupportAdd = true; -// else if (typeof(T) == typeof(double)) SupportAdd = true; -// else if (typeof(T) == typeof(Single)) SupportAdd = true; -// else if (typeof(T) == typeof(string)) SupportAdd = false; -// else if (typeof(T) == typeof(bool)) SupportAdd = false; -// else if (typeof(T) == typeof(DateTime)) SupportAdd = false; -// else throw new Exception($"Support Data Type : {typeof(T)}"); -// } - -// public virtual void Set(int idx, T value) -// { -// var changed = _values[idx].Equals(value); -// _values[idx] = value; -// if (changed) OnPropertyChanged($"{idx}|{value}"); //idx값을 알림한다 -// } -// public virtual T Get(int idx) -// { -// return _values[idx]; -// } - -// public virtual void Clear(T value) -// { -// for (int i = 0; i < _values.Length; i++) -// _values[i] = value; -// } -// public virtual void Clear() -// { -// Clear(defaultvalue); -// } -// public void Clear(int idx) -// { -// _values[idx] = defaultvalue; -// } -// public Tuple GetCodeDesc(int idx) -// { -// return new Tuple(_code[idx], _desc[idx]); -// } -// public virtual bool SupportAdd { get; private set; } -// } - -// public abstract class VarDataNumber : VarData -// { -// public VarDataNumber(int capa) : base(capa) { } - -// public abstract void Add(T value); -// public abstract void Add(int idx, T value); -// } - -// public class VarDataI32 : VarDataNumber -// { -// public VarDataI32(int capa) : base(capa) { } - -// public override void Add(Int32 value) -// { -// for (int i = 0; i < _values.Length; i++) -// _values[i] += value; -// } - -// public override void Add(int idx, Int32 value) -// { -// _values[idx] += value; -// } -// public void Add(eVarInt32 idx, Int32 value = 1) -// { -// Add((int)idx, value); -// } -// public void Clear(eVarInt32 idx) -// { -// Clear((int)idx); -// } -// public Int32 this[eVarInt32 idx] -// { -// get { return Get((int)idx); } -// set { Set((int)idx, value); } -// } - -// } -// public class VarDataDBL : VarDataNumber -// { -// public VarDataDBL(int capa) : base(capa) { } - -// public override void Add(double value) -// { -// for (int i = 0; i < _values.Length; i++) -// _values[i] += value; -// } - -// public override void Add(int idx, double value) -// { -// _values[idx] += value; -// } -// public void Add(eVarDBL idx, double value = 1) -// { -// Add((int)idx, value); -// } -// public void Clear(eVarDBL idx) -// { -// Clear((int)idx); -// } -// public double this[eVarDBL idx] -// { -// get { return Get((int)idx); } -// set { Set((int)idx, value); } -// } -// } -// public class VarDataUI32 : VarDataNumber -// { -// public VarDataUI32(int capa) : base(capa) { } - -// public override void Add(UInt32 value) -// { -// for (int i = 0; i < _values.Length; i++) -// _values[i] += value; -// } - -// public override void Add(int idx, UInt32 value) -// { -// _values[idx] += value; -// } -// public void Add(eVarUInt32 idx, UInt32 value = 1) -// { -// Add((int)idx, value); -// } -// public void Clear(eVarUInt32 idx) -// { -// Clear((int)idx); -// } -// public UInt32 this[eVarUInt32 idx] -// { -// get { return Get((int)idx); } -// set { Set((int)idx, value); } -// } -// } - -// public class VarDataByte : VarDataNumber -// { -// public VarDataByte(int capa) : base(capa) { } - -// public override void Add(byte value) -// { -// for (int i = 0; i < _values.Length; i++) -// _values[i] += value; -// } -// public override void Add(int idx, byte value) -// { -// _values[idx] += value; -// } -// public void Add(eVarByte idx, byte value) -// { -// Add((int)idx, value); -// } -// public byte this[eVarByte idx] -// { -// get -// { -// return Get((int)idx); -// } -// set -// { -// Set((int)idx, value); -// } -// } -// } - -// public class VarDataBool : VarData -// { -// public VarDataBool(int capa) : base(capa) { } - -// public bool this[eVarBool idx] -// { -// get -// { -// return Get(idx); -// } -// set -// { -// Set(idx, value); -// } -// } -// public bool Get(eVarBool idx) -// { -// return Get((int)idx); -// } -// public void Set(eVarBool idx, bool value) -// { -// Set((int)idx, value); -// } -// } - -// public class VarDataStr : VarData -// { -// public VarDataStr(int capa) : base(capa, string.Empty) { } -// public string Get(eVarString idx) -// { -// return Get((int)idx); -// } -// public void Set(eVarString idx, string value) -// { -// Set((int)idx, value); -// } -// public string this[eVarString idx] -// { -// get { return Get(idx); } -// set { Set(idx, value); } -// } -// } -// public class VarDataDateTime : VarData -// { -// public VarDataDateTime(int capa) : base(capa, new DateTime(1982, 11, 23)) { } - -// public DateTime this[eVarTime idx] -// { -// get -// { -// return Get((int)idx); -// } -// set -// { -// Set(idx, value); -// } -// } - -// public TimeSpan RUN(int idx) -// { -// return DateTime.Now - _values[idx]; -// } -// public TimeSpan RUN(eVarTime idx) -// { -// return RUN((int)idx); -// } -// [Browsable(false)] -// public void Add(int idx, TimeSpan value) -// { -// _values[idx] += value; -// } - -// public void Add(eVarTime idx, TimeSpan value) -// { -// Add((int)idx, value); -// } -// /// -// /// 지정된 시간으로 업데이트 합니다 -// /// -// /// -// /// -// public void Set(eVarTime idx, DateTime value) -// { -// Set((int)idx, value); -// } -// /// -// /// 현재시간으로 업데이트 합니다 -// /// -// /// -// public void Set(eVarTime idx) -// { -// Set(idx, DateTime.Now); -// } -// public bool IsSet(eVarTime idx) -// { -// return this[idx].Year != 1982; -// } -// } -// //공용변수(시간) -// public static class VAR -// { -// public static VarDataBool BOOL; -// public static VarDataByte BYTE; -// public static VarDataStr STR; -// public static VarDataDateTime TIME; -// public static VarDataI32 I32; -// public static VarDataUI32 U32; -// public static VarDataDBL DBL; - -// public static bool isInit { get; private set; } = false; - -// public static void Init(int varlen) -// { -// if (isInit) return; //already init -// //가변 데이트타임변수 -// BOOL = new VarDataBool(varlen); -// BYTE = new VarDataByte(varlen); -// STR = new VarDataStr(varlen); -// TIME = new VarDataDateTime(varlen); -// I32 = new VarDataI32(varlen); -// U32 = new VarDataUI32(varlen); -// DBL = new VarDataDBL(varlen); -// isInit = true; -// } -// } -//} +//using System; +//using System.Collections.Generic; +//using System.ComponentModel; +//using System.Linq; +//using System.Text; + +//namespace COMM +//{ +// public abstract class VarData : INotifyPropertyChanged +// { +// protected T[] _values; +// protected T defaultvalue; +// protected string[] _code; +// protected string[] _desc; + +// public event PropertyChangedEventHandler PropertyChanged; + +// protected void OnPropertyChanged(string name) +// { +// PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); +// } + +// public T this[int idx] +// { +// get { return Get(idx); } +// set { Set(idx, value); } +// } + +// public string StrType +// { +// get +// { +// return typeof(T).ToString(); +// } +// } +// public VarData(int capa, T defvalue = default(T)) +// { +// _values = new T[capa]; +// _code = new string[capa]; +// _desc = new string[capa]; + +// defaultvalue = defvalue; +// Clear(); + +// if (typeof(T) == typeof(UInt16)) SupportAdd = true; +// else if (typeof(T) == typeof(UInt32)) SupportAdd = true; +// else if (typeof(T) == typeof(Int16)) SupportAdd = true; +// else if (typeof(T) == typeof(Int32)) SupportAdd = true; +// else if (typeof(T) == typeof(Int64)) SupportAdd = true; +// else if (typeof(T) == typeof(UInt64)) SupportAdd = true; +// else if (typeof(T) == typeof(byte)) SupportAdd = true; +// else if (typeof(T) == typeof(double)) SupportAdd = true; +// else if (typeof(T) == typeof(Single)) SupportAdd = true; +// else if (typeof(T) == typeof(string)) SupportAdd = false; +// else if (typeof(T) == typeof(bool)) SupportAdd = false; +// else if (typeof(T) == typeof(DateTime)) SupportAdd = false; +// else throw new Exception($"Support Data Type : {typeof(T)}"); +// } + +// public virtual void Set(int idx, T value) +// { +// var changed = _values[idx].Equals(value); +// _values[idx] = value; +// if (changed) OnPropertyChanged($"{idx}|{value}"); //idx값을 알림한다 +// } +// public virtual T Get(int idx) +// { +// return _values[idx]; +// } + +// public virtual void Clear(T value) +// { +// for (int i = 0; i < _values.Length; i++) +// _values[i] = value; +// } +// public virtual void Clear() +// { +// Clear(defaultvalue); +// } +// public void Clear(int idx) +// { +// _values[idx] = defaultvalue; +// } +// public Tuple GetCodeDesc(int idx) +// { +// return new Tuple(_code[idx], _desc[idx]); +// } +// public virtual bool SupportAdd { get; private set; } +// } + +// public abstract class VarDataNumber : VarData +// { +// public VarDataNumber(int capa) : base(capa) { } + +// public abstract void Add(T value); +// public abstract void Add(int idx, T value); +// } + +// public class VarDataI32 : VarDataNumber +// { +// public VarDataI32(int capa) : base(capa) { } + +// public override void Add(Int32 value) +// { +// for (int i = 0; i < _values.Length; i++) +// _values[i] += value; +// } + +// public override void Add(int idx, Int32 value) +// { +// _values[idx] += value; +// } +// public void Add(eVarInt32 idx, Int32 value = 1) +// { +// Add((int)idx, value); +// } +// public void Clear(eVarInt32 idx) +// { +// Clear((int)idx); +// } +// public Int32 this[eVarInt32 idx] +// { +// get { return Get((int)idx); } +// set { Set((int)idx, value); } +// } + +// } +// public class VarDataDBL : VarDataNumber +// { +// public VarDataDBL(int capa) : base(capa) { } + +// public override void Add(double value) +// { +// for (int i = 0; i < _values.Length; i++) +// _values[i] += value; +// } + +// public override void Add(int idx, double value) +// { +// _values[idx] += value; +// } +// public void Add(eVarDBL idx, double value = 1) +// { +// Add((int)idx, value); +// } +// public void Clear(eVarDBL idx) +// { +// Clear((int)idx); +// } +// public double this[eVarDBL idx] +// { +// get { return Get((int)idx); } +// set { Set((int)idx, value); } +// } +// } +// public class VarDataUI32 : VarDataNumber +// { +// public VarDataUI32(int capa) : base(capa) { } + +// public override void Add(UInt32 value) +// { +// for (int i = 0; i < _values.Length; i++) +// _values[i] += value; +// } + +// public override void Add(int idx, UInt32 value) +// { +// _values[idx] += value; +// } +// public void Add(eVarUInt32 idx, UInt32 value = 1) +// { +// Add((int)idx, value); +// } +// public void Clear(eVarUInt32 idx) +// { +// Clear((int)idx); +// } +// public UInt32 this[eVarUInt32 idx] +// { +// get { return Get((int)idx); } +// set { Set((int)idx, value); } +// } +// } + +// public class VarDataByte : VarDataNumber +// { +// public VarDataByte(int capa) : base(capa) { } + +// public override void Add(byte value) +// { +// for (int i = 0; i < _values.Length; i++) +// _values[i] += value; +// } +// public override void Add(int idx, byte value) +// { +// _values[idx] += value; +// } +// public void Add(eVarByte idx, byte value) +// { +// Add((int)idx, value); +// } +// public byte this[eVarByte idx] +// { +// get +// { +// return Get((int)idx); +// } +// set +// { +// Set((int)idx, value); +// } +// } +// } + +// public class VarDataBool : VarData +// { +// public VarDataBool(int capa) : base(capa) { } + +// public bool this[eVarBool idx] +// { +// get +// { +// return Get(idx); +// } +// set +// { +// Set(idx, value); +// } +// } +// public bool Get(eVarBool idx) +// { +// return Get((int)idx); +// } +// public void Set(eVarBool idx, bool value) +// { +// Set((int)idx, value); +// } +// } + +// public class VarDataStr : VarData +// { +// public VarDataStr(int capa) : base(capa, string.Empty) { } +// public string Get(eVarString idx) +// { +// return Get((int)idx); +// } +// public void Set(eVarString idx, string value) +// { +// Set((int)idx, value); +// } +// public string this[eVarString idx] +// { +// get { return Get(idx); } +// set { Set(idx, value); } +// } +// } +// public class VarDataDateTime : VarData +// { +// public VarDataDateTime(int capa) : base(capa, new DateTime(1982, 11, 23)) { } + +// public DateTime this[eVarTime idx] +// { +// get +// { +// return Get((int)idx); +// } +// set +// { +// Set(idx, value); +// } +// } + +// public TimeSpan RUN(int idx) +// { +// return DateTime.Now - _values[idx]; +// } +// public TimeSpan RUN(eVarTime idx) +// { +// return RUN((int)idx); +// } +// [Browsable(false)] +// public void Add(int idx, TimeSpan value) +// { +// _values[idx] += value; +// } + +// public void Add(eVarTime idx, TimeSpan value) +// { +// Add((int)idx, value); +// } +// /// +// /// 지정된 시간으로 업데이트 합니다 +// /// +// /// +// /// +// public void Set(eVarTime idx, DateTime value) +// { +// Set((int)idx, value); +// } +// /// +// /// 현재시간으로 업데이트 합니다 +// /// +// /// +// public void Set(eVarTime idx) +// { +// Set(idx, DateTime.Now); +// } +// public bool IsSet(eVarTime idx) +// { +// return this[idx].Year != 1982; +// } +// } +// //공용변수(시간) +// public static class VAR +// { +// public static VarDataBool BOOL; +// public static VarDataByte BYTE; +// public static VarDataStr STR; +// public static VarDataDateTime TIME; +// public static VarDataI32 I32; +// public static VarDataUI32 U32; +// public static VarDataDBL DBL; + +// public static bool isInit { get; private set; } = false; + +// public static void Init(int varlen) +// { +// if (isInit) return; //already init +// //가변 데이트타임변수 +// BOOL = new VarDataBool(varlen); +// BYTE = new VarDataByte(varlen); +// STR = new VarDataStr(varlen); +// TIME = new VarDataDateTime(varlen); +// I32 = new VarDataI32(varlen); +// U32 = new VarDataUI32(varlen); +// DBL = new VarDataDBL(varlen); +// isInit = true; +// } +// } +//} diff --git a/Cs_HMI/SubProject/GitUpdate.bat b/HMI/SubProject/GitUpdate.bat similarity index 97% rename from Cs_HMI/SubProject/GitUpdate.bat rename to HMI/SubProject/GitUpdate.bat index f750ddd..aa6c8bf 100644 --- a/Cs_HMI/SubProject/GitUpdate.bat +++ b/HMI/SubProject/GitUpdate.bat @@ -1,5 +1,5 @@ -@echo off -echo Git AutoUpdate -echo tindevil@nate.com -for /d %%i in (*) do echo Enterinng "%i" | cd "%i" | git.exe pull --progress -v --no-rebase "origin" master | cd .. +@echo off +echo Git AutoUpdate +echo tindevil@nate.com +for /d %%i in (*) do echo Enterinng "%i" | cd "%i" | git.exe pull --progress -v --no-rebase "origin" master | cd .. @pause \ No newline at end of file diff --git a/Cs_HMI/SubProject/Patch/App.config b/HMI/SubProject/Patch/App.config similarity index 96% rename from Cs_HMI/SubProject/Patch/App.config rename to HMI/SubProject/Patch/App.config index 5ffd8f8..4bfa005 100644 --- a/Cs_HMI/SubProject/Patch/App.config +++ b/HMI/SubProject/Patch/App.config @@ -1,6 +1,6 @@ - - - - - - + + + + + + diff --git a/Cs_HMI/SubProject/Patch/Form1.Designer.cs b/HMI/SubProject/Patch/Form1.Designer.cs similarity index 97% rename from Cs_HMI/SubProject/Patch/Form1.Designer.cs rename to HMI/SubProject/Patch/Form1.Designer.cs index 86e4ce0..e90645e 100644 --- a/Cs_HMI/SubProject/Patch/Form1.Designer.cs +++ b/HMI/SubProject/Patch/Form1.Designer.cs @@ -1,63 +1,63 @@ -namespace Patch -{ - partial class Form1 - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - this.progressBar1 = new System.Windows.Forms.ProgressBar(); - this.SuspendLayout(); - // - // progressBar1 - // - this.progressBar1.Dock = System.Windows.Forms.DockStyle.Fill; - this.progressBar1.Location = new System.Drawing.Point(0, 0); - this.progressBar1.Name = "progressBar1"; - this.progressBar1.Size = new System.Drawing.Size(481, 68); - this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee; - this.progressBar1.TabIndex = 1; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(481, 68); - this.Controls.Add(this.progressBar1); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "Form1"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.Form1_Load); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.ProgressBar progressBar1; - } -} - +namespace Patch +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.SuspendLayout(); + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Fill; + this.progressBar1.Location = new System.Drawing.Point(0, 0); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(481, 68); + this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee; + this.progressBar1.TabIndex = 1; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(481, 68); + this.Controls.Add(this.progressBar1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.ProgressBar progressBar1; + } +} + diff --git a/Cs_HMI/SubProject/Patch/Form1.cs b/HMI/SubProject/Patch/Form1.cs similarity index 97% rename from Cs_HMI/SubProject/Patch/Form1.cs rename to HMI/SubProject/Patch/Form1.cs index 27ce6ad..ee770c1 100644 --- a/Cs_HMI/SubProject/Patch/Form1.cs +++ b/HMI/SubProject/Patch/Form1.cs @@ -1,122 +1,122 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Patch -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void Form1_Load(object sender, EventArgs e) - { - this.Text = "Software Patch"; - this.Show(); - - Application.DoEvents(); - - //현재폴더에서 _patch 폴더 찾는다 - Boolean runClient = true; - var srcpath = new System.IO.DirectoryInfo ( System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "_patch")); - if (srcpath.Exists == true) - { - //기존 프로그램 종료될떄까지 기다린다 - this.Text = "기존 프로그램 종료 대기"; - Application.DoEvents(); - bool closeok = true; - System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); - wat.Restart(); - while (CheckExistProcess("Amkor") == true) - { - Application.DoEvents(); - System.Threading.Thread.Sleep(10); - if(wat.ElapsedMilliseconds >= 10000) - { - MessageBox.Show("기존프로그램이 종료되지 않았습니다", "패치실패", MessageBoxButtons.OK, MessageBoxIcon.Error); - closeok = false; - break; - } - } - - if (CheckExistProcess("Amkor") == false) - { - - //버젼체크하고 파일 복사해준다 - var files = srcpath.GetFiles(); - this.progressBar1.Maximum = files.Length; - this.progressBar1.Value = 0; - this.progressBar1.Style = ProgressBarStyle.Continuous; - - var myPath = new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory); - - try - { - foreach (var file in files) - { - this.Text = "패치파일 : " + file.Name; - Application.DoEvents(); - - file.CopyTo(System.IO.Path.Combine(file.Directory.Parent.FullName, file.Name), true); // System.IO.File.Copy(file, myPath.FullName, true); - this.progressBar1.Value += 1; - System.Threading.Thread.Sleep(100); - } - - //패치파일을 삭제한다 - srcpath.Delete(true); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); - } - } - else runClient = false; - } - - //클라이언트실행 - if(runClient==true) - { - var file_run = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Amkor.exe"); - RunProcess(file_run); - } - - //프로그래램 종료 - this.Close(); - } - - public Boolean CheckExistProcess(string ProcessName) - { - foreach (var prc in System.Diagnostics.Process.GetProcesses()) - { - if (prc.ProcessName.StartsWith("svchost")) continue; - if (prc.ProcessName.ToUpper() == ProcessName.ToUpper()) return true; - } - return false; - } - - public Boolean RunProcess(string file, string arg = "") - { - var fi = new System.IO.FileInfo(file); - if (!fi.Exists) - { - //Pub.log.AddE("Run Error : " + file); - return false; - } - System.Diagnostics.Process prc = new System.Diagnostics.Process(); - System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(file); - si.Arguments = arg; - prc.StartInfo = si; - prc.Start(); - return true; - } - - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Patch +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + this.Text = "Software Patch"; + this.Show(); + + Application.DoEvents(); + + //현재폴더에서 _patch 폴더 찾는다 + Boolean runClient = true; + var srcpath = new System.IO.DirectoryInfo ( System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "_patch")); + if (srcpath.Exists == true) + { + //기존 프로그램 종료될떄까지 기다린다 + this.Text = "기존 프로그램 종료 대기"; + Application.DoEvents(); + bool closeok = true; + System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); + wat.Restart(); + while (CheckExistProcess("Amkor") == true) + { + Application.DoEvents(); + System.Threading.Thread.Sleep(10); + if(wat.ElapsedMilliseconds >= 10000) + { + MessageBox.Show("기존프로그램이 종료되지 않았습니다", "패치실패", MessageBoxButtons.OK, MessageBoxIcon.Error); + closeok = false; + break; + } + } + + if (CheckExistProcess("Amkor") == false) + { + + //버젼체크하고 파일 복사해준다 + var files = srcpath.GetFiles(); + this.progressBar1.Maximum = files.Length; + this.progressBar1.Value = 0; + this.progressBar1.Style = ProgressBarStyle.Continuous; + + var myPath = new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory); + + try + { + foreach (var file in files) + { + this.Text = "패치파일 : " + file.Name; + Application.DoEvents(); + + file.CopyTo(System.IO.Path.Combine(file.Directory.Parent.FullName, file.Name), true); // System.IO.File.Copy(file, myPath.FullName, true); + this.progressBar1.Value += 1; + System.Threading.Thread.Sleep(100); + } + + //패치파일을 삭제한다 + srcpath.Delete(true); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + else runClient = false; + } + + //클라이언트실행 + if(runClient==true) + { + var file_run = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Amkor.exe"); + RunProcess(file_run); + } + + //프로그래램 종료 + this.Close(); + } + + public Boolean CheckExistProcess(string ProcessName) + { + foreach (var prc in System.Diagnostics.Process.GetProcesses()) + { + if (prc.ProcessName.StartsWith("svchost")) continue; + if (prc.ProcessName.ToUpper() == ProcessName.ToUpper()) return true; + } + return false; + } + + public Boolean RunProcess(string file, string arg = "") + { + var fi = new System.IO.FileInfo(file); + if (!fi.Exists) + { + //Pub.log.AddE("Run Error : " + file); + return false; + } + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(file); + si.Arguments = arg; + prc.StartInfo = si; + prc.Start(); + return true; + } + + } +} diff --git a/Cs_HMI/TestProject/Test_BMS/Form1.resx b/HMI/SubProject/Patch/Form1.resx similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Form1.resx rename to HMI/SubProject/Patch/Form1.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/TestProject/Test_BMS/Form1.resx +++ b/HMI/SubProject/Patch/Form1.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/SubProject/Patch/Program.cs b/HMI/SubProject/Patch/Program.cs similarity index 95% rename from Cs_HMI/SubProject/Patch/Program.cs rename to HMI/SubProject/Patch/Program.cs index 30927a1..fd76577 100644 --- a/Cs_HMI/SubProject/Patch/Program.cs +++ b/HMI/SubProject/Patch/Program.cs @@ -1,22 +1,22 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Patch -{ - static class Program - { - /// - /// 해당 애플리케이션의 주 진입점입니다. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Patch +{ + static class Program + { + /// + /// 해당 애플리케이션의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Cs_HMI/SubProject/Patch/Properties/AssemblyInfo.cs b/HMI/SubProject/Patch/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/SubProject/Patch/Properties/AssemblyInfo.cs rename to HMI/SubProject/Patch/Properties/AssemblyInfo.cs index 1321da1..deb8c9c 100644 --- a/Cs_HMI/SubProject/Patch/Properties/AssemblyInfo.cs +++ b/HMI/SubProject/Patch/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("Patch")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Patch")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("37dc0bae-50bf-41e4-baab-b0e211467ad1")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 -// 기본값으로 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("Patch")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Patch")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("37dc0bae-50bf-41e4-baab-b0e211467ad1")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Cs_HMI/SubProject/Patch/Properties/Resources.Designer.cs b/HMI/SubProject/Patch/Properties/Resources.Designer.cs similarity index 97% rename from Cs_HMI/SubProject/Patch/Properties/Resources.Designer.cs rename to HMI/SubProject/Patch/Properties/Resources.Designer.cs index df0a58a..83efa46 100644 --- a/Cs_HMI/SubProject/Patch/Properties/Resources.Designer.cs +++ b/HMI/SubProject/Patch/Properties/Resources.Designer.cs @@ -1,63 +1,63 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace Patch.Properties { - using System; - - - /// - /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. - /// - // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder - // 클래스에서 자동으로 생성되었습니다. - // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 - // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Patch.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 - /// 재정의합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Patch.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Patch.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Cs_HMI/TestProject/Test_BMS/Properties/Resources.resx b/HMI/SubProject/Patch/Properties/Resources.resx similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Properties/Resources.resx rename to HMI/SubProject/Patch/Properties/Resources.resx index ffecec8..af7dbeb 100644 --- a/Cs_HMI/TestProject/Test_BMS/Properties/Resources.resx +++ b/HMI/SubProject/Patch/Properties/Resources.resx @@ -1,117 +1,117 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/SubProject/Patch/Properties/Settings.Designer.cs b/HMI/SubProject/Patch/Properties/Settings.Designer.cs similarity index 97% rename from Cs_HMI/SubProject/Patch/Properties/Settings.Designer.cs rename to HMI/SubProject/Patch/Properties/Settings.Designer.cs index 28633b4..932f5ac 100644 --- a/Cs_HMI/SubProject/Patch/Properties/Settings.Designer.cs +++ b/HMI/SubProject/Patch/Properties/Settings.Designer.cs @@ -1,26 +1,26 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace Patch.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Patch.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Cs_HMI/SubProject/Patch/Properties/Settings.settings b/HMI/SubProject/Patch/Properties/Settings.settings similarity index 97% rename from Cs_HMI/SubProject/Patch/Properties/Settings.settings rename to HMI/SubProject/Patch/Properties/Settings.settings index abf36c5..3964565 100644 --- a/Cs_HMI/SubProject/Patch/Properties/Settings.settings +++ b/HMI/SubProject/Patch/Properties/Settings.settings @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/Cs_HMI/SubProject/Patch/SWPatch.csproj b/HMI/SubProject/Patch/SWPatch.csproj similarity index 97% rename from Cs_HMI/SubProject/Patch/SWPatch.csproj rename to HMI/SubProject/Patch/SWPatch.csproj index 27441f2..be92311 100644 --- a/Cs_HMI/SubProject/Patch/SWPatch.csproj +++ b/HMI/SubProject/Patch/SWPatch.csproj @@ -1,84 +1,84 @@ - - - - - Debug - AnyCPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1} - WinExe - Patch - SWPatch - v4.8 - 512 - true - - - - AnyCPU - true - full - false - ..\..\..\..\..\Amkor\AGV4\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - + + + + + Debug + AnyCPU + {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1} + WinExe + Patch + SWPatch + v4.8 + 512 + true + + + + AnyCPU + true + full + false + ..\..\..\..\..\Amkor\AGV4\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + \ No newline at end of file diff --git a/HMI/SubProject/arCtl b/HMI/SubProject/arCtl new file mode 160000 index 0000000..768d71e --- /dev/null +++ b/HMI/SubProject/arCtl @@ -0,0 +1 @@ +Subproject commit 768d71ebcad77e9035f35e6b75f2402166bcfa89 diff --git a/Cs_HMI/TestProject/Test.sln b/HMI/TestProject/Test.sln similarity index 100% rename from Cs_HMI/TestProject/Test.sln rename to HMI/TestProject/Test.sln diff --git a/Cs_HMI/TestProject/Test_ACS/AppSettings.cs b/HMI/TestProject/Test_ACS/AppSettings.cs similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/AppSettings.cs rename to HMI/TestProject/Test_ACS/AppSettings.cs diff --git a/Cs_HMI/TestProject/Test_ACS/CHANGELOG.md b/HMI/TestProject/Test_ACS/CHANGELOG.md similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/CHANGELOG.md rename to HMI/TestProject/Test_ACS/CHANGELOG.md diff --git a/Cs_HMI/TestProject/Test_ACS/MainForm.Designer.cs b/HMI/TestProject/Test_ACS/MainForm.Designer.cs similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/MainForm.Designer.cs rename to HMI/TestProject/Test_ACS/MainForm.Designer.cs diff --git a/Cs_HMI/TestProject/Test_ACS/MainForm.cs b/HMI/TestProject/Test_ACS/MainForm.cs similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/MainForm.cs rename to HMI/TestProject/Test_ACS/MainForm.cs diff --git a/Cs_HMI/TestProject/Test_ACS/MainForm.resx b/HMI/TestProject/Test_ACS/MainForm.resx similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/MainForm.resx rename to HMI/TestProject/Test_ACS/MainForm.resx diff --git a/Cs_HMI/TestProject/Test_ACS/Program.cs b/HMI/TestProject/Test_ACS/Program.cs similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/Program.cs rename to HMI/TestProject/Test_ACS/Program.cs diff --git a/Cs_HMI/TestProject/Test_ACS/Properties/AssemblyInfo.cs b/HMI/TestProject/Test_ACS/Properties/AssemblyInfo.cs similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/Properties/AssemblyInfo.cs rename to HMI/TestProject/Test_ACS/Properties/AssemblyInfo.cs diff --git a/Cs_HMI/TestProject/Test_ACS/Properties/Resources.Designer.cs b/HMI/TestProject/Test_ACS/Properties/Resources.Designer.cs similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/Properties/Resources.Designer.cs rename to HMI/TestProject/Test_ACS/Properties/Resources.Designer.cs diff --git a/Cs_HMI/TestProject/Test_ACS/Properties/Resources.resx b/HMI/TestProject/Test_ACS/Properties/Resources.resx similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/Properties/Resources.resx rename to HMI/TestProject/Test_ACS/Properties/Resources.resx diff --git a/Cs_HMI/TestProject/Test_ACS/Properties/Settings.Designer.cs b/HMI/TestProject/Test_ACS/Properties/Settings.Designer.cs similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/Properties/Settings.Designer.cs rename to HMI/TestProject/Test_ACS/Properties/Settings.Designer.cs diff --git a/Cs_HMI/TestProject/Test_ACS/Properties/Settings.settings b/HMI/TestProject/Test_ACS/Properties/Settings.settings similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/Properties/Settings.settings rename to HMI/TestProject/Test_ACS/Properties/Settings.settings diff --git a/Cs_HMI/TestProject/Test_ACS/README.md b/HMI/TestProject/Test_ACS/README.md similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/README.md rename to HMI/TestProject/Test_ACS/README.md diff --git a/Cs_HMI/TestProject/Test_ACS/Test_ACS.csproj b/HMI/TestProject/Test_ACS/Test_ACS.csproj similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/Test_ACS.csproj rename to HMI/TestProject/Test_ACS/Test_ACS.csproj diff --git a/Cs_HMI/TestProject/Test_ACS/app.config b/HMI/TestProject/Test_ACS/app.config similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/app.config rename to HMI/TestProject/Test_ACS/app.config diff --git a/Cs_HMI/TestProject/Test_ACS/packages.config b/HMI/TestProject/Test_ACS/packages.config similarity index 100% rename from Cs_HMI/TestProject/Test_ACS/packages.config rename to HMI/TestProject/Test_ACS/packages.config diff --git a/Cs_HMI/TestProject/Test_BMS/Form1.Designer.cs b/HMI/TestProject/Test_BMS/Form1.Designer.cs similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Form1.Designer.cs rename to HMI/TestProject/Test_BMS/Form1.Designer.cs index cb87e0d..47b4f24 100644 --- a/Cs_HMI/TestProject/Test_BMS/Form1.Designer.cs +++ b/HMI/TestProject/Test_BMS/Form1.Designer.cs @@ -1,214 +1,214 @@ -namespace Test_BMS -{ - partial class Form1 - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.comboBox2 = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.logTextBox1 = new arCtl.LogTextBox(); - this.button3 = new System.Windows.Forms.Button(); - this.btSendCV = new System.Windows.Forms.Button(); - this.button5 = new System.Windows.Forms.Button(); - this.logTextBox2 = new arCtl.LogTextBox(); - this.SuspendLayout(); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point(27, 35); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(131, 20); - this.comboBox1.TabIndex = 0; - this.comboBox1.Text = "com6"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(301, 35); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(108, 20); - this.button1.TabIndex = 1; - this.button1.Text = "connect"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button2 - // - this.button2.Location = new System.Drawing.Point(415, 34); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(106, 20); - this.button2.TabIndex = 1; - this.button2.Text = "close"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // comboBox2 - // - this.comboBox2.FormattingEnabled = true; - this.comboBox2.Items.AddRange(new object[] { - "9600", - "12800", - "25600", - "250000"}); - this.comboBox2.Location = new System.Drawing.Point(164, 35); - this.comboBox2.Name = "comboBox2"; - this.comboBox2.Size = new System.Drawing.Size(131, 20); - this.comboBox2.TabIndex = 2; - this.comboBox2.Text = "9600"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(27, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(26, 12); - this.label1.TabIndex = 3; - this.label1.Text = "port"; - this.label1.Click += new System.EventHandler(this.label1_Click); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(162, 13); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(33, 12); - this.label2.TabIndex = 3; - this.label2.Text = "baud"; - // - // logTextBox1 - // - this.logTextBox1.BackColor = System.Drawing.Color.WhiteSmoke; - this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; - this.logTextBox1.DateFormat = "yy-MM-dd HH:mm:ss"; - this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; - this.logTextBox1.EnableDisplayTimer = true; - this.logTextBox1.EnableGubunColor = true; - this.logTextBox1.Font = new System.Drawing.Font("Consolas", 9F); - this.logTextBox1.ListFormat = "[{0}] {1}"; - this.logTextBox1.Location = new System.Drawing.Point(27, 87); - this.logTextBox1.MaxListCount = ((ushort)(200)); - this.logTextBox1.MaxTextLength = ((uint)(4000u)); - this.logTextBox1.MessageInterval = 50; - this.logTextBox1.Name = "logTextBox1"; - this.logTextBox1.Size = new System.Drawing.Size(368, 395); - this.logTextBox1.TabIndex = 4; - this.logTextBox1.Text = ""; - // - // button3 - // - this.button3.Location = new System.Drawing.Point(301, 61); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(140, 20); - this.button3.TabIndex = 5; - this.button3.Text = "read status"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); - // - // btSendCV - // - this.btSendCV.Location = new System.Drawing.Point(447, 60); - this.btSendCV.Name = "btSendCV"; - this.btSendCV.Size = new System.Drawing.Size(140, 20); - this.btSendCV.TabIndex = 6; - this.btSendCV.Text = "read cellvoltage"; - this.btSendCV.UseVisualStyleBackColor = true; - this.btSendCV.Click += new System.EventHandler(this.button4_Click); - // - // button5 - // - this.button5.Location = new System.Drawing.Point(155, 61); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(140, 20); - this.button5.TabIndex = 7; - this.button5.Text = "send query"; - this.button5.UseVisualStyleBackColor = true; - this.button5.Click += new System.EventHandler(this.button5_Click); - // - // logTextBox2 - // - this.logTextBox2.BackColor = System.Drawing.Color.WhiteSmoke; - this.logTextBox2.ColorList = new arCtl.sLogMessageColor[0]; - this.logTextBox2.DateFormat = "yy-MM-dd HH:mm:ss"; - this.logTextBox2.DefaultColor = System.Drawing.Color.LightGray; - this.logTextBox2.EnableDisplayTimer = true; - this.logTextBox2.EnableGubunColor = true; - this.logTextBox2.Font = new System.Drawing.Font("Consolas", 9F); - this.logTextBox2.ListFormat = "[{0}] {1}"; - this.logTextBox2.Location = new System.Drawing.Point(401, 87); - this.logTextBox2.MaxListCount = ((ushort)(200)); - this.logTextBox2.MaxTextLength = ((uint)(4000u)); - this.logTextBox2.MessageInterval = 50; - this.logTextBox2.Name = "logTextBox2"; - this.logTextBox2.Size = new System.Drawing.Size(368, 395); - this.logTextBox2.TabIndex = 8; - this.logTextBox2.Text = ""; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(779, 494); - this.Controls.Add(this.logTextBox2); - this.Controls.Add(this.button5); - this.Controls.Add(this.btSendCV); - this.Controls.Add(this.button3); - this.Controls.Add(this.logTextBox1); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.comboBox2); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.comboBox1); - this.Name = "Form1"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.Form1_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.ComboBox comboBox2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private arCtl.LogTextBox logTextBox1; - private System.Windows.Forms.Button button3; - private System.Windows.Forms.Button btSendCV; - private System.Windows.Forms.Button button5; - private arCtl.LogTextBox logTextBox2; - } -} - +namespace Test_BMS +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.button3 = new System.Windows.Forms.Button(); + this.btSendCV = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.logTextBox2 = new arCtl.LogTextBox(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(27, 35); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(131, 20); + this.comboBox1.TabIndex = 0; + this.comboBox1.Text = "com6"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(301, 35); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(108, 20); + this.button1.TabIndex = 1; + this.button1.Text = "connect"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(415, 34); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(106, 20); + this.button2.TabIndex = 1; + this.button2.Text = "close"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // comboBox2 + // + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Items.AddRange(new object[] { + "9600", + "12800", + "25600", + "250000"}); + this.comboBox2.Location = new System.Drawing.Point(164, 35); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(131, 20); + this.comboBox2.TabIndex = 2; + this.comboBox2.Text = "9600"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(27, 13); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(26, 12); + this.label1.TabIndex = 3; + this.label1.Text = "port"; + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(162, 13); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(33, 12); + this.label2.TabIndex = 3; + this.label2.Text = "baud"; + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.WhiteSmoke; + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox1.DateFormat = "yy-MM-dd HH:mm:ss"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.EnableDisplayTimer = true; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("Consolas", 9F); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(27, 87); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(368, 395); + this.logTextBox1.TabIndex = 4; + this.logTextBox1.Text = ""; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(301, 61); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(140, 20); + this.button3.TabIndex = 5; + this.button3.Text = "read status"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // btSendCV + // + this.btSendCV.Location = new System.Drawing.Point(447, 60); + this.btSendCV.Name = "btSendCV"; + this.btSendCV.Size = new System.Drawing.Size(140, 20); + this.btSendCV.TabIndex = 6; + this.btSendCV.Text = "read cellvoltage"; + this.btSendCV.UseVisualStyleBackColor = true; + this.btSendCV.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(155, 61); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(140, 20); + this.button5.TabIndex = 7; + this.button5.Text = "send query"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // logTextBox2 + // + this.logTextBox2.BackColor = System.Drawing.Color.WhiteSmoke; + this.logTextBox2.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox2.DateFormat = "yy-MM-dd HH:mm:ss"; + this.logTextBox2.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox2.EnableDisplayTimer = true; + this.logTextBox2.EnableGubunColor = true; + this.logTextBox2.Font = new System.Drawing.Font("Consolas", 9F); + this.logTextBox2.ListFormat = "[{0}] {1}"; + this.logTextBox2.Location = new System.Drawing.Point(401, 87); + this.logTextBox2.MaxListCount = ((ushort)(200)); + this.logTextBox2.MaxTextLength = ((uint)(4000u)); + this.logTextBox2.MessageInterval = 50; + this.logTextBox2.Name = "logTextBox2"; + this.logTextBox2.Size = new System.Drawing.Size(368, 395); + this.logTextBox2.TabIndex = 8; + this.logTextBox2.Text = ""; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(779, 494); + this.Controls.Add(this.logTextBox2); + this.Controls.Add(this.button5); + this.Controls.Add(this.btSendCV); + this.Controls.Add(this.button3); + this.Controls.Add(this.logTextBox1); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.comboBox2); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.comboBox1); + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private arCtl.LogTextBox logTextBox1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button btSendCV; + private System.Windows.Forms.Button button5; + private arCtl.LogTextBox logTextBox2; + } +} + diff --git a/Cs_HMI/TestProject/Test_BMS/Form1.cs b/HMI/TestProject/Test_BMS/Form1.cs similarity index 96% rename from Cs_HMI/TestProject/Test_BMS/Form1.cs rename to HMI/TestProject/Test_BMS/Form1.cs index 800ac30..084cfb3 100644 --- a/Cs_HMI/TestProject/Test_BMS/Form1.cs +++ b/HMI/TestProject/Test_BMS/Form1.cs @@ -1,129 +1,129 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Diagnostics.Eventing.Reader; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Test_BMS -{ - public partial class Form1 : Form - { - arDev.BMS bms; - public Form1() - { - InitializeComponent(); - bms = new arDev.BMS(); - bms.BMSDataReceive += Bms_BMSDataReceive; - bms.BMSCellDataReceive += Bms_BMSCellDataReceive; - bms.Message += Bms_Message; - this.Text = $"{Application.ProductName} ver{Application.ProductVersion}"; - } - - private void Bms_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e) - { - var valuestr = e.ToString();// string.Join(" ", e.voltage.Select(t => t.ToString())); - addmsg2($"{valuestr}"); - } - - private void Bms_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e) - { - //최종 데이터가 수신되는 경우 - addmsg(e.Data.ToString()); - } - - private void Bms_Message(object sender, arDev.BMSSerialComm.MessageEventArgs e) - { - var sb = new System.Text.StringBuilder(); - if (e.Data != null) - { - foreach (var b in e.Data) - sb.Append(" " + b.ToString("X2")); - } - else sb.Append(e.Message); - - if (e.MsgType == arDev.BMSSerialComm.MessageType.Error) - addmsg(e.Message); - else if(e.MsgType == arDev.BMSSerialComm.MessageType.Send) - { - addmsg($"Tx:{sb}"); - } - else if(e.MsgType == arDev.BMSSerialComm.MessageType.Recv) - { - addmsg($"Rx:{sb}"); - } - else - addmsg($"{e.MsgType}:{sb}"); - } - void addmsg(string m) - { - if (logTextBox1.InvokeRequired) - { - logTextBox1.BeginInvoke(new Action(() => { - logTextBox1.AddMsg(m); - })); - } - else - { - logTextBox1.AddMsg(m); - } - } - - void addmsg2(string m) - { - if (logTextBox2.InvokeRequired) - { - logTextBox2.BeginInvoke(new Action(() => { - logTextBox2.AddMsg(m); - })); - } - else - { - logTextBox2.AddMsg(m); - } - } - - private void Form1_Load(object sender, EventArgs e) - { - this.comboBox1.Items.Clear(); - foreach (var port in System.IO.Ports.SerialPort.GetPortNames()) - this.comboBox1.Items.Add(port); - } - - private void button1_Click(object sender, EventArgs e) - { - bms.BaudRate = int.Parse(this.comboBox2.Text); - bms.PortName = comboBox1.Text; - bms.Open(); - addmsg($"open:{bms.IsOpen}"); - } - - private void button2_Click(object sender, EventArgs e) - { - bms.Close(); - } - - private void button3_Click(object sender, EventArgs e) - { - bms.SendQuery_ReadStatue(); - } - - private void label1_Click(object sender, EventArgs e) - { - comboBox1.Text = "COM41"; - } - - private void button4_Click(object sender, EventArgs e) - { - bms.SendQuery_ReadCellvoltage(); - } - - private void button5_Click(object sender, EventArgs e) - { - bms.SendQuery(); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics.Eventing.Reader; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Test_BMS +{ + public partial class Form1 : Form + { + arDev.BMS bms; + public Form1() + { + InitializeComponent(); + bms = new arDev.BMS(); + bms.BMSDataReceive += Bms_BMSDataReceive; + bms.BMSCellDataReceive += Bms_BMSCellDataReceive; + bms.Message += Bms_Message; + this.Text = $"{Application.ProductName} ver{Application.ProductVersion}"; + } + + private void Bms_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e) + { + var valuestr = e.ToString();// string.Join(" ", e.voltage.Select(t => t.ToString())); + addmsg2($"{valuestr}"); + } + + private void Bms_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e) + { + //최종 데이터가 수신되는 경우 + addmsg(e.Data.ToString()); + } + + private void Bms_Message(object sender, arDev.BMSSerialComm.MessageEventArgs e) + { + var sb = new System.Text.StringBuilder(); + if (e.Data != null) + { + foreach (var b in e.Data) + sb.Append(" " + b.ToString("X2")); + } + else sb.Append(e.Message); + + if (e.MsgType == arDev.BMSSerialComm.MessageType.Error) + addmsg(e.Message); + else if(e.MsgType == arDev.BMSSerialComm.MessageType.Send) + { + addmsg($"Tx:{sb}"); + } + else if(e.MsgType == arDev.BMSSerialComm.MessageType.Recv) + { + addmsg($"Rx:{sb}"); + } + else + addmsg($"{e.MsgType}:{sb}"); + } + void addmsg(string m) + { + if (logTextBox1.InvokeRequired) + { + logTextBox1.BeginInvoke(new Action(() => { + logTextBox1.AddMsg(m); + })); + } + else + { + logTextBox1.AddMsg(m); + } + } + + void addmsg2(string m) + { + if (logTextBox2.InvokeRequired) + { + logTextBox2.BeginInvoke(new Action(() => { + logTextBox2.AddMsg(m); + })); + } + else + { + logTextBox2.AddMsg(m); + } + } + + private void Form1_Load(object sender, EventArgs e) + { + this.comboBox1.Items.Clear(); + foreach (var port in System.IO.Ports.SerialPort.GetPortNames()) + this.comboBox1.Items.Add(port); + } + + private void button1_Click(object sender, EventArgs e) + { + bms.BaudRate = int.Parse(this.comboBox2.Text); + bms.PortName = comboBox1.Text; + bms.Open(); + addmsg($"open:{bms.IsOpen}"); + } + + private void button2_Click(object sender, EventArgs e) + { + bms.Close(); + } + + private void button3_Click(object sender, EventArgs e) + { + bms.SendQuery_ReadStatue(); + } + + private void label1_Click(object sender, EventArgs e) + { + comboBox1.Text = "COM41"; + } + + private void button4_Click(object sender, EventArgs e) + { + bms.SendQuery_ReadCellvoltage(); + } + + private void button5_Click(object sender, EventArgs e) + { + bms.SendQuery(); + } + } +} diff --git a/Cs_HMI/SubProject/Patch/Form1.resx b/HMI/TestProject/Test_BMS/Form1.resx similarity index 97% rename from Cs_HMI/SubProject/Patch/Form1.resx rename to HMI/TestProject/Test_BMS/Form1.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/SubProject/Patch/Form1.resx +++ b/HMI/TestProject/Test_BMS/Form1.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_Narumi/Program.cs b/HMI/TestProject/Test_BMS/Program.cs similarity index 95% rename from Cs_HMI/TestProject/Test_Narumi/Program.cs rename to HMI/TestProject/Test_BMS/Program.cs index 868a592..79b83a9 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Program.cs +++ b/HMI/TestProject/Test_BMS/Program.cs @@ -1,21 +1,21 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Forms; - -namespace Test_BMS -{ - static class Program - { - /// - /// 해당 응용 프로그램의 주 진입점입니다. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace Test_BMS +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Cs_HMI/TestProject/Test_BMS/Properties/AssemblyInfo.cs b/HMI/TestProject/Test_BMS/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Properties/AssemblyInfo.cs rename to HMI/TestProject/Test_BMS/Properties/AssemblyInfo.cs index 0d1b439..410fa32 100644 --- a/Cs_HMI/TestProject/Test_BMS/Properties/AssemblyInfo.cs +++ b/HMI/TestProject/Test_BMS/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("BMS Commnunication Module Test")] -[assembly: AssemblyDescription("BMS Commnunication Module Test")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("BMS Commnunication Module Test")] -[assembly: AssemblyProduct("BMS Test Software")] -[assembly: AssemblyCopyright("Copyright ©ATK4 2020")] -[assembly: AssemblyTrademark("ATK4")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("ce3fff9f-6aca-44bd-b64a-33ff4ad5e82e")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 -// 지정되도록 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("20.03.09.0")] -[assembly: AssemblyFileVersion("20.03.09.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("BMS Commnunication Module Test")] +[assembly: AssemblyDescription("BMS Commnunication Module Test")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("BMS Commnunication Module Test")] +[assembly: AssemblyProduct("BMS Test Software")] +[assembly: AssemblyCopyright("Copyright ©ATK4 2020")] +[assembly: AssemblyTrademark("ATK4")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("ce3fff9f-6aca-44bd-b64a-33ff4ad5e82e")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("20.03.09.0")] +[assembly: AssemblyFileVersion("20.03.09.0")] diff --git a/Cs_HMI/TestProject/Test_BMS/Properties/Resources.Designer.cs b/HMI/TestProject/Test_BMS/Properties/Resources.Designer.cs similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Properties/Resources.Designer.cs rename to HMI/TestProject/Test_BMS/Properties/Resources.Designer.cs index 888e033..69f2c94 100644 --- a/Cs_HMI/TestProject/Test_BMS/Properties/Resources.Designer.cs +++ b/HMI/TestProject/Test_BMS/Properties/Resources.Designer.cs @@ -1,63 +1,63 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace Test_BMS.Properties { - using System; - - - /// - /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. - /// - // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder - // 클래스에서 자동으로 생성되었습니다. - // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 - // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test_BMS.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 - /// 재정의합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Test_BMS.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test_BMS.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Cs_HMI/TestProject/Test_Narumi/Properties/Resources.resx b/HMI/TestProject/Test_BMS/Properties/Resources.resx similarity index 97% rename from Cs_HMI/TestProject/Test_Narumi/Properties/Resources.resx rename to HMI/TestProject/Test_BMS/Properties/Resources.resx index ffecec8..af7dbeb 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Properties/Resources.resx +++ b/HMI/TestProject/Test_BMS/Properties/Resources.resx @@ -1,117 +1,117 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_BMS/Properties/Settings.Designer.cs b/HMI/TestProject/Test_BMS/Properties/Settings.Designer.cs similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Properties/Settings.Designer.cs rename to HMI/TestProject/Test_BMS/Properties/Settings.Designer.cs index 03db24a..f42fc60 100644 --- a/Cs_HMI/TestProject/Test_BMS/Properties/Settings.Designer.cs +++ b/HMI/TestProject/Test_BMS/Properties/Settings.Designer.cs @@ -1,26 +1,26 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace Test_BMS.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Test_BMS.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Cs_HMI/TestProject/Test_BMS/Properties/Settings.settings b/HMI/TestProject/Test_BMS/Properties/Settings.settings similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Properties/Settings.settings rename to HMI/TestProject/Test_BMS/Properties/Settings.settings index abf36c5..3964565 100644 --- a/Cs_HMI/TestProject/Test_BMS/Properties/Settings.settings +++ b/HMI/TestProject/Test_BMS/Properties/Settings.settings @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/Cs_HMI/TestProject/Test_BMS/Sample.txt b/HMI/TestProject/Test_BMS/Sample.txt similarity index 98% rename from Cs_HMI/TestProject/Test_BMS/Sample.txt rename to HMI/TestProject/Test_BMS/Sample.txt index 5c46548..c1c1fe0 100644 --- a/Cs_HMI/TestProject/Test_BMS/Sample.txt +++ b/HMI/TestProject/Test_BMS/Sample.txt @@ -1,8 +1,8 @@ -[22-12-27 14:32:49] open:True -[22-12-27 14:32:49] Send: DD A5 03 00 FF FD 77 0D -[22-12-27 14:32:50] Send: DD A5 03 00 FF FD 77 0D -[22-12-27 14:32:50] Recv:26.61v,81.4% -[22-12-27 14:32:50] Recv: DD 03 00 1B 0A 65 00 00 21 63 29 04 00 00 2C 92 00 00 00 00 00 00 28 51 03 08 02 0B 69 0B 66 FC 9C 77 -[22-12-27 14:32:50] Send: DD A5 03 00 FF FD 77 0D -[22-12-27 14:32:51] Recv:26.61v,81.4% -[22-12-27 14:32:51] Recv: DD 03 00 1B 0A 65 00 00 21 63 29 04 00 00 2C 92 00 00 00 00 00 00 28 51 03 08 02 0B 69 0B 66 FC 9C 77 +[22-12-27 14:32:49] open:True +[22-12-27 14:32:49] Send: DD A5 03 00 FF FD 77 0D +[22-12-27 14:32:50] Send: DD A5 03 00 FF FD 77 0D +[22-12-27 14:32:50] Recv:26.61v,81.4% +[22-12-27 14:32:50] Recv: DD 03 00 1B 0A 65 00 00 21 63 29 04 00 00 2C 92 00 00 00 00 00 00 28 51 03 08 02 0B 69 0B 66 FC 9C 77 +[22-12-27 14:32:50] Send: DD A5 03 00 FF FD 77 0D +[22-12-27 14:32:51] Recv:26.61v,81.4% +[22-12-27 14:32:51] Recv: DD 03 00 1B 0A 65 00 00 21 63 29 04 00 00 2C 92 00 00 00 00 00 00 28 51 03 08 02 0B 69 0B 66 FC 9C 77 diff --git a/Cs_HMI/TestProject/Test_BMS/Test_BMS.csproj b/HMI/TestProject/Test_BMS/Test_BMS.csproj similarity index 97% rename from Cs_HMI/TestProject/Test_BMS/Test_BMS.csproj rename to HMI/TestProject/Test_BMS/Test_BMS.csproj index 5648524..9366f87 100644 --- a/Cs_HMI/TestProject/Test_BMS/Test_BMS.csproj +++ b/HMI/TestProject/Test_BMS/Test_BMS.csproj @@ -1,108 +1,108 @@ - - - - - Debug - AnyCPU - {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E} - WinExe - Test_BMS - Test_BMS - v4.8 - 512 - true - - - - x86 - true - full - false - ..\..\..\..\..\..\Amkor\AGV4\Test\BMS\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\..\DLL\arControl.Net4.dll - - - - - - - - - - - - - - - BMS.cs - - - BMSInformationEventArgs.cs - - - BMSSerialComm.cs - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {14e8c9a5-013e-49ba-b435-efefc77dd623} - CommData - - - - - - - - - - + + + + + Debug + AnyCPU + {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E} + WinExe + Test_BMS + Test_BMS + v4.8 + 512 + true + + + + x86 + true + full + false + ..\..\..\..\..\..\Amkor\AGV4\Test\BMS\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\..\DLL\arControl.Net4.dll + + + + + + + + + + + + + + + BMS.cs + + + BMSInformationEventArgs.cs + + + BMSSerialComm.cs + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_Narumi/app.config b/HMI/TestProject/Test_BMS/app.config similarity index 98% rename from Cs_HMI/TestProject/Test_Narumi/app.config rename to HMI/TestProject/Test_BMS/app.config index 2c0f559..3e0e37c 100644 --- a/Cs_HMI/TestProject/Test_Narumi/app.config +++ b/HMI/TestProject/Test_BMS/app.config @@ -1,3 +1,3 @@ - - - + + + diff --git a/Cs_HMI/TestProject/Test_Narumi/Form1.Designer.cs b/HMI/TestProject/Test_Narumi/Form1.Designer.cs similarity index 98% rename from Cs_HMI/TestProject/Test_Narumi/Form1.Designer.cs rename to HMI/TestProject/Test_Narumi/Form1.Designer.cs index a1dc79f..99cf4e9 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Form1.Designer.cs +++ b/HMI/TestProject/Test_Narumi/Form1.Designer.cs @@ -1,536 +1,536 @@ -namespace Test_BMS -{ - partial class Form1 - { - /// - /// 필수 디자이너 변수입니다. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// 사용 중인 모든 리소스를 정리합니다. - /// - /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form 디자이너에서 생성한 코드 - - /// - /// 디자이너 지원에 필요한 메서드입니다. - /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. - /// - private void InitializeComponent() - { - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.comboBox2 = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.logTextBox1 = new arCtl.LogTextBox(); - this.button3 = new System.Windows.Forms.Button(); - this.button4 = new System.Windows.Forms.Button(); - this.button5 = new System.Windows.Forms.Button(); - this.button6 = new System.Windows.Forms.Button(); - this.button7 = new System.Windows.Forms.Button(); - this.button8 = new System.Windows.Forms.Button(); - this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.button9 = new System.Windows.Forms.Button(); - this.button10 = new System.Windows.Forms.Button(); - this.button11 = new System.Windows.Forms.Button(); - this.button12 = new System.Windows.Forms.Button(); - this.button13 = new System.Windows.Forms.Button(); - this.button14 = new System.Windows.Forms.Button(); - this.button15 = new System.Windows.Forms.Button(); - this.button16 = new System.Windows.Forms.Button(); - this.button17 = new System.Windows.Forms.Button(); - this.button18 = new System.Windows.Forms.Button(); - this.button19 = new System.Windows.Forms.Button(); - this.panel1 = new System.Windows.Forms.Panel(); - this.rt0 = new System.Windows.Forms.RichTextBox(); - this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); - this.rt1 = new System.Windows.Forms.RichTextBox(); - this.rt2 = new System.Windows.Forms.RichTextBox(); - this.rt3 = new System.Windows.Forms.RichTextBox(); - this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); - this.logTextBox2 = new arCtl.LogTextBox(); - this.tableLayoutPanel1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.tableLayoutPanel2.SuspendLayout(); - this.tableLayoutPanel3.SuspendLayout(); - this.SuspendLayout(); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point(46, 10); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(100, 20); - this.comboBox1.TabIndex = 0; - this.comboBox1.Text = "COM21"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(289, 10); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(108, 20); - this.button1.TabIndex = 1; - this.button1.Text = "connect"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button2 - // - this.button2.Location = new System.Drawing.Point(403, 10); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(106, 20); - this.button2.TabIndex = 1; - this.button2.Text = "close"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // comboBox2 - // - this.comboBox2.FormattingEnabled = true; - this.comboBox2.Items.AddRange(new object[] { - "9600", - "12800", - "25600", - "250000"}); - this.comboBox2.Location = new System.Drawing.Point(188, 10); - this.comboBox2.Name = "comboBox2"; - this.comboBox2.Size = new System.Drawing.Size(95, 20); - this.comboBox2.TabIndex = 2; - this.comboBox2.Text = "57600"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(15, 14); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(26, 12); - this.label1.TabIndex = 3; - this.label1.Text = "port"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(150, 14); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(33, 12); - this.label2.TabIndex = 3; - this.label2.Text = "baud"; - // - // logTextBox1 - // - this.logTextBox1.BackColor = System.Drawing.Color.WhiteSmoke; - this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; - this.logTextBox1.DateFormat = "ss.fff"; - this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; - this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; - this.logTextBox1.EnableDisplayTimer = true; - this.logTextBox1.EnableGubunColor = true; - this.logTextBox1.Font = new System.Drawing.Font("Consolas", 9F); - this.logTextBox1.ListFormat = "[{0}] {1}"; - this.logTextBox1.Location = new System.Drawing.Point(3, 3); - this.logTextBox1.MaxListCount = ((ushort)(200)); - this.logTextBox1.MaxTextLength = ((uint)(4000u)); - this.logTextBox1.MessageInterval = 50; - this.logTextBox1.Name = "logTextBox1"; - this.logTextBox1.Size = new System.Drawing.Size(335, 494); - this.logTextBox1.TabIndex = 4; - this.logTextBox1.Text = ""; - // - // button3 - // - this.button3.Dock = System.Windows.Forms.DockStyle.Fill; - this.button3.Location = new System.Drawing.Point(3, 3); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(130, 49); - this.button3.TabIndex = 5; - this.button3.Text = "forward"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); - // - // button4 - // - this.button4.Dock = System.Windows.Forms.DockStyle.Fill; - this.button4.Location = new System.Drawing.Point(3, 58); - this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(130, 49); - this.button4.TabIndex = 6; - this.button4.Text = "backward"; - this.button4.UseVisualStyleBackColor = true; - this.button4.Click += new System.EventHandler(this.button4_Click); - // - // button5 - // - this.button5.Dock = System.Windows.Forms.DockStyle.Fill; - this.button5.Location = new System.Drawing.Point(139, 3); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(130, 49); - this.button5.TabIndex = 7; - this.button5.Text = "stop"; - this.button5.UseVisualStyleBackColor = true; - this.button5.Click += new System.EventHandler(this.button5_Click); - // - // button6 - // - this.button6.Dock = System.Windows.Forms.DockStyle.Fill; - this.button6.Location = new System.Drawing.Point(275, 3); - this.button6.Name = "button6"; - this.button6.Size = new System.Drawing.Size(130, 49); - this.button6.TabIndex = 8; - this.button6.Text = "set f"; - this.button6.UseVisualStyleBackColor = true; - this.button6.Click += new System.EventHandler(this.button6_Click); - // - // button7 - // - this.button7.Dock = System.Windows.Forms.DockStyle.Fill; - this.button7.Location = new System.Drawing.Point(139, 58); - this.button7.Name = "button7"; - this.button7.Size = new System.Drawing.Size(130, 49); - this.button7.TabIndex = 9; - this.button7.Text = "mark stop"; - this.button7.UseVisualStyleBackColor = true; - this.button7.Click += new System.EventHandler(this.button7_Click); - // - // button8 - // - this.button8.Dock = System.Windows.Forms.DockStyle.Fill; - this.button8.Location = new System.Drawing.Point(275, 58); - this.button8.Name = "button8"; - this.button8.Size = new System.Drawing.Size(130, 49); - this.button8.TabIndex = 10; - this.button8.Text = "Run"; - this.button8.UseVisualStyleBackColor = true; - this.button8.Click += new System.EventHandler(this.button8_Click); - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 5; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 19.9985F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); - this.tableLayoutPanel1.Controls.Add(this.button6, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.button4, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.button7, 1, 1); - this.tableLayoutPanel1.Controls.Add(this.button3, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.button5, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.button8, 2, 1); - this.tableLayoutPanel1.Controls.Add(this.button9, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.button10, 1, 2); - this.tableLayoutPanel1.Controls.Add(this.button11, 2, 2); - this.tableLayoutPanel1.Controls.Add(this.button12, 3, 2); - this.tableLayoutPanel1.Controls.Add(this.button13, 3, 1); - this.tableLayoutPanel1.Controls.Add(this.button14, 3, 0); - this.tableLayoutPanel1.Controls.Add(this.button15, 4, 0); - this.tableLayoutPanel1.Controls.Add(this.button16, 4, 1); - this.tableLayoutPanel1.Controls.Add(this.button17, 0, 3); - this.tableLayoutPanel1.Controls.Add(this.button18, 1, 3); - this.tableLayoutPanel1.Controls.Add(this.button19, 2, 3); - this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; - this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 37); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 4; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99813F)); - this.tableLayoutPanel1.Size = new System.Drawing.Size(683, 222); - this.tableLayoutPanel1.TabIndex = 11; - // - // button9 - // - this.button9.Dock = System.Windows.Forms.DockStyle.Fill; - this.button9.Location = new System.Drawing.Point(3, 113); - this.button9.Name = "button9"; - this.button9.Size = new System.Drawing.Size(130, 49); - this.button9.TabIndex = 11; - this.button9.Text = "충전시작"; - this.button9.UseVisualStyleBackColor = true; - this.button9.Click += new System.EventHandler(this.button9_Click); - // - // button10 - // - this.button10.Dock = System.Windows.Forms.DockStyle.Fill; - this.button10.Location = new System.Drawing.Point(139, 113); - this.button10.Name = "button10"; - this.button10.Size = new System.Drawing.Size(130, 49); - this.button10.TabIndex = 12; - this.button10.Text = "충전종료"; - this.button10.UseVisualStyleBackColor = true; - this.button10.Click += new System.EventHandler(this.button10_Click); - // - // button11 - // - this.button11.Dock = System.Windows.Forms.DockStyle.Fill; - this.button11.Location = new System.Drawing.Point(275, 113); - this.button11.Name = "button11"; - this.button11.Size = new System.Drawing.Size(130, 49); - this.button11.TabIndex = 12; - this.button11.Text = "도착알림(ON)"; - this.button11.UseVisualStyleBackColor = true; - this.button11.Click += new System.EventHandler(this.button11_Click); - // - // button12 - // - this.button12.Dock = System.Windows.Forms.DockStyle.Fill; - this.button12.Location = new System.Drawing.Point(411, 113); - this.button12.Name = "button12"; - this.button12.Size = new System.Drawing.Size(130, 49); - this.button12.TabIndex = 13; - this.button12.Text = "도착알림(OFF)"; - this.button12.UseVisualStyleBackColor = true; - this.button12.Click += new System.EventHandler(this.button12_Click); - // - // button13 - // - this.button13.Dock = System.Windows.Forms.DockStyle.Fill; - this.button13.Location = new System.Drawing.Point(411, 58); - this.button13.Name = "button13"; - this.button13.Size = new System.Drawing.Size(130, 49); - this.button13.TabIndex = 14; - this.button13.Text = "ERR-RESET"; - this.button13.UseVisualStyleBackColor = true; - this.button13.Click += new System.EventHandler(this.button13_Click); - // - // button14 - // - this.button14.Dock = System.Windows.Forms.DockStyle.Fill; - this.button14.Location = new System.Drawing.Point(411, 3); - this.button14.Name = "button14"; - this.button14.Size = new System.Drawing.Size(130, 49); - this.button14.TabIndex = 15; - this.button14.Text = "set b"; - this.button14.UseVisualStyleBackColor = true; - this.button14.Click += new System.EventHandler(this.button14_Click); - // - // button15 - // - this.button15.Dock = System.Windows.Forms.DockStyle.Fill; - this.button15.Location = new System.Drawing.Point(547, 3); - this.button15.Name = "button15"; - this.button15.Size = new System.Drawing.Size(133, 49); - this.button15.TabIndex = 16; - this.button15.Text = "manual f"; - this.button15.UseVisualStyleBackColor = true; - this.button15.Click += new System.EventHandler(this.button15_Click); - // - // button16 - // - this.button16.Dock = System.Windows.Forms.DockStyle.Fill; - this.button16.Location = new System.Drawing.Point(547, 58); - this.button16.Name = "button16"; - this.button16.Size = new System.Drawing.Size(133, 49); - this.button16.TabIndex = 16; - this.button16.Text = "manual b"; - this.button16.UseVisualStyleBackColor = true; - this.button16.Click += new System.EventHandler(this.button16_Click); - // - // button17 - // - this.button17.Dock = System.Windows.Forms.DockStyle.Fill; - this.button17.Location = new System.Drawing.Point(3, 168); - this.button17.Name = "button17"; - this.button17.Size = new System.Drawing.Size(130, 51); - this.button17.TabIndex = 17; - this.button17.Text = "Speed L"; - this.button17.UseVisualStyleBackColor = true; - this.button17.Click += new System.EventHandler(this.button17_Click); - // - // button18 - // - this.button18.Dock = System.Windows.Forms.DockStyle.Fill; - this.button18.Location = new System.Drawing.Point(139, 168); - this.button18.Name = "button18"; - this.button18.Size = new System.Drawing.Size(130, 51); - this.button18.TabIndex = 17; - this.button18.Text = "Speed M"; - this.button18.UseVisualStyleBackColor = true; - this.button18.Click += new System.EventHandler(this.button18_Click); - // - // button19 - // - this.button19.Dock = System.Windows.Forms.DockStyle.Fill; - this.button19.Location = new System.Drawing.Point(275, 168); - this.button19.Name = "button19"; - this.button19.Size = new System.Drawing.Size(130, 51); - this.button19.TabIndex = 17; - this.button19.Text = "Speed H"; - this.button19.UseVisualStyleBackColor = true; - this.button19.Click += new System.EventHandler(this.button19_Click); - // - // panel1 - // - this.panel1.Controls.Add(this.comboBox1); - this.panel1.Controls.Add(this.button1); - this.panel1.Controls.Add(this.button2); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.comboBox2); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1264, 37); - this.panel1.TabIndex = 12; - // - // rt0 - // - this.rt0.Dock = System.Windows.Forms.DockStyle.Fill; - this.rt0.Location = new System.Drawing.Point(3, 3); - this.rt0.Name = "rt0"; - this.rt0.Size = new System.Drawing.Size(284, 292); - this.rt0.TabIndex = 13; - this.rt0.Text = ""; - // - // tableLayoutPanel2 - // - this.tableLayoutPanel2.ColumnCount = 2; - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel2.Controls.Add(this.rt0, 0, 0); - this.tableLayoutPanel2.Controls.Add(this.rt1, 1, 0); - this.tableLayoutPanel2.Controls.Add(this.rt2, 0, 1); - this.tableLayoutPanel2.Controls.Add(this.rt3, 1, 1); - this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Right; - this.tableLayoutPanel2.Location = new System.Drawing.Point(683, 37); - this.tableLayoutPanel2.Name = "tableLayoutPanel2"; - this.tableLayoutPanel2.RowCount = 2; - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 41.27424F)); - this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 58.72576F)); - this.tableLayoutPanel2.Size = new System.Drawing.Size(581, 722); - this.tableLayoutPanel2.TabIndex = 14; - // - // rt1 - // - this.rt1.Dock = System.Windows.Forms.DockStyle.Fill; - this.rt1.Location = new System.Drawing.Point(293, 3); - this.rt1.Name = "rt1"; - this.rt1.Size = new System.Drawing.Size(285, 292); - this.rt1.TabIndex = 13; - this.rt1.Text = ""; - // - // rt2 - // - this.rt2.Dock = System.Windows.Forms.DockStyle.Fill; - this.rt2.Location = new System.Drawing.Point(3, 301); - this.rt2.Name = "rt2"; - this.rt2.Size = new System.Drawing.Size(284, 418); - this.rt2.TabIndex = 13; - this.rt2.Text = ""; - // - // rt3 - // - this.rt3.Dock = System.Windows.Forms.DockStyle.Fill; - this.rt3.Location = new System.Drawing.Point(293, 301); - this.rt3.Name = "rt3"; - this.rt3.Size = new System.Drawing.Size(285, 418); - this.rt3.TabIndex = 13; - this.rt3.Text = ""; - // - // tableLayoutPanel3 - // - this.tableLayoutPanel3.ColumnCount = 2; - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Controls.Add(this.logTextBox1, 0, 0); - this.tableLayoutPanel3.Controls.Add(this.logTextBox2, 1, 0); - this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 259); - this.tableLayoutPanel3.Name = "tableLayoutPanel3"; - this.tableLayoutPanel3.RowCount = 1; - this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel3.Size = new System.Drawing.Size(683, 500); - this.tableLayoutPanel3.TabIndex = 15; - // - // logTextBox2 - // - this.logTextBox2.BackColor = System.Drawing.Color.WhiteSmoke; - this.logTextBox2.ColorList = new arCtl.sLogMessageColor[0]; - this.logTextBox2.DateFormat = "ss.fff"; - this.logTextBox2.DefaultColor = System.Drawing.Color.LightGray; - this.logTextBox2.Dock = System.Windows.Forms.DockStyle.Fill; - this.logTextBox2.EnableDisplayTimer = true; - this.logTextBox2.EnableGubunColor = true; - this.logTextBox2.Font = new System.Drawing.Font("Consolas", 9F); - this.logTextBox2.ListFormat = "[{0}] {1}"; - this.logTextBox2.Location = new System.Drawing.Point(344, 3); - this.logTextBox2.MaxListCount = ((ushort)(200)); - this.logTextBox2.MaxTextLength = ((uint)(4000u)); - this.logTextBox2.MessageInterval = 50; - this.logTextBox2.Name = "logTextBox2"; - this.logTextBox2.Size = new System.Drawing.Size(336, 494); - this.logTextBox2.TabIndex = 4; - this.logTextBox2.Text = ""; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1264, 759); - this.Controls.Add(this.tableLayoutPanel3); - this.Controls.Add(this.tableLayoutPanel1); - this.Controls.Add(this.tableLayoutPanel2); - this.Controls.Add(this.panel1); - this.Name = "Form1"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.Form1_Load); - this.tableLayoutPanel1.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.tableLayoutPanel2.ResumeLayout(false); - this.tableLayoutPanel3.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.ComboBox comboBox2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private arCtl.LogTextBox logTextBox1; - private System.Windows.Forms.Button button3; - private System.Windows.Forms.Button button4; - private System.Windows.Forms.Button button5; - private System.Windows.Forms.Button button6; - private System.Windows.Forms.Button button7; - private System.Windows.Forms.Button button8; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button button9; - private System.Windows.Forms.Button button10; - private System.Windows.Forms.Button button11; - private System.Windows.Forms.Button button12; - private System.Windows.Forms.Button button13; - private System.Windows.Forms.RichTextBox rt0; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.RichTextBox rt1; - private System.Windows.Forms.RichTextBox rt2; - private System.Windows.Forms.RichTextBox rt3; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private arCtl.LogTextBox logTextBox2; - private System.Windows.Forms.Button button14; - private System.Windows.Forms.Button button15; - private System.Windows.Forms.Button button16; - private System.Windows.Forms.Button button17; - private System.Windows.Forms.Button button18; - private System.Windows.Forms.Button button19; - } -} - +namespace Test_BMS +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.comboBox2 = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.button9 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.button17 = new System.Windows.Forms.Button(); + this.button18 = new System.Windows.Forms.Button(); + this.button19 = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.rt0 = new System.Windows.Forms.RichTextBox(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.rt1 = new System.Windows.Forms.RichTextBox(); + this.rt2 = new System.Windows.Forms.RichTextBox(); + this.rt3 = new System.Windows.Forms.RichTextBox(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.logTextBox2 = new arCtl.LogTextBox(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(46, 10); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(100, 20); + this.comboBox1.TabIndex = 0; + this.comboBox1.Text = "COM21"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(289, 10); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(108, 20); + this.button1.TabIndex = 1; + this.button1.Text = "connect"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(403, 10); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(106, 20); + this.button2.TabIndex = 1; + this.button2.Text = "close"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // comboBox2 + // + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Items.AddRange(new object[] { + "9600", + "12800", + "25600", + "250000"}); + this.comboBox2.Location = new System.Drawing.Point(188, 10); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(95, 20); + this.comboBox2.TabIndex = 2; + this.comboBox2.Text = "57600"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(15, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(26, 12); + this.label1.TabIndex = 3; + this.label1.Text = "port"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(150, 14); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(33, 12); + this.label2.TabIndex = 3; + this.label2.Text = "baud"; + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.WhiteSmoke; + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox1.DateFormat = "ss.fff"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.logTextBox1.EnableDisplayTimer = true; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("Consolas", 9F); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(3, 3); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(335, 494); + this.logTextBox1.TabIndex = 4; + this.logTextBox1.Text = ""; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Location = new System.Drawing.Point(3, 3); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(130, 49); + this.button3.TabIndex = 5; + this.button3.Text = "forward"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.Location = new System.Drawing.Point(3, 58); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(130, 49); + this.button4.TabIndex = 6; + this.button4.Text = "backward"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Location = new System.Drawing.Point(139, 3); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(130, 49); + this.button5.TabIndex = 7; + this.button5.Text = "stop"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.Location = new System.Drawing.Point(275, 3); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(130, 49); + this.button6.TabIndex = 8; + this.button6.Text = "set f"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button7 + // + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.Location = new System.Drawing.Point(139, 58); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(130, 49); + this.button7.TabIndex = 9; + this.button7.Text = "mark stop"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.Location = new System.Drawing.Point(275, 58); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(130, 49); + this.button8.TabIndex = 10; + this.button8.Text = "Run"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 5; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 19.9985F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.Controls.Add(this.button6, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.button4, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.button7, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.button3, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.button5, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button8, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.button9, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button10, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.button11, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.button12, 3, 2); + this.tableLayoutPanel1.Controls.Add(this.button13, 3, 1); + this.tableLayoutPanel1.Controls.Add(this.button14, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.button15, 4, 0); + this.tableLayoutPanel1.Controls.Add(this.button16, 4, 1); + this.tableLayoutPanel1.Controls.Add(this.button17, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.button18, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.button19, 2, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 37); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99813F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(683, 222); + this.tableLayoutPanel1.TabIndex = 11; + // + // button9 + // + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.Location = new System.Drawing.Point(3, 113); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(130, 49); + this.button9.TabIndex = 11; + this.button9.Text = "충전시작"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button10 + // + this.button10.Dock = System.Windows.Forms.DockStyle.Fill; + this.button10.Location = new System.Drawing.Point(139, 113); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(130, 49); + this.button10.TabIndex = 12; + this.button10.Text = "충전종료"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // button11 + // + this.button11.Dock = System.Windows.Forms.DockStyle.Fill; + this.button11.Location = new System.Drawing.Point(275, 113); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(130, 49); + this.button11.TabIndex = 12; + this.button11.Text = "도착알림(ON)"; + this.button11.UseVisualStyleBackColor = true; + this.button11.Click += new System.EventHandler(this.button11_Click); + // + // button12 + // + this.button12.Dock = System.Windows.Forms.DockStyle.Fill; + this.button12.Location = new System.Drawing.Point(411, 113); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(130, 49); + this.button12.TabIndex = 13; + this.button12.Text = "도착알림(OFF)"; + this.button12.UseVisualStyleBackColor = true; + this.button12.Click += new System.EventHandler(this.button12_Click); + // + // button13 + // + this.button13.Dock = System.Windows.Forms.DockStyle.Fill; + this.button13.Location = new System.Drawing.Point(411, 58); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(130, 49); + this.button13.TabIndex = 14; + this.button13.Text = "ERR-RESET"; + this.button13.UseVisualStyleBackColor = true; + this.button13.Click += new System.EventHandler(this.button13_Click); + // + // button14 + // + this.button14.Dock = System.Windows.Forms.DockStyle.Fill; + this.button14.Location = new System.Drawing.Point(411, 3); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(130, 49); + this.button14.TabIndex = 15; + this.button14.Text = "set b"; + this.button14.UseVisualStyleBackColor = true; + this.button14.Click += new System.EventHandler(this.button14_Click); + // + // button15 + // + this.button15.Dock = System.Windows.Forms.DockStyle.Fill; + this.button15.Location = new System.Drawing.Point(547, 3); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(133, 49); + this.button15.TabIndex = 16; + this.button15.Text = "manual f"; + this.button15.UseVisualStyleBackColor = true; + this.button15.Click += new System.EventHandler(this.button15_Click); + // + // button16 + // + this.button16.Dock = System.Windows.Forms.DockStyle.Fill; + this.button16.Location = new System.Drawing.Point(547, 58); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(133, 49); + this.button16.TabIndex = 16; + this.button16.Text = "manual b"; + this.button16.UseVisualStyleBackColor = true; + this.button16.Click += new System.EventHandler(this.button16_Click); + // + // button17 + // + this.button17.Dock = System.Windows.Forms.DockStyle.Fill; + this.button17.Location = new System.Drawing.Point(3, 168); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(130, 51); + this.button17.TabIndex = 17; + this.button17.Text = "Speed L"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button17_Click); + // + // button18 + // + this.button18.Dock = System.Windows.Forms.DockStyle.Fill; + this.button18.Location = new System.Drawing.Point(139, 168); + this.button18.Name = "button18"; + this.button18.Size = new System.Drawing.Size(130, 51); + this.button18.TabIndex = 17; + this.button18.Text = "Speed M"; + this.button18.UseVisualStyleBackColor = true; + this.button18.Click += new System.EventHandler(this.button18_Click); + // + // button19 + // + this.button19.Dock = System.Windows.Forms.DockStyle.Fill; + this.button19.Location = new System.Drawing.Point(275, 168); + this.button19.Name = "button19"; + this.button19.Size = new System.Drawing.Size(130, 51); + this.button19.TabIndex = 17; + this.button19.Text = "Speed H"; + this.button19.UseVisualStyleBackColor = true; + this.button19.Click += new System.EventHandler(this.button19_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.comboBox1); + this.panel1.Controls.Add(this.button1); + this.panel1.Controls.Add(this.button2); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.comboBox2); + this.panel1.Controls.Add(this.label1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1264, 37); + this.panel1.TabIndex = 12; + // + // rt0 + // + this.rt0.Dock = System.Windows.Forms.DockStyle.Fill; + this.rt0.Location = new System.Drawing.Point(3, 3); + this.rt0.Name = "rt0"; + this.rt0.Size = new System.Drawing.Size(284, 292); + this.rt0.TabIndex = 13; + this.rt0.Text = ""; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Controls.Add(this.rt0, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.rt1, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.rt2, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.rt3, 1, 1); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Right; + this.tableLayoutPanel2.Location = new System.Drawing.Point(683, 37); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 2; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 41.27424F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 58.72576F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(581, 722); + this.tableLayoutPanel2.TabIndex = 14; + // + // rt1 + // + this.rt1.Dock = System.Windows.Forms.DockStyle.Fill; + this.rt1.Location = new System.Drawing.Point(293, 3); + this.rt1.Name = "rt1"; + this.rt1.Size = new System.Drawing.Size(285, 292); + this.rt1.TabIndex = 13; + this.rt1.Text = ""; + // + // rt2 + // + this.rt2.Dock = System.Windows.Forms.DockStyle.Fill; + this.rt2.Location = new System.Drawing.Point(3, 301); + this.rt2.Name = "rt2"; + this.rt2.Size = new System.Drawing.Size(284, 418); + this.rt2.TabIndex = 13; + this.rt2.Text = ""; + // + // rt3 + // + this.rt3.Dock = System.Windows.Forms.DockStyle.Fill; + this.rt3.Location = new System.Drawing.Point(293, 301); + this.rt3.Name = "rt3"; + this.rt3.Size = new System.Drawing.Size(285, 418); + this.rt3.TabIndex = 13; + this.rt3.Text = ""; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Controls.Add(this.logTextBox1, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.logTextBox2, 1, 0); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 259); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 1; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(683, 500); + this.tableLayoutPanel3.TabIndex = 15; + // + // logTextBox2 + // + this.logTextBox2.BackColor = System.Drawing.Color.WhiteSmoke; + this.logTextBox2.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox2.DateFormat = "ss.fff"; + this.logTextBox2.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.logTextBox2.EnableDisplayTimer = true; + this.logTextBox2.EnableGubunColor = true; + this.logTextBox2.Font = new System.Drawing.Font("Consolas", 9F); + this.logTextBox2.ListFormat = "[{0}] {1}"; + this.logTextBox2.Location = new System.Drawing.Point(344, 3); + this.logTextBox2.MaxListCount = ((ushort)(200)); + this.logTextBox2.MaxTextLength = ((uint)(4000u)); + this.logTextBox2.MessageInterval = 50; + this.logTextBox2.Name = "logTextBox2"; + this.logTextBox2.Size = new System.Drawing.Size(336, 494); + this.logTextBox2.TabIndex = 4; + this.logTextBox2.Text = ""; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1264, 759); + this.Controls.Add(this.tableLayoutPanel3); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.tableLayoutPanel2); + this.Controls.Add(this.panel1); + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel3.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.ComboBox comboBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private arCtl.LogTextBox logTextBox1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.RichTextBox rt0; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.RichTextBox rt1; + private System.Windows.Forms.RichTextBox rt2; + private System.Windows.Forms.RichTextBox rt3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private arCtl.LogTextBox logTextBox2; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.Button button18; + private System.Windows.Forms.Button button19; + } +} + diff --git a/Cs_HMI/TestProject/Test_Narumi/Form1.cs b/HMI/TestProject/Test_Narumi/Form1.cs similarity index 96% rename from Cs_HMI/TestProject/Test_Narumi/Form1.cs rename to HMI/TestProject/Test_Narumi/Form1.cs index 741540d..bc5cac2 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Form1.cs +++ b/HMI/TestProject/Test_Narumi/Form1.cs @@ -1,218 +1,218 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace Test_BMS -{ - public partial class Form1 : Form - { - arDev.Narumi dev; - arUtil.Log log1 = new arUtil.Log(); - arUtil.Log log2 = new arUtil.Log(); - public Form1() - { - InitializeComponent(); - dev = new arDev.Narumi(); - dev.DataReceive += Dev_DataReceive; - dev.Message += Dev_Message; - log1.FileNameFormat = "{yyyyMMdd}_COM"; - log2.FileNameFormat = "{yyyyMMdd}_STS"; - this.FormClosed += Form1_FormClosed; - } - - private void Form1_FormClosed(object sender, FormClosedEventArgs e) - { - log1.Flush(); - log2.Flush(); - } - - private void Dev_Message(object sender, arDev.NarumiSerialComm.MessageEventArgs e) - { - addmsg(e.MsgType.ToString(), e.Message);// $"{e.MsgType}:{e.Message}"); - } - - private void Dev_DataReceive(object sender, arDev.Narumi.DataEventArgs e) - { - //throw new NotImplementedException(); - updatestatue(); - } - - void updatestatue() - { - if (this.rt0.InvokeRequired) - { - this.Invoke(new MethodInvoker(updatestatue)); - return; - } - - this.rt0.Text = $"system0-{dev.system0.Value:X2}\n" + dev.system0.ToString(); - this.rt1.Text = $"system1-{dev.system1.Value:X2}\n" + dev.system1.ToString(); - this.rt2.Text = $"error-{dev.error.Value:X2}\n" + dev.error.ToString(); - this.rt3.Text = $"iosignal-{dev.signal1.Value:X2}\n" + dev.signal1.ToString() + "data\n" + dev.data.ToString(); - //this.rt4.Text = "data\n" + dev.data.ToString(); - - - } - - private void Form1_Load(object sender, EventArgs e) - { - this.comboBox1.Items.Clear(); - foreach (var port in System.IO.Ports.SerialPort.GetPortNames()) - this.comboBox1.Items.Add(port); - } - - void addmsg(string grp,string m) - { - if(m.Contains("STS")) - { - log2.Add(grp, m); - if (logTextBox2.InvokeRequired) - { - logTextBox2.BeginInvoke(new Action(() => - { - logTextBox2.AddMsg(m); - })); - } - else - { - logTextBox2.AddMsg(m); - } - } - else - { - log1.Add(grp, m); - if (logTextBox1.InvokeRequired) - { - logTextBox1.BeginInvoke(new Action(() => - { - logTextBox1.AddMsg(m); - })); - } - else - { - logTextBox1.AddMsg(m); - } - } - - } - - - - - private void button1_Click(object sender, EventArgs e) - { - dev.BaudRate = int.Parse(this.comboBox2.Text); - dev.PortName = comboBox1.Text; - dev.Open(); - addmsg("conn",$"open:{dev.IsOpen}"); - } - - private void button2_Click(object sender, EventArgs e) - { - dev.Close(); - } - - - - private void button6_Click(object sender, EventArgs e) - { - dev.AGVMoveSet(new arDev.Narumi.BunkiData - { - Bunki = arDev.Narumi.eBunki.Strate, - Direction = arDev.Narumi.eMoveDir.Forward, - PBSSensor = 1, - Speed = arDev.Narumi.eMoveSpd.Low, - }); - } - - private void button5_Click(object sender, EventArgs e) - { - dev.AGVMoveStop("form1-button5", arDev.Narumi.eStopOpt.Stop); - } - - private void button7_Click(object sender, EventArgs e) - { - dev.AGVMoveStop("form1-button7",arDev.Narumi.eStopOpt.MarkStop); - } - - private void button4_Click(object sender, EventArgs e) - { - dev.AGVMoveRun(arDev.Narumi.eRunOpt.Backward); - } - private void button3_Click(object sender, EventArgs e) - { - dev.AGVMoveRun(arDev.Narumi.eRunOpt.Forward); - } - - private void button8_Click(object sender, EventArgs e) - { - dev.AGVMoveRun(); - } - - private void button9_Click(object sender, EventArgs e) - { - dev.AGVCharge(30, true); - } - - private void button10_Click(object sender, EventArgs e) - { - dev.AGVCharge(30, false); - } - - private void button11_Click(object sender, EventArgs e) - { - dev.AGVTowerLamp(true); - } - - private void button12_Click(object sender, EventArgs e) - { - dev.AGVTowerLamp(false); - } - - private void button13_Click(object sender, EventArgs e) - { - dev.AGVErrorReset(); - } - - private void button14_Click(object sender, EventArgs e) - { - dev.AGVMoveSet(new arDev.Narumi.BunkiData - { - Bunki = arDev.Narumi.eBunki.Strate, - Direction = arDev.Narumi.eMoveDir.Backward, - PBSSensor = 1, - Speed = arDev.Narumi.eMoveSpd.Low, - }); - } - - private void button15_Click(object sender, EventArgs e) - { - dev.AGVMoveManual(arDev.Narumi.ManulOpt.FS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); - } - - private void button16_Click(object sender, EventArgs e) - { - dev.AGVMoveManual(arDev.Narumi.ManulOpt.BS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); - } - - private void button17_Click(object sender, EventArgs e) - { - dev.AGVMoveSet(new arDev.Narumi.BunkiData(dev.data.Direction, dev.data.Sts, 'L')); - } - - private void button18_Click(object sender, EventArgs e) - { - dev.AGVMoveSet(new arDev.Narumi.BunkiData(dev.data.Direction, dev.data.Sts, 'M')); - } - - private void button19_Click(object sender, EventArgs e) - { - dev.AGVMoveSet(new arDev.Narumi.BunkiData(dev.data.Direction, dev.data.Sts, 'H')); - } - } -} +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Test_BMS +{ + public partial class Form1 : Form + { + arDev.Narumi dev; + arUtil.Log log1 = new arUtil.Log(); + arUtil.Log log2 = new arUtil.Log(); + public Form1() + { + InitializeComponent(); + dev = new arDev.Narumi(); + dev.DataReceive += Dev_DataReceive; + dev.Message += Dev_Message; + log1.FileNameFormat = "{yyyyMMdd}_COM"; + log2.FileNameFormat = "{yyyyMMdd}_STS"; + this.FormClosed += Form1_FormClosed; + } + + private void Form1_FormClosed(object sender, FormClosedEventArgs e) + { + log1.Flush(); + log2.Flush(); + } + + private void Dev_Message(object sender, arDev.NarumiSerialComm.MessageEventArgs e) + { + addmsg(e.MsgType.ToString(), e.Message);// $"{e.MsgType}:{e.Message}"); + } + + private void Dev_DataReceive(object sender, arDev.Narumi.DataEventArgs e) + { + //throw new NotImplementedException(); + updatestatue(); + } + + void updatestatue() + { + if (this.rt0.InvokeRequired) + { + this.Invoke(new MethodInvoker(updatestatue)); + return; + } + + this.rt0.Text = $"system0-{dev.system0.Value:X2}\n" + dev.system0.ToString(); + this.rt1.Text = $"system1-{dev.system1.Value:X2}\n" + dev.system1.ToString(); + this.rt2.Text = $"error-{dev.error.Value:X2}\n" + dev.error.ToString(); + this.rt3.Text = $"iosignal-{dev.signal1.Value:X2}\n" + dev.signal1.ToString() + "data\n" + dev.data.ToString(); + //this.rt4.Text = "data\n" + dev.data.ToString(); + + + } + + private void Form1_Load(object sender, EventArgs e) + { + this.comboBox1.Items.Clear(); + foreach (var port in System.IO.Ports.SerialPort.GetPortNames()) + this.comboBox1.Items.Add(port); + } + + void addmsg(string grp,string m) + { + if(m.Contains("STS")) + { + log2.Add(grp, m); + if (logTextBox2.InvokeRequired) + { + logTextBox2.BeginInvoke(new Action(() => + { + logTextBox2.AddMsg(m); + })); + } + else + { + logTextBox2.AddMsg(m); + } + } + else + { + log1.Add(grp, m); + if (logTextBox1.InvokeRequired) + { + logTextBox1.BeginInvoke(new Action(() => + { + logTextBox1.AddMsg(m); + })); + } + else + { + logTextBox1.AddMsg(m); + } + } + + } + + + + + private void button1_Click(object sender, EventArgs e) + { + dev.BaudRate = int.Parse(this.comboBox2.Text); + dev.PortName = comboBox1.Text; + dev.Open(); + addmsg("conn",$"open:{dev.IsOpen}"); + } + + private void button2_Click(object sender, EventArgs e) + { + dev.Close(); + } + + + + private void button6_Click(object sender, EventArgs e) + { + dev.AGVMoveSet(new arDev.Narumi.BunkiData + { + Bunki = arDev.Narumi.eBunki.Strate, + Direction = arDev.Narumi.eMoveDir.Forward, + PBSSensor = 1, + Speed = arDev.Narumi.eMoveSpd.Low, + }); + } + + private void button5_Click(object sender, EventArgs e) + { + dev.AGVMoveStop("form1-button5", arDev.Narumi.eStopOpt.Stop); + } + + private void button7_Click(object sender, EventArgs e) + { + dev.AGVMoveStop("form1-button7",arDev.Narumi.eStopOpt.MarkStop); + } + + private void button4_Click(object sender, EventArgs e) + { + dev.AGVMoveRun(arDev.Narumi.eRunOpt.Backward); + } + private void button3_Click(object sender, EventArgs e) + { + dev.AGVMoveRun(arDev.Narumi.eRunOpt.Forward); + } + + private void button8_Click(object sender, EventArgs e) + { + dev.AGVMoveRun(); + } + + private void button9_Click(object sender, EventArgs e) + { + dev.AGVCharge(30, true); + } + + private void button10_Click(object sender, EventArgs e) + { + dev.AGVCharge(30, false); + } + + private void button11_Click(object sender, EventArgs e) + { + dev.AGVTowerLamp(true); + } + + private void button12_Click(object sender, EventArgs e) + { + dev.AGVTowerLamp(false); + } + + private void button13_Click(object sender, EventArgs e) + { + dev.AGVErrorReset(); + } + + private void button14_Click(object sender, EventArgs e) + { + dev.AGVMoveSet(new arDev.Narumi.BunkiData + { + Bunki = arDev.Narumi.eBunki.Strate, + Direction = arDev.Narumi.eMoveDir.Backward, + PBSSensor = 1, + Speed = arDev.Narumi.eMoveSpd.Low, + }); + } + + private void button15_Click(object sender, EventArgs e) + { + dev.AGVMoveManual(arDev.Narumi.ManulOpt.FS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); + } + + private void button16_Click(object sender, EventArgs e) + { + dev.AGVMoveManual(arDev.Narumi.ManulOpt.BS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn); + } + + private void button17_Click(object sender, EventArgs e) + { + dev.AGVMoveSet(new arDev.Narumi.BunkiData(dev.data.Direction, dev.data.Sts, 'L')); + } + + private void button18_Click(object sender, EventArgs e) + { + dev.AGVMoveSet(new arDev.Narumi.BunkiData(dev.data.Direction, dev.data.Sts, 'M')); + } + + private void button19_Click(object sender, EventArgs e) + { + dev.AGVMoveSet(new arDev.Narumi.BunkiData(dev.data.Direction, dev.data.Sts, 'H')); + } + } +} diff --git a/Cs_HMI/TestProject/Test_Narumi/Form1.resx b/HMI/TestProject/Test_Narumi/Form1.resx similarity index 97% rename from Cs_HMI/TestProject/Test_Narumi/Form1.resx rename to HMI/TestProject/Test_Narumi/Form1.resx index 29dcb1b..1af7de1 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Form1.resx +++ b/HMI/TestProject/Test_Narumi/Form1.resx @@ -1,120 +1,120 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_BMS/Program.cs b/HMI/TestProject/Test_Narumi/Program.cs similarity index 95% rename from Cs_HMI/TestProject/Test_BMS/Program.cs rename to HMI/TestProject/Test_Narumi/Program.cs index 868a592..79b83a9 100644 --- a/Cs_HMI/TestProject/Test_BMS/Program.cs +++ b/HMI/TestProject/Test_Narumi/Program.cs @@ -1,21 +1,21 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Forms; - -namespace Test_BMS -{ - static class Program - { - /// - /// 해당 응용 프로그램의 주 진입점입니다. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace Test_BMS +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Cs_HMI/TestProject/Test_Narumi/Properties/AssemblyInfo.cs b/HMI/TestProject/Test_Narumi/Properties/AssemblyInfo.cs similarity index 97% rename from Cs_HMI/TestProject/Test_Narumi/Properties/AssemblyInfo.cs rename to HMI/TestProject/Test_Narumi/Properties/AssemblyInfo.cs index 2800cf9..cc916c0 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Properties/AssemblyInfo.cs +++ b/HMI/TestProject/Test_Narumi/Properties/AssemblyInfo.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("BMS Commnunication Module Test")] -[assembly: AssemblyDescription("BMS Commnunication Module Test")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("BMS Commnunication Module Test")] -[assembly: AssemblyProduct("BMS Test Software")] -[assembly: AssemblyCopyright("Copyright ©ATK4 2020")] -[assembly: AssemblyTrademark("ATK4")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("ce3fff9f-6aca-1234-b64a-33ff4ad5e82e")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 -// 지정되도록 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("20.03.09.0")] -[assembly: AssemblyFileVersion("20.03.09.0")] +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("BMS Commnunication Module Test")] +[assembly: AssemblyDescription("BMS Commnunication Module Test")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("BMS Commnunication Module Test")] +[assembly: AssemblyProduct("BMS Test Software")] +[assembly: AssemblyCopyright("Copyright ©ATK4 2020")] +[assembly: AssemblyTrademark("ATK4")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("ce3fff9f-6aca-1234-b64a-33ff4ad5e82e")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("20.03.09.0")] +[assembly: AssemblyFileVersion("20.03.09.0")] diff --git a/Cs_HMI/TestProject/Test_Narumi/Properties/Resources.Designer.cs b/HMI/TestProject/Test_Narumi/Properties/Resources.Designer.cs similarity index 97% rename from Cs_HMI/TestProject/Test_Narumi/Properties/Resources.Designer.cs rename to HMI/TestProject/Test_Narumi/Properties/Resources.Designer.cs index 1b46bdf..bd4c14f 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Properties/Resources.Designer.cs +++ b/HMI/TestProject/Test_Narumi/Properties/Resources.Designer.cs @@ -1,63 +1,63 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace Test_Narumi.Properties { - using System; - - - /// - /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. - /// - // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder - // 클래스에서 자동으로 생성되었습니다. - // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 - // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test_Narumi.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 - /// 재정의합니다. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Test_Narumi.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test_Narumi.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Cs_HMI/SubProject/Patch/Properties/Resources.resx b/HMI/TestProject/Test_Narumi/Properties/Resources.resx similarity index 97% rename from Cs_HMI/SubProject/Patch/Properties/Resources.resx rename to HMI/TestProject/Test_Narumi/Properties/Resources.resx index ffecec8..af7dbeb 100644 --- a/Cs_HMI/SubProject/Patch/Properties/Resources.resx +++ b/HMI/TestProject/Test_Narumi/Properties/Resources.resx @@ -1,117 +1,117 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_Narumi/Properties/Settings.Designer.cs b/HMI/TestProject/Test_Narumi/Properties/Settings.Designer.cs similarity index 97% rename from Cs_HMI/TestProject/Test_Narumi/Properties/Settings.Designer.cs rename to HMI/TestProject/Test_Narumi/Properties/Settings.Designer.cs index 78f82ca..ede502a 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Properties/Settings.Designer.cs +++ b/HMI/TestProject/Test_Narumi/Properties/Settings.Designer.cs @@ -1,26 +1,26 @@ -//------------------------------------------------------------------------------ -// -// 이 코드는 도구를 사용하여 생성되었습니다. -// 런타임 버전:4.0.30319.42000 -// -// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 -// 이러한 변경 내용이 손실됩니다. -// -//------------------------------------------------------------------------------ - -namespace Test_Narumi.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Test_Narumi.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Cs_HMI/TestProject/Test_Narumi/Properties/Settings.settings b/HMI/TestProject/Test_Narumi/Properties/Settings.settings similarity index 97% rename from Cs_HMI/TestProject/Test_Narumi/Properties/Settings.settings rename to HMI/TestProject/Test_Narumi/Properties/Settings.settings index abf36c5..3964565 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Properties/Settings.settings +++ b/HMI/TestProject/Test_Narumi/Properties/Settings.settings @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/Cs_HMI/TestProject/Test_Narumi/Sample.txt b/HMI/TestProject/Test_Narumi/Sample.txt similarity index 99% rename from Cs_HMI/TestProject/Test_Narumi/Sample.txt rename to HMI/TestProject/Test_Narumi/Sample.txt index a950cfe..f6f7324 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Sample.txt +++ b/HMI/TestProject/Test_Narumi/Sample.txt @@ -1,14 +1,14 @@ -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 -02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 +02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 02 53 54 53 32 35 38 46 46 46 46 34 30 30 30 30 30 30 30 4C 53 46 30 30 30 30 30 30 33 41 03 \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_Narumi/Test_Narumi.csproj b/HMI/TestProject/Test_Narumi/Test_Narumi.csproj similarity index 97% rename from Cs_HMI/TestProject/Test_Narumi/Test_Narumi.csproj rename to HMI/TestProject/Test_Narumi/Test_Narumi.csproj index ca92358..53ce733 100644 --- a/Cs_HMI/TestProject/Test_Narumi/Test_Narumi.csproj +++ b/HMI/TestProject/Test_Narumi/Test_Narumi.csproj @@ -1,102 +1,102 @@ - - - - - Debug - AnyCPU - {EB77976F-4DE4-46A5-8B25-D07226204C32} - WinExe - Test_Narumi - Test_Narumi - v4.8 - 512 - true - - - - AnyCPU - true - full - false - ..\..\..\..\..\..\Amkor\AGV4\Test\AGV\ - DEBUG;TRACE - prompt - 4 - false - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\..\DLL\arControl.Net4.dll - - - ..\..\DLL\ArLog.Net4.dll - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {8bae0eac-3d25-402f-9a65-2ba1ecfe28b7} - NARUMI - - - {14e8c9a5-013e-49ba-b435-efefc77dd623} - CommData - - - - - - + + + + + Debug + AnyCPU + {EB77976F-4DE4-46A5-8B25-D07226204C32} + WinExe + Test_Narumi + Test_Narumi + v4.8 + 512 + true + + + + AnyCPU + true + full + false + ..\..\..\..\..\..\Amkor\AGV4\Test\AGV\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\..\DLL\arControl.Net4.dll + + + ..\..\DLL\ArLog.Net4.dll + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {8bae0eac-3d25-402f-9a65-2ba1ecfe28b7} + NARUMI + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + + + + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_BMS/app.config b/HMI/TestProject/Test_Narumi/app.config similarity index 98% rename from Cs_HMI/TestProject/Test_BMS/app.config rename to HMI/TestProject/Test_Narumi/app.config index 2c0f559..3e0e37c 100644 --- a/Cs_HMI/TestProject/Test_BMS/app.config +++ b/HMI/TestProject/Test_Narumi/app.config @@ -1,3 +1,3 @@ - - - + + + diff --git a/HMI/TestProject/Test_Port/App.config b/HMI/TestProject/Test_Port/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/HMI/TestProject/Test_Port/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_Port/CSetting.cs b/HMI/TestProject/Test_Port/CSetting.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/CSetting.cs rename to HMI/TestProject/Test_Port/CSetting.cs diff --git a/Cs_HMI/TestProject/Test_Port/Form1.Designer.cs b/HMI/TestProject/Test_Port/Form1.Designer.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Form1.Designer.cs rename to HMI/TestProject/Test_Port/Form1.Designer.cs diff --git a/Cs_HMI/TestProject/Test_Port/Form1.cs b/HMI/TestProject/Test_Port/Form1.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Form1.cs rename to HMI/TestProject/Test_Port/Form1.cs diff --git a/Cs_HMI/TestProject/Test_Port/Form1.resx b/HMI/TestProject/Test_Port/Form1.resx similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Form1.resx rename to HMI/TestProject/Test_Port/Form1.resx diff --git a/Cs_HMI/TestProject/Test_Port/PUB.cs b/HMI/TestProject/Test_Port/PUB.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/PUB.cs rename to HMI/TestProject/Test_Port/PUB.cs diff --git a/Cs_HMI/TestProject/Test_Port/Program.cs b/HMI/TestProject/Test_Port/Program.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Program.cs rename to HMI/TestProject/Test_Port/Program.cs diff --git a/Cs_HMI/TestProject/Test_Port/Properties/AssemblyInfo.cs b/HMI/TestProject/Test_Port/Properties/AssemblyInfo.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Properties/AssemblyInfo.cs rename to HMI/TestProject/Test_Port/Properties/AssemblyInfo.cs diff --git a/Cs_HMI/TestProject/Test_Port/Properties/Resources.Designer.cs b/HMI/TestProject/Test_Port/Properties/Resources.Designer.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Properties/Resources.Designer.cs rename to HMI/TestProject/Test_Port/Properties/Resources.Designer.cs diff --git a/HMI/TestProject/Test_Port/Properties/Resources.resx b/HMI/TestProject/Test_Port/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/HMI/TestProject/Test_Port/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Cs_HMI/TestProject/Test_Port/Properties/Settings.Designer.cs b/HMI/TestProject/Test_Port/Properties/Settings.Designer.cs similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Properties/Settings.Designer.cs rename to HMI/TestProject/Test_Port/Properties/Settings.Designer.cs diff --git a/HMI/TestProject/Test_Port/Properties/Settings.settings b/HMI/TestProject/Test_Port/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/HMI/TestProject/Test_Port/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Cs_HMI/TestProject/Test_Port/Test_Port.csproj b/HMI/TestProject/Test_Port/Test_Port.csproj similarity index 100% rename from Cs_HMI/TestProject/Test_Port/Test_Port.csproj rename to HMI/TestProject/Test_Port/Test_Port.csproj diff --git a/Cs_HMI/build.bat b/HMI/build.bat similarity index 100% rename from Cs_HMI/build.bat rename to HMI/build.bat diff --git a/Cs_HMI/docs/Buffer_In_Analysis.md b/HMI/docs/Buffer_In_Analysis.md similarity index 100% rename from Cs_HMI/docs/Buffer_In_Analysis.md rename to HMI/docs/Buffer_In_Analysis.md diff --git a/Cs_HMI/docs/Buffer_Out_Analysis.md b/HMI/docs/Buffer_Out_Analysis.md similarity index 100% rename from Cs_HMI/docs/Buffer_Out_Analysis.md rename to HMI/docs/Buffer_Out_Analysis.md diff --git a/Cs_HMI/docs/Charging_Sequence_Analysis.md b/HMI/docs/Charging_Sequence_Analysis.md similarity index 100% rename from Cs_HMI/docs/Charging_Sequence_Analysis.md rename to HMI/docs/Charging_Sequence_Analysis.md diff --git a/Cs_HMI/docs/Home_Move_Analysis.md b/HMI/docs/Home_Move_Analysis.md similarity index 100% rename from Cs_HMI/docs/Home_Move_Analysis.md rename to HMI/docs/Home_Move_Analysis.md diff --git a/Cs_HMI/docs/Predict_Function_Analysis.md b/HMI/docs/Predict_Function_Analysis.md similarity index 100% rename from Cs_HMI/docs/Predict_Function_Analysis.md rename to HMI/docs/Predict_Function_Analysis.md diff --git a/Cs_HMI/docs/경로예측테스트_20260122_142031.csv b/HMI/docs/경로예측테스트_20260122_142031.csv similarity index 100% rename from Cs_HMI/docs/경로예측테스트_20260122_142031.csv rename to HMI/docs/경로예측테스트_20260122_142031.csv diff --git a/Cs_HMI/docs/경로예측테스트_20260122_155746.csv b/HMI/docs/경로예측테스트_20260122_155746.csv similarity index 100% rename from Cs_HMI/docs/경로예측테스트_20260122_155746.csv rename to HMI/docs/경로예측테스트_20260122_155746.csv