initial commit

This commit is contained in:
chi
2025-01-07 16:08:02 +09:00
parent 9e657e2558
commit 0a93a54a6f
268 changed files with 50767 additions and 0 deletions

274
Cs_HMI/AGVCSharp.sln Normal file
View File

@@ -0,0 +1,274 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34714.143
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGV4", "Project\AGV4.csproj", "{65F3E762-800C-499E-862F-A535642EC59F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arControl", "SubProject\arCtl\arControl.csproj", "{F31C242C-1B15-4518-9733-48558499FE4B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sub", "Sub", "{C423C39A-44E7-4F09-B2F7-7943975FF948}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arFrameControl", "SubProject\arFrameControl\arFrameControl.csproj", "{A16C9667-5241-4313-888E-548375F85D29}"
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}") = "Test_NLRF100", "TestProject\Test_NLRF100\Test_NLRF100.csproj", "{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_PLC", "TestProject\Test_ProPLC\Test_PLC.csproj", "{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_BMS", "TestProject\Test_BMS\Test_BMS.csproj", "{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BMS", "SubProject\BMS\BMS.csproj", "{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWPatch", "SubProject\Patch\SWPatch.csproj", "{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Emulator", "Emulator\Emulator.csproj", "{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PLC.Net45", "SubProject\ProPLC\PLC.Net45.csproj", "{476C8E64-7B6B-4554-ACA2-04302715750F}"
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}") = "Test_Narumi", "TestProject\Test_Narumi\Test_Narumi.csproj", "{EB77976F-4DE4-46A5-8B25-D07226204C32}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSSQLCommand", "SubProject\MSSQLCommand\MSSQLCommand.csproj", "{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}"
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
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|x64.ActiveCfg = Debug|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|x64.Build.0 = Debug|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|x86.ActiveCfg = Debug|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Debug|x86.Build.0 = Debug|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Release|Any CPU.Build.0 = Release|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Release|x64.ActiveCfg = Release|Any CPU
{65F3E762-800C-499E-862F-A535642EC59F}.Release|x86.ActiveCfg = Release|x86
{65F3E762-800C-499E-862F-A535642EC59F}.Release|x86.Build.0 = Release|x86
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|x64.ActiveCfg = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|x64.Build.0 = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|Any CPU.Build.0 = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|x64.ActiveCfg = Release|Any CPU
{F31C242C-1B15-4518-9733-48558499FE4B}.Release|x86.ActiveCfg = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|x64.ActiveCfg = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|x64.Build.0 = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Debug|x86.ActiveCfg = Debug|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|Any CPU.Build.0 = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|x64.ActiveCfg = Release|Any CPU
{A16C9667-5241-4313-888E-548375F85D29}.Release|x86.ActiveCfg = Release|Any CPU
{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
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x64.ActiveCfg = Debug|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x64.Build.0 = Debug|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x86.ActiveCfg = Debug|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x86.Build.0 = Debug|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|Any CPU.Build.0 = Release|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|x64.ActiveCfg = Release|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|x64.Build.0 = Release|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|x86.ActiveCfg = Release|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|x86.Build.0 = Release|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x64.ActiveCfg = Debug|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x64.Build.0 = Debug|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x86.ActiveCfg = Debug|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x86.Build.0 = Debug|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|Any CPU.Build.0 = Release|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|x64.ActiveCfg = Release|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|x64.Build.0 = Release|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|x86.ActiveCfg = Release|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|x86.Build.0 = Release|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x64.ActiveCfg = Debug|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x64.Build.0 = Debug|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x86.ActiveCfg = Debug|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x86.Build.0 = Debug|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Release|Any CPU.Build.0 = Release|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Release|x64.ActiveCfg = Release|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Release|x64.Build.0 = Release|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Release|x86.ActiveCfg = Release|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Release|x86.Build.0 = Release|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Debug|x64.ActiveCfg = Debug|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Debug|x64.Build.0 = Debug|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Debug|x86.ActiveCfg = Debug|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Debug|x86.Build.0 = Debug|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|Any CPU.Build.0 = Release|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|x64.ActiveCfg = Release|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|x64.Build.0 = Release|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|x86.ActiveCfg = Release|Any CPU
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.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
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x64.ActiveCfg = Debug|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x64.Build.0 = Debug|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x86.ActiveCfg = Debug|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x86.Build.0 = Debug|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|Any CPU.Build.0 = Release|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x64.ActiveCfg = Release|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x64.Build.0 = Release|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x86.ActiveCfg = Release|Any CPU
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x86.Build.0 = Release|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x64.ActiveCfg = Debug|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x64.Build.0 = Debug|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x86.ActiveCfg = Debug|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x86.Build.0 = Debug|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Release|Any CPU.Build.0 = Release|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Release|x64.ActiveCfg = Release|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Release|x64.Build.0 = Release|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.Release|x86.ActiveCfg = Release|Any CPU
{476C8E64-7B6B-4554-ACA2-04302715750F}.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
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x64.ActiveCfg = Debug|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x64.Build.0 = Debug|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x86.ActiveCfg = Debug|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x86.Build.0 = Debug|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|Any CPU.Build.0 = Release|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|x64.ActiveCfg = Release|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|x64.Build.0 = Release|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|x86.ActiveCfg = Release|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|x86.Build.0 = Release|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x64.ActiveCfg = Debug|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x64.Build.0 = Debug|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x86.ActiveCfg = Debug|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x86.Build.0 = Debug|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Release|Any CPU.Build.0 = Release|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Release|x64.ActiveCfg = Release|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Release|x64.Build.0 = Release|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Release|x86.ActiveCfg = Release|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.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
{F31C242C-1B15-4518-9733-48558499FE4B} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{A16C9667-5241-4313-888E-548375F85D29} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{8CB883C0-99C3-4DD4-B017-F9B92010A806} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{00BBEF50-3899-4BF1-82E0-DF065CB2A88C} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}
{476C8E64-7B6B-4554-ACA2-04302715750F} = {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}
{EB77976F-4DE4-46A5-8B25-D07226204C32} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{14E8C9A5-013E-49BA-B435-FFFFFF7DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B5B1FD72-356F-4840-83E8-B070AC21C8D9}
EndGlobalSection
EndGlobal

BIN
Cs_HMI/DLL/ArLog.Net4.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

538
Cs_HMI/Project/AGV4.csproj Normal file
View File

@@ -0,0 +1,538 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{65F3E762-800C-499E-862F-A535642EC59F}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Project</RootNamespace>
<AssemblyName>Amkor</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<PublishUrl>게시\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<NoWin32Manifest>False</NoWin32Manifest>
<SignAssembly>False</SignAssembly>
<DelaySign>False</DelaySign>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<OutputPath>..\..\..\..\..\Amkor\AGV4\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<NoWarn>IDE1006</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\..\ManualMapEditor\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>icons8-split-64.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>false</GenerateManifests>
</PropertyGroup>
<PropertyGroup />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>..\..\..\..\Amkor\OTP2DReading\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<StartAction>Project</StartAction>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArLog.Net4, Version=19.7.18.1730, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DLL\ArLog.Net4.dll</HintPath>
</Reference>
<Reference Include="ArSetting.Net4, Version=19.7.3.2330, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DLL\ArSetting.Net4.dll</HintPath>
</Reference>
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
<HintPath>..\packages\Ionic.Zip.1.9.1.8\lib\Ionic.Zip.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Speech, Version=11.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Microsoft SDKs\Speech\v11.0\Assembly\Microsoft.Speech.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Management" />
<Reference Include="System.Web" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
<Reference Include="Winsock Orcas">
<HintPath>..\DLL\Winsock Orcas.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Class\EEMStatus.cs" />
<Compile Include="Class\Lang.cs" />
<Compile Include="CtlAuto.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="CtlAuto.Designer.cs">
<DependentUpon>CtlAuto.cs</DependentUpon>
</Compile>
<Compile Include="CtlPos.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="CtlPos.Designer.cs">
<DependentUpon>CtlPos.cs</DependentUpon>
</Compile>
<Compile Include="Class\CParser.cs" />
<Compile Include="Class\EnumData.cs" />
<Compile Include="Class\CResult.cs" />
<Compile Include="DataSet1.cs">
<DependentUpon>DataSet1.xsd</DependentUpon>
</Compile>
<Compile Include="DataSet1.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DataSet1.xsd</DependentUpon>
</Compile>
<Compile Include="Device\CFlag.cs" />
<Compile Include="Device\Xbee.cs" />
<Compile Include="Device\Socket.cs" />
<Compile Include="Dialog\fCounter.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fCounter.Designer.cs">
<DependentUpon>fCounter.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fUpdateForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fUpdateForm.Designer.cs">
<DependentUpon>fUpdateForm.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fLog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fLog.Designer.cs">
<DependentUpon>fLog.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fJobSelect.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fJobSelect.Designer.cs">
<DependentUpon>fJobSelect.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fSystem.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fSystem.Designer.cs">
<DependentUpon>fSystem.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\DriveDetector.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fVolume.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fVolume.Designer.cs">
<DependentUpon>fVolume.cs</DependentUpon>
</Compile>
<Compile Include="MessageWindow\fMessageWindow.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MessageWindow\fMessageWindow.Designer.cs">
<DependentUpon>fMessageWindow.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fTouchKey.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fTouchKey.Designer.cs">
<DependentUpon>fTouchKey.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fTouchKeyFull.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fTouchKeyFull.Designer.cs">
<DependentUpon>fTouchKeyFull.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fTouchNumDot.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fTouchNumDot.Designer.cs">
<DependentUpon>fTouchNumDot.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fPassword.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fPassword.Designer.cs">
<DependentUpon>fPassword.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fErrorException.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fErrorException.Designer.cs">
<DependentUpon>fErrorException.cs</DependentUpon>
</Compile>
<Compile Include="fMain.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="fMain.Designer.cs">
<DependentUpon>fMain.cs</DependentUpon>
</Compile>
<Compile Include="Manager\DataBaseManager.cs" />
<Compile Include="MessageWindow\MessageWindow.cs" />
<Compile Include="MessageWindow\CMessageData.cs" />
<Compile Include="MethodExtentions.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="PUB.cs" />
<Compile Include="CSetting.cs" />
<Compile Include="StateMachine\Display\GetErrorMessage.cs" />
<Compile Include="StateMachine\Step\_SM_RUN_CHGOFF.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_GOCHARGECHECK.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_GOCHARGE.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_READY.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_RESET.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_GOHOME.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_GOUP.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_GODOWN.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_SYNC.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_POSCHK.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN_INIT.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\_DIO.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\_Flag.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_STEP_CLOSE.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\_BMS.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\_AGV.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\_SPS.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\_Loop.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\Step\_SM_RUN.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\_TMDisplay.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="StateMachine\DisplayTextHandler.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Util.cs" />
<Compile Include="Util_FG.cs" />
<Compile Include="ViewForm\fBms.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ViewForm\fBms.Designer.cs">
<DependentUpon>fBms.cs</DependentUpon>
</Compile>
<Compile Include="ViewForm\fAuto.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ViewForm\fAuto.Designer.cs">
<DependentUpon>fAuto.cs</DependentUpon>
</Compile>
<Compile Include="ViewForm\fAgv.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ViewForm\fAgv.Designer.cs">
<DependentUpon>fAgv.cs</DependentUpon>
</Compile>
<Compile Include="ViewForm\fFlag.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ViewForm\fFlag.Designer.cs">
<DependentUpon>fFlag.cs</DependentUpon>
</Compile>
<Compile Include="ViewForm\fIO.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ViewForm\fIO.Designer.cs">
<DependentUpon>fIO.cs</DependentUpon>
</Compile>
<Compile Include="fSetup.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="fSetup.Designer.cs">
<DependentUpon>fSetup.cs</DependentUpon>
</Compile>
<Compile Include="ViewForm\fManual.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ViewForm\fManual.Designer.cs">
<DependentUpon>fManual.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="Dialog\fCounter.resx">
<DependentUpon>fCounter.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fUpdateForm.resx">
<DependentUpon>fUpdateForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fLog.resx">
<DependentUpon>fLog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fJobSelect.resx">
<DependentUpon>fJobSelect.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fSystem.resx">
<DependentUpon>fSystem.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fVolume.resx">
<DependentUpon>fVolume.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MessageWindow\fMessageWindow.resx">
<DependentUpon>fMessageWindow.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fTouchKey.resx">
<DependentUpon>fTouchKey.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fTouchKeyFull.resx">
<DependentUpon>fTouchKeyFull.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fTouchNumDot.resx">
<DependentUpon>fTouchNumDot.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fPassword.resx">
<DependentUpon>fPassword.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fErrorException.resx">
<DependentUpon>fErrorException.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="fMain.resx">
<DependentUpon>fMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="ViewForm\fBms.resx">
<DependentUpon>fBms.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ViewForm\fAuto.resx">
<DependentUpon>fAuto.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ViewForm\fAgv.resx">
<DependentUpon>fAgv.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ViewForm\fFlag.resx">
<DependentUpon>fFlag.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ViewForm\fIO.resx">
<DependentUpon>fIO.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="fSetup.resx">
<DependentUpon>fSetup.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="ViewForm\fManual.resx">
<DependentUpon>fManual.cs</DependentUpon>
</EmbeddedResource>
<None Include="app.config" />
<None Include="DataSet1.xsc">
<DependentUpon>DataSet1.xsd</DependentUpon>
</None>
<None Include="DataSet1.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DataSet1.Designer.cs</LastGenOutput>
</None>
<None Include="DataSet1.xss">
<DependentUpon>DataSet1.xsd</DependentUpon>
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<Content Include="ReadMe.txt" />
<Content Include="icons8-layers-30.ico" />
<Content Include="icons8-split-64.ico" />
<None Include="Resources\ChargeH.png" />
<None Include="Resources\icons8-charge-empty-battery-96.png" />
<None Include="Resources\icons8-automatic-gearbox-warning-80.png" />
<None Include="Resources\icons8-speed-80.png" />
<None Include="Resources\icons8-charged-battery-80.png" />
<None Include="Resources\icons8-checked-radio-button-48.png" />
<None Include="Resources\icons8-save-40.png" />
<None Include="Resources\icons8-unavailable-40.png" />
<None Include="Resources\icons8-new-40.png" />
<None Include="Resources\icons8-running-40.png" />
<None Include="Resources\icons8-no-running-40.png" />
<None Include="Resources\icons8-exercise-40.png" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4%28x86 및 x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.4.5">
<Visible>False</Visible>
<ProductName>Windows Installer 4.5</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SubProject\AGVControl\agvControl.csproj">
<Project>{8cb883c0-99c3-4dd4-b017-f9b92010a806}</Project>
<Name>agvControl</Name>
</ProjectReference>
<ProjectReference Include="..\SubProject\AGV\NARUMI.csproj">
<Project>{8bae0eac-3d25-402f-9a65-2ba1ecfe28b7}</Project>
<Name>NARUMI</Name>
</ProjectReference>
<ProjectReference Include="..\SubProject\BMS\BMS.csproj">
<Project>{7a94c30c-6772-4f71-bf9c-0df071a1bc70}</Project>
<Name>BMS</Name>
</ProjectReference>
<ProjectReference Include="..\StateMachine\StateMachine.csproj">
<Project>{bbc9bccf-6262-4355-9cc2-37ff678ac499}</Project>
<Name>StateMachine</Name>
</ProjectReference>
<ProjectReference Include="..\SubProject\arCtl\arControl.csproj">
<Project>{f31c242c-1b15-4518-9733-48558499fe4b}</Project>
<Name>arControl</Name>
</ProjectReference>
<ProjectReference Include="..\SubProject\arFrameControl\arFrameControl.csproj">
<Project>{a16c9667-5241-4313-888e-548375f85d29}</Project>
<Name>arFrameControl</Name>
</ProjectReference>
<ProjectReference Include="..\SubProject\CommData\CommData.csproj">
<Project>{14e8c9a5-013e-49ba-b435-efefc77dd623}</Project>
<Name>CommData</Name>
</ProjectReference>
<ProjectReference Include="..\SubProject\CommUtil\arCommUtil.csproj">
<Project>{14e8c9a5-013e-49ba-b435-ffffff7dd623}</Project>
<Name>arCommUtil</Name>
</ProjectReference>
<ProjectReference Include="..\SubProject\ProPLC\PLC.Net45.csproj">
<Project>{476c8e64-7b6b-4554-aca2-04302715750f}</Project>
<Name>PLC.Net45</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>rem xcopy "$(TargetDir)*.exe" "\\192.168.1.80\Amkor\AGV2" /Y
rem xcopy "$(TargetDir)*.dll" "\\192.168.1.80\Amkor\AGV2" /Y</PostBuildEvent>
</PropertyGroup>
</Project>

580
Cs_HMI/Project/CSetting.cs Normal file
View File

@@ -0,0 +1,580 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Drawing.Design;
using System.Management;
using System.Runtime.CompilerServices;
using System.Security.RightsManagement;
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<ManagementBaseObject>().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 : arUtil.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"
[Category("Commnunication Setting"), DisplayName("XBee PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Port_XBE { get; set; }
[Category("Commnunication Setting"), DisplayName("RFID PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Port_AGV { get; set; }
[Category("Commnunication Setting"), DisplayName("PLC #1 PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Port_PLC { get; set; }
[Category("Commnunication Setting"), DisplayName("BMS PortName"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))]
public string Port_BAT { get; set; }
public int ChargerID { get; set; }
public int Baud_AGV { get; set; }
public int Baud_BAT { get; set; }
public int Baud_PLC { get; set; }
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; }
[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 "TAGS"
public int TAGPOT { get; set; }
public int TAGNOT { get; set; }
public int TAG_F2_F3 { get; set; }
public int TAG_QC_F1 { get; set; }
public int TAG_F1_F2 { get; set; }
public int TAG_F3_F4 { get; set; }
public int TAG_F4_F5 { get; set; }
public int TAG_QA_QC { get; set; }
public int TAGQAB { get; set; }
public int TAGQAA { get; set; }
public int TAGQCB { get; set; }
public int TAGQCA { get; set; }
public int TAGF1A { get; set; }
public int TAGF2A { get; set; }
public int TAGF3A { get; set; }
public int TAGF4A { get; set; }
public int TAGF5A { get; set; }
public int TAGF1B { get; set; }
public int TAGF2B { get; set; }
public int TAGF3B { get; set; }
public int TAGF4B { get; set; }
public int TAGF5B { get; set; }
#endregion
#region "Charge"
public int chargerpos { get; set; }
public int ChargetWaitSec { get; set; }
public int ChargeEmergencyLevel { get; set; }
public int ChargeMaxLevel { get; set; }
public int ChargeStartLevel { get; set; }
public Boolean Enable_AutoCharge { get; set; }
public int ChargeRetryTerm { get; set; }
//public int ChargeIdleInterval { get; set; }
public int ChargeMaxTime { get; set; }
public int ChargeSearchTime { get; set; }
#endregion
#region "AGV"
public bool AutoModeOffAndClearPosition { get; set; }
public string musicfile { get; set; }
/// <summary>
/// FVI로 가능 방향이 Backward 인가?
/// Forward 방향이라면 false 를 한다
/// </summary>
public Boolean AGV_Direction_FVI_Backward { get; set; }
public Boolean Enable_Speak { get; set; }
//public Boolean Disable_BMS { get; set; }
//public Boolean Log_BMS_Tx { get; set; }
//public Boolean Log_BMS_Rx { get; set; }
//public double ChargeLimitLow { get; set; }
//public double ChargeLimitHigh { get; set; }
public string AGV_PANID { get; set; }
public string AGV_CHANNEL { get; set; }
public string AGV_ADDRESS { get; set; }
public int SCK { get; set; }
public int SSK { get; set; }
public int STT { get; set; }
public int SAD { get; set; }
public byte ZSpeed { get; set; }
public int SPD_L { get; set; }
public int SPD_M { get; set; }
public int SPD_H { get; set; }
public int SPD_DRIVE { get; set; }
public int SPD_S { get; set; }
public int SPD_R { get; set; }
public int PID_PH { get; set; }
public int PID_PM { get; set; }
public int PID_PL { get; set; }
public int PID_IH { get; set; }
public int PID_IM { get; set; }
public int PID_IL { get; set; }
public int PID_DH { get; set; }
public int PID_DM { get; set; }
public int PID_DL { get; set; }
public int PID_PS { get; set; }
public int PID_IS { get; set; }
public int PID_DS { get; set; }
public double WheelSpeedCharge { get; set; }
//public byte MotorUpTime { get; set; }
//public double AlignSensorThreshold { get; set; }
// public byte BalanceThreshold { get; set; }
// public byte BalanceThresholdUp { get; set; }
// public byte MarkSensorThreshold { get; set; }
//public Boolean Opt_LidarStop { get; set; }
//public Boolean Opt_SlowUp { get; set; }
//public Boolean Opt_Magnet { get; set; }
public byte HomePositionValue { get; set; }
public byte HomeKitNo { get; set; }
//public Single interval_bms { get; set; }
public Single interval_xbe { get; set; }
public int interval_bms { get; set; }
public byte interval_iostate { get; set; }
//public Boolean Enable_AutoZDnUp { get; set; }
public int doorSoundTerm { get; set; }
public int musicvol { get; set; }
public bool Enable_Music { get; set; }
#endregion
[Category("Report"),
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 (SAD == 0) SAD = 999;
if (TAGF1A == 0)
{
TAGNOT = 9000;
TAGQAB = 9200;
TAGQCB = 9300;
TAGF1B = 9400;
TAGF2B = 9500;
TAGF3B = 9600;
TAGF4B = 9700;
TAGF5B = 9800;
TAGQAA = 9201;
TAGQCA = 9301;
TAGF1A = 9401;
TAGF2A = 9501;
TAGF3A = 9601;
TAGF4A = 9701;
TAGF5A = 9801;
TAGPOT = 9900;
TAG_QA_QC = 9250;
TAG_QC_F1 = 9350;
TAG_F1_F2 = 9450;
TAG_F2_F3 = 9550;
TAG_F3_F4 = 9650;
TAG_F4_F5 = 9750;
}
if(TAG_F4_F5 == 0)
{
TAG_F4_F5 = 9750;
TAGF5B = 9800;
TAGF5A = 9801;
}
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 = 1000;
//충전은 대기상태 5분이 경과하면 진행한다
//충전은 10분간격으로 재시도 한다
if (ChargeRetryTerm == 0) ChargeRetryTerm = 600;
if (doorSoundTerm == 0) doorSoundTerm = 15; //기본 15초
if (ChargeSearchTime == 0) ChargeSearchTime = 25;
//최대 충전진행 시간(기본 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 : arUtil.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(); } }
//}
/// <summary>
/// 상차수량(FVI 1+2+3+4)
/// </summary>
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(); } }
}
/// <summary>
/// 하차수량(QC+QA)
/// </summary>
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 = Util.CurrentPath + "counter.xml";
}
public override void AfterLoad()
{
if (CountReset == null) CountReset = DateTime.Parse("1982-11-23");
}
public override void AfterSave()
{
//throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +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 "";
// }
// }
//}

View File

@@ -0,0 +1,236 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
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;
//public event EventHandler SMSG_Update;
//public void UpdateStatusMessage()
//{
// SMSG_Update?.Invoke(null, null);
//}
/// <summary>
/// 작업시작시간
/// </summary>
public DateTime JobStartTime;
/// <summary>
/// 작업종료시간
/// </summary>
public DateTime JobEndTime;
//public DateTime IdleStartTime = DateTime.Parse("1982-11-23");
/// <summary>
/// 작업진행시간
/// </summary>
public TimeSpan JobRunTime
{
get
{
if (JobStartTime.Year == 1982) return new TimeSpan(0);
if (JobEndTime.Year == 1982) return DateTime.Now - JobStartTime;
else return JobEndTime - JobStartTime;
}
}
//public DateTime ChargeStartTime = DateTime.Parse("1982-11-23");
#region "AGV Status Value"
public string PLC1_RawData { get; set; }
public string PLC2_RawData { get; set; }
#endregion
/// <summary>
/// 이동대상위치(상차,하차,충전)
/// </summary>
private ePosition _targetPos = ePosition.NONE;
public event EventHandler TargetPosSet;
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;
//public DateTime LastChar
//geTime = DateTime.Parse("1982-11-23");
public ePosition NextPos = ePosition.NONE;
public ePosition TargetPos
{
get
{
return _targetPos;
}
set
{
_targetPos = value;
TargetPosSet?.Invoke(this, null);
PUB.log.Add(string.Format("대상위치설정:{0}", value));
}
}
private char _comandKit { get; set; }
public char CommandKit
{
get
{
return _comandKit;
}
set
{
_comandKit = value;
PUB.log.Add(string.Format("명령을 내린 KIT 설정 No={0}", value));
}
}
//private ePosition _currentPos = ePosition.NONE;
//public ePosition CurrentPos
//{
// get
// {
// return _currentPos;
// }
// set
// {
// if (_currentPos != value) //값이바뀔떄만 메세지 220628
// PUB.log.Add(string.Format("현재위치 설정:{0}->{1}", _currentPos, value));
// _currentPos = value;
// }
//}
private ePosition _currentpos = ePosition.NONE;
private string _currentposcw = string.Empty;
// public ePosition LastPos = ePosition.NONE;
public string LastTAG { get; set; } = string.Empty;
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;
}
}
public string Memo;
public eResult ResultCode { get; set; }
public eECode ResultErrorCode;
public string ResultMessage { get; set; }
#region "SetResultMessage"
public void SetResultMessage(eResult code, eECode err, eNextStep systempause, params object[] args)
{
var rltMsg = UTIL.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 = UTIL.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 Boolean isError { get; set; }
public int retry = 0;
public DateTime retryTime;
public Device.Socket.Message RecvMessage;
public CResult()
{
this.Clear();
}
public void Clear()
{
JobStartTime = DateTime.Parse("1982-11-23");
JobEndTime = DateTime.Parse("1982-11-23");
Memo = string.Empty;
isError = false;
ResultCode = eResult.NoError;
ResultMessage = string.Empty;
}
}
}

View File

@@ -0,0 +1,379 @@
using Project;
using Project.Device;
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;
using static Project.StateMachine;
/// <summary>
/// ============================================================================
/// 장비기술 상태 모니터링 관련 클래스
/// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다.
/// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다.
/// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다.
/// ============================================================================
/// 작성자 : chi
/// 작성일 : 202-06-15
/// GIT : (none)
/// </summary>
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;
/// <summary>
/// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다.
/// </summary>
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;
}
}
/// <summary>
/// 현재 시스템의 IP/MAC정보를 취득합니다.
/// </summary>
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 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;
}
}
}
/// <summary>
/// 상태모니터링 프로그램의 실행파일 명
/// </summary>
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;
}
/// <summary>
/// 작업수량을 입력합니다
/// </summary>
/// <param name="cnt"></param>
/// <returns></returns>
public static string AddStatusCount(int cnt, string remark = "")
{
if (remark.isEmpty()) remark = $"Count Set : {cnt}";
return AddStatusSQL(PUB.sm.Step, remark, count: cnt);
}
/// <summary>
/// 상태메세지를 status 폴더에 기록합니다.
/// </summary>
/// <param name="status">상태머신의 상태값</param>
/// <param name="remark">비고</param>
/// <param name="wdate">기록일시</param>
/// <returns>오류발생시 오류메세지가 반환 됩니다</returns>
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
*/

