This commit is contained in:
chi
2025-04-24 16:24:01 +09:00
parent f71b963851
commit 20dd87a9d0
55 changed files with 961 additions and 1085 deletions

View File

@@ -3,7 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17 # Visual Studio Version 17
VisualStudioVersion = 17.9.34714.143 VisualStudioVersion = 17.9.34714.143
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGV4", "Project\AGV4.csproj", "{65F3E762-800C-499E-862F-A535642EC59F}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AGV4", "Project\AGV4.csproj", "{65F3E762-800C-499E-862F-A535642EC59F}"
ProjectSection(ProjectDependencies) = postProject
{16BD025D-CB0F-4A4B-A452-8FE629F02F0C} = {16BD025D-CB0F-4A4B-A452-8FE629F02F0C}
EndProjectSection
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arControl", "SubProject\arCtl\arControl.csproj", "{F31C242C-1B15-4518-9733-48558499FE4B}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arControl", "SubProject\arCtl\arControl.csproj", "{F31C242C-1B15-4518-9733-48558499FE4B}"
EndProject EndProject
@@ -27,10 +30,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BMS", "SubProject\BMS\BMS.c
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWPatch", "SubProject\Patch\SWPatch.csproj", "{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWPatch", "SubProject\Patch\SWPatch.csproj", "{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}"
EndProject 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}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NARUMI", "SubProject\AGV\NARUMI.csproj", "{8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommData", "SubProject\CommData\CommData.csproj", "{14E8C9A5-013E-49BA-B435-EFEFC77DD623}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommData", "SubProject\CommData\CommData.csproj", "{14E8C9A5-013E-49BA-B435-EFEFC77DD623}"
@@ -107,7 +106,6 @@ Global
{8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x86.ActiveCfg = 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 {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.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.ActiveCfg = Debug|Any CPU
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
@@ -119,7 +117,6 @@ Global
{2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|x86.ActiveCfg = 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 {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.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.ActiveCfg = Debug|Any CPU
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
@@ -131,7 +128,6 @@ Global
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|x86.ActiveCfg = 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 {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.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.ActiveCfg = Debug|Any CPU
{CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
@@ -155,7 +151,6 @@ Global
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|x86.ActiveCfg = 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 {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.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.ActiveCfg = Debug|Any CPU
{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
@@ -166,30 +161,6 @@ Global
{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x64.Build.0 = 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.ActiveCfg = Release|Any CPU
{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x86.Build.0 = 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.ActiveCfg = Debug|Any CPU
{8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|Any CPU.Build.0 = 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.ActiveCfg = Debug|Any CPU
@@ -215,7 +186,6 @@ Global
{14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.ActiveCfg = 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 {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.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.ActiveCfg = Debug|Any CPU
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
@@ -227,7 +197,6 @@ Global
{EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|x86.ActiveCfg = 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 {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.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.ActiveCfg = Debug|Any CPU
{AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x64.Build.0 = 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.ActiveCfg = Debug|Any CPU
@@ -274,8 +243,6 @@ Global
{9C027BF1-289F-4CC8-83F0-CB2B975C39C2} = {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} {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}
{7A94C30C-6772-4F71-BF9C-0DF071A1BC70} = {C423C39A-44E7-4F09-B2F7-7943975FF948} {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} {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7} = {C423C39A-44E7-4F09-B2F7-7943975FF948}
{14E8C9A5-013E-49BA-B435-EFEFC77DD623} = {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} {EB77976F-4DE4-46A5-8B25-D07226204C32} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A}

View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<PlatformTarget>x64</PlatformTarget>
<BaseOutputPath>D:\Amkor\AGV4</BaseOutputPath>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Protocol\enigprotocol\ENIGProtocol.csproj" />
<ProjectReference Include="..\StateMachine\StateMachine.csproj" />
<ProjectReference Include="..\SubProject\AGV\NARUMI.csproj" />
<ProjectReference Include="..\SubProject\AGVControl\agvControl.csproj" />
<ProjectReference Include="..\SubProject\arCtl\arControl.csproj" />
<ProjectReference Include="..\SubProject\arFrameControl\arFrameControl.csproj" />
<ProjectReference Include="..\SubProject\BMS\BMS.csproj" />
<ProjectReference Include="..\SubProject\CommData\CommData.csproj" />
<ProjectReference Include="..\SubProject\CommUtil\arCommUtil.csproj" />
<ProjectReference Include="..\SubProject\MSSQLCommand\MSSQLCommand.csproj" />
<ProjectReference Include="..\SubProject\Patch\SWPatch.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Settings.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="icons8-split-64.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Reference Include="Winsock_Orcas">
<HintPath>lib\Winsock_Orcas.dll</HintPath>
</Reference>
<Reference Include="EEProtocol">
<HintPath>lib\EEProtocol.dll</HintPath>
</Reference>
<Reference Include="arUtil">
<HintPath>lib\arUtil.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.IO.Ports" Version="9.0.4" />
<PackageReference Include="System.Management" Version="9.0.4" />
<PackageReference Include="System.Speech" Version="9.0.4" />
</ItemGroup>
</Project>

View File

@@ -1,545 +1,70 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{65F3E762-800C-499E-862F-A535642EC59F}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<RootNamespace>Project</RootNamespace> <TargetFramework>net8.0-windows</TargetFramework>
<AssemblyName>Amkor</AssemblyName> <Nullable>enable</Nullable>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <UseWindowsForms>true</UseWindowsForms>
<FileAlignment>512</FileAlignment> <ImplicitUsings>enable</ImplicitUsings>
<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> <PlatformTarget>x64</PlatformTarget>
<ErrorReport>prompt</ErrorReport> <BaseOutputPath>D:\Amkor\AGV4</BaseOutputPath>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> <Copyright>Amkor</Copyright>
<Prefer32Bit>false</Prefer32Bit> <Title>AGV4</Title>
<Description>Amkor AGV4</Description>
<AssemblyVersion>25.04.24.1500</AssemblyVersion>
<FileVersion>25.04.24.1500</FileVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>bin\</OutputPath> <NoWarn>1701;1702;8622</NoWarn>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<StartAction>Project</StartAction> <NoWarn>1701;1702;8622</NoWarn>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
<BaseAddress>4194304</BaseAddress>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Protocol\enigprotocol\ENIGProtocol.csproj" />
<ProjectReference Include="..\StateMachine\StateMachine.csproj" />
<ProjectReference Include="..\SubProject\AGV\NARUMI.csproj" />
<ProjectReference Include="..\SubProject\AGVControl\agvControl.csproj" />
<ProjectReference Include="..\SubProject\arCtl\arControl.csproj" />
<ProjectReference Include="..\SubProject\arFrameControl\arFrameControl.csproj" />
<ProjectReference Include="..\SubProject\BMS\BMS.csproj" />
<ProjectReference Include="..\SubProject\CommData\CommData.csproj" />
<ProjectReference Include="..\SubProject\CommUtil\arCommUtil.csproj" />
<ProjectReference Include="..\SubProject\MSSQLCommand\MSSQLCommand.csproj" />
<ProjectReference Include="..\SubProject\Patch\SWPatch.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Settings.Designer.cs">
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Update="icons8-split-64.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup> <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"> <Reference Include="Winsock Orcas">
<HintPath>..\DLL\Winsock Orcas.dll</HintPath> <HintPath>..\DLL\Winsock Orcas.dll</HintPath>
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Class\EEMStatus.cs" /> <PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<Compile Include="Class\Lang.cs" /> <PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" />
<Compile Include="CtlAuto.cs"> <PackageReference Include="System.IO.Ports" Version="9.0.4" />
<SubType>Component</SubType> <PackageReference Include="System.Management" Version="9.0.4" />
</Compile> <PackageReference Include="System.Speech" Version="9.0.4" />
<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 _OLD.cs" />
<Compile Include="Device\Xbee.cs">
<SubType>Component</SubType>
</Compile>
<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>
<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="..\..\..\Protocol\enigprotocol\ENIGProtocol.csproj">
<Project>{16bd025d-cb0f-4a4b-a452-8fe629f02f0c}</Project>
<Name>ENIGProtocol</Name>
</ProjectReference>
<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> </Project>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<RootNamespace>Project</RootNamespace>
<AssemblyName>Amkor</AssemblyName>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<ApplicationIcon>icons8-split-64.ico</ApplicationIcon>
<Platforms>x64</Platforms>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<NoWarn>IDE1006</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>..\..\..\..\..\Amkor\AGV4\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<OutputPath>..\..\..\ManualMapEditor\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutputPath>..\..\..\..\Amkor\OTP2DReading\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
<PackageReference Include="System.Runtime.Remoting" Version="4.0.2" />
<PackageReference Include="System.Security.Cryptography" Version="8.0.0" />
<PackageReference Include="System.Web" Version="4.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\StateMachine\StateMachine.csproj" />
<ProjectReference Include="..\SubProject\AGV\NARUMI.csproj" />
<ProjectReference Include="..\SubProject\AGVControl\agvControl.csproj" />
<ProjectReference Include="..\SubProject\arCtl\arControl.csproj" />
<ProjectReference Include="..\SubProject\arFrameControl\arFrameControl.csproj" />
<ProjectReference Include="..\SubProject\BMS\BMS.csproj" />
<ProjectReference Include="..\SubProject\CommData\CommData.csproj" />
<ProjectReference Include="..\SubProject\CommUtil\arCommUtil.csproj" />
<ProjectReference Include="..\SubProject\MSSQLCommand\MSSQLCommand.csproj" />
<ProjectReference Include="..\SubProject\Patch\SWPatch.csproj" />
<ProjectReference Include="..\SubProject\ProPLC\PLC.Net45.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="icons8-split-64.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@@ -4,9 +4,9 @@ using System.Linq;
using System.Text; using System.Text;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing.Design; using System.Drawing.Design;
using System.Management;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Security.RightsManagement; using System.Management;
using System.IO.Ports;
namespace Project namespace Project
{ {
@@ -65,7 +65,7 @@ namespace Project
} }
} }
public class CSetting : arUtil.Setting public class CSetting : AR.Setting
{ {
#region "log" #region "log"
@@ -454,7 +454,7 @@ namespace Project
} }
public class CounterSetting : arUtil.Setting, INotifyPropertyChanged public class CounterSetting : AR.Setting, INotifyPropertyChanged
{ {
public DateTime CountReset { get; set; } public DateTime CountReset { get; set; }

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
namespace Project namespace Project
{ {

View File

@@ -1,5 +1,6 @@
using Project; using Project;
using Project.Device; using Project.Device;
using Project.StateMachine;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@@ -8,7 +9,6 @@ using System.Net;
using System.Net.NetworkInformation; using System.Net.NetworkInformation;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using static Project.StateMachine;
/// <summary> /// <summary>
/// ============================================================================ /// ============================================================================

View File

@@ -5,15 +5,15 @@ using System.Text;
using System.ComponentModel; using System.ComponentModel;
using System.Threading; using System.Threading;
using COMM; using COMM;
using System.Runtime.Remoting.Messaging;
using ENIG; using ENIG;
using System.Security.Cryptography; using System.Security.Cryptography;
using AR; using AR;
using System.Web.Compilation; using System.IO.Ports;
using System.Security.Cryptography.X509Certificates;
namespace Project.Device namespace Project.Device
{ {
public class Xbee : System.IO.Ports.SerialPort public class Xbee : SerialPort
{ {
public string buffer = string.Empty; public string buffer = string.Empty;
public System.Text.StringBuilder newbuffer = new StringBuilder(); public System.Text.StringBuilder newbuffer = new StringBuilder();
@@ -35,6 +35,181 @@ namespace Project.Device
proto.OnMessage -= Proto_OnMessage; proto.OnMessage -= Proto_OnMessage;
} }
/// <summary>
/// 지그비장치에 데이터를 전송합니다
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public bool Send(byte[] data)
{
try
{
this.Write(data, 0, data.Length);
return true;
}
catch (Exception ex)
{
errorMessage = ex.Message;
return false;
}
}
public new bool Open()
{
try
{
this.Open();
return true;
}
catch (Exception ex)
{
errorMessage = ex.Message;
PUB.logxbee.AddE(errorMessage);
return false;
}
}
private void Proto_OnDataReceived(object sender, EEProtocol.DataEventArgs e)
{
var hexstrRaw = e.ReceivedPacket.RawData.HexString();
var hexstr = e.ReceivedPacket.Data.HexString();
var cmd = e.ReceivedPacket.Command.ToString("X2");
var id = e.ReceivedPacket.ID.ToString("X2");
PUB.logxbee.Add("RX", $"{hexstrRaw}\nID:{id},CMD:{cmd},DATA:{hexstr}");
//TODO : 기능 처리필요 (XBee 메세지 데이터처리)
//PUB.CheckManualChargeMode() : 수동충전확인
//VAR.BOOL[eVarBool.FLAG_AUTORUN] : 자동실행
//PUB.Speak("현재 위치는 QA 입니다.") : 음성출력
//ACS 수신 데이터 처리(타 장비는 확인하지 않는다)
if (e.ReceivedPacket.ID == 0)
{
var data = e.ReceivedPacket.Data;
switch (e.ReceivedPacket.Command)
{
case 1: //Request PATH
var pathID = data[0];
var pathPage = data[1];
//TODO : 요청받은 맵 데이터를 전송해야한다
break;
case 100: //move to tag
var TargetTag = System.Text.Encoding.Default.GetString(data, 0, 6);
//1.현재위치에서 경로계산 하여 경로저장
//2.현재위치를 모를경우 이전 이동 기록을 통해 위치를 추정한다
//3.대상태그에 맞는 전/후진 방향을 결정하여 이동을 수행한다
break;
case 101: //stop
PUB.AGV.AGVMoveStop("xbee");
break;
case 102: //Error Reset
PUB.AGV.AGVErrorReset();
break;
case 103: //charing command (0:off, 1:on)
var CharingCmd = data[0];
//0.자동모드가 아니라면 실행하지 않는다
//1.충전프로세스를 시작한다
//2.1분간 충전진행 신호가 없다면 반대편으로 1TAG이동하여 다시 시도한다
//3.3회 시도 실패시 오류 데이터를 HOST에 전송한다
break;
case 104: //Manual Move (Direction, speed, runtime)
var Direction = data[0]; //0=back, 1=forward, 2=left, 3=right
var Speed = data[1]; //0=slow, 1=normal, 2=fast
var Runtime = data[2]; // running seconds
arDev.Narumi.ManulOpt opt = arDev.Narumi.ManulOpt.BS;
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
if (Speed == 1) spd = arDev.Narumi.Speed.Mid;
else if (Speed == 2) spd = arDev.Narumi.Speed.High;
//0.자동모드가 아니라면 실행하지 않는다
//1.입력된 파라미터로 AGV를 이동한다
if (Direction == 0) opt = arDev.Narumi.ManulOpt.BS;
else if (Direction == 1) opt = arDev.Narumi.ManulOpt.FS;
else if (Direction == 2) opt = arDev.Narumi.ManulOpt.LT;
else if (Direction == 3) opt = arDev.Narumi.ManulOpt.RT;
PUB.AGV.AGVMoveManual(opt, spd, arDev.Narumi.Sensor.PBSOn);
break;
case 105: //Set MarkStop
var MarkStop = data[0]; //0=off, 1=on
//마크센서에서 멈추게 한다
PUB.AGV.AGVMoveStop("Xbee", arDev.Narumi.eStopOpt.MarkStop);
break;
case 106: //Lift Control
var LiftCommand = data[0]; //0=stop, 1=up, 2=down
arDev.Narumi.LiftCommand LCmd = arDev.Narumi.LiftCommand.STP;
if (LiftCommand == 1) LCmd = arDev.Narumi.LiftCommand.UP;
else if (LiftCommand == 2) LCmd = arDev.Narumi.LiftCommand.DN;
//리프트제어
PUB.AGV.LiftControl(LCmd);
break;
case 107: //clear path
//TODO: 현재 설정된 경로삭제기능 필요
break;
case 108: //send path
//TODO : 경로정보를 수신받고 페이지가 1을 초과하면 나머지 페이지정보도 요청할 수 있어야 한다
break;
}
}
}
private void Proto_OnMessage(object sender, EEProtocol.MessageEventArgs e)
{
if (e.IsError) PUB.log.AddE(e.Message);
else PUB.log.Add(e.Message);
}
private void Xbee_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
var dev = sender as System.IO.Ports.SerialPort;
var buffer = new byte[dev.BytesToRead];
dev.Read(buffer, 0, buffer.Length);
proto.ProcessReceivedData(buffer);
}
/// <summary>
/// 이동완료 신호 전송
/// </summary>
/// <param name="tag">목적지태그값</param>
public void SendMoveComplete(string tag)
{
var id = PUB.setting.XBE_ID;
byte cmd = 2;
var data = System.Text.Encoding.Default.GetBytes(tag);
var packet = proto.CreatePacket(id, cmd, data);
Send(packet);
}
/// <summary>
/// 신규 RFID태그값이 읽혔다면 이명령을 통해서 전송한다
/// </summary>
public void SendRFIDTag(string tag)
{
var id = PUB.setting.XBE_ID;
byte cmd = 3;
var data = System.Text.Encoding.Default.GetBytes(tag);
var packet = proto.CreatePacket(id, cmd, data);
Send(packet);
}
/// <summary> /// <summary>
/// AGV상태를 Xbee 로 전송한다 /// AGV상태를 Xbee 로 전송한다
/// </summary> /// </summary>
@@ -82,17 +257,17 @@ namespace Project.Device
data[4] = (byte)((VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) ? 1 : 0); data[4] = (byte)((VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) ? 1 : 0);
// CartSt // CartSt
if(PUB.AGV.signal.cart_detect1 && PUB.AGV.signal.cart_detect2) if (PUB.AGV.signal.cart_detect1 && PUB.AGV.signal.cart_detect2)
data[5] = 1; // 센서두개가 모두 감지되는 경우 data[5] = 1; // 센서두개가 모두 감지되는 경우
else if(PUB.AGV.signal.cart_detect1==false && PUB.AGV.signal.cart_detect2==false) else if (PUB.AGV.signal.cart_detect1 == false && PUB.AGV.signal.cart_detect2 == false)
data[5] = 0; // 센서두개가 모두 감지되지 않는 경우 data[5] = 0; // 센서두개가 모두 감지되지 않는 경우
else else
data[5] = 2; // 센서하나만 감지되는 경우 data[5] = 2; // 센서하나만 감지되는 경우
// LiftSt // LiftSt
if(PUB.AGV.signal.lift_up) if (PUB.AGV.signal.lift_up)
data[6] = 1; // 위로 올라가는 경우 data[6] = 1; // 위로 올라가는 경우
else if(PUB.AGV.signal.lift_down) else if (PUB.AGV.signal.lift_down)
data[6] = 0; // 아래로 내려가는 경우 data[6] = 0; // 아래로 내려가는 경우
else else
data[6] = 2; // unknown (기본값) data[6] = 2; // unknown (기본값)
@@ -114,65 +289,6 @@ namespace Project.Device
} }
} }
/// <summary>
/// 지그비장치에 데이터를 전송합니다
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public bool Send(byte[] data)
{
try
{
this.Write(data, 0, data.Length);
return true;
}catch (Exception ex)
{
errorMessage = ex.Message;
return false;
}
}
public new bool Open()
{
try{
this.Open();
return true;
}catch (Exception ex)
{
errorMessage = ex.Message;
PUB.logxbee.AddE(errorMessage);
return false;
}
}
private void Proto_OnDataReceived(object sender, EEProtocol.DataEventArgs e)
{
var hexstrRaw = e.ReceivedPacket.RawData.HexString();
var hexstr = e.ReceivedPacket.Data.HexString();
var cmd = e.ReceivedPacket.Command.ToString("X2");
var id = e.ReceivedPacket.ID.ToString("X2");
PUB.logxbee.Add("RX", $"{hexstrRaw}\nID:{id},CMD:{cmd},DATA:{hexstr}");
//TODO : 기능 처리필요 (XBee 메세지 데이터처리)
//PUB.CheckManualChargeMode() : 수동충전확인
//VAR.BOOL[eVarBool.FLAG_AUTORUN] : 자동실행
//PUB.Speak("현재 위치는 QA 입니다.") : 음성출력
}
private void Proto_OnMessage(object sender, EEProtocol.MessageEventArgs e)
{
if (e.IsError) PUB.log.AddE(e.Message);
else PUB.log.Add(e.Message);
}
private void Xbee_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
var dev = sender as System.IO.Ports.SerialPort;
var buffer = new byte[dev.BytesToRead];
dev.Read(buffer, 0, buffer.Length);
proto.ProcessReceivedData(buffer);
}
} }
} }

View File

@@ -7,6 +7,8 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using System.IO;
using System.IO.Compression;
namespace Project.Dialog namespace Project.Dialog
{ {
@@ -123,15 +125,20 @@ namespace Project.Dialog
Util.MsgE("실행파일 amkor.exe 가 없습니다."); Util.MsgE("실행파일 amkor.exe 가 없습니다.");
return; return;
} }
var zipfile = new Ionic.Zip.ZipFile(); var zipfile = new ZipArchive(new MemoryStream(), ZipArchiveMode.Create);
zipfile.AddFile(file_exe,"/"); zipfile.CreateEntryFromFile(file_exe, "amkor.exe");
foreach (var filedll in files_dll) foreach (var filedll in files_dll)
zipfile.AddFile(filedll.FullName,"/"); zipfile.CreateEntryFromFile(filedll.FullName, filedll.Name);
var veri = Application.ProductVersion.Split('.'); var veri = Application.ProductVersion.Split('.');
var newfilename = "Patch_AGV_" + veri[0] + veri[1]+ veri[2] + "_" + var newfilename = "Patch_AGV_" + veri[0] + veri[1]+ veri[2] + "_" +
veri[3] + ".zip"; veri[3] + ".zip";
zipfile.Save(newfilename); var entry = zipfile.CreateEntry(newfilename);
using (var entryStream = entry.Open())
using (var fileStream = new FileStream(newfilename, FileMode.Open))
{
fileStream.CopyTo(entryStream);
}
Util.MsgI("다음 패치 파일이 생성됨\n" + newfilename); Util.MsgI("다음 패치 파일이 생성됨\n" + newfilename);
} }

View File

@@ -7,6 +7,8 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using System.IO;
using System.IO.Compression;
namespace Project.Dialog namespace Project.Dialog
{ {
@@ -211,10 +213,7 @@ namespace Project.Dialog
} }
//해당폴더에 압축을 해제해준다. //해당폴더에 압축을 해제해준다.
var f = new Ionic.Zip.ZipFile(file); ZipFile.ExtractToDirectory(file, dir_path.FullName);
f.ExtractProgress += F_ExtractProgress;
f.ExtractAll(dir_path.FullName);
f.ExtractProgress -= F_ExtractProgress;
//패치정보파일 추가 //패치정보파일 추가
var infofile = System.IO.Path.Combine(dir_path.FullName, "version.txt"); var infofile = System.IO.Path.Combine(dir_path.FullName, "version.txt");
@@ -231,19 +230,10 @@ namespace Project.Dialog
} }
private void F_ExtractProgress(object sender, Ionic.Zip.ExtractProgressEventArgs e) private void F_ExtractProgress(object sender, EventArgs e)
{ {
if(e.TotalBytesToTransfer < 1) // System.IO.Compression은 진행률 이벤트를 제공하지 않으므로
{ // 필요한 경우 별도의 진행률 계산 로직을 구현해야 합니다.
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) private void btNo_Click(object sender, EventArgs e)

View File

@@ -94,14 +94,18 @@ namespace Project.Dialog
private void button5_Click(object sender, EventArgs e) private void button5_Click(object sender, EventArgs e)
{ {
PUB.mplayer.Volume += 0.1; var newvol = PUB.setting.musicvol + 10;
PUB.setting.musicvol = (int)(PUB.mplayer.Volume * 100); if (newvol > 100) newvol = 100;
if (newvol < 0) newvol = 0;
PUB.SetVolume(newvol);
} }
private void button4_Click(object sender, EventArgs e) private void button4_Click(object sender, EventArgs e)
{ {
PUB.mplayer.Volume -= 0.1; var newvol = PUB.setting.musicvol - 10;
PUB.setting.musicvol = (int)(PUB.mplayer.Volume * 100); if (newvol > 100) newvol = 100;
if (newvol < 0) newvol = 0;
PUB.SetVolume(newvol);
} }
private void button7_Click(object sender, EventArgs e) private void button7_Click(object sender, EventArgs e)
@@ -118,7 +122,7 @@ namespace Project.Dialog
{ {
var s = "고수석님, 그 에러는 못고쳐요. 포기 하면 편해요"; var s = "고수석님, 그 에러는 못고쳐요. 포기 하면 편해요";
var s1 = $"현재시간은 {DateTime.Now.Hour}시 입니다"; var s1 = $"현재시간은 {DateTime.Now.Hour}시 입니다";
PUB.Speak( this.textBox1.Text); PUB.Speak(this.textBox1.Text);
} }
} }
} }

View File

@@ -83,7 +83,7 @@ namespace Project.Manager
void MakeFile(string filename) void MakeFile(string filename)
{ {
//파일이없다면 헤더를 만들어준다. //파일이없다면 헤더를 만들어준다.
arUtil.XMLHelper xml = new arUtil.XMLHelper(filename); AR.XMLHelper xml = new AR.XMLHelper(filename);
xml.CreateFile(); xml.CreateFile();
} }
@@ -142,7 +142,7 @@ namespace Project.Manager
try try
{ {
//general info //general info
var xml = new arUtil.XMLHelper(fi.FullName); var xml = new AR.XMLHelper(fi.FullName);
foreach(System.Data.DataColumn dc in this.dt.Columns) foreach(System.Data.DataColumn dc in this.dt.Columns)
{ {
if (dc.ColumnName.ToLower() == "idx") continue; if (dc.ColumnName.ToLower() == "idx") continue;
@@ -194,7 +194,7 @@ namespace Project.Manager
{ {
var newdr = retval.NewResultDataRow(); var newdr = retval.NewResultDataRow();
newdr.info_filename = file.FullName; newdr.info_filename = file.FullName;
arUtil.XMLHelper xml = new arUtil.XMLHelper(file.FullName); var xml = new AR.XMLHelper(file.FullName);
foreach (System.Data.DataColumn col in retval.Columns) foreach (System.Data.DataColumn col in retval.Columns)
{ {
if (col.ColumnName.ToLower() == "idx") continue; if (col.ColumnName.ToLower() == "idx") continue;
@@ -235,7 +235,7 @@ namespace Project.Manager
var filese = System.IO.Directory.GetFiles( path , strip + ".xml"); var filese = System.IO.Directory.GetFiles( path , strip + ".xml");
if(filese .Length == 1) if(filese .Length == 1)
{ {
var xml = new arUtil.XMLHelper(filese[0]); var xml = new AR.XMLHelper(filese[0]);
var upload = xml.get_Data("info", "upload"); var upload = xml.get_Data("info", "upload");
if (upload == "O") return eStripSearchResult.OK; if (upload == "O") return eStripSearchResult.OK;
} }

View File

@@ -1,18 +1,19 @@
using Microsoft.Speech.Synthesis; using COMM;
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.NetworkInformation;
using System.Net; using System.Net;
using System.Management; using System.Management;
using System.Data.SqlClient;
using System.Data; using System.Data;
using AR; using AR;
using System.Security.Policy;
using Project.StateMachine;
using System.Data.SqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Speech.Synthesis;
using System.Media;
using System.Runtime.InteropServices;
namespace Project namespace Project
{ {
@@ -61,8 +62,18 @@ namespace Project
public static Device.Socket sock_debug; public static Device.Socket sock_debug;
private static SpeechSynthesizer voice; private static SpeechSynthesizer voice;
public static MediaPlayer mplayer; public static SoundPlayer mplayer;
[DllImport("winmm.dll")]
private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume);
public static void SetVolume(int volume)
{
// volume은 0~100 사이의 값
uint vol = (uint)((volume / 100.0) * 0xFFFF);
waveOutSetVolume(IntPtr.Zero, vol);
setting.musicvol = volume;
}
public static bool CheckPassword() public static bool CheckPassword()
{ {
@@ -76,7 +87,11 @@ namespace Project
public static void Speak(string m, Boolean force = false, bool addlog = true) public static void Speak(string m, Boolean force = false, bool addlog = true)
{ {
if (force == false && PUB.setting.Enable_Speak == false) return; if (force == false && PUB.setting.Enable_Speak == false)
{
Console.WriteLine("speech disabled");
return;
}
if (force) if (force)
voice.SpeakAsyncCancelAll(); voice.SpeakAsyncCancelAll();
if (voice.State == SynthesizerState.Ready) if (voice.State == SynthesizerState.Ready)
@@ -123,7 +138,7 @@ namespace Project
/// <summary> /// <summary>
/// 시스템로그 /// 시스템로그
/// </summary> /// </summary>
public static arUtil.Log log, logagv, logplc, logbms, logxbee; public static AR.Log log, logagv, logplc, logbms, logxbee;
public static Boolean bPlayMusic = false; public static Boolean bPlayMusic = false;
@@ -139,7 +154,7 @@ namespace Project
/// <summary> /// <summary>
/// 상태머신 /// 상태머신
/// </summary> /// </summary>
public static StateMachine sm; //상태머신분리 190529 public static StateMachine.StateMachine sm; //상태머신분리 190529
public static System.IO.DirectoryInfo path; public static System.IO.DirectoryInfo path;
@@ -155,11 +170,11 @@ namespace Project
counter.Load(); counter.Load();
//log //log
log = new arUtil.Log(); log = new AR.Log();
logagv = new arUtil.Log(); logagv = new AR.Log();
logplc = new arUtil.Log(); logplc = new AR.Log();
logbms = new arUtil.Log(); logbms = new AR.Log();
logxbee = new arUtil.Log(); logxbee = new AR.Log();
logagv.FileNameFormat = "{yyyyMMdd}_agv"; logagv.FileNameFormat = "{yyyyMMdd}_agv";
logplc.FileNameFormat = "{yyyyMMdd}_plc"; logplc.FileNameFormat = "{yyyyMMdd}_plc";
@@ -178,22 +193,46 @@ namespace Project
Result = new CResult(); Result = new CResult();
//state machine //state machine
sm = new StateMachine(); sm = new StateMachine.StateMachine();
path = new System.IO.DirectoryInfo(Util.CurrentPath); path = new System.IO.DirectoryInfo(Util.CurrentPath);
mplayer = new MediaPlayer mplayer = new SoundPlayer();
{
Volume = PUB.setting.musicvol / 100.0
};
if (PUB.setting.musicfile.isEmpty() == false) if (PUB.setting.musicfile.isEmpty() == false)
if (System.IO.File.Exists(PUB.setting.musicfile)) if (System.IO.File.Exists(PUB.setting.musicfile))
PUB.mplayer.Open(new Uri(PUB.setting.musicfile)); {
PUB.mplayer.SoundLocation = PUB.setting.musicfile;
SetVolume(PUB.setting.musicvol);
}
voice = new SpeechSynthesizer(); voice = new SpeechSynthesizer();
voice.SelectVoice("Microsoft Server Speech Text to Speech Voice (ko-KR, Heami)"); try
{
// 한국어 음성을 찾아서 설정
var koreanVoice = voice.GetInstalledVoices()
.Where(v => v.VoiceInfo.Culture.Name.StartsWith("ko"))
.FirstOrDefault();
if (koreanVoice != null)
{
voice.SelectVoice(koreanVoice.VoiceInfo.Name);
}
else
{
// 한국어 음성이 없으면 기본 음성 사용
var defaultVoice = voice.GetInstalledVoices().FirstOrDefault();
if (defaultVoice != null)
{
voice.SelectVoice(defaultVoice.VoiceInfo.Name);
}
}
}
catch
{
// 음성 설정 실패 시 기본값 사용
}
voice.SetOutputToDefaultAudioDevice(); voice.SetOutputToDefaultAudioDevice();
var file_version = System.IO.Path.Combine(Util.CurrentPath, "version.txt"); var file_version = System.IO.Path.Combine(Util.CurrentPath, "version.txt");
@@ -362,13 +401,9 @@ namespace Project
} }
} }
if (ip == "" || mac == "") if (ip == "" || mac == "") return;
{
return;
}
var conn = new SqlConnection(AGV4.Properties.Settings.Default.CS);// "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!");
SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!");
conn.Open(); conn.Open();
string ProcName = "AddPrgmUser3"; string ProcName = "AddPrgmUser3";
SqlCommand cmd = new SqlCommand(ProcName, conn) SqlCommand cmd = new SqlCommand(ProcName, conn)

View File

@@ -18,19 +18,14 @@ namespace Project
static void Main() static void Main()
{ {
//중복실행방지 //중복실행방지
var guidAttr = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(GuidAttribute), true); string mutexName = "AGV4_Application_Mutex";
if (guidAttr != null) Mutex mtx = new Mutex(true, mutexName);
{
var guida = (GuidAttribute)guidAttr[0];
var guidstr = guida.Value;
Mutex mtx = new Mutex(true, guidstr);
var success = mtx.WaitOne(new TimeSpan(0, 0, 1)); var success = mtx.WaitOne(new TimeSpan(0, 0, 1));
if (success == false) if (success == false)
{ {
MessageBox.Show("중복실행 불가\n\n프로그램이 실행 중 입니다"); MessageBox.Show("Duplicate execution not allowed\n\nProgram is already running");
return; return;
} }
}
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);

View File

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

@@ -8,11 +8,11 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace Project.Properties { namespace AGV4.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -34,5 +34,17 @@ namespace Project.Properties {
this["css"] = value; this["css"] = value;
} }
} }
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)]
[global::System.Configuration.DefaultSettingValueAttribute("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Inf" +
"o=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertific" +
"ate=True")]
public string CS {
get {
return ((string)(this["CS"]));
}
}
} }
} }

View File

@@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Project.Properties" GeneratedClassName="Settings"> <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="AGV4.Properties" GeneratedClassName="Settings">
<Profiles /> <Profiles />
<Settings> <Settings>
<Setting Name="css" Type="System.String" Scope="User"> <Setting Name="css" Type="System.String" Scope="User">
@@ -7,5 +7,13 @@
asdfasdfasdf asdfasdfasdf
asdf</Value> asdf</Value>
</Setting> </Setting>
<Setting Name="CS" Type="(Connection string)" Scope="Application">
<DesignTimeValue Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
&lt;ConnectionString&gt;Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True&lt;/ConnectionString&gt;
&lt;ProviderName&gt;System.Data.SqlClient&lt;/ProviderName&gt;
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@@ -0,0 +1,8 @@
{
"profiles": {
"AGV4": {
"commandName": "Project",
"workingDirectory": "D:\\Amkor\\AGV4"
}
}
}

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine;
using COMM; using COMM;
using AR; using AR;
using Project.StateMachine;
namespace Project namespace Project
{ {

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Windows.Media;
namespace Project namespace Project
{ {

View File

@@ -5,7 +5,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using AR; using AR;
using COMM; using COMM;
using static Project.StateMachine; using Project.StateMachine;
namespace Project namespace Project
{ {

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using System.Diagnostics; using System.Diagnostics;
using AR; using AR;

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using static Project.StateMachine; using Project.StateMachine;
namespace Project namespace Project
{ {

View File

@@ -5,7 +5,7 @@ using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using arCtl; using arCtl;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;
namespace Project namespace Project

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

@@ -5,7 +5,7 @@ using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using arCtl; using arCtl;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;

View File

@@ -12,185 +12,184 @@ namespace Project
public partial class fMain public partial class fMain
{ {
private void PLC_DioChanged(object sender, arDev.FakePLC.IOValueEventArgs e) //private void PLC_DioChanged(object sender, arDev.FakePLC.IOValueEventArgs e)
{ //{
if (e.Direction == arDev.Arduino.IODirection.Input) // if (e.Direction == arDev.Arduino.IODirection.Input)
{ // {
var diName = (arDev.FakePLC.DIName)e.ArrIDX; // var diName = (arDev.FakePLC.DIName)e.ArrIDX;
Console.WriteLine(string.Format("[DI:{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue)); // Console.WriteLine(string.Format("[DI:{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue));
if (diName == arDev.FakePLC.DIName.PINI_BTN_1) //reset // if (diName == arDev.FakePLC.DIName.PINI_BTN_1) //reset
{ // {
if (e.NewValue == true) // if (e.NewValue == true)
{ // {
PUB.log.Add($"버튼({diName}) 눌림(AGV_RESET)"); // PUB.log.Add($"버튼({diName}) 눌림(AGV_RESET)");
PUB.AGV.AGVErrorReset(); // PUB.AGV.AGVErrorReset();
//241203 // //241203
if(PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) // if(PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual)
{ // {
PUB.AGV.AGVMoveStop("button1"); // PUB.AGV.AGVMoveStop("button1");
} // }
//PUB.XBE.NewMsgEvent('0', '1'); // //PUB.XBE.NewMsgEvent('0', '1');
} // }
} // }
else if (diName == arDev.FakePLC.DIName.PINI_BTN_2) //auto -> QC //230424 // else if (diName == arDev.FakePLC.DIName.PINI_BTN_2) //auto -> QC //230424
{ // {
if (e.NewValue == true) // if (e.NewValue == true)
{ // {
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true)
{ // {
if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP)
{ // {
//zup을 자동으로 해준다 // //zup을 자동으로 해준다
if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) // if (VAR.BOOL[eVarBool.WAIT_COVER_UP])
{ // {
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP);
PUB.Result.NextPos = ePosition.QC; // PUB.Result.NextPos = ePosition.QC;
} // }
else PUB.Speak(Lang.); // else PUB.Speak(Lang.커버업대기상태가아닙니다);
} // }
else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN)
{ // {
//이미 하차진행중에 누른 경우이다 // //이미 하차진행중에 누른 경우이다
PUB.Result.NextPos = ePosition.QC; // PUB.Result.NextPos = ePosition.QC;
PUB.Result.TargetPos = ePosition.QC; // PUB.Result.TargetPos = ePosition.QC;
} // }
else // else
{ // {
PUB.log.Add(Lang.QC이동버튼은상하차에서만사용가능합니다); // PUB.log.Add(Lang.QC이동버튼은상하차에서만사용가능합니다);
PUB.Speak(Lang.); // PUB.Speak(Lang.하차상태에서만사용가능합니다);
} // }
} // }
else PUB.Speak(Lang.); // else PUB.Speak(Lang.자동운전상태가아닙니다);
//if (VAR.BOOL[eVarBool.FLAG_AUTORUN]==false) // //if (VAR.BOOL[eVarBool.FLAG_AUTORUN]==false)
//{ // //{
// PUB.sm.ClearRunStep(); // // PUB.sm.ClearRunStep();
// PUB.sm.SetNewRunStep(StateMachine.ERunStep.READY); // // PUB.sm.SetNewRunStep(StateMachine.ERunStep.READY);
// PUB.sm.SetNewStep(StateMachine.eSMStep.RUN); // // PUB.sm.SetNewStep(StateMachine.eSMStep.RUN);
// PUB.Speak("자동 상태로 전환 합니다"); // // PUB.Speak("자동 상태로 전환 합니다");
//} // //}
//else // //else
//{ // //{
// PUB.Speak("현재 자동 상태 입니다"); // // PUB.Speak("현재 자동 상태 입니다");
//} // //}
} // }
} // }
else if (diName == arDev.FakePLC.DIName.PINI_BTN_3) //z-down -> QA //230424 // else if (diName == arDev.FakePLC.DIName.PINI_BTN_3) //z-down -> QA //230424
{ // {
if (e.NewValue == true) // if (e.NewValue == true)
{ // {
//Z-dn기능으로 업데이트 230119 // //Z-dn기능으로 업데이트 230119
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true)
{ // {
if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP)
{ // {
//zup.을 자동으로 해준다 // //zup.을 자동으로 해준다
if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) // if (VAR.BOOL[eVarBool.WAIT_COVER_UP])
{ // {
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP);
PUB.Result.NextPos = ePosition.QA; // PUB.Result.NextPos = ePosition.QA;
} // }
else PUB.Speak(Lang.); // else PUB.Speak(Lang.커버업대기상태가아닙니다);
} // }
else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN)
{ // {
//이미 하차진행중에 누른 경우이다 // //이미 하차진행중에 누른 경우이다
PUB.Result.NextPos = ePosition.QA; // PUB.Result.NextPos = ePosition.QA;
PUB.Result.TargetPos = ePosition.QA; // PUB.Result.TargetPos = ePosition.QA;
} // }
else // else
{ // {
PUB.log.Add($"QA이동 버튼은 상/하차에서만 사용 가능합니다"); // PUB.log.Add($"QA이동 버튼은 상/하차에서만 사용 가능합니다");
PUB.Speak(Lang.); // PUB.Speak(Lang.하차상태에서만사용가능합니다);
} // }
} // }
else PUB.Speak(Lang.); // else PUB.Speak(Lang.자동운전상태가아닙니다);
//PUB.PLC.ZMot(FakePLC.ZMotDirection.Down); // //PUB.PLC.ZMot(FakePLC.ZMotDirection.Down);
} // }
} // }
else if (diName == arDev.FakePLC.DIName.PINI_BTN_4) //z-up // else if (diName == arDev.FakePLC.DIName.PINI_BTN_4) //z-up
{ // {
if (e.NewValue == true) // if (e.NewValue == true)
{ // {
//Z-up기능으로 업데이트 230119 // //Z-up기능으로 업데이트 230119
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP);
} // }
} // }
else if (diName == arDev.FakePLC.DIName.PINI_EMG) // else if (diName == arDev.FakePLC.DIName.PINI_EMG)
{ // {
if (e.NewValue == true) // if (e.NewValue == true)
{ // {
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
PUB.Speak(Lang.); // PUB.Speak(Lang.비상정지);
} // }
//else Pub.Speak("비상 정지 해제"); // //else Pub.Speak("비상 정지 해제");
} // }
else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADL) // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADL)
{ // {
if (e.NewValue == true) // if (e.NewValue == true)
{ // {
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
PUB.Speak(Lang.); // PUB.Speak(Lang.오버로드감지);
} // }
VAR.BOOL[eVarBool.OVERLOADL] = e.NewValue; // VAR.BOOL[eVarBool.OVERLOADL] = e.NewValue;
} // }
else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADR) // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADR)
{ // {
if (e.NewValue == true) // if (e.NewValue == true)
{ // {
PUB.log.Add($"버튼({diName}) 눌림"); // PUB.log.Add($"버튼({diName}) 눌림");
PUB.Speak(Lang.); // PUB.Speak(Lang.오버로드감지);
} // }
VAR.BOOL[eVarBool.OVERLOADR] = e.NewValue; // VAR.BOOL[eVarBool.OVERLOADR] = e.NewValue;
} // }
//else if (diName == FakePLC.DIName.PINI_LIMIT_LU) // //else if (diName == FakePLC.DIName.PINI_LIMIT_LU)
//{ // //{
// PUB.flag.set(EFlag.FLAG_LIMITHIGHL, e.NewValue); // // PUB.flag.set(EFlag.FLAG_LIMITHIGHL, e.NewValue);
// //}
// //else if (diName == FakePLC.DIName.PINI_LIMIT_RU)
// //{
// // PUB.flag.set(EFlag.FLAG_LIMITHIGHR, e.NewValue);
// //}
// //else if (diName == FakePLC.DIName.PINI_LIMIT_LD)
// //{
// // PUB.flag.set(EFlag.FLAG_LIMITLOWL, e.NewValue);
// //}
// //else if (diName == FakePLC.DIName.PINI_LIMIT_RD)
// //{
// // PUB.flag.set(EFlag.FLAG_LIMITLOWR, e.NewValue);
// //}
// //else
// //{
// // //처리하지 않음
// //}
// //PUB.flag.set(EFlag.FLAG_LIMITHIGH, (PUB.flag.get(EFlag.FLAG_LIMITHIGHL) && PUB.flag.get(EFlag.FLAG_LIMITHIGHR)));
// //PUB.flag.set(EFlag.FLAG_LIMITLOW, (PUB.flag.get(EFlag.FLAG_LIMITLOWL) && PUB.flag.get(EFlag.FLAG_LIMITLOWR)));
// VAR.BOOL[eVarBool.FLAG_LIMITHIGH] = false;// PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU);
// VAR.BOOL[eVarBool.FLAG_LIMITLOW] = false;//PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD);
// VAR.BOOL[eVarBool.OVERLOAD] = (VAR.BOOL[eVarBool.OVERLOADL] || VAR.BOOL[eVarBool.OVERLOADR]);
// }
// else
// {
// //출력포트값 변경
// var doName = (arDev.FakePLC.DOName)e.ArrIDX;
// PUB.logplc.Add($"출력({doName}) {(e.NewValue ? "O" : "X")}");
// }
//} //}
//else if (diName == FakePLC.DIName.PINI_LIMIT_RU)
//{
// PUB.flag.set(EFlag.FLAG_LIMITHIGHR, e.NewValue);
//}
//else if (diName == FakePLC.DIName.PINI_LIMIT_LD)
//{
// PUB.flag.set(EFlag.FLAG_LIMITLOWL, e.NewValue);
//}
//else if (diName == FakePLC.DIName.PINI_LIMIT_RD)
//{
// PUB.flag.set(EFlag.FLAG_LIMITLOWR, e.NewValue);
//}
//else
//{
// //처리하지 않음
//}
//PUB.flag.set(EFlag.FLAG_LIMITHIGH, (PUB.flag.get(EFlag.FLAG_LIMITHIGHL) && PUB.flag.get(EFlag.FLAG_LIMITHIGHR)));
//PUB.flag.set(EFlag.FLAG_LIMITLOW, (PUB.flag.get(EFlag.FLAG_LIMITLOWL) && PUB.flag.get(EFlag.FLAG_LIMITLOWR)));
VAR.BOOL[eVarBool.FLAG_LIMITHIGH] = false;// PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU);
VAR.BOOL[eVarBool.FLAG_LIMITLOW] = false;//PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD);
VAR.BOOL[eVarBool.OVERLOAD] = (VAR.BOOL[eVarBool.OVERLOADL] || VAR.BOOL[eVarBool.OVERLOADR]);
}
else
{
//출력포트값 변경
var doName = (arDev.FakePLC.DOName)e.ArrIDX;
PUB.logplc.Add($"출력({doName}) {(e.NewValue ? "O" : "X")}");
}
}
//string oldflagmessage = string.Empty; //string oldflagmessage = string.Empty;
string lastplclogmessage = ""; // 사용하지 않는 필드들 제거
DateTime lastplclogtime = DateTime.Now; // private string logmessage;
string logmessage = ""; // private string lastplclogmessage;
bool logerror = false; // private string logerror;
} }
} }