View File

@@ -0,0 +1,108 @@
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,
}
}

View File

@@ -0,0 +1,75 @@
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 { get { return string.Format("{0} 작업을 시작 합니다",); } }
public static string { get { return string.Format("{0} 작업을 시작 합니다", ); } }
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 = "충전이 필요 합니다";
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 QC이동버튼은상하차에서만사용가능합니다 = "QC이동 버튼은 상,하차 에서만 사용 가능합니다";
public static string QA이동버튼은상하차에서만사용가능합니다 = "QA이동 버튼은 상,하차 에서만 사용 가능합니다";
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}",); } }
}
}

36
Cs_HMI/Project/CtlAuto.Designer.cs generated Normal file
View File

@@ -0,0 +1,36 @@
namespace Project
{
partial class CtlAuto
{
/// <summary>
/// 필수 디자이너 변수입니다.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 사용 중인 모든 리소스를 정리합니다.
/// </summary>
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 디자이너 지원에 필요한 메서드입니다.
/// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}

1096
Cs_HMI/Project/CtlAuto.cs Normal file

File diff suppressed because it is too large Load Diff

36
Cs_HMI/Project/CtlPos.Designer.cs generated Normal file
View File

@@ -0,0 +1,36 @@
namespace Project
{
partial class CtlPos
{
/// <summary>
/// 필수 디자이너 변수입니다.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 사용 중인 모든 리소스를 정리합니다.
/// </summary>
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 디자이너 지원에 필요한 메서드입니다.
/// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
}
#endregion
}
}

586
Cs_HMI/Project/CtlPos.cs Normal file
View File

@@ -0,0 +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
{
/// <summary>
/// 2017-04-13 13:26:00 : 라벨이므로 커서 IN 시 Hand 에서 Default로 변경함
/// </summary>
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<ItemClickEventArgs> 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();
//}
/// <summary>
/// 지정한 개체를 선택합니다.
/// </summary>
/// <param name="idx"></param>
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;
}
/// <summary>
/// 활성화된 위치를 모두 초기화 한다
/// </summary>
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;
}
/// <summary>
/// 지정한 개체의 left,right 값을 바꿉니다 .rfid값이 변경되었을때 처리합니다. dir=0이면 왼쪽이 켜집니다)
/// </summary>
/// <param name="idx"></param>
/// <param name="dir"></param>
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();
}
}
}

1390
Cs_HMI/Project/DataSet1.Designer.cs generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
namespace Project
{
public partial class DataSet1
{
partial class ModelDataTable
{
}
}
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DataSet1" targetNamespace="http://tempuri.org/DataSet1.xsd" xmlns:mstns="http://tempuri.org/DataSet1.xsd" xmlns="http://tempuri.org/DataSet1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DataSet1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DataSet1" msprop:Generator_UserDSName="DataSet1">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="ResultData" msprop:Generator_TableClassName="ResultDataDataTable" msprop:Generator_TableVarName="tableResultData" msprop:Generator_TablePropName="ResultData" msprop:Generator_RowDeletingName="ResultDataRowDeleting" msprop:Generator_RowChangingName="ResultDataRowChanging" msprop:Generator_RowEvHandlerName="ResultDataRowChangeEventHandler" msprop:Generator_RowDeletedName="ResultDataRowDeleted" msprop:Generator_UserTableName="ResultData" msprop:Generator_RowChangedName="ResultDataRowChanged" msprop:Generator_RowEvArgName="ResultDataRowChangeEvent" msprop:Generator_RowClassName="ResultDataRow">
<xs:complexType>
<xs:sequence>
<xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
<xs:element name="info_job" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="info_job" msprop:Generator_ColumnVarNameInTable="columninfo_job" msprop:Generator_ColumnPropNameInTable="info_jobColumn" msprop:Generator_UserColumnName="info_job" type="xs:string" minOccurs="0" />
<xs:element name="info_start" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="info_start" msprop:Generator_ColumnVarNameInTable="columninfo_start" msprop:Generator_ColumnPropNameInTable="info_startColumn" msprop:Generator_UserColumnName="info_start" type="xs:string" minOccurs="0" />
<xs:element name="info_end" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="info_end" msprop:Generator_ColumnVarNameInTable="columninfo_end" msprop:Generator_ColumnPropNameInTable="info_endColumn" msprop:Generator_UserColumnName="info_end" type="xs:string" minOccurs="0" />
<xs:element name="info_result" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="info_result" msprop:Generator_ColumnVarNameInTable="columninfo_result" msprop:Generator_ColumnPropNameInTable="info_resultColumn" msprop:Generator_UserColumnName="info_result" type="xs:string" minOccurs="0" />
<xs:element name="info_iserror" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="info_iserror" msprop:Generator_ColumnVarNameInTable="columninfo_iserror" msprop:Generator_ColumnPropNameInTable="info_iserrorColumn" msprop:Generator_UserColumnName="info_iserror" type="xs:string" minOccurs="0" />
<xs:element name="info_resultcode" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="info_resultcode" msprop:Generator_ColumnVarNameInTable="columninfo_resultcode" msprop:Generator_ColumnPropNameInTable="info_resultcodeColumn" msprop:Generator_UserColumnName="info_resultcode" type="xs:string" minOccurs="0" />
<xs:element name="info_filename" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="info_filename" msprop:Generator_ColumnVarNameInTable="columninfo_filename" msprop:Generator_ColumnPropNameInTable="info_filenameColumn" msprop:Generator_UserColumnName="info_filename" type="xs:string" minOccurs="0" />
<xs:element name="time_start" msprop:Generator_ColumnVarNameInTable="columntime_start" msprop:Generator_ColumnPropNameInRow="time_start" msprop:Generator_ColumnPropNameInTable="time_startColumn" msprop:Generator_UserColumnName="time_start" type="xs:dateTime" minOccurs="0" />
<xs:element name="time_end" msprop:Generator_ColumnVarNameInTable="columntime_end" msprop:Generator_ColumnPropNameInRow="time_end" msprop:Generator_ColumnPropNameInTable="time_endColumn" msprop:Generator_UserColumnName="time_end" type="xs:dateTime" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="language" msprop:Generator_TableClassName="languageDataTable" msprop:Generator_TableVarName="tablelanguage" msprop:Generator_RowChangedName="languageRowChanged" msprop:Generator_TablePropName="language" msprop:Generator_RowDeletingName="languageRowDeleting" msprop:Generator_RowChangingName="languageRowChanging" msprop:Generator_RowEvHandlerName="languageRowChangeEventHandler" msprop:Generator_RowDeletedName="languageRowDeleted" msprop:Generator_RowClassName="languageRow" msprop:Generator_UserTableName="language" msprop:Generator_RowEvArgName="languageRowChangeEvent">
<xs:complexType>
<xs:sequence>
<xs:element name="Section" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Section" msprop:Generator_ColumnVarNameInTable="columnSection" msprop:Generator_ColumnPropNameInTable="SectionColumn" msprop:Generator_UserColumnName="Section" type="xs:string" />
<xs:element name="Key" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Key" msprop:Generator_ColumnVarNameInTable="columnKey" msprop:Generator_ColumnPropNameInTable="KeyColumn" msprop:Generator_UserColumnName="Key" type="xs:string" />
<xs:element name="Value" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="Value" msprop:Generator_ColumnVarNameInTable="columnValue" msprop:Generator_ColumnPropNameInTable="ValueColumn" msprop:Generator_UserColumnName="Value" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint11">
<xs:selector xpath=".//mstns:ResultData" />
<xs:field xpath="mstns:idx" />
</xs:unique>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:language" />
<xs:field xpath="mstns:Key" />
<xs:field xpath="mstns:Section" />
</xs:unique>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="81" ViewPortY="1" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:ResultData" ZOrder="2" X="604" Y="12" Height="219" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="215" />
<Shape ID="DesignTable:language" ZOrder="1" X="770" Y="11" Height="657" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="653" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -0,0 +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);
}
}
}

View File

@@ -0,0 +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<SocketMessageEventArgs> RecvMessage;
public event EventHandler<SocketMessageEventArgs> SendMessage;
public event EventHandler<MesasgeEventArgs> 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;
}
/// <summary>
/// Body문자열을 구분자를 기준으로 한 배열로 반환 함
/// </summary>
/// <param name="bodyMessage"></param>
/// <returns></returns>
public string[] getBodyArray(string bodyMessage)
{
return bodyMessage.Split(sepBody);
}
/// <summary>
/// 패킷의 내용을 메세지로 분리한다.
/// </summary>
/// <param name="PacketMessage"></param>
/// <returns></returns>
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<String>();
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;
}
}
}
}

View File

@@ -0,0 +1,400 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Threading;
using COMM;
using System.Runtime.Remoting.Messaging;
namespace Project.Device
{
public class Xbee : arDev.arRS232
{
public Xbee()
{
}
public string buffer = string.Empty;
public System.Text.StringBuilder newbuffer = new StringBuilder();
protected override bool CustomParser(byte[] buf, out byte[] remainBuffer)
{
//일반 kit 명령은 0x02 kit번호, kit값 0x03
//상태 명령은 0x04 메세지데이터 0x05
Console.WriteLine("custom parse len=" + buf.Length.ToString());
List<byte> sparebuffer = new List<byte>();
Boolean bComplete = false;
for (int i = 0; i < buf.Length; i++)
{
var incomByte = buf[i];
if (bComplete == true) sparebuffer.Add(incomByte);
else
{
if (findSTX == false)
{
if (incomByte != 0x02)
{
//버리는데이터
}
else
{
findSTX = true;
tempBuffer.Clear();
tempBuffer.Add(incomByte);
}
}
else
{
tempBuffer.Add(incomByte);
if (incomByte == 0x03)
{
//데이터가 맞게 수신됨
LastReceiveBuffer = tempBuffer.ToArray();
bComplete = true;
findSTX = false;
}
else if (tempBuffer.Count > 30)
{
tempBuffer.Clear();
findSTX = false;
}
}
}
}
remainBuffer = sparebuffer.ToArray();
return bComplete;
}
public override bool ProcessRecvData(byte[] data)
{
var kitno = (char)(data[1]);
var kitval = (char)(data[2]);
NewMsgEvent(kitno, kitval);
return true;
}
public void NewMsgEvent(char kitNo, char kitVal)
{
//대상위치 확인
ePosition kitPos = ePosition.NONE;
if (kitNo == '9') kitPos = ePosition.QC;
else if (kitNo == '1') kitPos = ePosition.F1;
else if (kitNo == '2') kitPos = ePosition.F2;
else if (kitNo == '3') kitPos = ePosition.F3;
else if (kitNo == '4') kitPos = ePosition.F4;
else
{
if (kitNo == '0') return;
PUB.log.Add($"비허가 키트번호 무시 번호={kitNo},값={kitVal}");
return;
}
//if (kitNo= 'F')
//{
// PUB.Speak("알 수 없는 키트번호 입니다");
// PUB.logsys.Add($"키트번호별위치확인실패 값={kitNo}");
// return;
//}
//(ePosition)int.Parse(kitNo.ToString());
PUB.logcal.Add(string.Format("Xbee:newMsgEvent:{0},{1}=>{2}", kitNo, kitVal, kitPos));
if (PUB.CheckManualChargeMode() == false)
{
PUB.log.Add($"수동 충전 중이라 콜 기능을 취소 합니다");
return;
}
bool FixButton = kitPos == ePosition.NONE;
if (kitPos == ePosition.NONE)
{
if (kitVal == '1') kitPos = ePosition.QC;
else if (kitVal == '2') kitPos = ePosition.CHARGE;
else if (kitVal == '4') kitPos = ePosition.QC;
//else if (kitVal == '3') kitPos = ePosition.QA;
else
{
PUB.log.Add($"AGV버튼 이벤트 실행 값:{kitVal} 취소");
return;
}
kitVal = '1'; //버튼은 무조건 ON상태로 한다
}
//자동상태가 아니라면 오류처리
if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false || PUB.sm.Step != StateMachine.eSMStep.RUN)
{
PUB.log.AddE("'자동실행' 상태가 아니므로 콜/취소 작업을 할 수 없습니다 콜:" + kitPos.ToString() + ",값=" + kitVal.ToString());
PUB.Speak(Lang.);
return;
}
//충전기를 제외하고 '1'의 값은 호출을 원하는값이다.('0'=취소)
if (kitVal == '1')
{
//qA혹은 Pack 에서 해당 버튼을 눌렀을때의 처리방법
//if (PUB.Result.CurrentPos == ePosition.QA && kitPos == ePosition.QA)
//{
// PUB.logsys.AddE("QA위치에서 QA버튼을 눌렀음 명령 취소함");
// PUB.Speak("현재 위치는 QA 입니다.");
// return;
//}
//상/하차 작업중이 아니라면 콜을 받는다
if (PUB.sm.RunStep != StateMachine.ERunStep.GOUP && PUB.sm.RunStep != StateMachine.ERunStep.GODOWN)
{
//call을 받으려면 대상위 (2=QC,3,4,5,6,7)
//콜을 요청하는 곳 (2=QC,3=FVI-1,4,5,6,7==FVI-5)
//1번은 충전기
//콜버튼으로 대상위치를 다시 결정한다.
//대상번호는 콜번호에서 +2을 하면 된다.
//대상번호 PK=1,QA2=2,QA1=3,QC=4
//QC의경우 콜Kit번호는 2이므로, 이동대상은 +2인 4가 되어야 함
//콜번호와 RFID대상번호는 2의 오차가 발생함, 현재 설치된 RFID를 모두 변경할 수 없어서 이렇게 운용함
RaiseMessage(MessageType.Normal, string.Format("CALL확정 Kit={0},대상위치={1}", kitNo, kitPos));
PUB.AGV.data.CallNo = int.Parse(kitNo.ToString());
PUB.AGV.data.CallString = kitNo.ToString();
PUB.Result.CommandKit = kitNo;
PUB.Result.TargetPos = kitPos;
SendToKit(kitNo, '1', (PUB.IsCanCALL() ? '1' : '0')); //콜확정을 클라이언트에 알림
PUB.Speak(kitPos.ToString() + Lang.);
//상태머신을 변경한다 (충전 OFF상태로 간다, 충전상태가 아니면 바로 이동하게됨)
//Pub.sm.ResetRunStep();
//Pub.sm.setNewStep(StateMachine.eSMStep.RUN);
//qa, pack 은 하차 전용이다
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(StateMachine.ERunStep.GOUP);
PUB.sm.SetNewStep(StateMachine.eSMStep.RUN);
}
else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN && VAR.BOOL[eVarBool.WAIT_COVER_DOWN] == false && VAR.BOOL[eVarBool.WAIT_COVER_UP] == false)
{
//하차중에 받을 수 있게하자 (단 FVi1 이하일때에는 무시하자) 230710 - 김수곤
if (PUB.Result.TargetPos == ePosition.QC && PUB.Result.CurrentPos < ePosition.F1)
{
PUB.log.Add($"하차중이지만 FVI #1 아래에 있으니 콜을 취소 합니다");
SendToKit(kitNo, '0', '0');
RaiseMessage(MessageType.Normal, $"QC 추가 콜이지만 위치가 #1번 이하이므로 취소 됩니다. Kit={kitNo},현재={PUB.Result.CurrentPos},대상={PUB.Result.TargetPos}");
}
else
{
RaiseMessage(MessageType.Normal, string.Format("CALL확정(추가) Kit={0},대상위치={1}", kitNo, kitPos));
PUB.AGV.data.CallNo = int.Parse(kitNo.ToString());
PUB.AGV.data.CallString = kitNo.ToString();
PUB.Result.CommandKit = kitNo;
PUB.Result.TargetPos = kitPos;
SendToKit(kitNo, '1', (PUB.IsCanCALL() ? '1' : '0')); //콜확정을 클라이언트에 알림
PUB.Speak(kitPos.ToString() + Lang.);
//상태머신을 변경한다 (충전 OFF상태로 간다, 충전상태가 아니면 바로 이동하게됨)
//Pub.sm.ResetRunStep();
//Pub.sm.setNewStep(StateMachine.eSMStep.RUN);
//qa, pack 은 하차 전용이다
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(StateMachine.ERunStep.GOUP);
PUB.sm.SetNewStep(StateMachine.eSMStep.RUN);
}
}
//else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN && PUB.Result.CurrentPos == ePosition.QA)
//{
// RaiseMessage(MessageType.Normal, string.Format("CALL확정 Kit={0},대상위치={1}", kitNo, kitPos));
// PUB.Result.CommandKit = kitNo;
// PUB.Result.TargetPos = kitPos;
// SendToKit(kitNo, '1'); //콜확정을 클라이언트에 알림
// PUB.Speak(kitPos.ToString() + "위치로 이동 합니다");
// //상태머신을 변경한다 (충전 OFF상태로 간다, 충전상태가 아니면 바로 이동하게됨)
// // Pub.sm.ResetRunStep();
// // Pub.sm.setNewStep(StateMachine.eSMStep.RUN);
// //qa => pack 은 하차 전용이다
// //QA에서 PACK이동시에는 바로 N극 멈춤 기능을 사용해도도된다.(자재가 있으며, 커버가 내려가 있으므로 느리게 동작해야함)
// PUB.sm.ClearRunStep();
// PUB.sm.SetNewRunStep(StateMachine.ERunStep.GODOWN);
// PUB.sm.SetNewStep(StateMachine.ESMStep.RUN);
// PUB.AGV.AGVMoveStop("xbee_newmsgevent", arDev.Narumi.eStopOpt.MarkStop);// (arDev.Narumi.eAgvCmd.MoveStop,.SetNextStop_Mark(true, "xbee godn,qa,pack");
// PUB.PLC.ZMot(arDev.FakePLC.ZMotDirection.Up);
//}
else if (PUB.Result.TargetPos == kitPos) ////현재 지정된 클라이언트가 또 눌렀다
{
PUB.Result.TargetPos = kitPos;
PUB.AGV.data.CallNo = int.Parse(kitNo.ToString());
PUB.AGV.data.CallString = kitNo.ToString();
//상차 대기 중이라면 커버를 자동 올려준다
//이것은 QC만 가능하다
//QC가 QA혹은 PACK으로 보낼때 사용함
if (kitPos == ePosition.QC &&
VAR.BOOL[eVarBool.FLAG_LIMITLOW] == true)
{
RaiseMessage(MessageType.Normal, "QC위치에서 자동으로 커버를 올립니다");
PUB.PLC.ZMot(arDev.FakePLC.ZMotDirection.Up);
}
else
{
//커버대기상태라면 커버를 자동으로 처리해준다.
if (PUB.sm.Step == StateMachine.eSMStep.RUN && (PUB.sm.RunStep == StateMachine.ERunStep.GOUP || PUB.sm.RunStep == StateMachine.ERunStep.GODOWN))
{
if (VAR.BOOL[eVarBool.WAIT_COVER_DOWN] == true)
{
var ld = PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD);
var rd = PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD);
if (ld == false || rd == false)
{
PUB.log.Add("사용자 콜버튼 추가 동작 - Z내림");
PUB.PLC.ZMot(arDev.FakePLC.ZMotDirection.Down);
PUB.Speak(Lang.);
}
}
else if (VAR.BOOL[eVarBool.WAIT_COVER_UP] == true)
{
var lu = PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU);
var ru = PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU);
if (lu == false || ru == false)
{
PUB.PLC.ZMot(arDev.FakePLC.ZMotDirection.Up);
PUB.log.Add("사용자 콜버튼 추가 동작 - Z올림");
PUB.Speak(Lang.);
}
}
else RaiseMessage(MessageType.Normal, string.Format("이미 CALL이 확정되었습니다 No={0},Pos={1}", kitNo, kitPos));
}
else RaiseMessage(MessageType.Normal, string.Format("이미 CALL이 확정되었습니다 No={0},Pos={1}", kitNo, kitPos));
}
SendToKit(kitNo, '1', (PUB.IsCanCALL() ? '1' : '0')); //콜확정을 클라이언트에 알림
}
else
{
//다른대상이 이미 선택된 상태이므로 CANCEL 한다.
SendToKit(kitNo, '0', (PUB.IsCanCALL() ? '1' : '0'));
RaiseMessage(MessageType.Normal, string.Format("다른 CALL이 확정된 상태입니다. 요청KIT={2},확정KIT={0},위치={1}", PUB.Result.TargetPos - 2, PUB.Result.TargetPos, kitNo));
}
}
else if (kitVal == '0') //캔슬버튼을 눌렀다
{
//목표번호가 캔슬버튼을 눌렀다
if (PUB.Result.TargetPos == kitPos)
{
//상차가 완료되면 TargetPos 가 변경되어 ,더이상 해당 버튼으로는 취소하지 못한다
PUB.AGV.data.CallNo = 0;
PUB.AGV.data.CallString = "--";
SendToKit(kitNo, '0', (PUB.IsCanCALL() ? '1' : '0'));
RaiseMessage(MessageType.Normal, string.Format("콜 취소 Kit={0}", kitNo));
if (PUB.sm.RunStep != StateMachine.ERunStep.GOHOME)
{
PUB.Result.CommandKit = kitNo;
PUB.Result.TargetPos = ePosition.QC;
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(StateMachine.ERunStep.GOHOME);
PUB.sm.SetNewStep(StateMachine.eSMStep.RUN);
RaiseMessage(MessageType.Normal, string.Format("콜 취소로 인해 홈으로 이동합니다 Kit={0}", kitNo));
}
}
else
{
//다른놈이 취소 버튼을 눌렀다. ㅋㅋ
//아무~ 의미 없다.
SendToKit(kitNo, '0', (PUB.IsCanCALL() ? '1' : '0'));
RaiseMessage(MessageType.Normal, string.Format("해당 콜취소는 유효하지 않습니다 요청KIT={0},확정KIT={1}", kitNo, PUB.Result.TargetPos - 2));
}
}
else if (kitVal == '2') //BACKWORK시에만 이 값이 전송되게 한다
{
//QA 이동 명령
//발동조건 1. QC 위치에서 GOUP(대기 혹은 상차완료)상태일때 (일반적인경우)
//발동조건 2. QC 위치에서 IDLE 상태일때 (GOUP상태로 하지 않고 바로 싫어버린경우)
//발동조건 3. 충전중일때
//if (kitPos != ePosition.QC)
//{
// RaiseMessage(MessageType.Error, $"back 버튼은 QC버튼만 사용 가능 합니다");
// return;
//}
//if (kitPos == ePosition.QC && PUB.Result.CurrentPos != ePosition.QC)
//{
// RaiseMessage(MessageType.Error, string.Format("QC의 QA버튼은 홈위치에 있어야 사용이 가능 합니다"));
// return;
//}
////명령송신은 QC로 고정한다
//PUB.Result.CommandKit = '2';
//PUB.Result.TargetPos = ePosition.QA;
//PUB.sm.ClearRunStep();
//PUB.sm.SetNewRunStep(StateMachine.ERunStep.GODOWN);
//PUB.sm.SetNewStep(StateMachine.ESMStep.RUN);
//RaiseMessage(MessageType.Normal, string.Format("후진하차 모드 대상위치={0}", ePosition.QA));
//PUB.logsys.AddI("QC의 QA리모콘 버튼 작업 입니다");
}
}
public void SendToKit(char kitNo, char Value, char enbcall)
{
List<byte> buffer = new List<byte>
{
0x02,
(byte)kitNo,
(byte)Value,
(byte)enbcall,
0x03
};
WriteData(buffer.ToArray());
//RaiseMessage(MessageType.Normal, $"지그비전송 {kitNo}:{Value}:{enbcall}");
}
public string GetStatusString()
{
return DateTime.Now.ToString();
}
public void SendStatus(String StatusString)
{
////IO
char kitno = '0';
char kitval = '1';
if (PUB.Result.TargetPos == ePosition.F1) kitno = '1';
else if (PUB.Result.TargetPos == ePosition.F2) kitno = '2';
else if (PUB.Result.TargetPos == ePosition.F3) kitno = '3';
else if (PUB.Result.TargetPos == ePosition.F4) kitno = '4';
else if (PUB.Result.TargetPos == ePosition.QC) kitno = '9';
else
{
//충전기 충전하는 것으로한다
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == false && VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false)
kitval = '0';
}
//콜가능여부도 전송한다
var enbcall = PUB.IsCanCALL() ? '1' : '0';
SendToKit(kitno, kitval, enbcall);
}
}
}

View File

@@ -0,0 +1,815 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms; // required for Message
using System.Runtime.InteropServices; // required for Marshal
using System.IO;
using Microsoft.Win32.SafeHandles;
// DriveDetector - rev. 1, Oct. 31 2007
namespace usbdetect
{
/// <summary>
/// Hidden Form which we use to receive Windows messages about flash drives
/// </summary>
internal class DetectorForm : Form
{
private Label label1;
private DriveDetector mDetector = null;
/// <summary>
/// Set up the hidden form.
/// </summary>
/// <param name="detector">DriveDetector object which will receive notification about USB drives, see WndProc</param>
public DetectorForm(DriveDetector detector)
{
mDetector = detector;
this.MinimizeBox = false;
this.MaximizeBox = false;
this.ShowInTaskbar = false;
this.ShowIcon = false;
this.FormBorderStyle = FormBorderStyle.None;
this.Load += new System.EventHandler(this.Load_Form);
this.Activated += new EventHandler(this.Form_Activated);
}
private void Load_Form(object sender, EventArgs e)
{
// We don't really need this, just to display the label in designer ...
InitializeComponent();
// Create really small form, invisible anyway.
this.Size = new System.Drawing.Size(5, 5);
}
private void Form_Activated(object sender, EventArgs e)
{
this.Visible = false;
}
/// <summary>
/// This function receives all the windows messages for this window (form).
/// We call the DriveDetector from here so that is can pick up the messages about
/// drives arrived and removed.
/// </summary>
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (mDetector != null)
{
mDetector.WndProc(ref m);
}
}
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(13, 30);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(377, 12);
this.label1.TabIndex = 0;
this.label1.Text = "This is invisible form. To see DriveDetector code click View Code";
//
// DetectorForm
//
this.ClientSize = new System.Drawing.Size(435, 80);
this.Controls.Add(this.label1);
this.Name = "DetectorForm";
this.ResumeLayout(false);
this.PerformLayout();
}
} // class DetectorForm
// Delegate for event handler to handle the device events
public delegate void DriveDetectorEventHandler(Object sender, DriveDetectorEventArgs e);
/// <summary>
/// Our class for passing in custom arguments to our event handlers
///
/// </summary>
public class DriveDetectorEventArgs : EventArgs
{
public DriveDetectorEventArgs()
{
Cancel = false;
Drive = "";
HookQueryRemove = false;
}
/// <summary>
/// Get/Set the value indicating that the event should be cancelled
/// Only in QueryRemove handler.
/// </summary>
public bool Cancel;
/// <summary>
/// Drive letter for the device which caused this event
/// </summary>
public string Drive;
/// <summary>
/// Set to true in your DeviceArrived event handler if you wish to receive the
/// QueryRemove event for this drive.
/// </summary>
public bool HookQueryRemove;
}
/// <summary>
/// Detects insertion or removal of removable drives.
/// Use it in 1 or 2 steps:
/// 1) Create instance of this class in your project and add handlers for the
/// DeviceArrived, DeviceRemoved and QueryRemove events.
/// AND (if you do not want drive detector to creaate a hidden form))
/// 2) Override WndProc in your form and call DriveDetector's WndProc from there.
/// If you do not want to do step 2, just use the DriveDetector constructor without arguments and
/// it will create its own invisible form to receive messages from Windows.
/// </summary>
class DriveDetector : IDisposable
{
/// <summary>
/// Events signalized to the client app.
/// Add handlers for these events in your form to be notified of removable device events
/// </summary>
public event DriveDetectorEventHandler DeviceArrived;
public event DriveDetectorEventHandler DeviceRemoved;
public event DriveDetectorEventHandler QueryRemove;
/// <summary>
/// The easiest way to use DriveDetector.
/// It will create hidden form for processing Windows messages about USB drives
/// You do not need to override WndProc in your form.
/// </summary>
public DriveDetector()
{
DetectorForm frm = new DetectorForm(this);
frm.Show(); // will be hidden immediatelly
Init(frm, null);
}
/// <summary>
/// Alternate constructor.
/// Pass in your Form and DriveDetector will not create hidden form.
/// </summary>
/// <param name="control">object which will receive Windows messages.
/// Pass "this" as this argument from your form class.</param>
public DriveDetector(Control control)
{
Init(control, null);
}
/// <summary>
/// Consructs DriveDetector object setting also path to file which should be opened
/// when registering for query remove.
/// </summary>
///<param name="control">object which will receive Windows messages.
/// Pass "this" as this argument from your form class.</param>
/// <param name="FileToOpen">Optional. Name of a file on the removable drive which should be opened.
/// If null, root directory of the drive will be opened. Opening a file is needed for us
/// to be able to register for the query remove message. TIP: For files use relative path without drive letter.
/// e.g. "SomeFolder\file_on_flash.txt"</param>
public DriveDetector(Control control, string FileToOpen)
{
Init(control, FileToOpen);
}
/// <summary>
/// init the DriveDetector object
/// </summary>
/// <param name="intPtr"></param>
private void Init(Control control, string fileToOpen)
{
mFileToOpen = fileToOpen;
mFileOnFlash = null;
mDeviceNotifyHandle = IntPtr.Zero;
mRecipientHandle = control.Handle;
mDirHandle = IntPtr.Zero; // handle to the root directory of the flash drive which we open
mCurrentDrive = "";
}
/// <summary>
/// Gets the value indicating whether the query remove event will be fired.
/// </summary>
public bool IsQueryHooked
{
get
{
if (mDeviceNotifyHandle == IntPtr.Zero)
return false;
else
return true;
}
}
/// <summary>
/// Gets letter of drive which is currently hooked. Empty string if none.
/// See also IsQueryHooked.
/// </summary>
public string HookedDrive
{
get
{
return mCurrentDrive;
}
}
/// <summary>
/// Gets the file stream for file which this class opened on a drive to be notified
/// about it's removal.
/// This will be null unless you specified a file to open (DriveDetector opens root directory of the flash drive)
/// </summary>
public FileStream OpenedFile
{
get
{
return mFileOnFlash;
}
}
/// <summary>
/// Hooks specified drive to receive a message when it is being removed.
/// This can be achieved also by setting e.HookQueryRemove to true in your
/// DeviceArrived event handler.
/// By default DriveDetector will open the root directory of the flash drive to obtain notification handle
/// from Windows (to learn when the drive is about to be removed).
/// </summary>
/// <param name="fileOnDrive">Drive letter or relative path to a file on the drive which should be
/// used to get a handle - required for registering to receive query remove messages.
/// If only drive letter is specified (e.g. "D:\\", root directory of the drive will be opened.</param>
/// <returns>true if hooked ok, false otherwise</returns>
public bool EnableQueryRemove(string fileOnDrive)
{
if (fileOnDrive == null || fileOnDrive.Length == 0)
throw new ArgumentException("Drive path must be supplied to register for Query remove.");
if ( fileOnDrive.Length == 2 && fileOnDrive[1] == ':' )
fileOnDrive += '\\'; // append "\\" if only drive letter with ":" was passed in.
if (mDeviceNotifyHandle != IntPtr.Zero)
{
// Unregister first...
RegisterForDeviceChange(false, null);
}
if (Path.GetFileName(fileOnDrive).Length == 0 ||!File.Exists(fileOnDrive))
mFileToOpen = null; // use root directory...
else
mFileToOpen = fileOnDrive;
RegisterQuery(Path.GetPathRoot(fileOnDrive));
if (mDeviceNotifyHandle == IntPtr.Zero)
return false; // failed to register
return true;
}
/// <summary>
/// Unhooks any currently hooked drive so that the query remove
/// message is not generated for it.
/// </summary>
public void DisableQueryRemove()
{
if (mDeviceNotifyHandle != IntPtr.Zero)
{
RegisterForDeviceChange(false, null);
}
}
/// <summary>
/// Unregister and close the file we may have opened on the removable drive.
/// Garbage collector will call this method.
/// </summary>
public void Dispose()
{
RegisterForDeviceChange(false, null);
}
#region WindowProc
/// <summary>
/// Message handler which must be called from client form.
/// Processes Windows messages and calls event handlers.
/// </summary>
/// <param name="m"></param>
public void WndProc(ref Message m)
{
int devType;
char c;
if (m.Msg == WM_DEVICECHANGE)
{
// WM_DEVICECHANGE can have several meanings depending on the WParam value...
switch (m.WParam.ToInt32())
{
//
// New device has just arrived
//
case DBT_DEVICEARRIVAL:
devType = Marshal.ReadInt32(m.LParam, 4);
if (devType == DBT_DEVTYP_VOLUME)
{
DEV_BROADCAST_VOLUME vol;
vol = (DEV_BROADCAST_VOLUME)
Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME));
// Get the drive letter
c = DriveMaskToLetter(vol.dbcv_unitmask);
//
// Call the client event handler
//
// We should create copy of the event before testing it and
// calling the delegate - if any
DriveDetectorEventHandler tempDeviceArrived = DeviceArrived;
if ( tempDeviceArrived != null )
{
DriveDetectorEventArgs e = new DriveDetectorEventArgs();
e.Drive = c + ":\\";
tempDeviceArrived(this, e);
// Register for query remove if requested
if (e.HookQueryRemove)
{
// If something is already hooked, unhook it now
if (mDeviceNotifyHandle != IntPtr.Zero)
{
RegisterForDeviceChange(false, null);
}
RegisterQuery(c + ":\\");
}
} // if has event handler
}
break;
//
// Device is about to be removed
// Any application can cancel the removal
//
case DBT_DEVICEQUERYREMOVE:
devType = Marshal.ReadInt32(m.LParam, 4);
if (devType == DBT_DEVTYP_HANDLE)
{
// TODO: we could get the handle for which this message is sent
// from vol.dbch_handle and compare it against a list of handles for
// which we have registered the query remove message (?)
//DEV_BROADCAST_HANDLE vol;
//vol = (DEV_BROADCAST_HANDLE)
// Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_HANDLE));
// if ( vol.dbch_handle ....
//
// Call the event handler in client
//
DriveDetectorEventHandler tempQuery = QueryRemove;
if (tempQuery != null)
{
DriveDetectorEventArgs e = new DriveDetectorEventArgs();
e.Drive = mCurrentDrive; // drive which is hooked
tempQuery(this, e);
// If the client wants to cancel, let Windows know
if (e.Cancel)
{
m.Result = (IntPtr)BROADCAST_QUERY_DENY;
}
else
{
// Change 28.10.2007: Unregister the notification, this will
// close the handle to file or root directory also.
// We have to close it anyway to allow the removal so
// even if some other app cancels the removal we would not know about it...
RegisterForDeviceChange(false, null); // will also close the mFileOnFlash
}
}
}
break;
//
// Device has been removed
//
case DBT_DEVICEREMOVECOMPLETE:
devType = Marshal.ReadInt32(m.LParam, 4);
if (devType == DBT_DEVTYP_VOLUME)
{
devType = Marshal.ReadInt32(m.LParam, 4);
if (devType == DBT_DEVTYP_VOLUME)
{
DEV_BROADCAST_VOLUME vol;
vol = (DEV_BROADCAST_VOLUME)
Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME));
c = DriveMaskToLetter(vol.dbcv_unitmask);
//
// Call the client event handler
//
DriveDetectorEventHandler tempDeviceRemoved = DeviceRemoved;
if (tempDeviceRemoved != null)
{
DriveDetectorEventArgs e = new DriveDetectorEventArgs();
e.Drive = c + ":\\";
tempDeviceRemoved(this, e);
}
// TODO: we could unregister the notify handle here if we knew it is the
// right drive which has been just removed
//RegisterForDeviceChange(false, null);
}
}
break;
}
}
}
#endregion
#region Private Area
/// <summary>
/// New: 28.10.2007 - handle to root directory of flash drive which is opened
/// for device notification
/// </summary>
private IntPtr mDirHandle = IntPtr.Zero;
/// <summary>
/// Class which contains also handle to the file opened on the flash drive
/// </summary>
private FileStream mFileOnFlash = null;
/// <summary>
/// Name of the file to try to open on the removable drive for query remove registration
/// </summary>
private string mFileToOpen;
/// <summary>
/// Handle to file which we keep opened on the drive if query remove message is required by the client
/// </summary>
private IntPtr mDeviceNotifyHandle;
/// <summary>
/// Handle of the window which receives messages from Windows. This will be a form.
/// </summary>
private IntPtr mRecipientHandle;
/// <summary>
/// Drive which is currently hooked for query remove
/// </summary>
private string mCurrentDrive;
// Win32 constants
private const int DBT_DEVTYP_DEVICEINTERFACE = 5;
private const int DBT_DEVTYP_HANDLE = 6;
private const int BROADCAST_QUERY_DENY = 0x424D5144;
private const int WM_DEVICECHANGE = 0x0219;
private const int DBT_DEVICEARRIVAL = 0x8000; // system detected a new device
private const int DBT_DEVICEQUERYREMOVE = 0x8001; // Preparing to remove (any program can disable the removal)
private const int DBT_DEVICEREMOVECOMPLETE = 0x8004; // removed
private const int DBT_DEVTYP_VOLUME = 0x00000002; // drive type is logical volume
/// <summary>
/// Registers for receiving the query remove message for a given drive.
/// We need to open a handle on that drive and register with this handle.
/// Client can specify this file in mFileToOpen or we will open root directory of the drive
/// </summary>
/// <param name="drive">drive for which to register. </param>
private void RegisterQuery(string drive)
{
bool register = true;
if (mFileToOpen == null)
{
// Change 28.10.2007 - Open the root directory if no file specified - leave mFileToOpen null
// If client gave us no file, let's pick one on the drive...
//mFileToOpen = GetAnyFile(drive);
//if (mFileToOpen.Length == 0)
// return; // no file found on the flash drive
}
else
{
// Make sure the path in mFileToOpen contains valid drive
// If there is a drive letter in the path, it may be different from the actual
// letter assigned to the drive now. We will cut it off and merge the actual drive
// with the rest of the path.
if (mFileToOpen.Contains(":"))
{
string tmp = mFileToOpen.Substring(3);
string root = Path.GetPathRoot(drive);
mFileToOpen = Path.Combine(root, tmp);
}
else
mFileToOpen = Path.Combine(drive, mFileToOpen);
}
try
{
//mFileOnFlash = new FileStream(mFileToOpen, FileMode.Open);
// Change 28.10.2007 - Open the root directory
if (mFileToOpen == null) // open root directory
mFileOnFlash = null;
else
mFileOnFlash = new FileStream(mFileToOpen, FileMode.Open);
}
catch (Exception)
{
// just do not register if the file could not be opened
register = false;
}
if (register)
{
//RegisterForDeviceChange(true, mFileOnFlash.SafeFileHandle);
//mCurrentDrive = drive;
// Change 28.10.2007 - Open the root directory
if (mFileOnFlash == null)
RegisterForDeviceChange(drive);
else
// old version
RegisterForDeviceChange(true, mFileOnFlash.SafeFileHandle);
mCurrentDrive = drive;
}
}
/// <summary>
/// New version which gets the handle automatically for specified directory
/// Only for registering! Unregister with the old version of this function...
/// </summary>
/// <param name="register"></param>
/// <param name="dirPath">e.g. C:\\dir</param>
private void RegisterForDeviceChange(string dirPath)
{
IntPtr handle = Native.OpenDirectory(dirPath);
if (handle == IntPtr.Zero)
{
mDeviceNotifyHandle = IntPtr.Zero;
return;
}
else
mDirHandle = handle; // save handle for closing it when unregistering
// Register for handle
DEV_BROADCAST_HANDLE data = new DEV_BROADCAST_HANDLE();
data.dbch_devicetype = DBT_DEVTYP_HANDLE;
data.dbch_reserved = 0;
data.dbch_nameoffset = 0;
//data.dbch_data = null;
//data.dbch_eventguid = 0;
data.dbch_handle = handle;
data.dbch_hdevnotify = (IntPtr)0;
int size = Marshal.SizeOf(data);
data.dbch_size = size;
IntPtr buffer = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(data, buffer, true);
mDeviceNotifyHandle = Native.RegisterDeviceNotification(mRecipientHandle, buffer, 0);
}
/// <summary>
/// Registers to be notified when the volume is about to be removed
/// This is requierd if you want to get the QUERY REMOVE messages
/// </summary>
/// <param name="register">true to register, false to unregister</param>
/// <param name="fileHandle">handle of a file opened on the removable drive</param>
private void RegisterForDeviceChange(bool register, SafeFileHandle fileHandle)
{
if (register)
{
// Register for handle
DEV_BROADCAST_HANDLE data = new DEV_BROADCAST_HANDLE();
data.dbch_devicetype = DBT_DEVTYP_HANDLE;
data.dbch_reserved = 0;
data.dbch_nameoffset = 0;
//data.dbch_data = null;
//data.dbch_eventguid = 0;
data.dbch_handle = fileHandle.DangerousGetHandle(); //Marshal. fileHandle;
data.dbch_hdevnotify = (IntPtr)0;
int size = Marshal.SizeOf(data);
data.dbch_size = size;
IntPtr buffer = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(data, buffer, true);
mDeviceNotifyHandle = Native.RegisterDeviceNotification(mRecipientHandle, buffer, 0);
}
else
{
// close the directory handle
if (mDirHandle != IntPtr.Zero)
{
Native.CloseDirectoryHandle(mDirHandle);
// string er = Marshal.GetLastWin32Error().ToString();
}
// unregister
if (mDeviceNotifyHandle != IntPtr.Zero)
{
Native.UnregisterDeviceNotification(mDeviceNotifyHandle);
}
mDeviceNotifyHandle = IntPtr.Zero;
mDirHandle = IntPtr.Zero;
mCurrentDrive = "";
if (mFileOnFlash != null)
{
mFileOnFlash.Close();
mFileOnFlash = null;
}
}
}
/// <summary>
/// Gets drive letter from a bit mask where bit 0 = A, bit 1 = B etc.
/// There can actually be more than one drive in the mask but we
/// just use the last one in this case.
/// </summary>
/// <param name="mask"></param>
/// <returns></returns>
private static char DriveMaskToLetter(int mask)
{
char letter;
string drives = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
// 1 = A
// 2 = B
// 4 = C...
int cnt = 0;
int pom = mask / 2;
while (pom != 0)
{
// while there is any bit set in the mask
// shift it to the righ...
pom = pom / 2;
cnt++;
}
if (cnt < drives.Length)
letter = drives[cnt];
else
letter = '?';
return letter;
}
/* 28.10.2007 - no longer needed
/// <summary>
/// Searches for any file in a given path and returns its full path
/// </summary>
/// <param name="drive">drive to search</param>
/// <returns>path of the file or empty string</returns>
private string GetAnyFile(string drive)
{
string file = "";
// First try files in the root
string[] files = Directory.GetFiles(drive);
if (files.Length == 0)
{
// if no file in the root, search whole drive
files = Directory.GetFiles(drive, "*.*", SearchOption.AllDirectories);
}
if (files.Length > 0)
file = files[0]; // get the first file
// return empty string if no file found
return file;
}*/
#endregion
#region Native Win32 API
/// <summary>
/// WinAPI functions
/// </summary>
private class Native
{
// HDEVNOTIFY RegisterDeviceNotification(HANDLE hRecipient,LPVOID NotificationFilter,DWORD Flags);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr RegisterDeviceNotification(IntPtr hRecipient, IntPtr NotificationFilter, uint Flags);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern uint UnregisterDeviceNotification(IntPtr hHandle);
//
// CreateFile - MSDN
const uint GENERIC_READ = 0x80000000;
const uint OPEN_EXISTING = 3;
const uint FILE_SHARE_READ = 0x00000001;
const uint FILE_SHARE_WRITE = 0x00000002;
const uint FILE_ATTRIBUTE_NORMAL = 128;
const uint FILE_FLAG_BACKUP_SEMANTICS = 0x02000000;
static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);
// should be "static extern unsafe"
[DllImport("kernel32", SetLastError = true)]
static extern IntPtr CreateFile(
string FileName, // file name
uint DesiredAccess, // access mode
uint ShareMode, // share mode
uint SecurityAttributes, // Security Attributes
uint CreationDisposition, // how to create
uint FlagsAndAttributes, // file attributes
int hTemplateFile // handle to template file
);
[DllImport("kernel32", SetLastError = true)]
static extern bool CloseHandle(
IntPtr hObject // handle to object
);
/// <summary>
/// Opens a directory, returns it's handle or zero.
/// </summary>
/// <param name="dirPath">path to the directory, e.g. "C:\\dir"</param>
/// <returns>handle to the directory. Close it with CloseHandle().</returns>
static public IntPtr OpenDirectory(string dirPath)
{
// open the existing file for reading
IntPtr handle = CreateFile(
dirPath,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
0,
OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS | FILE_ATTRIBUTE_NORMAL,
0);
if ( handle == INVALID_HANDLE_VALUE)
return IntPtr.Zero;
else
return handle;
}
public static bool CloseDirectoryHandle(IntPtr handle)
{
return CloseHandle(handle);
}
}
// Structure with information for RegisterDeviceNotification.
[StructLayout(LayoutKind.Sequential)]
public struct DEV_BROADCAST_HANDLE
{
public int dbch_size;
public int dbch_devicetype;
public int dbch_reserved;
public IntPtr dbch_handle;
public IntPtr dbch_hdevnotify;
public Guid dbch_eventguid;
public long dbch_nameoffset;
//public byte[] dbch_data[1]; // = new byte[1];
public byte dbch_data;
public byte dbch_data1;
}
// Struct for parameters of the WM_DEVICECHANGE message
[StructLayout(LayoutKind.Sequential)]
public struct DEV_BROADCAST_VOLUME
{
public int dbcv_size;
public int dbcv_devicetype;
public int dbcv_reserved;
public int dbcv_unitmask;
}
#endregion
}
}