View File

@@ -98,11 +98,11 @@ namespace Project
} }
void PLC_FlagChanged(object sender, arDev.Arduino.DIO.FlagValueEventArgs e) //void PLC_FlagChanged(object sender, arDev.Arduino.DIO.FlagValueEventArgs e)
{ //{
//플래그 상태표시는 메인의 타이머를 이용한다 // //플래그 상태표시는 메인의 타이머를 이용한다
// var flag = (arDev.FakePLC.PLCFlag)e.ArrIDX; // // var flag = (arDev.FakePLC.PLCFlag)e.ArrIDX;
PUB.log.Add($"PLC Flag Changed {e.ArrIDX} : {e.NewValue}"); // PUB.log.Add($"PLC Flag Changed {e.ArrIDX} : {e.NewValue}");
} //}
} }
} }

View File

@@ -5,7 +5,7 @@ using System.Drawing;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using arCtl; using arCtl;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using System.Windows.Forms; using System.Windows.Forms;
using Project.ViewForm; using Project.ViewForm;
@@ -77,7 +77,7 @@ namespace Project
} }
void sm_Running(object sender, StateMachine.RunningEventArgs e) void sm_Running(object sender, StateMachine.StateMachine.RunningEventArgs e)
{ {
//창을 닫아야하는 상황에는 처리하지 않는다. //창을 닫아야하는 상황에는 처리하지 않는다.
@@ -352,7 +352,7 @@ namespace Project
} }
} }
void sm_Message(object sender, StateMachine.StateMachineMessageEventArgs e) void sm_Message(object sender, StateMachine.StateMachine.StateMachineMessageEventArgs e)
{ {
//상태머신에서 발생한 메세지 //상태머신에서 발생한 메세지
if (e.Header != "SM-STEP") if (e.Header != "SM-STEP")
@@ -360,7 +360,7 @@ namespace Project
} }
void sm_StepChanged(object sender, StateMachine.StepChangeEventArgs e) void sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e)
{ {
//상태머신의 스텝이 변경될때 발생함 //상태머신의 스텝이 변경될때 발생함
//Pub.log.Add(string.Format("SM:Step Changed {0} to {1}",e.Old,e.New)); //Pub.log.Add(string.Format("SM:Step Changed {0} to {1}",e.Old,e.New));

View File

@@ -7,7 +7,7 @@ using System.Text;
using AR; using AR;
using arCtl; using arCtl;
using COMM; using COMM;
using static Project.StateMachine; using Project.StateMachine;
namespace Project namespace Project
{ {

View File

@@ -2,7 +2,7 @@
using COMM; using COMM;
using System; using System;
using System.Drawing; using System.Drawing;
using static Project.StateMachine; using Project.StateMachine;
namespace Project namespace Project
{ {
@@ -421,8 +421,8 @@ namespace Project
/// </summary> /// </summary>
void Update_Music() void Update_Music()
{ {
if (PUB.mplayer == null) return;
if (PUB.mplayer != null && PUB.mplayer.HasAudio && PUB.bPlayMusic) if (PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation) && PUB.bPlayMusic)
{ {
if (PUB.AGV.system1.agv_run == false) if (PUB.AGV.system1.agv_run == false)
{ {
@@ -434,7 +434,7 @@ namespace Project
} }
} }
else if (PUB.setting.Enable_Music && PUB.mplayer != null && PUB.mplayer.HasAudio) else if (PUB.setting.Enable_Music && PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation))
{ {
if (PUB.AGV.system1.agv_run == true) if (PUB.AGV.system1.agv_run == true)
{ {

View File

@@ -32,7 +32,6 @@ namespace Project.ViewForm
} }
bool tmrun = false;
private void timer1_Tick(object sender, EventArgs e) private void timer1_Tick(object sender, EventArgs e)
{ {
timer1.Stop(); timer1.Stop();

View File

@@ -7,7 +7,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using static Project.StateMachine; using Project.StateMachine;
using COMM; using COMM;
using AR; using AR;
@@ -44,7 +44,7 @@ namespace Project.ViewForm
} }
} }
private void Sm_StepChanged(object sender, StepChangeEventArgs e) private void Sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e)
{ {
if (e.New == eSMStep.INIT || e.New == eSMStep.SYNC) if (e.New == eSMStep.INIT || e.New == eSMStep.SYNC)
this.ctlAuto1.Scean = CtlAuto.eScean.Progress; this.ctlAuto1.Scean = CtlAuto.eScean.Progress;

View File

@@ -60,7 +60,6 @@ namespace Project.ViewForm
} }
bool tmrun = false;
private void timer1_Tick(object sender, EventArgs e) private void timer1_Tick(object sender, EventArgs e)
{ {
timer1.Stop(); timer1.Stop();

View File

@@ -88,7 +88,6 @@ namespace Project.ViewForm
} }
bool tmrun = false;
private void timer1_Tick(object sender, EventArgs e) private void timer1_Tick(object sender, EventArgs e)
{ {
timer1.Stop(); timer1.Stop();

View File

@@ -23,42 +23,32 @@ namespace Project.ViewForm
namearray.Clear(); namearray.Clear();
tagarray.Clear(); tagarray.Clear();
for (byte i = 0; i < 16; i++)
{
var flagName = ((arDev.FakePLC.DIName)i).ToString();
var enumValue = Enum.Parse(typeof(arDev.FakePLC.DIPin), flagName);
if (flagName == i.ToString()) tagarray.Add(string.Empty);
else
{
//동일한 이름의 pin 번호르 찾아서 할당해준다.
var eV = (arDev.FakePLC.DIPin)enumValue;
tagarray.Add(((byte)eV).ToString());
}
namearray.Add(flagName.Replace("_", "\n"));
}
for (byte i = 0; i < 8; i++)
{
var flagName = ((arDev.FakePLC.DOName)i).ToString();
var enumValue = Enum.Parse(typeof(arDev.FakePLC.DOPin), flagName);
if (flagName == i.ToString()) tagarray.Add(string.Empty);
else
{
//동일한 이름의 pin 번호르 찾아서 할당해준다.
var eV = (arDev.FakePLC.DOPin)enumValue;
tagarray.Add(((byte)eV).ToString());
}
namearray.Add(flagName);
}
////값설정
//List<Boolean> fgValueM = new List<bool>();
//List<Boolean> fgValueS = new List<bool>();
////mainplc
//for (byte i = 0; i < 16; i++) //for (byte i = 0; i < 16; i++)
// fgValueM.Add(PUB.PLC.GetValueI(i)); //{
//for (byte i = 0; i < 16; i++) // var flagName = ((arDev.FakePLC.DIName)i).ToString();
// fgValueM.Add(PUB.PLC.GetValueO(i)); // var enumValue = Enum.Parse(typeof(arDev.FakePLC.DIPin), flagName);
// if (flagName == i.ToString()) tagarray.Add(string.Empty);
// else
// {
// //동일한 이름의 pin 번호르 찾아서 할당해준다.
// var eV = (arDev.FakePLC.DIPin)enumValue;
// tagarray.Add(((byte)eV).ToString());
// }
// namearray.Add(flagName.Replace("_", "\n"));
//}
//for (byte i = 0; i < 8; i++)
//{
// var flagName = ((arDev.FakePLC.DOName)i).ToString();
// var enumValue = Enum.Parse(typeof(arDev.FakePLC.DOPin), flagName);
// if (flagName == i.ToString()) tagarray.Add(string.Empty);
// else
// {
// //동일한 이름의 pin 번호르 찾아서 할당해준다.
// var eV = (arDev.FakePLC.DOPin)enumValue;
// tagarray.Add(((byte)eV).ToString());
// }
// namearray.Add(flagName);
//}
this.FormClosed += FIO_FormClosed; this.FormClosed += FIO_FormClosed;

View File

@@ -2,10 +2,22 @@
<configuration> <configuration>
<configSections> <configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="AGV4.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="Project.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/> <section name="Project.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup> </sectionGroup>
</configSections> </configSections>
<connectionStrings>
<add name="AGV4.Properties.Settings.CS" connectionString="Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<userSettings> <userSettings>
<AGV4.Properties.Settings>
<setting name="css" serializeAs="String">
<value>asdfasdfasdf
asdfasdfasdf
asdf</value>
</setting>
</AGV4.Properties.Settings>
<Project.Properties.Settings> <Project.Properties.Settings>
<setting name="css" serializeAs="String"> <setting name="css" serializeAs="String">
<value>asdfasdfasdf <value>asdfasdfasdf

View File

@@ -7,12 +7,10 @@ using System.Linq;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using static Project.StateMachine;
using Microsoft.Speech.Synthesis;
using Microsoft.Speech;
using COMM; using COMM;
using System.CodeDom; using System.CodeDom;
using AR; using AR;
using Project.StateMachine;
namespace Project namespace Project
{ {
@@ -159,7 +157,7 @@ namespace Project
} }
short[] FlagMapValue; private Dictionary<string, int> FlagMap = new Dictionary<string, int>();
private void __Load(object sender, EventArgs e) private void __Load(object sender, EventArgs e)
{ {
this.Text = Application.ProductName + " ver " + Application.ProductVersion; this.Text = Application.ProductName + " ver " + Application.ProductVersion;
@@ -228,7 +226,7 @@ namespace Project
PUB.sm.SetMsgOptOff(); //모든 메세지출력을 해제한다. (이벤트는 동작함) PUB.sm.SetMsgOptOff(); //모든 메세지출력을 해제한다. (이벤트는 동작함)
PUB.log.Add("State Machine Start"); PUB.log.Add("State Machine Start");
PUB.sm = new StateMachine(); PUB.sm = new StateMachine.StateMachine();
PUB.sm.StepChanged += sm_StepChanged; PUB.sm.StepChanged += sm_StepChanged;
PUB.sm.Message += sm_Message; PUB.sm.Message += sm_Message;
PUB.sm.Running += sm_Running; PUB.sm.Running += sm_Running;
@@ -690,8 +688,7 @@ namespace Project
using (var f = new fSetup()) using (var f = new fSetup())
if (f.ShowDialog() == DialogResult.OK) if (f.ShowDialog() == DialogResult.OK)
{ {
//music volume200522
PUB.mplayer.Volume = PUB.setting.musicvol / 100.0;
//AGV정보 싱크 //AGV정보 싱크
PUB.sm.ResetRunStepSeq(); PUB.sm.ResetRunStepSeq();
@@ -719,7 +716,7 @@ namespace Project
PUB.sm.ClearRunStep(); PUB.sm.ClearRunStep();
PUB.sm.SetNewStep(eSMStep.RESET); PUB.sm.SetNewStep(eSMStep.RESET);
PUB.sm.bPause = false; PUB.sm.bPause = false;
if (PUB.mplayer != null && PUB.mplayer.HasAudio) if (PUB.mplayer != null && PUB.mplayer.SoundLocation.isEmpty() == false)
{ {
PUB.mplayer.Stop(); PUB.mplayer.Stop();
PUB.bPlayMusic = false; PUB.bPlayMusic = false;

View File

@@ -18,7 +18,7 @@ namespace Project
public fSetup() public fSetup()
{ {
InitializeComponent(); InitializeComponent();
tmDisplay = new Timer tmDisplay = new System.Windows.Forms.Timer
{ {
Interval = 200 Interval = 200
}; };
@@ -125,7 +125,7 @@ namespace Project
chkClearPos.Checked = PUB.setting.AutoModeOffAndClearPosition; chkClearPos.Checked = PUB.setting.AutoModeOffAndClearPosition;
//PLC옵션 //PLC옵션
nudMusicVol.Value = (int)(PUB.mplayer.Volume * 100.0); nudMusicVol.Value = PUB.setting.musicvol;// (int)(PUB.mplayer.Volume * 100.0);
tbMusic.Text = PUB.setting.musicfile; tbMusic.Text = PUB.setting.musicfile;
this.chkFullScreen.Checked = PUB.setting.FullScreen; this.chkFullScreen.Checked = PUB.setting.FullScreen;
this.chkDetectManualCharge.Checked = PUB.setting.DetectManualCharge; this.chkDetectManualCharge.Checked = PUB.setting.DetectManualCharge;
@@ -332,7 +332,8 @@ namespace Project
PUB.setting.TAGF5B = (int)vcTagF5B.Value; PUB.setting.TAGF5B = (int)vcTagF5B.Value;
//PLC옵션 //PLC옵션
PUB.setting.musicvol = (int)nudMusicVol.Value; //PUB.setting.musicvol = (int)nudMusicVol.Value;
PUB.SetVolume((int)nudMusicVol.Value);
PUB.setting.ChargeSearchTime = (int)vcChargeSearchTime.Value; PUB.setting.ChargeSearchTime = (int)vcChargeSearchTime.Value;
PUB.setting.doorSoundTerm = (int)nudDoorSoundTerm.Value; PUB.setting.doorSoundTerm = (int)nudDoorSoundTerm.Value;
@@ -527,8 +528,8 @@ namespace Project
} }
try try
{ {
if (PUB.mplayer.HasAudio) PUB.mplayer.Stop(); if (PUB.mplayer.SoundLocation.isEmpty()==false) PUB.mplayer.Stop();
PUB.mplayer.Open(new Uri(tbMusic.Text)); PUB.mplayer.SoundLocation = tbMusic.Text;// (new Uri(tbMusic.Text));
PUB.mplayer.Play(); PUB.mplayer.Play();
PUB.bPlayMusic = true; PUB.bPlayMusic = true;
} }

4
Cs_HMI/Project/run.bat Normal file
View File

@@ -0,0 +1,4 @@
echo "Building..."
rem dotnet build
echo "Running..."
dotnet run --project .\Project\AGV4.csproj

View File

@@ -3,10 +3,10 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
namespace Project namespace Project.StateMachine
{ {
public partial class StateMachine // public partial class StateMachine
{ //{
public enum eGoDir public enum eGoDir
{ {
Up, Up,
@@ -49,7 +49,7 @@ namespace Project
/// <summary> /// <summary>
/// 자동모드 대기상태 /// 자동모드 대기상태
/// </summary> /// </summary>
READY=0, READY = 0,
/// <summary> /// <summary>
/// 홈(QC)로 이동합니다 /// 홈(QC)로 이동합니다
@@ -70,7 +70,7 @@ namespace Project
/// <summary> /// <summary>
/// 충전중 /// 충전중
/// </summary> /// </summary>
CHARGECHECK =50, CHARGECHECK = 50,
/// <summary> /// <summary>
/// 상차이동 /// 상차이동
@@ -86,7 +86,7 @@ namespace Project
} }
}
} }

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
namespace Project namespace Project.StateMachine
{ {
public partial class StateMachine public partial class StateMachine
{ {

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
namespace Project namespace Project.StateMachine
{ {
public partial class StateMachine : IDisposable public partial class StateMachine : IDisposable
{ {

View File

@@ -7,7 +7,7 @@
<ProjectGuid>{BBC9BCCF-6262-4355-9CC2-37FF678AC499}</ProjectGuid> <ProjectGuid>{BBC9BCCF-6262-4355-9CC2-37FF678AC499}</ProjectGuid>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>StateMachine</RootNamespace> <RootNamespace>Project.StateMachine</RootNamespace>
<AssemblyName>StateMachine</AssemblyName> <AssemblyName>StateMachine</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>

View File

@@ -62,7 +62,6 @@ namespace arDev
Errlog = new Queue(); Errlog = new Queue();
MinRecvLength = 4; MinRecvLength = 4;
VAR.Init(128);
} }

View File

@@ -12,7 +12,6 @@ namespace MSSQLCommand
/// </summary> /// </summary>
public string CS { get; private set; } public string CS { get; private set; }
private int
public Monitor(string ip, string id, string pass, string db) public Monitor(string ip, string id, string pass, string db)
{ {
//ConnectionString = $"Data Source =10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; //ConnectionString = $"Data Source =10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!";

View File

@@ -95,10 +95,6 @@
<Project>{14e8c9a5-013e-49ba-b435-efefc77dd623}</Project> <Project>{14e8c9a5-013e-49ba-b435-efefc77dd623}</Project>
<Name>CommData</Name> <Name>CommData</Name>
</ProjectReference> </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" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>

2
Cs_HMI/run.bat Normal file
View File

@@ -0,0 +1,2 @@
dotnet build
dotnet run --project .\Project\AGV4.csproj