687
Cs_HMI/Project/Dialog/fCounter.Designer.cs generated Normal file
View File

@@ -0,0 +1,687 @@
namespace Project.Dialog
{
partial class fCounter
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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;
}
}

View File

@@ -0,0 +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)
{
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,127 @@
namespace Project
{
partial class fErrorException
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fErrorException));
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.button2 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
this.pictureBox1.Location = new System.Drawing.Point(160, 23);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(80, 80);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// button2
//
this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image")));
this.button2.Location = new System.Drawing.Point(30, 491);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(355, 54);
this.button2.TabIndex = 2;
this.button2.Text = "종료";
this.button2.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// label1
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Brown;
this.label1.Font = new System.Drawing.Font("맑은 고딕", 15.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(30, 117);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(10);
this.label1.Size = new System.Drawing.Size(355, 50);
this.label1.TabIndex = 3;
this.label1.Text = "미처리 오류로 인한 프로그램 중단";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label2.ForeColor = System.Drawing.Color.Blue;
this.label2.Location = new System.Drawing.Point(30, 182);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(311, 45);
this.label2.TabIndex = 4;
this.label2.Text = "오류보고를 위한 정보가 수집되었습니다.\r\n수집된 정보는 아래와 같고 오류가 발생하기 전의 상황을\r\n적어서 메일을 전송하면 버그 수정에 도움이 됩니" +
"다.";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(30, 240);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.textBox1.Size = new System.Drawing.Size(355, 241);
this.textBox1.TabIndex = 5;
//
// fErrorException
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(418, 560);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.button2);
this.Controls.Add(this.pictureBox1);
this.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.KeyPreview = true;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "fErrorException";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Error Report";
this.Load += new System.EventHandler(this.fErrorException_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox textBox1;
}
}

View File

@@ -0,0 +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.Windows.Forms;
namespace Project
{
public partial class fErrorException : Form
{
public fErrorException(string err)
{
InitializeComponent();
System.Text.StringBuilder sb = new StringBuilder();
sb.AppendLine("To : ChiKyun.kim@amkor.co.kr");
sb.AppendLine("Description : ?");
sb.AppendLine();
sb.AppendLine("=========================");
sb.AppendLine(" ERROR MESSAGE");
sb.AppendLine("=========================");
sb.AppendLine();
sb.AppendLine(err);
this.textBox1.Text = sb.ToString();
}
private void fErrorException_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAb
rwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPnSURBVHhe7dzJ
TttQFAbgdNFKnZ6GFWKDfCNGsWRRddO+ATwBo5g2iNdopU7LqlXVFgUa2LDoE7TbQoEIFpVw72/5EOdw
INO919fx/aVfiuwTD58chcFyJSQkJJu4Urm3H0Uv95Wq7VWrx2jyOopeYF06FiLlcGbmkQZ7v6dULFav
w0w6HpINYGpKfQbUj/Hx+Pf8fHy2thafra8nr7EsQYyiT7Xh4Yfp20KQLF59cjI+XlqKL7e3W4plWBcQ
WXZHRp5qkF3AHE5NxScrKzfwqFiHmRRxF+9NN1POdINHDYhpesGjlh6xHzxqaRE53t/VVRGok5YO0SQe
tTSINvCoLYhKfR84RJt41IFFdIFHxbYHCtElHpUjfhkdfZIeTrGS4OkTcIlHLTxinnjUwiLiQPPGoxYO
0Sc8amEQTePxSDOd1ntEG1cejzTTTb1FbMGbnjaCh/JIM93WO0RbeCiPNNNLs4g1pb7lhmgTD+WRZnpt
7oi28VAeaaaf5oaIHWGHNvFQHmmm3yaI+hycIbrCQ3mkGRN1hugSD+WRZkzVOqJrPJRHmjFZa4h54KE8
0ozpGkfMCw/lkWZs1BhinngojzRjq30j5o2H8kgzNptF3Ffqa8eIPuChPNKM7XaN6AseyiPNuChHPBob
e5xytQZ3f2q81xg80L/inCwvixt0VR5pxlVhAZMEsVp9Jd4pq1c+xwBuZMwbD+WRZlwWJnSTZy2KnqVs
zegVyR8Hfs3NiRtwXR5pxnVhAyN8lFO2ZvSKc6w839gQ3+y6PNKM68IGRrpnKVszemEjAN5d3K99F2D4
CLdpu49w+BK5o22/RMKPMbcXFm1/jEEOh4bu68vzLQbrExPx8eKiuEEX5ZFmXBQGsICJ7hsYpVxyfEHk
kWZst2s8ik9XYl7tGY9SZsQsHgy6xqOUEdEYHqVMiMbxKGVAtIZHcYq4sxP/q9fjq9PTpHiNZeKsgVrH
o/ycnX3gAhFgPAmiMNtv/ywsuMGjuEC8ajRStmawTJrtp87xKEDUv/a9s4XoAjA3PIpNRNsfYY6Hc0lP
y22sIdKXyMVF0gTP0JeIN3gUjogDlA7ch3qHRykCYhYPx+oNHsVnRO/xKD4iFgaPggOkpw/ljVg4PIoP
iIXFo+SJWHg8Ch7PpE/iI07kAI90cvCPKuwD+8I+se/CPyLK5ZWYvfKwz8JeeTwuEAcWj2ITceDxKDYQ
S4NHMYlYOjyKCcTS4lESRKU+9IKI2etHgpYRj9ILYsBj6QYx4N2S8BBaA5Eeg9zY3IwbW1vhMcidBoj0
7SxWr8NMOh4iBXd/Xj8KXqlLNHkdHgUfEnIjlcp/1rPAKpMPkMkAAAAASUVORK5CYII=
</value>
</data>
<data name="button2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
iQAAC4kBN8nLrQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAALmSURBVFhH7ZjL
ahRREIbLW7yLGxcq4k7cCaJLFwoiKAqKt5dQI4JLFZ8h4gMY0RF30YgbgwsRRYiZ3IzBG9lF3RgXXsDx
q1AtlTPTPefMtDLCfFBk5tRff1e65vR0j3TpUsALkVXjIvsmRHqJvjGRWxr6mjjH670zIitN/m+oiSym
qZPEPeI7UWsS32h2gL8ntNZs/g6ckcMcaMIdPDXGafaQ2ZXHtMg6zO8GB/MxR0wSjy30ta410mpUXoms
Nfv24D/eimGjs/aauDQqsovRLTL5H3ScnPHdaK4Q01bjY4zaLSZvDWtuJjD+RJxhgywzWVPQ9+DVy9/P
5pHFh5abtLGGZ+4po9lkkmSmRLbjEY5+lFhjkngoqjgTjQpNL7d0MnZJehR4ZtFvsjgYxylvwPuhlJGG
6DTweOI9iS/+PaM+ZvJihkSWUvDGFc9ivtHSyeQ099zGrZ/nbG2KjbXEyvLB7LQr0jhrqWTymhsWWa95
dvn5IHd8vrAIDB+6grdEj6WSaNacop9p1t67/H1LNUZNEf10BZctlURMcxnorjrNDyJ/RyM+6MQ1RrDD
UtGkNKeg3em1HPOApepBfNGJP9pyNKnNKfothMZfwC9Yqh6S153wpS1H0UpzGeiqWQ0efbZcD4L+TEgM
2nJT2mlOQfvA1d2w5XpI3nTCqAbbbU5BH92gHzHHKKaM5hQ8RrJ6Nsk1W64HYfQmKau5pE3CAaMuM2U1
p+ATf5nRAyMqvFCX2ZyCV/yFWkEw6AoWfNWV3Rx+C77q8B6wVD6IjmYFFvM3C2U3pzDO8GbhiKXy0WcJ
hP5OenZSZFvZzemdOR7+dquqG8bSxdDMfleo8TV431ZzIyKr8Rh2fr+IPZaOg4LbzsBHlXFvMFky70RW
4HEn8My/OOehnzkKw4emOb0TNkky1G7G41ng2dpDk8KoO/exM8Oa7MwH9wwbd2f+9OHhjHTmj0ceu052
5s9vIR35A2aX/wuR3/n+YvqZGUimAAAAAElFTkSuQmCC
</value>
</data>
</root>

View File

@@ -0,0 +1,558 @@
namespace Project.Dialog
{
partial class fJobSelect
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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;
}
}

View File

@@ -0,0 +1,169 @@
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;
lbTitle.BackColor = bg2;
lbTitle.BackColor2 = bg1;
}
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();
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="tmBlink.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

211
Cs_HMI/Project/Dialog/fLog.Designer.cs generated Normal file
View File

@@ -0,0 +1,211 @@
namespace Project.Dialog
{
partial class fLog
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rtsys = new arCtl.LogTextBox();
this.rtTx = new arCtl.LogTextBox();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.rtAGV = new arCtl.LogTextBox();
this.rtPLC = new arCtl.LogTextBox();
this.rtBMS = new arCtl.LogTextBox();
this.rtCAL = new arCtl.LogTextBox();
this.tableLayoutPanel1.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.rtAGV, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.rtsys, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.rtTx, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.rtPLC, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.rtBMS, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.rtCAL, 3, 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;
//
// 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(3, 349);
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, 143);
this.rtAGV.TabIndex = 2;
this.rtAGV.Text = "";
//
// rtPLC
//
this.rtPLC.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.rtPLC.ColorList = new arCtl.sLogMessageColor[0];
this.rtPLC.DateFormat = "mm:ss.fff";
this.rtPLC.DefaultColor = System.Drawing.Color.LightGray;
this.rtPLC.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtPLC.EnableDisplayTimer = false;
this.rtPLC.EnableGubunColor = true;
this.rtPLC.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtPLC.ListFormat = "[{0}] {1}";
this.rtPLC.Location = new System.Drawing.Point(173, 349);
this.rtPLC.MaxListCount = ((ushort)(1000));
this.rtPLC.MaxTextLength = ((uint)(400000u));
this.rtPLC.MessageInterval = 50;
this.rtPLC.Name = "rtPLC";
this.rtPLC.Size = new System.Drawing.Size(164, 143);
this.rtPLC.TabIndex = 2;
this.rtPLC.Text = "";
//
// 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(343, 349);
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(164, 143);
this.rtBMS.TabIndex = 2;
this.rtBMS.Text = "";
//
// rtCAL
//
this.rtCAL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.rtCAL.ColorList = new arCtl.sLogMessageColor[0];
this.rtCAL.DateFormat = "mm:ss.fff";
this.rtCAL.DefaultColor = System.Drawing.Color.LightGray;
this.rtCAL.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtCAL.EnableDisplayTimer = false;
this.rtCAL.EnableGubunColor = true;
this.rtCAL.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtCAL.ListFormat = "[{0}] {1}";
this.rtCAL.Location = new System.Drawing.Point(513, 349);
this.rtCAL.MaxListCount = ((ushort)(1000));
this.rtCAL.MaxTextLength = ((uint)(400000u));
this.rtCAL.MessageInterval = 50;
this.rtCAL.Name = "rtCAL";
this.rtCAL.Size = new System.Drawing.Size(165, 143);
this.rtCAL.TabIndex = 2;
this.rtCAL.Text = "";
//
// 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.ResumeLayout(false);
}
#endregion
private arCtl.LogTextBox rtsys;
private arCtl.LogTextBox rtTx;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private arCtl.LogTextBox rtAGV;
private arCtl.LogTextBox rtPLC;
private arCtl.LogTextBox rtBMS;
private arCtl.LogTextBox rtCAL;
}
}

View File

@@ -0,0 +1,83 @@
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.logcal.RaiseMsg -= Log_RaiseMsgcal;
}
private void fLog_Load(object sender, EventArgs e)
{
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.logcal.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(rtCAL, LogTime, TypeStr, Message);
}
void showlog(arCtl.LogTextBox rtRx, DateTime LogTime, string TypeStr, string Message)
{
if (rtRx.Visible)
{
rtRx.AddMsg(LogTime, TypeStr, Message);
}
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,93 @@
namespace Project.Dialog
{
partial class fPassword
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(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
private System.Windows.Forms.PictureBox pictureBox1;
public System.Windows.Forms.TextBox tbInput;
private arCtl.TouchKey touchKey1;
}
}

View File

@@ -0,0 +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;
}
}
}

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

557
Cs_HMI/Project/Dialog/fSystem.Designer.cs generated Normal file
View File

@@ -0,0 +1,557 @@
namespace Project.Dialog
{
partial class fSystem
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lbMsg = new arCtl.arLabel();
this.arLabel4 = new arCtl.arLabel();
this.arLabel9 = new arCtl.arLabel();
this.arLabel10 = new arCtl.arLabel();
this.arLabel1 = new arCtl.arLabel();
this.arLabel6 = new arCtl.arLabel();
this.arLabel2 = new arCtl.arLabel();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.arLabel3 = new arCtl.arLabel();
this.arLabel5 = new arCtl.arLabel();
this.arLabel7 = new arCtl.arLabel();
this.SuspendLayout();
//
// lbMsg
//
this.lbMsg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.lbMsg.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.lbMsg.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.lbMsg.BorderColor = System.Drawing.Color.LightSkyBlue;
this.lbMsg.BorderColorOver = System.Drawing.Color.Red;
this.lbMsg.BorderSize = new System.Windows.Forms.Padding(1);
this.lbMsg.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.lbMsg.Cursor = System.Windows.Forms.Cursors.Hand;
this.lbMsg.Font = new System.Drawing.Font("Consolas", 12F);
this.lbMsg.ForeColor = System.Drawing.Color.White;
this.lbMsg.GradientEnable = true;
this.lbMsg.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.lbMsg.GradientRepeatBG = true;
this.lbMsg.isButton = true;
this.lbMsg.Location = new System.Drawing.Point(9, 8);
this.lbMsg.Margin = new System.Windows.Forms.Padding(5);
this.lbMsg.MouseDownColor = System.Drawing.Color.Yellow;
this.lbMsg.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.lbMsg.msg = null;
this.lbMsg.Name = "lbMsg";
this.lbMsg.ProgressBorderColor = System.Drawing.Color.Black;
this.lbMsg.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.lbMsg.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.lbMsg.ProgressEnable = false;
this.lbMsg.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.lbMsg.ProgressForeColor = System.Drawing.Color.Black;
this.lbMsg.ProgressMax = 100F;
this.lbMsg.ProgressMin = 0F;
this.lbMsg.ProgressPadding = new System.Windows.Forms.Padding(0);
this.lbMsg.ProgressValue = 0F;
this.lbMsg.ShadowColor = System.Drawing.Color.Black;
this.lbMsg.Sign = "";
this.lbMsg.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.lbMsg.SignColor = System.Drawing.Color.Yellow;
this.lbMsg.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.lbMsg.Size = new System.Drawing.Size(165, 100);
this.lbMsg.TabIndex = 2;
this.lbMsg.Text = "폴더열기";
this.lbMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbMsg.TextShadow = true;
this.lbMsg.TextVisible = true;
this.lbMsg.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.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel4.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel4.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel4.BorderColorOver = System.Drawing.Color.Red;
this.arLabel4.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel4.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel4.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel4.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel4.ForeColor = System.Drawing.Color.White;
this.arLabel4.GradientEnable = true;
this.arLabel4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel4.GradientRepeatBG = true;
this.arLabel4.isButton = true;
this.arLabel4.Location = new System.Drawing.Point(9, 387);
this.arLabel4.Margin = new System.Windows.Forms.Padding(5);
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.Black;
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", 7F, System.Drawing.FontStyle.Italic);
this.arLabel4.Size = new System.Drawing.Size(503, 51);
this.arLabel4.TabIndex = 2;
this.arLabel4.Text = "닫기";
this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel4.TextShadow = true;
this.arLabel4.TextVisible = true;
this.arLabel4.Click += new System.EventHandler(this.arLabel4_Click);
//
// arLabel9
//
this.arLabel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel9.BackColor2 = System.Drawing.Color.Red;
this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel9.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel9.BorderColorOver = System.Drawing.Color.Red;
this.arLabel9.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel9.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel9.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel9.ForeColor = System.Drawing.Color.White;
this.arLabel9.GradientEnable = true;
this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel9.GradientRepeatBG = true;
this.arLabel9.isButton = true;
this.arLabel9.Location = new System.Drawing.Point(9, 112);
this.arLabel9.Margin = new System.Windows.Forms.Padding(5);
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.Black;
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", 7F, System.Drawing.FontStyle.Italic);
this.arLabel9.Size = new System.Drawing.Size(165, 100);
this.arLabel9.TabIndex = 2;
this.arLabel9.Text = "시스템 종료";
this.arLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel9.TextShadow = true;
this.arLabel9.TextVisible = true;
this.arLabel9.Click += new System.EventHandler(this.arLabel9_Click);
//
// arLabel10
//
this.arLabel10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel10.BackColor2 = System.Drawing.Color.DarkBlue;
this.arLabel10.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel10.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel10.BorderColorOver = System.Drawing.Color.Red;
this.arLabel10.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel10.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel10.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel10.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel10.ForeColor = System.Drawing.Color.White;
this.arLabel10.GradientEnable = true;
this.arLabel10.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel10.GradientRepeatBG = true;
this.arLabel10.isButton = true;
this.arLabel10.Location = new System.Drawing.Point(178, 112);
this.arLabel10.Margin = new System.Windows.Forms.Padding(5);
this.arLabel10.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel10.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel10.msg = null;
this.arLabel10.Name = "arLabel10";
this.arLabel10.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel10.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel10.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel10.ProgressEnable = false;
this.arLabel10.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel10.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel10.ProgressMax = 100F;
this.arLabel10.ProgressMin = 0F;
this.arLabel10.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel10.ProgressValue = 0F;
this.arLabel10.ShadowColor = System.Drawing.Color.Black;
this.arLabel10.Sign = "";
this.arLabel10.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel10.SignColor = System.Drawing.Color.Yellow;
this.arLabel10.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel10.Size = new System.Drawing.Size(165, 100);
this.arLabel10.TabIndex = 2;
this.arLabel10.Text = "시스템 재시작";
this.arLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel10.TextShadow = true;
this.arLabel10.TextVisible = true;
this.arLabel10.Click += new System.EventHandler(this.arLabel10_Click);
//
// arLabel1
//
this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
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.LightSkyBlue;
this.arLabel1.BorderColorOver = System.Drawing.Color.Red;
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.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel1.ForeColor = System.Drawing.Color.White;
this.arLabel1.GradientEnable = true;
this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel1.GradientRepeatBG = true;
this.arLabel1.isButton = true;
this.arLabel1.Location = new System.Drawing.Point(347, 8);
this.arLabel1.Margin = new System.Windows.Forms.Padding(5);
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.Black;
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(165, 100);
this.arLabel1.TabIndex = 2;
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);
//
// arLabel6
//
this.arLabel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel6.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel6.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel6.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel6.BorderColorOver = System.Drawing.Color.Red;
this.arLabel6.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel6.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel6.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel6.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel6.ForeColor = System.Drawing.Color.White;
this.arLabel6.GradientEnable = true;
this.arLabel6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel6.GradientRepeatBG = true;
this.arLabel6.isButton = true;
this.arLabel6.Location = new System.Drawing.Point(178, 8);
this.arLabel6.Margin = new System.Windows.Forms.Padding(5);
this.arLabel6.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel6.msg = null;
this.arLabel6.Name = "arLabel6";
this.arLabel6.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel6.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel6.ProgressEnable = false;
this.arLabel6.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel6.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel6.ProgressMax = 100F;
this.arLabel6.ProgressMin = 0F;
this.arLabel6.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel6.ProgressValue = 0F;
this.arLabel6.ShadowColor = System.Drawing.Color.Black;
this.arLabel6.Sign = "";
this.arLabel6.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel6.SignColor = System.Drawing.Color.Yellow;
this.arLabel6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel6.Size = new System.Drawing.Size(165, 100);
this.arLabel6.TabIndex = 2;
this.arLabel6.Text = "작업관리자";
this.arLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel6.TextShadow = true;
this.arLabel6.TextVisible = true;
this.arLabel6.Click += new System.EventHandler(this.arLabel6_Click);
//
// arLabel2
//
this.arLabel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel2.BackColor2 = System.Drawing.Color.DarkBlue;
this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel2.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel2.BorderColorOver = System.Drawing.Color.Red;
this.arLabel2.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel2.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel2.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel2.ForeColor = System.Drawing.Color.White;
this.arLabel2.GradientEnable = true;
this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel2.GradientRepeatBG = true;
this.arLabel2.isButton = true;
this.arLabel2.Location = new System.Drawing.Point(347, 112);
this.arLabel2.Margin = new System.Windows.Forms.Padding(5);
this.arLabel2.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel2.msg = null;
this.arLabel2.Name = "arLabel2";
this.arLabel2.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel2.ProgressEnable = false;
this.arLabel2.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel2.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel2.ProgressMax = 100F;
this.arLabel2.ProgressMin = 0F;
this.arLabel2.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel2.ProgressValue = 0F;
this.arLabel2.ShadowColor = System.Drawing.Color.Black;
this.arLabel2.Sign = "";
this.arLabel2.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel2.SignColor = System.Drawing.Color.Yellow;
this.arLabel2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel2.Size = new System.Drawing.Size(165, 100);
this.arLabel2.TabIndex = 2;
this.arLabel2.Text = "Process List";
this.arLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel2.TextShadow = true;
this.arLabel2.TextVisible = true;
this.arLabel2.Click += new System.EventHandler(this.arLabel2_Click);
//
// label1
//
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(9, 327);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(515, 23);
this.label1.TabIndex = 3;
this.label1.Text = "label1";
//
// label2
//
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(9, 359);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(515, 23);
this.label2.TabIndex = 3;
this.label2.Text = "label1";
//
// arLabel3
//
this.arLabel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel3.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel3.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel3.BorderColorOver = System.Drawing.Color.Red;
this.arLabel3.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel3.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel3.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel3.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel3.ForeColor = System.Drawing.Color.White;
this.arLabel3.GradientEnable = true;
this.arLabel3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel3.GradientRepeatBG = true;
this.arLabel3.isButton = true;
this.arLabel3.Location = new System.Drawing.Point(9, 216);
this.arLabel3.Margin = new System.Windows.Forms.Padding(5);
this.arLabel3.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel3.msg = null;
this.arLabel3.Name = "arLabel3";
this.arLabel3.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel3.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel3.ProgressEnable = false;
this.arLabel3.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel3.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel3.ProgressMax = 100F;
this.arLabel3.ProgressMin = 0F;
this.arLabel3.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel3.ProgressValue = 0F;
this.arLabel3.ShadowColor = System.Drawing.Color.Black;
this.arLabel3.Sign = "";
this.arLabel3.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel3.SignColor = System.Drawing.Color.Yellow;
this.arLabel3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel3.Size = new System.Drawing.Size(165, 100);
this.arLabel3.TabIndex = 4;
this.arLabel3.Text = "Emulator";
this.arLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel3.TextShadow = true;
this.arLabel3.TextVisible = true;
this.arLabel3.Click += new System.EventHandler(this.arLabel3_Click);
//
// arLabel5
//
this.arLabel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel5.BackColor2 = System.Drawing.Color.Pink;
this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel5.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel5.BorderColorOver = System.Drawing.Color.Red;
this.arLabel5.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel5.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel5.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel5.ForeColor = System.Drawing.Color.White;
this.arLabel5.GradientEnable = true;
this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel5.GradientRepeatBG = true;
this.arLabel5.isButton = true;
this.arLabel5.Location = new System.Drawing.Point(178, 216);
this.arLabel5.Margin = new System.Windows.Forms.Padding(5);
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.Black;
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(165, 100);
this.arLabel5.TabIndex = 5;
this.arLabel5.Text = "패치파일 생성";
this.arLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel5.TextShadow = true;
this.arLabel5.TextVisible = true;
this.arLabel5.Click += new System.EventHandler(this.arLabel5_Click);
//
// arLabel7
//
this.arLabel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel7.BackColor2 = System.Drawing.Color.DarkBlue;
this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel7.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel7.BorderColorOver = System.Drawing.Color.Red;
this.arLabel7.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel7.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel7.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel7.ForeColor = System.Drawing.Color.White;
this.arLabel7.GradientEnable = true;
this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel7.GradientRepeatBG = true;
this.arLabel7.isButton = true;
this.arLabel7.Location = new System.Drawing.Point(347, 216);
this.arLabel7.Margin = new System.Windows.Forms.Padding(5);
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.Black;
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", 7F, System.Drawing.FontStyle.Italic);
this.arLabel7.Size = new System.Drawing.Size(165, 100);
this.arLabel7.TabIndex = 6;
this.arLabel7.Text = "자동 재시작";
this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel7.TextShadow = true;
this.arLabel7.TextVisible = true;
this.arLabel7.Click += new System.EventHandler(this.arLabel7_Click);
//
// 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(519, 451);
this.Controls.Add(this.arLabel7);
this.Controls.Add(this.arLabel5);
this.Controls.Add(this.arLabel3);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.arLabel4);
this.Controls.Add(this.lbMsg);
this.Controls.Add(this.arLabel9);
this.Controls.Add(this.arLabel10);
this.Controls.Add(this.arLabel1);
this.Controls.Add(this.arLabel2);
this.Controls.Add(this.arLabel6);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "fSystem";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "fSystem";
this.Load += new System.EventHandler(this.fSystem_Load);
this.ResumeLayout(false);
}
#endregion
private arCtl.arLabel lbMsg;
private arCtl.arLabel arLabel4;
private arCtl.arLabel arLabel6;
private arCtl.arLabel arLabel9;
private arCtl.arLabel arLabel10;
private arCtl.arLabel arLabel1;
private arCtl.arLabel arLabel2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private arCtl.arLabel arLabel3;
private arCtl.arLabel arLabel5;
private arCtl.arLabel arLabel7;
}
}

View File

@@ -0,0 +1,144 @@
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 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;
Util.SystemShutdown(10);
this.Close();
}
private void arLabel10_Click(object sender, EventArgs e)
{
shutdown = true;
Util.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 zipfile = new Ionic.Zip.ZipFile();
zipfile.AddFile(file_exe,"/");
foreach (var filedll in files_dll)
zipfile.AddFile(filedll.FullName,"/");
var veri = Application.ProductVersion.Split('.');
var newfilename = "Patch_AGV_" + veri[0] + veri[1]+ veri[2] + "_" +
veri[3] + ".zip";
zipfile.Save(newfilename);
Util.MsgI("다음 패치 파일이 생성됨\n" + newfilename);
}
private void arLabel7_Click(object sender, EventArgs e)
{
Util.SystemReboot(5,true);
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,60 @@
namespace Project.Dialog
{
partial class fTouchKey
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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;
}
}

View File

@@ -0,0 +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();
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,147 @@
namespace Project.Dialog
{
partial class fTouchKeyFull
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.touchKeyFull1 = new arCtl.TouchKeyFull();
this.tbInput = new System.Windows.Forms.TextBox();
this.lbTitle = new arCtl.arLabel();
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// touchKeyFull1
//
this.touchKeyFull1.Dock = System.Windows.Forms.DockStyle.Fill;
this.touchKeyFull1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.touchKeyFull1.Location = new System.Drawing.Point(6, 95);
this.touchKeyFull1.Name = "touchKeyFull1";
this.touchKeyFull1.Size = new System.Drawing.Size(788, 230);
this.touchKeyFull1.TabIndex = 0;
this.touchKeyFull1.keyClick += new arCtl.TouchKeyFull.KeyClickHandler(this.touchKeyFull1_keyClick);
//
// tbInput
//
this.tbInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.tbInput.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tbInput.Dock = System.Windows.Forms.DockStyle.Top;
this.tbInput.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.tbInput.ForeColor = System.Drawing.Color.White;
this.tbInput.Location = new System.Drawing.Point(6, 49);
this.tbInput.Name = "tbInput";
this.tbInput.Size = new System.Drawing.Size(788, 46);
this.tbInput.TabIndex = 0;
this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lbTitle
//
this.lbTitle.BackColor = System.Drawing.Color.Gray;
this.lbTitle.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100)))));
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.DarkBlue;
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.Dock = System.Windows.Forms.DockStyle.Top;
this.lbTitle.Enabled = false;
this.lbTitle.Enabled = true;
this.lbTitle.Font = new System.Drawing.Font("Consolas", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbTitle.ForeColor = System.Drawing.Color.White;
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(6, 5);
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)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
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(788, 44);
this.lbTitle.TabIndex = 2;
this.lbTitle.Text = "INPUT";
this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbTitle.TextShadow = true;
this.lbTitle.TextVisible = true;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.button1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.button1.Location = new System.Drawing.Point(728, 11);
this.button1.Margin = new System.Windows.Forms.Padding(0);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(60, 34);
this.button1.TabIndex = 3;
this.button1.Text = "CLOSE";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// fTouchKeyFull
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.ClientSize = new System.Drawing.Size(800, 330);
this.Controls.Add(this.button1);
this.Controls.Add(this.touchKeyFull1);
this.Controls.Add(this.tbInput);
this.Controls.Add(this.lbTitle);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.KeyPreview = true;
this.Name = "fTouchKeyFull";
this.Padding = new System.Windows.Forms.Padding(6, 5, 6, 5);
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "fTouchKeyFull";
this.Load += new System.EventHandler(this.fTouchKeyFull_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private arCtl.TouchKeyFull touchKeyFull1;
private arCtl.arLabel lbTitle;
public System.Windows.Forms.TextBox tbInput;
private System.Windows.Forms.Button button1;
}
}

View File

@@ -0,0 +1,99 @@
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 fTouchKeyFull : Form
{
public fTouchKeyFull(string title,string value)
{
InitializeComponent();
this.lbTitle.Text = title;
this.tbInput.Text = value;
this.KeyDown += (s1, e1) =>
{
if (e1.KeyCode == Keys.Escape)
this.Close();
};
this.lbTitle.MouseMove += LbTitle_MouseMove;
this.lbTitle.MouseUp += LbTitle_MouseUp;
this.lbTitle.MouseDown += LbTitle_MouseDown;
}
private void fTouchKeyFull_Load(object sender, EventArgs e)
{
this.Show();
Application.DoEvents();
this.tbInput.SelectAll();
this.tbInput.Focus();
}
#region "Mouse Form Move"
private Boolean fMove = false;
private Point MDownPos;
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 touchKeyFull1_keyClick(string key)
{
var seltext = tbInput.SelectedText;
switch(key)
{
case "CLR":
this.tbInput.Text = string.Empty;
break;
case "BACK":
if (this.tbInput.TextLength < 2) this.tbInput.Text = string.Empty;
else this.tbInput.Text = this.tbInput.Text.Substring(0,tbInput.TextLength-1);
this.tbInput.SelectionStart = this.tbInput.TextLength;
break;
case "ENTER":
this.DialogResult = DialogResult.OK;
break;
case "SPACE":
if (seltext.Length == tbInput.TextLength) tbInput.Text = "";
this.tbInput.Text += " ";
this.tbInput.SelectionStart = this.tbInput.TextLength;
break;
default:
if (seltext.Length == tbInput.TextLength) tbInput.Text = "";
this.tbInput.Text += key;
this.tbInput.SelectionStart = this.tbInput.TextLength;
break;
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,835 @@
namespace Project.Dialog
{
partial class fTouchNumDot
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.arLabel1 = new arCtl.arLabel();
this.arLabel2 = new arCtl.arLabel();
this.arLabel3 = new arCtl.arLabel();
this.arLabel4 = new arCtl.arLabel();
this.arLabel5 = new arCtl.arLabel();
this.arLabel6 = new arCtl.arLabel();
this.arLabel7 = new arCtl.arLabel();
this.arLabel8 = new arCtl.arLabel();
this.arLabel9 = new arCtl.arLabel();
this.arLabel11 = new arCtl.arLabel();
this.arLabel12 = new arCtl.arLabel();
this.arLabel13 = new arCtl.arLabel();
this.arLabel14 = new arCtl.arLabel();
this.arLabel15 = new arCtl.arLabel();
this.arLabel10 = new arCtl.arLabel();
this.tbInput = new System.Windows.Forms.TextBox();
this.panel1 = new System.Windows.Forms.Panel();
this.tableLayoutPanel1.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.arLabel1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.arLabel2, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.arLabel3, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.arLabel4, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.arLabel5, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.arLabel6, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.arLabel7, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.arLabel8, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.arLabel9, 2, 2);
this.tableLayoutPanel1.Controls.Add(this.arLabel11, 1, 3);
this.tableLayoutPanel1.Controls.Add(this.arLabel12, 3, 0);
this.tableLayoutPanel1.Controls.Add(this.arLabel13, 2, 3);
this.tableLayoutPanel1.Controls.Add(this.arLabel14, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.arLabel15, 3, 1);
this.tableLayoutPanel1.Controls.Add(this.arLabel10, 3, 2);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 50);
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(324, 265);
this.tableLayoutPanel1.TabIndex = 1;
//
// arLabel1
//
this.arLabel1.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel1.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel1.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel1.BorderColorOver = System.Drawing.Color.Red;
this.arLabel1.BorderSize = new System.Windows.Forms.Padding(2);
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("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel1.ForeColor = System.Drawing.Color.White;
this.arLabel1.GradientEnable = false;
this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel1.GradientRepeatBG = false;
this.arLabel1.isButton = true;
this.arLabel1.Location = new System.Drawing.Point(0, 0);
this.arLabel1.Margin = new System.Windows.Forms.Padding(0);
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.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 = "";
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(81, 66);
this.arLabel1.TabIndex = 0;
this.arLabel1.Tag = "1";
this.arLabel1.Text = "1";
this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel1.TextShadow = false;
this.arLabel1.TextVisible = true;
this.arLabel1.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel2
//
this.arLabel2.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel2.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel2.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel2.BorderColorOver = System.Drawing.Color.Red;
this.arLabel2.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel2.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel2.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel2.ForeColor = System.Drawing.Color.White;
this.arLabel2.GradientEnable = false;
this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel2.GradientRepeatBG = false;
this.arLabel2.isButton = true;
this.arLabel2.Location = new System.Drawing.Point(81, 0);
this.arLabel2.Margin = new System.Windows.Forms.Padding(0);
this.arLabel2.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel2.msg = null;
this.arLabel2.Name = "arLabel2";
this.arLabel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel2.ProgressEnable = false;
this.arLabel2.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel2.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel2.ProgressMax = 100F;
this.arLabel2.ProgressMin = 0F;
this.arLabel2.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel2.ProgressValue = 0F;
this.arLabel2.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel2.Sign = "";
this.arLabel2.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel2.SignColor = System.Drawing.Color.Yellow;
this.arLabel2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel2.Size = new System.Drawing.Size(81, 66);
this.arLabel2.TabIndex = 0;
this.arLabel2.Tag = "2";
this.arLabel2.Text = "2";
this.arLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel2.TextShadow = false;
this.arLabel2.TextVisible = true;
this.arLabel2.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel3
//
this.arLabel3.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel3.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel3.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel3.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel3.BorderColorOver = System.Drawing.Color.Red;
this.arLabel3.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel3.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel3.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel3.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel3.ForeColor = System.Drawing.Color.White;
this.arLabel3.GradientEnable = false;
this.arLabel3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel3.GradientRepeatBG = false;
this.arLabel3.isButton = true;
this.arLabel3.Location = new System.Drawing.Point(162, 0);
this.arLabel3.Margin = new System.Windows.Forms.Padding(0);
this.arLabel3.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel3.msg = null;
this.arLabel3.Name = "arLabel3";
this.arLabel3.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel3.ProgressEnable = false;
this.arLabel3.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel3.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel3.ProgressMax = 100F;
this.arLabel3.ProgressMin = 0F;
this.arLabel3.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel3.ProgressValue = 0F;
this.arLabel3.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel3.Sign = "";
this.arLabel3.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel3.SignColor = System.Drawing.Color.Yellow;
this.arLabel3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel3.Size = new System.Drawing.Size(81, 66);
this.arLabel3.TabIndex = 0;
this.arLabel3.Tag = "3";
this.arLabel3.Text = "3";
this.arLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel3.TextShadow = false;
this.arLabel3.TextVisible = true;
this.arLabel3.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel4
//
this.arLabel4.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel4.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel4.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel4.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel4.BorderColorOver = System.Drawing.Color.Red;
this.arLabel4.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel4.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel4.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel4.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel4.ForeColor = System.Drawing.Color.White;
this.arLabel4.GradientEnable = false;
this.arLabel4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel4.GradientRepeatBG = false;
this.arLabel4.isButton = true;
this.arLabel4.Location = new System.Drawing.Point(162, 66);
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.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.WhiteSmoke;
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", 7F, System.Drawing.FontStyle.Italic);
this.arLabel4.Size = new System.Drawing.Size(81, 66);
this.arLabel4.TabIndex = 0;
this.arLabel4.Tag = "6";
this.arLabel4.Text = "6";
this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel4.TextShadow = false;
this.arLabel4.TextVisible = true;
this.arLabel4.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel5
//
this.arLabel5.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel5.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel5.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel5.BorderColorOver = System.Drawing.Color.Red;
this.arLabel5.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel5.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel5.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel5.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel5.ForeColor = System.Drawing.Color.White;
this.arLabel5.GradientEnable = false;
this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel5.GradientRepeatBG = false;
this.arLabel5.isButton = true;
this.arLabel5.Location = new System.Drawing.Point(81, 66);
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.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.WhiteSmoke;
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(81, 66);
this.arLabel5.TabIndex = 0;
this.arLabel5.Tag = "5";
this.arLabel5.Text = "5";
this.arLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel5.TextShadow = false;
this.arLabel5.TextVisible = true;
this.arLabel5.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel6
//
this.arLabel6.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel6.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel6.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel6.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel6.BorderColorOver = System.Drawing.Color.Red;
this.arLabel6.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel6.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel6.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel6.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel6.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel6.ForeColor = System.Drawing.Color.White;
this.arLabel6.GradientEnable = false;
this.arLabel6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel6.GradientRepeatBG = false;
this.arLabel6.isButton = true;
this.arLabel6.Location = new System.Drawing.Point(0, 66);
this.arLabel6.Margin = new System.Windows.Forms.Padding(0);
this.arLabel6.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel6.msg = null;
this.arLabel6.Name = "arLabel6";
this.arLabel6.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel6.ProgressEnable = false;
this.arLabel6.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel6.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel6.ProgressMax = 100F;
this.arLabel6.ProgressMin = 0F;
this.arLabel6.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel6.ProgressValue = 0F;
this.arLabel6.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel6.Sign = "";
this.arLabel6.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel6.SignColor = System.Drawing.Color.Yellow;
this.arLabel6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel6.Size = new System.Drawing.Size(81, 66);
this.arLabel6.TabIndex = 0;
this.arLabel6.Tag = "4";
this.arLabel6.Text = "4";
this.arLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel6.TextShadow = false;
this.arLabel6.TextVisible = true;
this.arLabel6.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel7
//
this.arLabel7.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel7.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel7.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel7.BorderColorOver = System.Drawing.Color.Red;
this.arLabel7.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel7.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel7.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel7.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel7.ForeColor = System.Drawing.Color.White;
this.arLabel7.GradientEnable = false;
this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel7.GradientRepeatBG = false;
this.arLabel7.isButton = true;
this.arLabel7.Location = new System.Drawing.Point(0, 132);
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.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.WhiteSmoke;
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", 7F, System.Drawing.FontStyle.Italic);
this.arLabel7.Size = new System.Drawing.Size(81, 66);
this.arLabel7.TabIndex = 0;
this.arLabel7.Tag = "7";
this.arLabel7.Text = "7";
this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel7.TextShadow = false;
this.arLabel7.TextVisible = true;
this.arLabel7.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel8
//
this.arLabel8.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel8.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel8.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel8.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel8.BorderColorOver = System.Drawing.Color.Red;
this.arLabel8.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel8.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel8.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel8.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel8.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel8.ForeColor = System.Drawing.Color.White;
this.arLabel8.GradientEnable = false;
this.arLabel8.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel8.GradientRepeatBG = false;
this.arLabel8.isButton = true;
this.arLabel8.Location = new System.Drawing.Point(81, 132);
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.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.WhiteSmoke;
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", 7F, System.Drawing.FontStyle.Italic);
this.arLabel8.Size = new System.Drawing.Size(81, 66);
this.arLabel8.TabIndex = 0;
this.arLabel8.Tag = "8";
this.arLabel8.Text = "8";
this.arLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel8.TextShadow = false;
this.arLabel8.TextVisible = true;
this.arLabel8.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel9
//
this.arLabel9.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel9.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel9.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel9.BorderColorOver = System.Drawing.Color.Red;
this.arLabel9.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel9.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel9.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel9.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel9.ForeColor = System.Drawing.Color.White;
this.arLabel9.GradientEnable = false;
this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel9.GradientRepeatBG = false;
this.arLabel9.isButton = true;
this.arLabel9.Location = new System.Drawing.Point(162, 132);
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.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.WhiteSmoke;
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", 7F, System.Drawing.FontStyle.Italic);
this.arLabel9.Size = new System.Drawing.Size(81, 66);
this.arLabel9.TabIndex = 0;
this.arLabel9.Tag = "9";
this.arLabel9.Text = "9";
this.arLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel9.TextShadow = false;
this.arLabel9.TextVisible = true;
this.arLabel9.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel11
//
this.arLabel11.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel11.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel11.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel11.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel11.BorderColorOver = System.Drawing.Color.Red;
this.arLabel11.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel11.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel11.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel11.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel11.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel11.ForeColor = System.Drawing.Color.White;
this.arLabel11.GradientEnable = false;
this.arLabel11.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel11.GradientRepeatBG = false;
this.arLabel11.isButton = true;
this.arLabel11.Location = new System.Drawing.Point(81, 198);
this.arLabel11.Margin = new System.Windows.Forms.Padding(0);
this.arLabel11.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel11.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel11.msg = null;
this.arLabel11.Name = "arLabel11";
this.arLabel11.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel11.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel11.ProgressEnable = false;
this.arLabel11.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel11.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel11.ProgressMax = 100F;
this.arLabel11.ProgressMin = 0F;
this.arLabel11.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel11.ProgressValue = 0F;
this.arLabel11.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel11.Sign = "";
this.arLabel11.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel11.SignColor = System.Drawing.Color.Yellow;
this.arLabel11.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel11.Size = new System.Drawing.Size(81, 67);
this.arLabel11.TabIndex = 0;
this.arLabel11.Tag = "0";
this.arLabel11.Text = "0";
this.arLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel11.TextShadow = false;
this.arLabel11.TextVisible = true;
this.arLabel11.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel12
//
this.arLabel12.BackColor = System.Drawing.Color.Gray;
this.arLabel12.BackColor2 = System.Drawing.Color.Gold;
this.arLabel12.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel12.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel12.BorderColorOver = System.Drawing.Color.Red;
this.arLabel12.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel12.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel12.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel12.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel12.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel12.ForeColor = System.Drawing.Color.White;
this.arLabel12.GradientEnable = true;
this.arLabel12.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel12.GradientRepeatBG = false;
this.arLabel12.isButton = true;
this.arLabel12.Location = new System.Drawing.Point(243, 0);
this.arLabel12.Margin = new System.Windows.Forms.Padding(0);
this.arLabel12.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel12.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel12.msg = null;
this.arLabel12.Name = "arLabel12";
this.arLabel12.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel12.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel12.ProgressEnable = false;
this.arLabel12.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel12.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel12.ProgressMax = 100F;
this.arLabel12.ProgressMin = 0F;
this.arLabel12.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel12.ProgressValue = 0F;
this.arLabel12.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel12.Sign = "";
this.arLabel12.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel12.SignColor = System.Drawing.Color.Yellow;
this.arLabel12.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel12.Size = new System.Drawing.Size(81, 66);
this.arLabel12.TabIndex = 0;
this.arLabel12.Tag = "B";
this.arLabel12.Text = "BACK";
this.arLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel12.TextShadow = false;
this.arLabel12.TextVisible = true;
this.arLabel12.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel13
//
this.arLabel13.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel13.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel13.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel13.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel13.BorderColorOver = System.Drawing.Color.Red;
this.arLabel13.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel13.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel13.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel13.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel13.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel13.ForeColor = System.Drawing.Color.White;
this.arLabel13.GradientEnable = false;
this.arLabel13.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel13.GradientRepeatBG = false;
this.arLabel13.isButton = true;
this.arLabel13.Location = new System.Drawing.Point(162, 198);
this.arLabel13.Margin = new System.Windows.Forms.Padding(0);
this.arLabel13.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel13.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel13.msg = null;
this.arLabel13.Name = "arLabel13";
this.arLabel13.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel13.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel13.ProgressEnable = false;
this.arLabel13.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel13.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel13.ProgressMax = 100F;
this.arLabel13.ProgressMin = 0F;
this.arLabel13.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel13.ProgressValue = 0F;
this.arLabel13.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel13.Sign = "";
this.arLabel13.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel13.SignColor = System.Drawing.Color.Yellow;
this.arLabel13.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel13.Size = new System.Drawing.Size(81, 67);
this.arLabel13.TabIndex = 0;
this.arLabel13.Tag = ".";
this.arLabel13.Text = ".";
this.arLabel13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel13.TextShadow = false;
this.arLabel13.TextVisible = true;
this.arLabel13.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel14
//
this.arLabel14.BackColor = System.Drawing.Color.SkyBlue;
this.arLabel14.BackColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel14.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel14.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel14.BorderColorOver = System.Drawing.Color.Red;
this.arLabel14.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel14.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel14.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel14.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel14.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.arLabel14.ForeColor = System.Drawing.Color.White;
this.arLabel14.GradientEnable = false;
this.arLabel14.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel14.GradientRepeatBG = false;
this.arLabel14.isButton = true;
this.arLabel14.Location = new System.Drawing.Point(0, 198);
this.arLabel14.Margin = new System.Windows.Forms.Padding(0);
this.arLabel14.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel14.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel14.msg = null;
this.arLabel14.Name = "arLabel14";
this.arLabel14.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel14.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel14.ProgressEnable = false;
this.arLabel14.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel14.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel14.ProgressMax = 100F;
this.arLabel14.ProgressMin = 0F;
this.arLabel14.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel14.ProgressValue = 0F;
this.arLabel14.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel14.Sign = "";
this.arLabel14.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel14.SignColor = System.Drawing.Color.Yellow;
this.arLabel14.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel14.Size = new System.Drawing.Size(81, 67);
this.arLabel14.TabIndex = 0;
this.arLabel14.Tag = "-";
this.arLabel14.Text = "-";
this.arLabel14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel14.TextShadow = false;
this.arLabel14.TextVisible = true;
this.arLabel14.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel15
//
this.arLabel15.BackColor = System.Drawing.Color.Gray;
this.arLabel15.BackColor2 = System.Drawing.Color.SteelBlue;
this.arLabel15.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel15.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel15.BorderColorOver = System.Drawing.Color.Red;
this.arLabel15.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel15.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel15.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel15.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel15.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel15.ForeColor = System.Drawing.Color.White;
this.arLabel15.GradientEnable = true;
this.arLabel15.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel15.GradientRepeatBG = false;
this.arLabel15.isButton = true;
this.arLabel15.Location = new System.Drawing.Point(243, 66);
this.arLabel15.Margin = new System.Windows.Forms.Padding(0);
this.arLabel15.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel15.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel15.msg = null;
this.arLabel15.Name = "arLabel15";
this.arLabel15.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel15.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel15.ProgressEnable = false;
this.arLabel15.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel15.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel15.ProgressMax = 100F;
this.arLabel15.ProgressMin = 0F;
this.arLabel15.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel15.ProgressValue = 0F;
this.arLabel15.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel15.Sign = "";
this.arLabel15.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel15.SignColor = System.Drawing.Color.Yellow;
this.arLabel15.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel15.Size = new System.Drawing.Size(81, 66);
this.arLabel15.TabIndex = 0;
this.arLabel15.Tag = "C";
this.arLabel15.Text = "CLEAR";
this.arLabel15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel15.TextShadow = false;
this.arLabel15.TextVisible = true;
this.arLabel15.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel10
//
this.arLabel10.BackColor = System.Drawing.Color.CadetBlue;
this.arLabel10.BackColor2 = System.Drawing.Color.Lime;
this.arLabel10.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel10.BorderColor = System.Drawing.Color.SteelBlue;
this.arLabel10.BorderColorOver = System.Drawing.Color.Red;
this.arLabel10.BorderSize = new System.Windows.Forms.Padding(2);
this.arLabel10.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel10.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel10.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel10.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel10.ForeColor = System.Drawing.Color.White;
this.arLabel10.GradientEnable = true;
this.arLabel10.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel10.GradientRepeatBG = false;
this.arLabel10.isButton = true;
this.arLabel10.Location = new System.Drawing.Point(243, 132);
this.arLabel10.Margin = new System.Windows.Forms.Padding(0);
this.arLabel10.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel10.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel10.msg = null;
this.arLabel10.Name = "arLabel10";
this.arLabel10.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel10.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel10.ProgressEnable = false;
this.arLabel10.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel10.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel10.ProgressMax = 100F;
this.arLabel10.ProgressMin = 0F;
this.arLabel10.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel10.ProgressValue = 0F;
this.tableLayoutPanel1.SetRowSpan(this.arLabel10, 2);
this.arLabel10.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel10.Sign = "";
this.arLabel10.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel10.SignColor = System.Drawing.Color.Yellow;
this.arLabel10.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel10.Size = new System.Drawing.Size(81, 133);
this.arLabel10.TabIndex = 0;
this.arLabel10.Tag = "E";
this.arLabel10.Text = "ENTER";
this.arLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel10.TextShadow = false;
this.arLabel10.TextVisible = true;
this.arLabel10.Click += new System.EventHandler(this.arLabel1_Click);
//
// tbInput
//
this.tbInput.Dock = System.Windows.Forms.DockStyle.Top;
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(5, 5);
this.tbInput.Name = "tbInput";
this.tbInput.Size = new System.Drawing.Size(324, 40);
this.tbInput.TabIndex = 2;
this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// panel1
//
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(5, 45);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(324, 5);
this.panel1.TabIndex = 3;
//
// fTouchNumDot
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.ClientSize = new System.Drawing.Size(334, 320);
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.tbInput);
this.Name = "fTouchNumDot";
this.Padding = new System.Windows.Forms.Padding(5);
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Input Value";
this.Load += new System.EventHandler(this.fTouchNumDot_Load);
this.tableLayoutPanel1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private arCtl.arLabel arLabel1;
private arCtl.arLabel arLabel2;
private arCtl.arLabel arLabel3;
private arCtl.arLabel arLabel4;
private arCtl.arLabel arLabel5;
private arCtl.arLabel arLabel6;
private arCtl.arLabel arLabel7;
private arCtl.arLabel arLabel8;
private arCtl.arLabel arLabel9;
private arCtl.arLabel arLabel10;
private arCtl.arLabel arLabel11;
private arCtl.arLabel arLabel12;
public System.Windows.Forms.TextBox tbInput;
private System.Windows.Forms.Panel panel1;
private arCtl.arLabel arLabel13;
private arCtl.arLabel arLabel14;
private arCtl.arLabel arLabel15;
}
}

View File

@@ -0,0 +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());
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,500 @@
namespace Project.Dialog
{
partial class fUpdateForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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;
}
}

View File

@@ -0,0 +1,256 @@
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 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 = bg2;
lbTitle.BackColor2 = 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(); //폴더를 생성해준다.
}
//해당폴더에 압축을 해제해준다.
var f = new Ionic.Zip.ZipFile(file);
f.ExtractProgress += F_ExtractProgress;
f.ExtractAll(dir_path.FullName);
f.ExtractProgress -= F_ExtractProgress;
//패치정보파일 추가
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, Ionic.Zip.ExtractProgressEventArgs e)
{
if(e.TotalBytesToTransfer < 1)
{
lb3.ProgressValue = 0;
}
else
{
var perc = (e.BytesTransferred / e.TotalBytesToTransfer) * 100.0;
this.lb3.ProgressValue = (float)perc;
}
}
private void btNo_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
this.Close();
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="tmBlink.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

168
Cs_HMI/Project/Dialog/fVolume.Designer.cs generated Normal file
View File

@@ -0,0 +1,168 @@
namespace Project.Dialog
{
partial class fVolume
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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;
}
}

View File

@@ -0,0 +1,124 @@
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)
{
PUB.mplayer.Volume += 0.1;
PUB.setting.musicvol = (int)(PUB.mplayer.Volume * 100);
}
private void button4_Click(object sender, EventArgs e)
{
PUB.mplayer.Volume -= 0.1;
PUB.setting.musicvol = (int)(PUB.mplayer.Volume * 100);
}
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);
}
}
}

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,417 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Project.Manager
{
public class DatabaseManager
{
/// <summary>
/// 파일검색방법
/// </summary>
public enum eFileSearchMode
{
Normal,
Project,
Model,
MCCode,
Barcode,
All,
}
public enum eStripSearchResult
{
None,
OK,
NG,
}
/// <summary>
/// 버퍼갯수(지정 갯수가 차면 실제파일에 기록을 한다)
/// </summary>
private int MaxBufferCount = 1;
/// <summary>
/// 최종파일
/// </summary>
private String LastFileName;
private string[] dataPath = new string[] { };
private DataSet1.ResultDataDataTable dt;
// private string _subDirName = string.Empty;
/// <summary>
/// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다)
/// </summary>
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(); //파일에 실제저장한다.
}
}
/// <summary>
/// 신규파일을 생성합니다.
/// </summary>
/// <param name="filename"></param>
void MakeFile(string filename)
{
//파일이없다면 헤더를 만들어준다.
arUtil.XMLHelper xml = new arUtil.XMLHelper(filename);
xml.CreateFile();
}
/// <summary>
/// 저장해야할 컬럼명을 반환한다.(idx는 제외한다)
/// </summary>
/// <returns></returns>
public string[] getDataColumnList()
{
//저장하고자하는 순서를 미리 지정한다.(지정안된 자료는 알아서 저장된다)
string[] reserveCols = new string[] { };
List<String> cols = new List<string>();
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 arUtil.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();
}
/// <summary>
/// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다.
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
public DataSet1.ResultDataDataTable GetDatas(List<System.IO.FileInfo> files)
{
DataSet1.ResultDataDataTable retval = new DataSet1.ResultDataDataTable();
//모든파일을 대상으로한다.
foreach(var file in files)
{
var newdr = retval.NewResultDataRow();
newdr.info_filename = file.FullName;
arUtil.XMLHelper xml = new arUtil.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<String> pathlist, string strip)
{
//지정된 경로내에 스트립파일이 존재하는가?
foreach(var path in pathlist)
{
var filese = System.IO.Directory.GetFiles( path , strip + ".xml");
if(filese .Length == 1)
{
var xml = new arUtil.XMLHelper(filese[0]);
var upload = xml.get_Data("info", "upload");
if (upload == "O") return eStripSearchResult.OK;
}
}
return eStripSearchResult.None;
}
/// <summary>
/// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다.
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
public eStripSearchResult FindStrip(List<System.IO.FileInfo> 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<String> cols = new List<string>();
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<String> GetPathListbyLot(DateTime sdate, DateTime edate, string lot)
{
List<String> retfiles = new List<String>();
//날짜사이의 모든 파일을 대상으로해야함
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;
}
/// <summary>
/// 지정된 기간사이의 파일명을 반환합니다.
/// </summary>
/// <param name="sdate">검색시작일(시간은 적용안함)</param>
/// <param name="edate">검색종료일(시간은 적용안함)</param>
/// <param name="extFilter">검색필터</param>
/// <param name="SearchNo">장치번호</param>
/// <param name="SearchBarcode">검색바코드</param>
/// <returns></returns>
public List<System.IO.FileInfo> Getfiles(DateTime sdate, DateTime edate)
{
List<System.IO.FileInfo> retfiles = new List<System.IO.FileInfo>();
//날짜사이의 모든 파일을 대상으로해야함
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;
}
}
}

View File

@@ -0,0 +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();
}
}
}
}

View File

@@ -0,0 +1,155 @@
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,
}
public bool needClose = false;
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("");
/// <summary>
/// 메세지 버퍼의 내용을 폼으로 표시합니다.
/// UI 쓰레드를 사용하므로 invoke 를 이용해 호출 하거나
/// UI 쓰레드내에서 실행 하시기 바랍니다.
/// </summary>
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;
}
}
}
}
}

View File

@@ -0,0 +1,676 @@
namespace Project
{
partial class fMessageWindow
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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;
}
}

View File

@@ -0,0 +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;
/// <summary>
/// 사용자가 이 창을 닫을수 있는가?
/// </summary>
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 = bg2;
lbTitle.BackColor2 = 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();
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="tmBlink.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,472 @@
namespace Project
{
partial class fMsgWindow
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
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
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;
}
}

View File

@@ -0,0 +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;
/// <summary>
/// 사용자가 이 창을 닫을수 있는가?
/// </summary>
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;
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="tmBlink.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +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
{
/// <summary>
/// generic method Extension
/// </summary>
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;
//}
/// <summary>
/// 0101이 반복되는 문자열 형태로 전환합니다.
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
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();
}
/// <summary>
/// int 값으로 변환합니다.
/// </summary>
/// <param name="arr"></param>
/// <returns></returns>
public static int ValueI(this System.Collections.BitArray arr)
{
byte[] buf = new byte[4];
arr.CopyTo(buf, 0);
return BitConverter.ToInt32(buf, 0);
}
/// <summary>
/// 숫자인지 검사합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static bool IsNumeric(this string input)
{
double data;
return double.TryParse(input, out data);
//return Regex.IsMatch(input, @"^\d+$");
}
/// <summary>
/// isnullorempty 를 수행합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static Boolean isEmpty(this string input)
{
return string.IsNullOrEmpty(input);
}
/// <summary>
/// default 인코딩을 사용하여 문자열로 반환합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public static string GetString(this Byte[] input)
{
return System.Text.Encoding.Default.GetString(input);
}
/// <summary>
/// 16진수 문자열 형태로 반환합니다.
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
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;
}
}
}

439
Cs_HMI/Project/PUB.cs Normal file
View File

@@ -0,0 +1,439 @@
using Microsoft.Speech.Synthesis;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Media;
using COMM;
using System.Threading.Tasks;
using System.Net.NetworkInformation;
using System.Net;
using System.Management;
using System.Data.SqlClient;
using System.Data;
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;
#region "Hardware"
/// <summary>
/// 읽기/쓰기용이며 구동모터 와 비상정지가 연결됨(USB-ATMEGA 2560)
/// </summary>
public static arDev.FakePLC PLC;
///// <summary>
///// 읽기전용이며 Z축 모터와 외부 버튼이 연결됨(USB-ATMEGA 2560)
///// </summary>
//public static Device.PLC2 plcS;
/// <summary>
/// XBEE 통신(USB-TTL)
/// </summary>
public static Device.Xbee XBE;
/// <summary>
/// 배터리 잔량 확인(COM2 : RS232C - TTL)
/// </summary>
// public static arDevice.BMS bms;
/// <summary>
/// RFID READER (COM1 : RS232C)
/// </summary>
public static arDev.Narumi AGV;
public static arDev.BMS BMS;
#endregion
/// <summary>
/// 디버그모니터용 소켓(데이터를 전송만 한다)
/// </summary>
public static Device.Socket sock_debug;
private static SpeechSynthesizer voice;
public static MediaPlayer mplayer;
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)
{
if (force == false && PUB.setting.Enable_Speak == false) return;
if (force)
voice.SpeakAsyncCancelAll();
if (voice.State == SynthesizerState.Ready)
voice.SpeakAsync(m);
if (addlog) PUB.log.Add("SPEAK",m);
}
/// <summary>
/// 콜을 받을 수 있는 상황인가?
/// </summary>
/// <returns></returns>
public static bool IsCanCALL()
{
//콜가능여부도 전송한다
if (VAR.BOOL[eVarBool.FLAG_AUTORUN] &&
VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false &&
PUB.BMS.Current_Level > PUB.setting.ChargeEmergencyLevel &&
PUB.sm.RunStep != StateMachine.ERunStep.GOUP &&
VAR.BOOL[eVarBool.WAIT_COVER_DOWN] == false &&
VAR.BOOL[eVarBool.WAIT_COVER_UP] == false)
{
return true;
}
else return false;
}
public static CounterSetting counter;
/// <summary>
/// popup message window
/// </summary>
public static MessageWindow popup;
/// <summary>
/// database manager
/// </summary>
public static Manager.DatabaseManager dbm;
/// <summary>
/// 설정정보
/// </summary>
public static CSetting setting;
/// <summary>
/// 시스템로그
/// </summary>
public static arUtil.Log log, logagv, logplc, logbms, logcal;
public static Boolean bPlayMusic = false;
/// <summary>
/// 사용자 인풋 감지 시간
/// </summary>
public static DateTime LastInputTime = DateTime.Now;
public static CResult Result;
public static string PatchVersion { get; set; }
/// <summary>
/// 상태머신
/// </summary>
public static 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 arUtil.Log();
logagv = new arUtil.Log();
logplc = new arUtil.Log();
logbms = new arUtil.Log();
logcal = new arUtil.Log();
logagv.FileNameFormat = "{yyyyMMdd}_agv";
logplc.FileNameFormat = "{yyyyMMdd}_plc";
logbms.FileNameFormat = "{yyyyMMdd}_bms";
logcal.FileNameFormat = "{yyyyMMdd}_cal";
//popupmessage
popup = new MessageWindow();
Result = new CResult();
Result.Clear();
}
public static void init()
{
Result = new CResult();
//state machine
sm = new StateMachine();
path = new System.IO.DirectoryInfo(Util.CurrentPath);
mplayer = new MediaPlayer
{
Volume = PUB.setting.musicvol / 100.0
};
if (PUB.setting.musicfile.isEmpty() == false)
if (System.IO.File.Exists(PUB.setting.musicfile))
PUB.mplayer.Open(new Uri(PUB.setting.musicfile));
voice = new SpeechSynthesizer();
voice.SelectVoice("Microsoft Server Speech Text to Speech Voice (ko-KR, Heami)");
voice.SetOutputToDefaultAudioDevice();
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;
}
/// <summary>
/// 장치에 오류가 있는지?
/// </summary>
/// <returns></returns>
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 IP { get; set; }
public static string MAC { get; set; }
/// <summary>
/// 프로그램 사용기록 추가
/// </summary>
/// <param name="prgmName"></param>
/// <param name="develop"></param>
/// <param name="prgmVersion"></param>
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;
}
SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!");
conn.Open();
string ProcName = "AddPrgmUser3";
SqlCommand 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 void ChangeUIPopup(System.Windows.Forms.NumericUpDown valueCtl)
{
var value = valueCtl.Value.ToString();
var f = AR.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;
}
}
}
}

64
Cs_HMI/Project/Program.cs Normal file
View File

@@ -0,0 +1,64 @@
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
{
/// <summary>
/// 해당 응용 프로그램의 주 진입점입니다.
/// </summary>
[STAThread]
static void Main()
{
//중복실행방지
var guidAttr = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(GuidAttribute), true);
if (guidAttr != null)
{
var guida = (GuidAttribute)guidAttr[0];
var guidstr = guida.Value;
Mutex mtx = new Mutex(true, guidstr);
var success = mtx.WaitOne(new TimeSpan(0, 0, 1));
if (success == false)
{
MessageBox.Show("중복실행 불가\n\n프로그램이 실행 중 입니다");
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();
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();
Util.SaveBugReport(emsg);
var f = new fErrorException(emsg);
f.ShowDialog();
Application.ExitThread();
}
}
}

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
// 이러한 특성 값을 변경하세요.
[assembly: AssemblyTitle("(OTP) 2D Reading System")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Amkor K4")]
[assembly: AssemblyProduct("(OTP) 2D Reading System")]
[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("24.12.06.1300")]
[assembly: AssemblyFileVersion("24.12.06.1300")]

View File

@@ -0,0 +1,173 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Project.Properties {
using System;
/// <summary>
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
/// </summary>
// 이 클래스는 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() {
}
/// <summary>
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
/// </summary>
[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;
}
}
/// <summary>
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
/// 재정의합니다.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Charge {
get {
object obj = ResourceManager.GetObject("Charge", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap ChargeH {
get {
object obj = ResourceManager.GetObject("ChargeH", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icons8_charged_battery_80 {
get {
object obj = ResourceManager.GetObject("icons8_charged_battery_80", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
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));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icons8_exercise_40 {
get {
object obj = ResourceManager.GetObject("icons8-exercise-40", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icons8_new_40 {
get {
object obj = ResourceManager.GetObject("icons8-new-40", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icons8_no_running_40 {
get {
object obj = ResourceManager.GetObject("icons8-no-running-40", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icons8_running_40 {
get {
object obj = ResourceManager.GetObject("icons8-running-40", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icons8_save_40 {
get {
object obj = ResourceManager.GetObject("icons8-save-40", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap icons8_unavailable_40 {
get {
object obj = ResourceManager.GetObject("icons8-unavailable-40", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap setup_40 {
get {
object obj = ResourceManager.GetObject("setup_40", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="icons8-no-running-40" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-no-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-save-40" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-save-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-unavailable-40" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-unavailable-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-new-40" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-new-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-exercise-40" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-exercise-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-running-40" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-checked-radio-button-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-checked-radio-button-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_charged_battery_80" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charged-battery-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="setup_40" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-automatic-gearbox-warning-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Charge" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charge-empty-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ChargeH" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ChargeH.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -0,0 +1,38 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Project.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;
}
}
[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;
}
}
}
}

View File

@@ -0,0 +1,11 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Project.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="css" Type="System.String" Scope="User">
<Value Profile="(Default)">asdfasdfasdf
asdfasdfasdf
asdf</Value>
</Setting>
</Settings>
</SettingsFile>

20
Cs_HMI/Project/ReadMe.txt Normal file
View File

@@ -0,0 +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 입력

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

View File

@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Windows.Forms;
using System.Management;
using COMM;
namespace Project
{
public static partial class UTIL
{
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통신실패;
default:
return err.ToString();
}
}
}
}

View File

@@ -0,0 +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;
}
}
}
}

View File

@@ -0,0 +1,550 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
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)
{
//중단기능이 동작이라면 처리하지 않는다.
if (PUB.sm.bPause)
{
System.Threading.Thread.Sleep(200);
return;
}
//사용자 스텝처리가 아닌경우에만 검사
//if (Pub.flag.get(eFlag.UserStepCheck) == false)
{
//가동불가 조건 확인
if (CheckStopCondition() == false)
{
PUB.sm.SetNewStep(eSMStep.PAUSE);
return;
}
}
//이머전시상태라면 stop 처리한다.
if (PUB.AGV.error.Emergency && PUB.AGV.system1.agv_stop == true &&
PUB.AGV.system1.stop_by_front_detect == false)
{
PUB.Speak(Lang.);
PUB.sm.SetNewStep(eSMStep.IDLE);
}
//실행스텝보정
//if (Pub.sm.runStep == eRunStep.NOTSET && Pub.sm.runStepNew == eRunStep.NOTSET)
//{
// Pub.sm.setNewRunStep(eRunStep.IDLE);
// Pub.log.Add("RUnStep Initialize");
//}
//스텝이 변경되었다면?
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.Set(eVarTime.ReadyStart);
else
VAR.TIME.Set(eVarTime.RunStart);
}
switch (PUB.sm.RunStep)
{
case ERunStep.READY:
_SM_RUN_READY(runStepisFirst, PUB.sm.GetRunSteptime);
break;
case ERunStep.GOCHARGE: //충전위치로 이동
if (runStepisFirst)
{
VAR.TIME[eVarTime.ChargeTry] = DateTime.Now;
PUB.sm.ResetRunStepSeq();
PUB.log.Add("충전 명령 시작");
}
else if (_SM_RUN_GOCHARGE(runStepisFirst, PUB.sm.GetRunSteptime))
{
//230601
//if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
PUB.Speak(Lang.) ;
PUB.sm.SetNewRunStep(ERunStep.CHARGECHECK);
return;
}
break;
case ERunStep.CHARGECHECK: //충전중
if (runStepisFirst)
{
VAR.TIME.Set(eVarTime.ChargeStart);
LastCommandTime = DateTime.Now;
}
else if (_SM_RUN_GOCHARGECHECK(runStepisFirst, PUB.sm.GetRunSteptime))
{
//충전상태가 활성화되었으므로 대기상태로 전환한다
PUB.sm.SetNewRunStep(ERunStep.READY);
PUB.log.AddAT("충전상태 확인 완료로 인해 대기 합니다");
}
break;
case ERunStep.CHARGEOFF:
if (runStepisFirst)
{
VAR.TIME.Set(eVarTime.ChargeEnd);
LastCommandTime = DateTime.Now;
}
else
{
//충전 상태가 OFF되어야 동작하게한다
if (_SM_RUN_CHGOFF(isFirst, stepTime) == true)
{
//충전상태가 활성화되었으므로 대기상태로 전환한다
PUB.sm.ClearRunStep();
//충전기위치에서 OFF를 한 경우이다
if (PUB.Result.CurrentPos != ePosition.CHARGE || PUB.Result.TargetPos != ePosition.CHARGE)
{
PUB.Result.CurrentPos = ePosition.NONE;
}
else
{
PUB.Result.TargetPos = ePosition.QC;
}
PUB.Result.CurrentPosCW = "1";
PUB.sm.SetNewRunStep(ERunStep.GOHOME);
PUB.log.AddAT("충전 해제로 홈으로 이동");
}
}
break;
case ERunStep.GOUP: //상차이동
if (_SM_RUN_GOUP(runStepisFirst, PUB.sm.GetRunSteptime))
{
PUB.Speak(Lang.);
//230601
// if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
//QA를 제외한 경우에는 기본 QC로 이동한다
if (PUB.Result.NextPos == ePosition.QA)
PUB.Result.TargetPos = ePosition.QA;
else
PUB.Result.TargetPos = ePosition.QC;
PUB.sm.SetNewRunStep(ERunStep.GODOWN); //하차작업으로 전환
return;
}
break;
case ERunStep.GODOWN: //하차이동
if (_SM_RUN_GODOWN(runStepisFirst, PUB.sm.GetRunSteptime))
{
PUB.Speak(Lang.);
VAR.TIME.Set(eVarTime.ChargeTry);
PUB.PLC.ZMot(arDev.FakePLC.ZMotDirection.Down);// (Device.PLC.ZMotDirection.Down); //하차작업이 완료되면 커버를 내려서 바로 작업할 수 있게 한다.
//230601
//if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
//하차가 완료되면 충전대기시간을 30초 남겨두고 없데이트한다
//충전이 필요할 경우 바로 될수있도록 220118
VAR.TIME[eVarTime.ChargeTry] = DateTime.Now.AddSeconds(-1 * PUB.setting.ChargeRetryTerm + 30);
if (PUB.Result.CurrentPos == ePosition.QC)
{
PUB.Speak(Lang.);
PUB.sm.SetNewRunStep(ERunStep.READY);
}
else
{
//홈 이동 명령처리
PUB.sm.ClearRunStep();
PUB.Result.TargetPos = ePosition.QC;
PUB.sm.SetNewRunStep(ERunStep.GOHOME);
PUB.Speak( Lang.);
}
return;
}
break;
case ERunStep.GOHOME:
if (runStepisFirst)
{
PUB.Speak(Lang.);
}
else if (_SM_RUN_GOHOME(runStepisFirst, PUB.sm.GetRunSteptime))
{
//230601
// if (PUB.Result != null && PUB.sm != null)
// EEMStatus.AddEEDBSQL(PUB.sm.Step, PUB.sm.RunStep.ToString(), PUB.Result.TargetPos.ToString());
PUB.Speak(Lang.);
VAR.TIME.Set(eVarTime.ChargeTry);
PUB.sm.SetNewRunStep(ERunStep.READY); //대기상태로 전환한다
return;
}
break;
}
}
bool CheckStopCondition()
{
return true;
}
void CheckAGVMoveTo(eGoDir dir)
{
//계속내려간다
if (dir == eGoDir.Down)
{
var tsCmd = DateTime.Now - LastCommandTime;
if (tsCmd.TotalMilliseconds >= 1999)
{
//현재 동작중인상태에서 방향이 맞지 않다면 일단 움직임을 멈춘다
if (PUB.AGV.system1.agv_run)
{
if (PUB.AGV.data.Direction == 'B')
{
PUB.log.Add($"방향이 맞지 않아 정지 합니다({dir})");
PUB.AGV.AGVMoveStop("CheckAGVMoveTo");
}
else if (PUB.AGV.data.Speed == 'S')
{
PUB.log.Add($"마크정지를 해제하기 위해 장비를 멈춥니다");
}
//이동해야하는데 마크 스탑이 되어있다면 일단 멈춘다
}
else
{
//움직이지 않으므로 전진하도록 한다
PUB.log.Add($"AGV 기동 방향(DOWN):{dir}");
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);//PUB.PLC.Move(Device.PLC.Rundirection.Backward, "UpdateMotionPosition(" + sender + ")");
}
LastCommandTime = DateTime.Now;
}
}
else
{
var tsCmd = DateTime.Now - LastCommandTime;
if (tsCmd.TotalMilliseconds >= 1999)
{
if (PUB.AGV.system1.agv_run)
{
if (PUB.AGV.data.Direction == 'F')
{
PUB.log.Add($"방향이 맞지 않아 정지 합니다({dir})");
PUB.AGV.AGVMoveStop("CheckAGVMoveTo");
}
else if (PUB.AGV.data.Speed == 'S')
{
PUB.log.Add($"마크정지를 해제하기 위해 장비를 멈춥니다");
}
}
else
{
PUB.log.Add($"AGV 기동 방향(UP):{dir}");
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);//PUB.PLC.Move(Device.PLC.Rundirection.Backward, "UpdateMotionPosition(" + sender + ")");
}
LastCommandTime = DateTime.Now;
}
}
}
void CheckAGVStopbyMARK(string sender)
{
//계속내려간다
var tsCmd = DateTime.Now - LastCommandTime;
if (VAR.BOOL[eVarBool.NEXTSTOP_MARK] == false || tsCmd.TotalMilliseconds >= 1500)
{
PUB.AGV.AGVMoveStop("CheckAGVStopbyMARK", arDev.Narumi.eStopOpt.MarkStop);
LastCommandTime = DateTime.Now;
PUB.log.Add($"[{sender}] MARK신호에 멈춤 설정");
}
}
Boolean UpdateMotionPositionForMark(string sender)
{
//이머전시상태에서는 처리하지 않는다.
if (VAR.BOOL[eVarBool.EMERGENCY]) return false;
//DOWN 작업
// if (goDIR == eGoDir.Down)
{
//1. 현재위치 > 대상위치
if (PUB.Result.CurrentPos > PUB.Result.TargetPos)
{
//계속내려간다
if (PUB.setting.AGV_Direction_FVI_Backward)
CheckAGVMoveTo(eGoDir.Down);
else
CheckAGVMoveTo(eGoDir.Up);
}
//2. 현재위치 < 대상위치
else if (PUB.Result.CurrentPos < PUB.Result.TargetPos)
{
//올라가야한다
if (PUB.setting.AGV_Direction_FVI_Backward)
CheckAGVMoveTo(eGoDir.Up);
else
CheckAGVMoveTo(eGoDir.Down);
}
//3. 현재위치 = 대상위치
else
{
//현재위치가 확정되었는가?
var actpos = ctlPos1.GetPositionActive(PUB.Result.CurrentPos);
if (actpos == false && PUB.AGV.system1.agv_stop == true)
{
//위치확정이되지 않았다면 AGV멈춤시에 기동하게 한다.
var lastcom = DateTime.Now - LastCommandTime;
if (lastcom.TotalSeconds > 3)
{
if (PUB.Result.CurrentPosCW == "1")
{
if (PUB.setting.AGV_Direction_FVI_Backward)
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);
else
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);
}
else
{
if (PUB.setting.AGV_Direction_FVI_Backward)
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);
else
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);
}
LastCommandTime = DateTime.Now;
PUB.logagv.Add($"AGV가 멈춰있다 동작을 재개 합니다");
}
}
else
{
//마크센서가 들어와잇고, 위치가 act 되어있다면 해당 위치에 있는 것이다
if (PUB.AGV.error.Emergency == false &&
PUB.AGV.system1.agv_stop &&
PUB.AGV.signal.mark_sensor && actpos &&
PUB.Result.CurrentPos == PUB.Result.TargetPos)
{
//PUB.AGV.AGVMoveStop();
return true;
}
if (PUB.AGV.system1.agv_stop == true && PUB.AGV.system1.agv_run == false)
{
PUB.log.Add($"멈춰있으므로 이동을 시작 합니다");
if (PUB.Result.CurrentPosCW == "1")
{
if (PUB.setting.AGV_Direction_FVI_Backward)
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);
else
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);
}
else
{
if (PUB.setting.AGV_Direction_FVI_Backward)
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);
else
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);
}
}
//AGV는 아래로 FVI방향으로 내려가고 있다
if (VAR.BOOL[eVarBool.AGVDIR_UP] == false)
{
if (PUB.Result.CurrentPosCW == "0")
{
//장비가 마크센서에의해 멈췃다면 완료이다
if (PUB.AGV.error.Emergency == false && PUB.AGV.signal.mark_sensor)
{
PUB.AGV.AGVMoveStop("UPdateMotionPositionForMark");
return true;
}
else CheckAGVStopbyMARK(sender);
}
else if (PUB.Result.CurrentPosCW == "1")
{
//내려가는 작업이고 AGV는 올라가고 있는데 RFID는 위졲이 감지되었다면 아래로 내려가야한다
CheckAGVMoveTo(eGoDir.Up);
}
else
{
PUB.Result.CurrentPosCW = "1";
CheckAGVMoveTo(eGoDir.Up);
}
}
//AGV는 Qc방향으로 올라가고 있다
else
{
if (PUB.Result.CurrentPosCW == "1")
{
//네려가는 방향에서 내려가는 위치가 인식되었다면 마크에서 멈춰야 한다
if (PUB.AGV.error.Emergency == false && PUB.AGV.signal.mark_sensor)
{
PUB.AGV.AGVMoveStop("UPdateMotionPositionForMark");
return true;
}
else CheckAGVStopbyMARK(sender);
}
else if (PUB.Result.CurrentPosCW == "0")
{
//내려가는 작업이고 AGV는 올라가고 있는데 RFID는 위졲이 감지되었다면 아래로 내려가야한다
CheckAGVMoveTo(eGoDir.Down);
}
else
{
PUB.Result.CurrentPosCW = "0";
CheckAGVMoveTo(eGoDir.Down);
}
}
}
}
}
//UP 작업
//else
//{
// //1. 현재위치 > 대상위치
// if (PUB.Result.CurrentPos > PUB.Result.TargetPos)
// {
// //계속내려간다
// CheckAGVMoveTo(eGoDir.Down);
// }
// //2. 현재위치 < 대상위치
// else if (PUB.Result.CurrentPos < PUB.Result.TargetPos)
// {
// //올라가야한다
// CheckAGVMoveTo(eGoDir.Up);
// }
// //3. 현재위치 = 대상위치
// else
// {
// //AGV는 위로가고 있다
// if (VAR.BOOL[eVarBool.AGVDIR_UP] == true)
// {
// if (PUB.Result.CurrentPosCW == "0")
// {
// //장비가 마크센서에의해 멈췃다면 완료이다
// if (PUB.AGV.system1.agv_stop && PUB.AGV.system1.stop_by_front_detect == false && PUB.AGV.error.Emergency == false && PUB.AGV.signal.mark_sensor)
// {
// return true;
// }
// else CheckAGVStopbyMARK();
// }
// else if (PUB.Result.CurrentPosCW == "1")
// {
// //내려가는 작업이고 AGV는 올라가고 있는데 RFID는 위졲이 감지되었다면 아래로 내려가야한다
// CheckAGVMoveTo(eGoDir.Down);
// }
// }
// //AGV는 내려가고 있다
// else if (VAR.BOOL[eVarBool.AGVDIR_UP] == false)
// {
// if (PUB.Result.CurrentPosCW == "1")
// {
// //네려가는 방향에서 내려가는 위치가 인식되었다면 마크에서 멈춰야 한다
// if (PUB.AGV.system1.agv_stop && PUB.AGV.system1.stop_by_front_detect == false && PUB.AGV.error.Emergency == false && PUB.AGV.signal.mark_sensor)
// {
// return true;
// }
// else CheckAGVStopbyMARK();
// }
// else if (PUB.Result.CurrentPosCW == "0")
// {
// //내려가는 작업이고 AGV는 올라가고 있는데 RFID는 위졲이 감지되었다면 아래로 내려가야한다
// CheckAGVMoveTo(eGoDir.Up);
// }
// }
// }
//}
return false;
}
Boolean UpdateMotionPositionForCharger(string sender)
{
if (VAR.BOOL[eVarBool.AGVDIR_UP] == false)// PUB.flag.get(EFlag.FLAG_DIR_BW) == true)
{
//충전기 검색은 항상 뒤로 검색한다
var tsCmd = DateTime.Now - tm_gocharge_command;
if (tsCmd.TotalMilliseconds >= 1999 &&
PUB.AGV.error.Emergency == false &&
PUB.AGV.system1.agv_run == false)
{
//PUB.PLC.Move(Device.PLC.Rundirection.Backward, "UpdateMotionPosition(" + sender + ")");
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);//
tm_gocharge_command = DateTime.Now;
}
}
else
{
//CCW (역방향 )
//if (Pub.Result.RFIDPos < ePosition.CHARGE || Pub.Result.RFIDPos > ePosition.QC)
//{
// //정상적이라면 RFID값은 QC + 혹은 QC - 에 있어야 하므로 항상 차저보다 높이 있다
// //그렇지 않다면 초기화해서 QC검색부터 다시 실행하게 한다
// //여기는 비정상 위치 값이다.
// Pub.sm.SetStepSeq(1);
//}
//else
//{
//현재위치가 충전위치이고, 움직이지 않았다면 완료된 경우라 할수 있따
if (PUB.Result.CurrentPos == ePosition.CHARGE &&
PUB.AGV.signal.mark_sensor == true)
{
PUB.log.AddI("충전위치 검색 완료");
return true;
}
else
{
//이동중이지 않다면 항상 이동을 해줘야한다
var tsCmd = DateTime.Now - LastCommandTime;
if (tsCmd.TotalMilliseconds >= 1999 &&
PUB.AGV.error.Emergency == false &&
PUB.AGV.system1.agv_run == false)
{
//PUB.PLC.Move(Device.PLC.Rundirection.Backward, "UpdateMotionPosition #1(" + sender + ")");
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);//
LastCommandTime = DateTime.Now;
}
}
//}
}
return false;
}
}//cvass
}

View File

@@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
namespace Project
{
public partial class fMain
{
public Boolean _SM_RUN_CHGOFF(bool isFirst, TimeSpan stepTime)
{
//
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] == true || PUB.AGV.system1.Battery_charging == true)
{
if (isFirst)
{
VAR.TIME.Set(eVarTime.ChargeEnd);
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA])
{
PUB.Speak(Lang.);
}
}
//AGV는 충전을 해제한 상태이다
if (PUB.AGV.system1.Battery_charging == false)
{
//너무빨리 처리되지 않도록 5초후에 완료 처리를 한다
var ts1 = VAR.TIME.RUN(eVarTime.ChargeEnd);
var ts2 = VAR.TIME.RUN(eVarTime.SendChargeOff);
if (ts1.TotalSeconds >= 5 && ts2.TotalSeconds > 5) VAR.BOOL[eVarBool.FLAG_CHARGEONA] = false;
}
else
{
//OFF전송이 처음이라면 시간 섲렁
if (VAR.TIME.IsSet(eVarTime.SendChargeOff)==false)
VAR.TIME[eVarTime.SendChargeOff] = DateTime.Now.AddSeconds(-10);
var tsChgOff = VAR.TIME.RUN(eVarTime.SendChargeOff);
if (tsChgOff.TotalSeconds >= 3)
{
PUB.log.Add("충전 해제 전송");
PUB.AGV.AGVCharge(PUB.setting.ChargerID, false);
VAR.TIME.Set(eVarTime.SendChargeOff);
}
}
return false;
}
else
{
//PUB.logsys.Add($"충전OFF확인완료");
return true;
}
}
}
}

View File

@@ -0,0 +1,264 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
namespace Project
{
public partial class fMain
{
DateTime tm_gocharge_command = DateTime.Now;
public Boolean _SM_RUN_GOCHARGE(bool isFirst, TimeSpan stepTime)
{
if (runStepisFirst)
{
//홈을 찾도록 항상 위치를 지워버리자
PUB.Result.CurrentPos = ePosition.NONE;
PUB.Result.CurrentPos = ePosition.NONE;
}
//HW 연결오류
if (PUB.AGV.IsOpen == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.AGVCONN, eNextStep.ERROR);
return false;
}
else if (PUB.PLC.IsValid == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.PLCCONN, eNextStep.ERROR);
return false;
}
//충전 상태가 OFF되어야 동작하게한다
if (_SM_RUN_CHGOFF(isFirst, stepTime) == false)
return false;
//라이더멈춤이 설정되어있다면 음성으로 알려준다 200409
if (PUB.AGV.system1.stop_by_front_detect == true)
{
var tsSpeak = DateTime.Now - LastSpeakTime;
if (tsSpeak.TotalSeconds >= PUB.setting.doorSoundTerm)
{
PUB.Speak(Lang.);
LastSpeakTime = DateTime.Now;
}
return false;
}
//현재 위치가 결정되어있는지 체크한다
if (_SM_RUN_POSCHK(isFirst, stepTime) == false)
{
PUB.Result.result_message = "충전기 검색 전 현재 위치 검색";
PUB.Result.result_progressmax = 0;
return false;
}
//충전작업진행상태 //220629
//if (PUB.flag.get(EFlag.FLAG_GO_CHAGER_TEMP) == false)
//{
// PUB.flag.set(EFlag.FLAG_GO_CHAGER_TEMP, true);
//}
var idx = 1;
if (PUB.sm.RunStepSeq == idx++)
{
PUB.Speak(Lang.);
PUB.Result.TargetPos = ePosition.QC;
VAR.TIME.Set(eVarTime.ChargeSearch);
PUB.sm.UpdateRunStepSeq();
PUB.log.Add($"충전:대상위치 QC 시작");
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
//모션 전후진 제어
if (UpdateMotionPositionForMark("GOCHARGE #1") == true)
{
PUB.log.Add($"충전:충전기 검색 전 QC위치 확인 완료");
PUB.sm.UpdateRunStepSeq();
}
else
{
//아직 충진기 위치를 찾지 못했다
var ts = VAR.TIME.RUN(eVarTime.ChargeSearch);
if (ts.TotalSeconds > PUB.setting.ChargeSearchTime)
{
PUB.log.Add($"충전:충전검색시간초과({ts.TotalSeconds}/{PUB.setting.ChargeSearchTime})");
PUB.Speak(Lang.);
VAR.BOOL[eVarBool.WAIT_CHARGEACK] = false;
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF);
PUB.sm.SetNewStep(eSMStep.RUN);
PUB.counter.CountChargeE += 1;
PUB.counter.Save();
}
}
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
if (PUB.setting.chargerpos == 0) //down search
{
PUB.log.Add($"충전:충전기 검색을 위한 전진시작");
PUB.Speak(Lang.);
PUB.AGV.AGVMoveSet(new arDev.Narumi.BunkiData
{
Speed = arDev.Narumi.eMoveSpd.Low,
Bunki = arDev.Narumi.eBunki.Strate,
Direction = arDev.Narumi.eMoveDir.Forward,
PBSSensor = 1,
});
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);
//PUB.Result.TargetPos = ePosition.CHARGE;
VAR.TIME.Set(eVarTime.ChargeSearch);
}
else if (PUB.setting.chargerpos == 2) //up search
{
PUB.log.Add($"충전:충전기 검색을 위한 전진시작");
PUB.Speak(Lang.);
PUB.AGV.AGVMoveSet(new arDev.Narumi.BunkiData
{
Speed = arDev.Narumi.eMoveSpd.Low,
Bunki = arDev.Narumi.eBunki.Strate,
Direction = arDev.Narumi.eMoveDir.Backward,
PBSSensor = 1,
});
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);
//PUB.Result.TargetPos = ePosition.CHARGE;
VAR.TIME.Set(eVarTime.ChargeSearch);
}
else
{
PUB.log.Add($"충전기위치가 QC위치로 설정되어 있습니다");
}
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
if (PUB.setting.chargerpos != 1)
{
if (PUB.AGV.system1.agv_run)
{
PUB.log.Add($"충전:AGV기동확인으로 마크정지신호설정");
PUB.Speak(Lang.);
PUB.AGV.AGVMoveStop("SM_RUN_GOCHARGE", arDev.Narumi.eStopOpt.MarkStop);
VAR.TIME.Set(eVarTime.ChargeSearch);
PUB.sm.UpdateRunStepSeq();
}
else
{
if (VAR.TIME.RUN(eVarTime.ChargeSearch).TotalSeconds > 5)
{
//5초이상 이곳에서 대기한다면 다시 돌려준다
PUB.sm.UpdateRunStepSeq(-1);
PUB.log.Add($"충전:AGV기동확인 안됨, 롤백 다시 이동할 수 있게 함");
}
}
}
else
{
VAR.TIME.Set(eVarTime.ChargeSearch);
PUB.sm.UpdateRunStepSeq();
}
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
if (PUB.AGV.system1.agv_stop)
{
PUB.log.Add($"충전:충전기멈춤확인 다음진행");
PUB.logagv.Add("충전 위치에 멈췄습니다");
PUB.sm.UpdateRunStepSeq();
}
else
{
if (VAR.TIME.RUN(eVarTime.ChargeSearch).TotalSeconds > 60)
{
PUB.log.Add($"충전:멈춤 확인 60초 초과로 전체 취소함");
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF);
PUB.sm.SetNewStep(eSMStep.RUN);
PUB.counter.CountChargeE += 1;
PUB.counter.Save();
VAR.BOOL[eVarBool.WAIT_CHARGEACK] = false;
PUB.AddEEDB("충전실패로 인한 취소");
}
}
return false;
}
//충전기위치까지 왔다
else if (PUB.sm.RunStepSeq == idx++)
{
//센서가 안정화되기 위한 5초간 기다려준다
if (stepTime.TotalSeconds <= 3) return false;
PUB.log.Add($"충전:충전기위치정지완료");
PUB.Result.CurrentPos = ePosition.CHARGE; //현재위치를 충전기로 한다
PUB.Result.TargetPos = ePosition.CHARGE;
PUB.Result.CurrentPosCW = "1";
ctlPos1.SetPosition(ePosition.CHARGE);
ctlPos1.SetPositionActive(ePosition.CHARGE);
ctlPos1.Invalidate();
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
//충전시작 명령을 전송한다
PUB.log.Add($"충전:충전명령전송");
PUB.Speak(Lang.);
PUB.AGV.AGVCharge(PUB.setting.ChargerID, true);
VAR.BOOL[eVarBool.WAIT_CHARGEACK] = true;
LastCommandTime = DateTime.Now;
VAR.BYTE[eVarByte.CHARGE_CMDCNT] = 0;
PUB.sm.UpdateRunStepSeq();
return false;
}
//충전시작명령의 ACK를 체크합니다
else if (PUB.sm.RunStepSeq == idx++)
{
//충전시작 명령을 전송한다
if (PUB.AGV.ACKData.Equals("CBT"))
{
PUB.log.Add($"충전명령 회신 확인");
PUB.sm.UpdateRunStepSeq();
}
else
{
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalSeconds > 3)
{
if (VAR.BYTE[eVarByte.CHARGE_CMDCNT] > 5)
{
PUB.logagv.Add($"충전명령 재전송 5회초과로 전체 취소함");
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF);
PUB.sm.SetNewStep(eSMStep.RUN);
PUB.counter.CountChargeE += 1;
PUB.counter.Save();
VAR.BOOL[eVarBool.WAIT_CHARGEACK] = false;
PUB.AddEEDB("충전실패로 인한 취소");
}
else
{
PUB.logagv.Add($"충전시작명령 재전송");
VAR.BYTE.Add(eVarByte.CHARGE_CMDCNT, 1);
PUB.AGV.AGVCharge(PUB.setting.ChargerID, true);
LastCommandTime = DateTime.Now;
}
}
}
return false;
}
return true;
}
}
}

View File

@@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
namespace Project
{
public partial class fMain
{
public Boolean _SM_RUN_GOCHARGECHECK(bool isFirst, TimeSpan stepTime)
{
//충전상태체크를 확인합니다
//10초안에 충전 플래그가 활성화되지 않으면 QC상태로 이동한다
if (PUB.AGV.system1.Battery_charging == false || VAR.BOOL[eVarBool.FLAG_CHARGEONA] == false)
{
if (PUB.AGV.error.Charger_pos_error)
{
PUB.Speak(Lang., true);
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF);
PUB.sm.SetNewStep(eSMStep.RUN);
}
else if (PUB.AGV.error.Charger_run_error)
{
PUB.Speak(Lang., true);
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF);
PUB.sm.SetNewStep(eSMStep.RUN);
}
else
{
var tsCmd = DateTime.Now - LastCommandTime;
if (tsCmd.TotalSeconds >= 30)
{
PUB.log.AddE( Lang.);
PUB.AGV.AGVCharge(PUB.setting.ChargerID, false);
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.CHARGEOFF);
PUB.sm.SetNewStep(eSMStep.RUN);
}
else
{
PUB.Result.result_message = string.Format("충전기 활성화 수신 확인 중({0:N1}/{1})", tsCmd.TotalSeconds, 30);
PUB.Result.result_progressmax = 15;
PUB.Result.result_progressvalue = tsCmd.TotalSeconds;
}
}
return false;
}
else return true;
}
}
}

View File

@@ -0,0 +1,226 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
namespace Project
{
public partial class fMain
{
public Boolean _SM_RUN_GODOWN(bool isFirst, TimeSpan stepTime)
{
if (runStepisFirst)
{
//PUB.flag.set(EFlag.FLAG_NEXTSTOP_ALIGN, false);
VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;//
//VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = false;//);
}
//HW 연결오류
if (PUB.AGV.IsOpen == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.AGVCONN, eNextStep.ERROR);
return false;
}
else if (PUB.PLC.IsValid == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.PLCCONN, eNextStep.ERROR);
return false;
}
//충전 상태가 OFF되어야 동작하게한다
if (_SM_RUN_CHGOFF(isFirst, stepTime) == false)
return false;
//라이더멈춤이 설정되어있다면 음성으로 알려준다 200409
if (PUB.AGV.system1.stop_by_front_detect == true)
{
var tsSpeak = DateTime.Now - LastSpeakTime;
if (tsSpeak.TotalSeconds >= PUB.setting.doorSoundTerm)
{
PUB.Speak(Lang.);
LastSpeakTime = DateTime.Now;
}
return false;
}
//현재 위치가 결정되어있는지 체크한다
if (_SM_RUN_POSCHK(isFirst, stepTime) == false)
return false;
if (PUB.sm.RunStepSeq == 1)
{
//하차는 무조건 대상이 QC가 된다
if (PUB.Result.TargetPos == ePosition.NONE)
PUB.Result.TargetPos = ePosition.QC;
//if (PUB.Result.TargetPos == ePosition.QA &&
// PUB.Result.CurrentPos == ePosition.QC &&
// (PUB.PLC.IsLimitDn()))
//{
// PUB.Speak("안전 커버를 올리고 다시 시도하세요", true);
// PUB.sm.ClearRunStep();
// PUB.sm.SetNewRunStep(ERunStep.READY);
//}
PUB.AddEEDB($"하차작업시작({PUB.Result.TargetPos})");
PUB.Speak(Lang.);
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == 2)
{
//모션 전후진 제어
if (UpdateMotionPositionForMark("GODOWN"))
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == 3)
{
//위치 확정이 완료될때까지 대기
if (PUB.Result.CurrentPos == PUB.Result.TargetPos)
{
//PUB.PLC.Move(Device.PLC.Rundirection.Stop, "GODOWN:위치확정");
PUB.AGV.AGVMoveStop("sm_run_godown");
PUB.sm.UpdateRunStepSeq();
}
else if (PUB.AGV.system1.agv_run == false)
{
//움직이지않으면 방향을 다시 조정한다
PUB.sm.SetStepSeq(2);
}
return false;
}
else if (PUB.sm.RunStepSeq == 4)
{
//대상까지 모두 완료되었다.(완전히 정차할때까지 기다린다)
if (PUB.AGV.system1.agv_run == false)
{
PUB.log.Add("이동 정지 확인");
PUB.sm.UpdateRunStepSeq();
}
return false;
}
else if (PUB.sm.RunStepSeq == 5)
{
//하차수량증가
if (PUB.Result.TargetPos == ePosition.QA)
PUB.counter.CountQA += 1;
else
PUB.counter.CountQC += 1;
PUB.counter.Save();
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == 6)
{
//커버를 자동으로 내려준다
CoverControlTime = DateTime.Now;
UpdateProgressStatus(stepTime.TotalSeconds, 5, Lang.);
VAR.BOOL[eVarBool.WAIT_COVER_DOWN] = true;
PUB.PLC.ZMot(arDev.FakePLC.ZMotDirection.Down);//
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == 7)
{
//커버 내림이 완료될때까지 기다린다
if (PUB.PLC.IsLimitDn() == true)
{
VAR.BOOL[eVarBool.WAIT_COVER_DOWN] = false;
PUB.sm.UpdateRunStepSeq();
}
else
{
//경과시간이 10초가 지나면 5초마다 음성을 출력한다
var tsCover = DateTime.Now - CoverControlTime;
if (tsCover.TotalSeconds >= 7)
{
PUB.Speak(Lang.);
CoverControlTime = DateTime.Now;
}
}
return false;
}
else if (PUB.sm.RunStepSeq == 8)
{
//IO업데이트 간격 전송
UpdateProgressStatus(stepTime.TotalSeconds, 5, Lang.);
PUB.Speak(Lang.);
VAR.BOOL[eVarBool.WAIT_COVER_UP] = true;
CoverControlTime = DateTime.Now;
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == 9)
{
//커버 올림이 완료될때까지 기다린다
if (VAR.BOOL[eVarBool.FLAG_LIMITHIGH] == true)
{
VAR.BOOL[eVarBool.WAIT_COVER_UP] = false;
VAR.BOOL[eVarBool.ITEMON] = false;
PUB.sm.UpdateRunStepSeq();
}
else
{
//경과시간이 10초가 지나면 5초마다 음성을 출력한다
var tsCover = DateTime.Now - CoverControlTime;
if (tsCover.TotalSeconds >= PUB.setting.doorSoundTerm)
{
PUB.Speak(Lang.);
CoverControlTime = DateTime.Now;
//한쪽이 올라가 있는 상태에..
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) == true)
{
//모터는 올리는 방향일때에...
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_LDIR) == true)
{
//모터가 멈춰있을때에..
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_LRUN) == false)
{
//자동으로 올려준다 (센서가 간혹 인식이 안되어서 .대기하는 경우가 잇음)
//왼쪽이 올라가 있지 않은 경우
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) == false)
PUB.PLC.ZMot_Left(arDev.FakePLC.ZMotDirection.Up);
}
}
}
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU) == true)
{
//모터는 올리는 방향일때에...
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_RDIR) == true)
{
//모터가 멈춰있을때에..
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_RRUN) == false)
{
//자동으로 올려준다 (센서가 간혹 인식이 안되어서 .대기하는 경우가 잇음)
//왼쪽이 올라가 있지 않은 경우
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU) == false)
PUB.PLC.ZMot_Right(arDev.FakePLC.ZMotDirection.Up);
}
}
}
}
}
return false;
}
PUB.AddEEDB($"하차작업완료({PUB.Result.TargetPos})");
EEMStatus.AddStatusCount(1, PUB.Result.TargetPos.ToString()); //230620
return true;
}
}
}

View File

@@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
namespace Project
{
public partial class fMain
{
public Boolean _SM_RUN_GOHOME(bool isFirst, TimeSpan stepTime)
{
if (runStepisFirst)
{
// PUB.flag.set(EFlag.FLAG_NEXTSTOP_ALIGN, false);
//VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = false;//);
VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;//);
}
//220629
// if(PUB.flag.get(EFlag.FLAG_GO_CHAGER_TEMP))
//{
// PUB.flag.set(EFlag.FLAG_GO_CHAGER_TEMP, false);
//}
//HW 연결오류
if (PUB.AGV.IsOpen == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.AGVCONN, eNextStep.ERROR);
return false;
}
else if (PUB.PLC.IsValid == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.PLCCONN, eNextStep.ERROR);
return false;
}
//충전 상태가 OFF되어야 동작하게한다
if (_SM_RUN_CHGOFF(isFirst, stepTime) == false)
return false;
//라이더멈춤이 설정되어있다면 음성으로 알려준다 200409
if (PUB.AGV.system1.stop_by_front_detect == true)
{
var tsSpeak = DateTime.Now - LastSpeakTime;
if (tsSpeak.TotalSeconds >= PUB.setting.doorSoundTerm)
{
PUB.Speak(Lang.);
LastSpeakTime = DateTime.Now;
}
return false;
}
//현재 위치가 결정되어있는지 체크한다
if (_SM_RUN_POSCHK(isFirst, stepTime) == false)
return false;
var idx = 1;
if (PUB.sm.RunStepSeq == idx++)
{
PUB.Speak(Lang.);
//홈은 무조건 QC위치로 간다
PUB.AddEEDB($"홈검색시작({PUB.Result.TargetPos})");
PUB.Result.TargetPos = ePosition.QC;
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
//모션 전후진 제어
if (UpdateMotionPositionForMark("GOHOME"))
{
PUB.AGV.AGVMoveStop("SM_RUN_GOHOME");
PUB.sm.UpdateRunStepSeq();
}
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
//QC까지 모두 완료되었다.(완전히 정차할때까지 기다린다)
PUB.Speak(Lang., true);
PUB.AddEEDB($"홈검색완료({PUB.Result.TargetPos})");
PUB.sm.UpdateRunStepSeq();
return false;
}
return true;
}
}
}

View File

@@ -0,0 +1,272 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
namespace Project
{
public partial class fMain
{
public Boolean _SM_RUN_GOUP(bool isFirst, TimeSpan stepTime)
{
if (runStepisFirst)
{
// VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = false;//);
VAR.BOOL[eVarBool.FLAG_NEXTSTOP_ALIGN] = false;
}
//HW 연결오류
if (PUB.AGV.IsOpen == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.AGVCONN, eNextStep.ERROR);
return false;
}
else if (PUB.PLC.IsValid == false)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.PLCCONN, eNextStep.ERROR);
return false;
}
//충전 상태가 OFF되어야 동작하게한다
if (_SM_RUN_CHGOFF(isFirst, stepTime) == false)
return false;
//라이더멈춤이 설정되어있다면 음성으로 알려준다 200409
if (PUB.AGV.system1.stop_by_front_detect == true)
{
var tsSpeak = DateTime.Now - LastSpeakTime;
if (tsSpeak.TotalSeconds >= PUB.setting.doorSoundTerm)
{
PUB.Speak(Lang.);
LastSpeakTime = DateTime.Now;
}
return false;
}
//현재 위치가 결정되어있는지 체크한다
if (_SM_RUN_POSCHK(isFirst, stepTime) == false)
return false;
var idx = 1;
if (PUB.sm.RunStepSeq == idx++)
{
//상차 가능 조건 확인
if (PUB.Result.TargetPos == ePosition.NONE)
{
PUB.Result.SetResultMessage(eResult.Hardware, eECode.NOTALLOWUP, eNextStep.ERROR);
}
else
{
PUB.AddEEDB($"상차작업시작({PUB.Result.TargetPos})");
PUB.Speak(Lang.);
PUB.sm.UpdateRunStepSeq();
}
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
//모션 전후진 제어
if (UpdateMotionPositionForMark("GOUP"))
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
//장비멈춤확인
if (PUB.AGV.system1.agv_run == true)
{
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalMilliseconds > 2000)
{
PUB.AGV.AGVMoveStop("SM_RUN_GOUP");// PUB.PLC.Move(Device.PLC.Rundirection.Stop, "GOUP:위치확정");
LastCommandTime = DateTime.Now;
}
}
else
{
//움직이지 않고 있다면 다시 이동을 시켜준다.
PUB.log.Add("이동 정지 확인");
PUB.sm.UpdateRunStepSeq();
}
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
if (PUB.AGV.system1.agv_run == true)
{
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalMilliseconds > 2000)
{
PUB.AGV.AGVMoveStop("SM_RUN_GOUP");// PUB.PLC.Move(Device.PLC.Rundirection.Stop, "GOUP:위치확정");
LastCommandTime = DateTime.Now;
}
}
//커버를 자동으로 내려준다
CoverControlTime = DateTime.Now;
UpdateProgressStatus(stepTime.TotalSeconds, 5, Lang.);
PUB.PLC.ZMot(arDev.FakePLC.ZMotDirection.Down);
VAR.BOOL[eVarBool.WAIT_COVER_DOWN] = true;
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
if (PUB.AGV.system1.agv_run == true)
{
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalMilliseconds > 2000)
{
PUB.AGV.AGVMoveStop("SM_RUN_GOUP");// PUB.PLC.Move(Device.PLC.Rundirection.Stop, "GOUP:위치확정");
LastCommandTime = DateTime.Now;
}
}
//커버 내림이 완료될때까지 기다린다
if (PUB.PLC.IsLimitDn() == true)
{
VAR.BOOL[eVarBool.WAIT_COVER_DOWN] = false;
PUB.Result.NextPos = ePosition.NONE;
PUB.sm.UpdateRunStepSeq();
}
else
{
//경과시간이 10초가 지나면 5초마다 음성을 출력한다
var tsCover = DateTime.Now - CoverControlTime;
if (tsCover.TotalSeconds >= 7)
{
PUB.Speak(Lang.);
CoverControlTime = DateTime.Now;
}
}
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
if (PUB.AGV.system1.agv_run == true)
{
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalMilliseconds > 2000)
{
PUB.AGV.AGVMoveStop("SM_RUN_GOUP");// PUB.PLC.Move(Device.PLC.Rundirection.Stop, "GOUP:위치확정");
LastCommandTime = DateTime.Now;
}
return false;
}
//상차는 여기서 수량확인한다
if (PUB.Result.TargetPos == ePosition.F1)
PUB.counter.CountUp1 += 1;
else if (PUB.Result.TargetPos == ePosition.F2)
PUB.counter.CountUp2 += 1;
else if (PUB.Result.TargetPos == ePosition.F3)
PUB.counter.CountUp3 += 1;
else if (PUB.Result.TargetPos == ePosition.F4)
PUB.counter.CountUp4 += 1;
//else if (PUB.Result.TargetPos == ePosition.QA)
// PUB.counter.CountQA += 1;
PUB.counter.Save();
PUB.sm.UpdateRunStepSeq();
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
//IO업데이트 간격 전송
UpdateProgressStatus(stepTime.TotalSeconds, 5, Lang.);
PUB.Speak(Lang.);
PUB.sm.UpdateRunStepSeq();
VAR.BOOL[eVarBool.WAIT_COVER_UP] = true;
PUB.Result.NextPos = ePosition.NONE;
CoverControlTime = DateTime.Now;
return false;
}
else if (PUB.sm.RunStepSeq == idx++)
{
if (PUB.AGV.system1.agv_run == true)
{
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalMilliseconds > 2000)
{
PUB.AGV.AGVMoveStop("SM_RUN_GOUP");// PUB.PLC.Move(Device.PLC.Rundirection.Stop, "GOUP:위치확정");
LastCommandTime = DateTime.Now;
}
}
//커버 올림이 완료될때까지 기다린다
if (VAR.BOOL[eVarBool.FLAG_LIMITHIGH] == true)
{
VAR.BOOL[eVarBool.WAIT_COVER_UP] = false;
VAR.BOOL[eVarBool.ITEMON] = true;
PUB.sm.UpdateRunStepSeq();
}
else
{
//경과시간이 10초가 지나면 5초마다 음성을 출력한다
var tsCover = DateTime.Now - CoverControlTime;
if (tsCover.TotalSeconds >= PUB.setting.doorSoundTerm)
{
PUB.Speak(Lang.);
CoverControlTime = DateTime.Now;
//한쪽이 올라가 있는 상태에..
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) == true)
{
//모터는 올리는 방향일때에...
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_LDIR) == true)
{
//모터가 멈춰있을때에..
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_LRUN) == false)
{
//자동으로 올려준다 (센서가 간혹 인식이 안되어서 .대기하는 경우가 잇음)
//왼쪽이 올라가 있지 않은 경우
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) == false)
PUB.PLC.ZMot_Left(arDev.FakePLC.ZMotDirection.Up);
//오른쪽이 올라가 있지 않은 경우
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU) == false)
PUB.PLC.ZMot_Right(arDev.FakePLC.ZMotDirection.Up);
}
}
}
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU) == true)
{
//모터는 올리는 방향일때에...
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_RDIR) == true)
{
//모터가 멈춰있을때에..
if (PUB.PLC.GetValueO(arDev.FakePLC.DOName.PINO_GUIDEMOTOR_RRUN) == false)
{
//자동으로 올려준다 (센서가 간혹 인식이 안되어서 .대기하는 경우가 잇음)
//왼쪽이 올라가 있지 않은 경우
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) == false)
PUB.PLC.ZMot_Left(arDev.FakePLC.ZMotDirection.Up);
//오른쪽이 올라가 있지 않은 경우
if (PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU) == false)
PUB.PLC.ZMot_Right(arDev.FakePLC.ZMotDirection.Up);
}
}
}
}
}
return false;
}
PUB.AddEEDB($"상차작업완료({PUB.Result.TargetPos})");
return true;
}
}
}

View File

@@ -0,0 +1,121 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Media;
namespace Project
{
public partial class fMain
{
/// <summary>
/// 웨이퍼를 집기 위해 지정된 위치로 이동을 합니다.
/// </summary>
/// <returns></returns>
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;
}
}
}

View File

@@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace Project
{
public partial class fMain
{
public Boolean _SM_RUN_POSCHK(bool isFirst, TimeSpan stepTime)
{
//현재 위치가 찾아지지 않았다면. 먼저 위치를 찾는다. 위로 이동시켜서 찾는다.
if (PUB.Result.CurrentPos == ePosition.NONE)
{
if (isFirst)
{
PUB.Speak( Lang.);
}
if (PUB.AGV.system1.agv_run)
{
//방향을 체크한다
var basedir = PUB.setting.AGV_Direction_FVI_Backward ? 'F' : 'B';
if (PUB.AGV.data.Direction == basedir)
{
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalMilliseconds >= 1999)
{
PUB.AGV.AGVMoveStop("SM_RUN_POSCHK",arDev.Narumi.eStopOpt.Stop);
LastCommandTime = DateTime.Now;
}
}
}
else if (PUB.AGV.system1.agv_run == false)
{
//전진이동한다
var ts = DateTime.Now - LastCommandTime;
if (ts.TotalMilliseconds >= 1999)
{
if (PUB.setting.AGV_Direction_FVI_Backward)
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);//
else
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Forward);//
LastCommandTime = DateTime.Now;
}
}
return false;
}
else return true;
}
}
}

View File

@@ -0,0 +1,144 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using COMM;
using static 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.Set(eVarTime.ChargeStart);
//충전중이라면 최대 충전 시간을 체크한다.
var tsChargeRunTime = VAR.TIME.RUN(eVarTime.ChargeStart);
if (PUB.BMS.Current_Level >= 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.Set(eVarTime.ChargeStart);
VAR.STR[eVarString.ChargeCheckMsg] = "수동 충전";
}
//현재위치를 모르는 상태라면 이동하여 현재 위치를 찾는다
else if (PUB.Result.CurrentPos == ePosition.NONE)
{
if (PUB.AGV.system1.agv_run == false &&
PUB.AGV.error.Emergency == false &&
PUB.AGV.error.runerror_by_no_magent_line == false)
{
//현재위치를 검색해야함
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.GOHOME);
PUB.sm.SetNewStep(eSMStep.RUN);
PUB.AddEEDB($"READY상태에서 현재위치를 몰라 홈으로 이동");
}
VAR.STR[eVarString.ChargeCheckMsg] = "현재 위치 모름";
}
else if (PUB.setting.Enable_AutoCharge == true )
{
if(bAutoChageOn)
{
VAR.BOOL[eVarBool.CHARGE_READY] = true;
if (PUB.BMS.Current_Level < PUB.setting.ChargeStartLevel)
{
//레벨에 의한 자동 충전간격은
var ts = VAR.TIME.RUN(eVarTime.ChargeTry);
if (ts.TotalSeconds >= PUB.setting.ChargeRetryTerm)
{
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
PUB.log.Add($"자동충전레벨시작 {PUB.BMS.Current_Level}/{PUB.setting.ChargeStartLevel}");
PUB.sm.ClearRunStep();
PUB.sm.SetNewRunStep(ERunStep.GOCHARGE);
PUB.sm.SetNewStep(eSMStep.RUN);
PUB.AddEEDB($"자동충전레벨시작 {PUB.BMS.Current_Level}/{PUB.setting.ChargeStartLevel}");
}
else
{
VAR.I32[eVarInt32.ChargeWaitSec] = (int)(PUB.setting.ChargeRetryTerm - ts.TotalSeconds);
VAR.BOOL[eVarBool.CHARGE_WAIT] = true;
}
VAR.STR[eVarString.ChargeCheckMsg] = "배터리 충전 레벨 필요";
}
else
{
//아직 레벨이 높다
VAR.BOOL[eVarBool.CHARGE_READY] = false;
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
VAR.STR[eVarString.ChargeCheckMsg] = "배터리 레벨상 충전 불필요";
}
}
else
{
VAR.BOOL[eVarBool.CHARGE_READY] = false;
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
VAR.STR[eVarString.ChargeCheckMsg] = "충전 불가 조건";
//충전조건이 맞지 않는다
}
}
else
{
VAR.BOOL[eVarBool.CHARGE_READY] = false;
VAR.I32[eVarInt32.ChargeWaitSec] = 0;
VAR.BOOL[eVarBool.CHARGE_WAIT] = false;
//자동충전이 해제된 상태이므로 처리하지 않는다
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.Set(eVarTime.IdleStopTime);
}
}
return false;
}
}
}

View File

@@ -0,0 +1,163 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using static Project.StateMachine;
using COMM;
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";
ctlPos1.SetPositionDeActive();
ctlPos1.SetPosition(ePosition.NONE);
ctlPos1.SetDirection("0");
ctlPos1.Invalidate();
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;
}
}
}

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