feat:.최초 커밋

This commit is contained in:
ssy99 2025-05-12 10:19:36 +09:00
commit ac98691c8b
32 changed files with 17040 additions and 0 deletions

4
.editorconfig Normal file
View File

@ -0,0 +1,4 @@
[*.vb]
# BC42025: 인스턴스를 통한 공유 멤버, 상수 멤버, 열거형 멤버 또는 중첩 형식 액세스임
dotnet_diagnostic.BC42025.severity = none

23
ComClass1.vb Normal file
View File

@ -0,0 +1,23 @@
<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1
#Region "COM GUID"
' 다음 GUID는 클래스의 COM ID와 COM 인터페이스를
' 제공합니다. GUID를 변경하면 기존 클라이언트가 해당
' 클래스에 이상 액세스할 없게 됩니다.
Public Const ClassId As String = "3bca23b6-03dd-4297-9a87-b3191a18bbfe"
Public Const InterfaceId As String = "5d3ad84e-4482-4375-9533-bdf53e3eea19"
Public Const EventsId As String = "4350b6b5-c68e-42d0-b361-7e49175ba99d"
#End Region
' 생성 가능한 COM 클래스에는 매개 변수가 없는 Public Sub New()
' 포함되어 있어야 합니다. 그렇지 않으면 클래스가
' COM 레지스트리에 등록되지 않으며 CreateObject를
' 통해 클래스가 생성되지 않습니다.
Public Sub New()
MyBase.New()
End Sub
End Class

23
ComClass2.vb Normal file
View File

@ -0,0 +1,23 @@
<ComClass(ComClass2.ClassId, ComClass2.InterfaceId, ComClass2.EventsId)> _
Public Class ComClass2
#Region "COM GUID"
' 다음 GUID는 클래스의 COM ID와 COM 인터페이스를
' 제공합니다. GUID를 변경하면 기존 클라이언트가 해당
' 클래스에 이상 액세스할 없게 됩니다.
Public Const ClassId As String = "12d6a033-7e9b-47ad-8e1d-195547b736d7"
Public Const InterfaceId As String = "db0efbaa-3630-41fc-a38c-68e2bdc73f6c"
Public Const EventsId As String = "a4afd461-4640-4ea2-bb72-db5425941dd2"
#End Region
' 생성 가능한 COM 클래스에는 매개 변수가 없는 Public Sub New()
' 포함되어 있어야 합니다. 그렇지 않으면 클래스가
' COM 레지스트리에 등록되지 않으며 CreateObject를
' 통해 클래스가 생성되지 않습니다.
Public Sub New()
MyBase.New()
End Sub
End Class

382
DUALSONIC.vb Normal file
View File

@ -0,0 +1,382 @@
Module DUALSONIC
Public UserInfo As UserIDType
Public UserPermition As Integer
Public RunMode As FORM_TYPE
Public LOGIN_STATE As LOGIN_STATUS
Public Structure UserIDType
Public UserID As String
Public UserPW As String
Public IDType As String
Public ExtPermition As String
End Structure
Public Enum USER_ID_TYPE
ADMIN = 0
TD_IQC
TD_WRITE
PRODUCT_AGING
PRODUCT_WRITE
PRODUCT_READ
QC_READ_WRITE
QC_SHIPMENT
MAX_USER_ID_TYPE
End Enum
Public Enum USER_PERMITION_TYPE
ADMIN = 0
NORMAL
MANAGER
MAX_USER_PERMITION_TYPE
End Enum
Public Enum FORM_TYPE
WRITE_MODE = 0
READ_MODE
READ_DETIL_MODE
MAX_FORM_TYPE
End Enum
Public Structure PRODUCT_CONF
Public CONF_MODEL As DS_MODEL
Public CONF_FACE_RSHOT As Long
Public CONF_FACE_TSHOT As Long
Public CONF_EYE_RSHOT As Long
Public CONF_EYE_TSHOT As Long
Public CONF_BODY_RSHOT As Long
Public CONF_BODY_TSHOT As Long
Public CONF_ABLOAD As Integer
Public CONF_AGENCY As Integer
End Structure
Public Structure PRODUCT_SN
Public MODEL As DS_MODEL
Public TYPE As DS_TYPE
Public YEAR As String
Public MONTH As String
Public SN As String
Public DATESN As String
End Structure
Public Enum DS_STATUS
INIT = 0
STANDBY
INPUT
CONNECT
READY
WIRTTING
REWIRTTING
COMPLETE
MAX_DS_STATUS_NUM
End Enum
Public Enum LOGIN_STATUS
INIT_PROGRAM = 0
CHECK_IN_FAIL
CHECK_IN_PROGRAM
ENTER_PROGRAM
CHECK_IN_SETUP_FAIL
CHECK_IN_SETUP
ENTER_SETUP
MAX_LOGIN_STATUS_NUM
End Enum
Public Enum DS_MODEL
DS_MODEL_NONE = 0
DS_PRO = 1
DS_LUX
DS_ALPHA = 4
MAX_DS_MODEL_NUM
End Enum
Public Enum DS_TYPE
DS_DEV = 0
DS_FACE
DS_EYE
DS_BODY
MAX_DS_TYPE_NUM
DS_TYPE_NONE = 9
End Enum
Public Enum DS_PRODUCT
DS_MODEL_NONE = 0
DS_PRO_DEV = 10
DS_PRO_FACE
DS_PRO_EYE
DS_PRO_BODY
DS_LUX_DEV = 20
DS_LUX_FACE
DS_LUX_EYE
DS_LUX_BODY
DS_ALPHA_DEV = 40
DS_ALPHA_FACE
DS_ALPHA_EYE
DS_ALPHA_BODY
MAX_DS_PRODUCT_NUM
End Enum
Public Enum DIFF_MATCH
NOT_DIFFERENT = 0
MODEL_DIFFERENT
SN_DIFFERENT
DATE_DIFFERENT
MAX_DIFF_MATCH_NUM
End Enum
Public STATUS As DS_STATUS
Public Conf_DS_Set As PRODUCT_CONF
Public DIFF_MATCH_FLAG(DIFF_MATCH.MAX_DIFF_MATCH_NUM) As Boolean
Public DS_SN(DS_TYPE.MAX_DS_TYPE_NUM) As PRODUCT_SN
Public LOAD_FLAG(DS_TYPE.MAX_DS_TYPE_NUM) As Boolean
Public WR_COMPLETE_FLAG(DS_TYPE.MAX_DS_TYPE_NUM) As Boolean
Public ConnectStatus(DS_TYPE.MAX_DS_TYPE_NUM) As Boolean
Public EnableBarCodeTxbToggle(DS_TYPE.MAX_DS_TYPE_NUM) As Boolean
Public ReTryDisable As Boolean = False ''재실행 여부 확인 변수
''정보 쓰기 수신 동일 여부 확인 변수
Public ReceiveComplete As Boolean ''모든 정보쓰기 데이터 수신이 완료 되었는지 확인(True:수신, False:미수신)
Public DiffCompComplete As Boolean ''모든 정보쓰기 성공여부 확인(True:성공, False:실패)
Public DBuploadComplete As Boolean ''모든 정보쓰기 DB 업로드 성공여부 확인(True:성공, False:실패)
Public DBAssyuploadComplete As Boolean ''모든 정보쓰기 DB 업로드 성공여부 확인(True:성공, False:실패)
Public ReceiveReturnVal(DS_TYPE.MAX_DS_TYPE_NUM) As Boolean ''정보쓰기 리턴값이 수신이 되었는지 확인(True:수신됨, False:수신안됨)
Public DiffCompReturnVal(DS_TYPE.MAX_DS_TYPE_NUM) As Boolean ''송신 데이터와 수신데이터가 같은지 확인(True:일치, False:불일치)
Public UploadDBComplete(DS_TYPE.MAX_DS_TYPE_NUM) As Boolean ''DB 업로드가 정상적으로 완료되었는지 확인(True:성공, False:실패)
Public ReturnValue(DS_TYPE.MAX_DS_TYPE_NUM, 9) As String ''정보쓰기 수신데이터
Public SendValue(DS_TYPE.MAX_DS_TYPE_NUM, 9) As String ''정보쓰기 송신데이터
Public Function GetStatus() As DS_STATUS
Return STATUS
End Function
Public Sub SetStatus(Val As DS_STATUS)
STATUS = Val
End Sub
Public Function GetLoginStatus() As LOGIN_STATUS
Return LOGIN_STATE
End Function
Public Sub SetLoginStatus(Val As LOGIN_STATUS)
LOGIN_STATE = Val
End Sub
Public Sub Reset_All_DS_Reg()
For cnt = DS_TYPE.DS_DEV To DS_TYPE.DS_BODY
Reset_DS_Reg(cnt)
Next
End Sub
Public Sub Reset_DS_Reg(cnt As DS_TYPE)
With DS_SN(cnt)
.MODEL = DS_MODEL.DS_MODEL_NONE
.TYPE = DS_TYPE.DS_TYPE_NONE
.YEAR = ""
.MONTH = ""
.SN = ""
.DATESN = ""
End With
LOAD_FLAG(cnt) = False
EnableBarCodeTxbToggle(cnt) = False
ReceiveReturnVal(cnt) = False
DiffCompReturnVal(cnt) = False
UploadDBComplete(cnt) = False
ReTryDisable = False
For i = 0 To 9
ReturnValue(cnt, i) = ""
SendValue(cnt, i) = ""
Next
End Sub
Public Sub Reset_Return_Reg(cnt As DS_TYPE)
ReceiveReturnVal(cnt) = False
DiffCompReturnVal(cnt) = False
UploadDBComplete(cnt) = False
ReTryDisable = False
For i = 0 To 9
ReturnValue(cnt, i) = ""
SendValue(cnt, i) = ""
Next
End Sub
Public Sub Reset_All_Connect()
For cnt = DS_TYPE.DS_DEV To DS_TYPE.DS_BODY
ConnectStatus(cnt) = False
Next
End Sub
Public Function Run_ReadBarcodeParsing(StrBarcord As String) As String
Dim tmpModel As DS_MODEL
Dim tmpType As DS_TYPE
Dim tmpYear, tmpMonth, tmpSN_HIGH, tmpSN_LOW, tmpSN, tmpDateSN As String
Dim tmpModelType As Integer
Dim OverlapFlag As Boolean = False
Dim DiffFlag As Boolean = False
tmpModelType = Val(Mid(StrBarcord, 1, 2))
tmpModel = Val(Mid(StrBarcord, 1, 1))
tmpType = Val(Mid(StrBarcord, 2, 1))
tmpYear = Mid(StrBarcord, 3, 2)
tmpMonth = Mid(StrBarcord, 5, 2)
tmpSN_LOW = Mid(StrBarcord, 7, 3)
tmpSN_HIGH = Mid(StrBarcord, 10, 3)
tmpSN = tmpSN_HIGH & tmpSN_LOW
tmpDateSN = Mid(StrBarcord, 3, 10)
''모델 유효성 체크
If tmpModel <> Conf_DS_Set.CONF_MODEL Then
DIFF_MATCH_FLAG(DIFF_MATCH.MODEL_DIFFERENT) = True
DiffFlag = True
End If
Return tmpType
End Function
Public Function RunSN_Parsing(StrBarcord As String) As String
Dim tmpModel As DS_MODEL
Dim tmpType As DS_TYPE
Dim tmpYear, tmpMonth, tmpSN_HIGH, tmpSN_LOW, tmpSN, tmpDateSN As String
Dim tmpModelType As Integer
Dim OverlapFlag As Boolean = False
Dim DiffFlag As Boolean = False
tmpModelType = Val(Mid(StrBarcord, 1, 2))
tmpModel = Val(Mid(StrBarcord, 1, 1))
tmpType = Val(Mid(StrBarcord, 2, 1))
tmpYear = Mid(StrBarcord, 3, 2)
tmpMonth = Mid(StrBarcord, 5, 2)
tmpSN_LOW = Mid(StrBarcord, 7, 3)
tmpSN_HIGH = Mid(StrBarcord, 10, 3)
tmpSN = tmpSN_HIGH & tmpSN_LOW
tmpDateSN = Mid(StrBarcord, 3, 10)
''활성화 기기 유효성 체크
If MainForm.chkDeviceUse(tmpType).Checked = False Then Return (tmpType & "," & "DISABLE")
If ConnectStatus(tmpType) And MainForm.txbInfo_Barcord(tmpType).BackColor <> Color.Red Then Return (tmpType & "," & "INSERT_DIVICE")
''모델 유효성 체크
If tmpModel <> Conf_DS_Set.CONF_MODEL Then
DIFF_MATCH_FLAG(DIFF_MATCH.MODEL_DIFFERENT) = True
DiffFlag = True
End If
LOAD_FLAG(tmpType) = False
DS_SN(tmpType).MODEL = DS_MODEL.DS_MODEL_NONE
DS_SN(tmpType).TYPE = DS_TYPE.DS_TYPE_NONE
DS_SN(tmpType).YEAR = ""
DS_SN(tmpType).MONTH = ""
DS_SN(tmpType).SN = ""
DS_SN(tmpType).DATESN = ""
For cnt = DS_TYPE.DS_DEV To DS_TYPE.DS_BODY
If LOAD_FLAG(cnt) = True Then
OverlapFlag = True
End If
Next
''현재 입력된 모델 유효성 체크
If tmpModel <> Conf_DS_Set.CONF_MODEL Then
DIFF_MATCH_FLAG(DIFF_MATCH.MODEL_DIFFERENT) = True
DiffFlag = True
End If
''활성화된 입력값 유효성 체크
For cnt = DS_TYPE.DS_DEV To DS_TYPE.DS_BODY
''MODEL 체크
If DS_SN(cnt).MODEL <> DS_MODEL.DS_MODEL_NONE Then
If DS_SN(cnt).MODEL <> Conf_DS_Set.CONF_MODEL Then
DIFF_MATCH_FLAG(DIFF_MATCH.MODEL_DIFFERENT) = True
DiffFlag = True
End If
End If
''SN 체크
If DS_SN(cnt).SN <> "" Then
If DS_SN(cnt).SN <> tmpSN And OverlapFlag Then
DIFF_MATCH_FLAG(DIFF_MATCH.SN_DIFFERENT) = True
DiffFlag = True
End If
End If
''제조일자 체크
If DS_SN(cnt).DATESN <> "" Then
If (DS_SN(cnt).YEAR <> tmpYear Or DS_SN(cnt).MONTH <> tmpMonth) And OverlapFlag Then
DIFF_MATCH_FLAG(DIFF_MATCH.DATE_DIFFERENT) = True
DiffFlag = True
End If
End If
Next
If MainForm.txbInfo_Barcord(tmpType).BackColor = Color.Red And MainForm.txbInfo_Barcord(tmpType).Text = "N/A" Then
Return (tmpType & "," & "INSERT_DIVICE")
End If
DS_SN(tmpType).MODEL = tmpModel
DS_SN(tmpType).TYPE = tmpType
DS_SN(tmpType).YEAR = tmpYear
DS_SN(tmpType).MONTH = tmpMonth
DS_SN(tmpType).SN = tmpSN
DS_SN(tmpType).DATESN = tmpDateSN
LOAD_FLAG(tmpType) = True
'LOAD_OKNG_FLAG(tmpType) = True
If DiffFlag = True Then
LOAD_FLAG(tmpType) = False
Return (tmpType & "," & "DIFFERENT")
End If
Return tmpType
End Function
Public Function IsComplete() As String
Dim CheckFlag As Boolean = True
Dim CompModel As String = ""
Dim CompSN As String = ""
Dim CompDATESN As String = ""
Try
''활성화된 기기 타입에 모두 로딩이 되었는지 확인
For cnt = DS_TYPE.DS_DEV To DS_TYPE.DS_BODY
If MainForm.chkDeviceUse(cnt).Checked = True And LOAD_FLAG(cnt) = False Then
CheckFlag = False
Exit For
End If
Next
'' If CheckFlag = True Then SetStatus(DS_STATUS.CONNECT)
''활성화된 기기 연결이 되었는지 확인
For cnt = DS_TYPE.DS_DEV To DS_TYPE.DS_BODY
If MainForm.chkDeviceUse(cnt).Checked = True And ConnectStatus(cnt) = False Then
CheckFlag = False
Exit For
End If
Next
''기기 시리얼번호가 같은지 확인
For cnt = DS_TYPE.DS_DEV To DS_TYPE.DS_BODY
If MainForm.chkDeviceUse(cnt).Checked = True Then
If CompModel = "" Then
CompModel = DS_SN(cnt).MODEL
Else
If CompModel <> DS_SN(cnt).MODEL Then CheckFlag = False
End If
If CompSN = "" Then
CompSN = DS_SN(cnt).SN
Else
If CompSN <> DS_SN(cnt).SN Then CheckFlag = False
End If
If CompDATESN = "" Then
CompDATESN = DS_SN(cnt).DATESN
Else
If CompDATESN <> DS_SN(cnt).DATESN Then CheckFlag = False
End If
End If
Next
If CheckFlag = True And GetStatus() <= DS_STATUS.READY Then
SetStatus(DS_STATUS.READY)
Return "COMPLETE"
Else
Return "NOT COMPLETE"
End If
Catch ex As Exception
MsgBox(ex.Message)
Return "NOT COMPLETE"
End Try
End Function
End Module

View File

@ -0,0 +1,42 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33627.172
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DualsonicSerialAssigner", "DualsonicSerialAssigner.vbproj", "{20D8C414-197C-4ABA-9791-3283368A7D44}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{D8063276-7231-4A05-986A-7067BB235946}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|Any CPU.Build.0 = Debug|Any CPU
{20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x64.ActiveCfg = Debug|x64
{20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x64.Build.0 = Debug|x64
{20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x86.ActiveCfg = Debug|x86
{20D8C414-197C-4ABA-9791-3283368A7D44}.Debug|x86.Build.0 = Debug|x86
{20D8C414-197C-4ABA-9791-3283368A7D44}.Release|Any CPU.ActiveCfg = Release|Any CPU
{20D8C414-197C-4ABA-9791-3283368A7D44}.Release|Any CPU.Build.0 = Release|Any CPU
{20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x64.ActiveCfg = Release|x64
{20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x64.Build.0 = Release|x64
{20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x86.ActiveCfg = Release|x86
{20D8C414-197C-4ABA-9791-3283368A7D44}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {191AC1D7-2F9E-4B91-8757-632F755CC468}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,265 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{20D8C414-197C-4ABA-9791-3283368A7D44}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>DUALSONIC_INFO_SET.My.MyApplication</StartupObject>
<RootNamespace>DUALSONIC_INFO_SET</RootNamespace>
<AssemblyName>DUALSONIC_INFO_SET</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkProfile />
<PublishUrl>publish\</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>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>DUALSONIC_INFO_SET.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
<RegisterForComInterop>true</RegisterForComInterop>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>DUALSONIC_INFO_SET.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
<RegisterForComInterop>true</RegisterForComInterop>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>JOMT 아이콘.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>DUALSONIC_INFO_SET.xml</DocumentationFile>
<RegisterForComInterop>true</RegisterForComInterop>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>DUALSONIC_INFO_SET.xml</DocumentationFile>
<Optimize>true</Optimize>
<RegisterForComInterop>true</RegisterForComInterop>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Debug\</OutputPath>
<DocumentationFile>DUALSONIC_INFO_SET.xml</DocumentationFile>
<RegisterForComInterop>true</RegisterForComInterop>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\x64\Release\</OutputPath>
<DocumentationFile>DUALSONIC_INFO_SET.xml</DocumentationFile>
<Optimize>true</Optimize>
<RegisterForComInterop>true</RegisterForComInterop>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x64</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<ItemGroup>
<Reference Include="Interop.bpac">
<HintPath>..\..\..\..\..\..\Program Files\Brother bPAC3 SDK\Samples\VBNET\Badge\bin\Release\Interop.bpac.DLL</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Ivi.Visa.Interop, Version=5.11.0.0, Culture=neutral, PublicKeyToken=a128c98f1d7717c1, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>C:\Windows\assembly\GAC_64\Ivi.Visa.Interop\5.11.0.0__a128c98f1d7717c1\Ivi.Visa.Interop.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=8.0.20.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.20\Assemblies\v4.5.2\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="MainForm.Designer.vb">
<DependentUpon>MainForm.vb</DependentUpon>
</Compile>
<Compile Include="MainForm.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module.vb" />
<Compile Include="DUALSONIC.vb" />
<Compile Include="MySqlModule.vb" />
<Compile Include="frmLogin.designer.vb">
<DependentUpon>frmLogin.vb</DependentUpon>
</Compile>
<Compile Include="frmLogin.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmLogin.resx">
<DependentUpon>frmLogin.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include=".editorconfig" />
<None Include="app.config" />
<None Include="My Project\app.manifest" />
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="JOMT 아이콘.ico" />
<None Include="지온로고2.png" />
<None Include="로고 지온메디텍.PNG" />
</ItemGroup>
<ItemGroup>
<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>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<COMReference Include="BASICFORMATTEDIOLib">
<Guid>{709F7EC2-AB81-11D4-98E6-00108301CB39}</Guid>
<VersionMajor>5</VersionMajor>
<VersionMinor>11</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>tlbimp</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PublishUrlHistory>publish\</PublishUrlHistory>
<InstallUrlHistory />
<SupportUrlHistory />
<UpdateUrlHistory />
<BootstrapperUrlHistory />
<ErrorReportUrlHistory />
<FallbackCulture>ko-KR</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
</PropertyGroup>
</Project>

BIN
JOMT 아이콘.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

6695
MainForm.Designer.vb generated Normal file

File diff suppressed because it is too large Load Diff

2429
MainForm.resx Normal file

File diff suppressed because it is too large Load Diff

3917
MainForm.vb Normal file

File diff suppressed because it is too large Load Diff

17
Module.vb Normal file
View File

@ -0,0 +1,17 @@
Module Module1
Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Integer
''Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Function DelayMs(TimeMs As Long) As Boolean
Dim StartTime As Long
Dim CurrTime As Long
StartTime = GetTickCount
CurrTime = GetTickCount
While (CurrTime - StartTime <= TimeMs)
CurrTime = GetTickCount
End While
Return True
End Function
End Module

38
My Project/Application.Designer.vb generated Normal file
View File

@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'참고: 자동으로 생성되므로 직접 파일을 수정하지 마세요. 변경할 사항이 있거나
' 파일에서 빌드 오류가 발생하는 경우 프로젝트 디자이너로
' 이동([프로젝트 속성]으로 이동하거나 솔루션 탐색기에서 My Project 노드를
' 클릭) 다음 [애플리케이션] 탭에서 변경하세요.
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.DUALSONIC_INFO_SET.MainForm
End Sub
End Class
End Namespace

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>MainForm</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
' 어셈블리와 관련된 정보를 수정하려면
' 특성 값을 변경하십시오.
' 어셈블리 특성 값을 검토합니다.
<Assembly: AssemblyTitle("DUALSONIC Manager")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("DUALSONIC Manager")>
<Assembly: AssemblyCopyright("Copyright © 2018")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(True)>
' 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
<Assembly: Guid("c453c4d7-39b8-4e09-b8c7-e574a51fa438")>
' 어셈블리의 버전 정보는 다음 가지 값으로 구성됩니다.
'
' 버전
' 버전
' 빌드 번호
' 수정 버전
'
' 모든 값을 지정하거나 아래와 같이 '*' 사용하여 빌드 번호 수정 버전이 자동으로
' 지정되도록 있습니다.
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

93
My Project/Resources.Designer.vb generated Normal file
View File

@ -0,0 +1,93 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
' 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
'클래스에서 자동으로 생성되었습니다.
'멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
'다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
'''<summary>
''' 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DUALSONIC_INFO_SET.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
''' 재정의합니다.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
'''<summary>
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
'''</summary>
Friend ReadOnly Property 로고_지온메디텍() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("로고 지온메디텍", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
'''</summary>
Friend ReadOnly Property 로고_지온메디텍1() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("로고 지온메디텍1", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
'''</summary>
Friend ReadOnly Property 지온로고2() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("지온로고2", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
End Module
End Namespace

130
My Project/Resources.resx Normal file
View File

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

73
My Project/Settings.Designer.vb generated Normal file
View File

@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings 자동 저장 기능"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.DUALSONIC_INFO_SET.My.MySettings
Get
Return Global.DUALSONIC_INFO_SET.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

48
My Project/app.manifest Normal file
View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 매니페스트 옵션
Windows 사용자 계정 컨트롤 수준을 변경하려면
requestedExecutionLevel 노드를 다음 중 하나로 바꾸십시오.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
requestedExecutionLevel 노드를 지정하면 파일 및 레지스트리 가상화가 사용되지 않습니다.
이전 버전과의 호환성을 위해 파일 및 레지스트리 시각화를 사용하려면
requestedExecutionLevel 노드를 삭제하십시오.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 이 응용 프로그램을 사용할 수 있는 모든 Windows 버전 목록입니다. Windows에서 가장 잘 호환되는 환경을 자동으로 선택합니다.-->
<!-- 응용 프로그램이 Windows 7에서 작동하도록 설계된 경우 다음 supportedOS 모드의 주석 처리를 제거합니다.-->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
</application>
</compatibility>
<!-- Windows 공용 컨트롤 및 대화 상자의 테마 사용(Windows XP 이상) -->
<!-- <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>-->
</asmv1:assembly>

300
MySqlModule.vb Normal file
View File

@ -0,0 +1,300 @@
Imports MySql.Data ' 데이터베이스 연동을 위한 네임스페이스 추가
Imports MySql.Data.MySqlClient ' MYSQL Server용 네임스페이스 추가
Module MySqlModule
Private Const ServerIP As String = "192.168.0.250"
Private Const DataBaseName As String = "jomtTesterDB"
'Private Const DataBaseName As String = "jomtTesterServerDB"
Private Const UserDataBaseName As String = "jomtAccountDB"
Private Const UserName As String = "root"
Private Const Password As String = "JOMT1646db!!"
Private Conn As String = "Server=" + ServerIP + ";DataBase=" + DataBaseName + ";user=" + UserName + ";password=" + Password + ";"
Private sqlCon As New MySqlConnection(Conn)
Private sqlCmd As New MySqlCommand()
Private sqlData As MySqlDataReader
Public sqlDataQueryScalar As Object
Public sqlDataQuery() As Object
Public StrCmd As String
Private Function DBOpen() As Boolean
Try
If sqlCon.State <> ConnectionState.Open Then
sqlCon.Open()
End If
Return True
Catch ex As Exception
MsgBox("MySqlCommand Error:" + vbCrLf + Err.Description)
Return False
End Try
End Function
Private Function DBClose() As Boolean
Try
If sqlCon.State = ConnectionState.Open Then
sqlCon.Close()
End If
Return True
Catch ex As Exception
MsgBox("MySqlCommand Error:" + vbCrLf + Err.Description)
Return False
End Try
End Function
Public Function DBCommand(cmdStr As String) As Boolean
Try
sqlCon.Open()
sqlCmd.CommandText = "USE " & DataBaseName & ";"
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
sqlCon.Close()
Return True
Catch ex As Exception
MsgBox("MySqlCommand Error:" + vbCrLf + Err.Description)
sqlCon.Close()
Return False
End Try
End
End Function
Public Function DBQueryScalar(cmdStr As String) As String
Try
sqlCon.Open()
sqlCmd.CommandText = "USE " & DataBaseName & ";"
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
sqlDataQueryScalar = sqlCmd.ExecuteScalar()
sqlCon.Close()
Return sqlDataQueryScalar
Catch ex As Exception
MsgBox("MySqlCommand Error:" + vbCrLf + Err.Description)
sqlCon.Close()
Return False
End Try
End
End Function
Public Function DBQueryReader(cmdStr As String) As Integer
Dim FieldCount As Integer
Dim QueryCount As ULong
Dim initRun As Boolean = True
Dim TmpData As Object
Dim DataTypeName As String
Try
DBOpen()
sqlCmd.CommandText = "USE " & DataBaseName & ";"
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
sqlData = sqlCmd.ExecuteReader
FieldCount = sqlData.FieldCount
While (sqlData.Read())
If initRun Then
ReDim sqlDataQuery(FieldCount - 1)
initRun = False
Else
ReDim Preserve sqlDataQuery(UBound(sqlDataQuery) + FieldCount)
End If
For cnt = 0 To FieldCount - 1
DataTypeName = sqlData.GetDataTypeName(cnt)
If DataTypeName = "DATE" Then
TmpData = sqlData.GetDateTime(cnt)
Else
TmpData = sqlData.GetValue(cnt)
End If
If DBNull.Value.Equals(TmpData) Or TmpData.Equals(String.Empty) Then
sqlDataQuery(QueryCount) = "0"
Else
sqlDataQuery(QueryCount) = TmpData
End If
QueryCount += 1
Next
End While
DBClose()
Return QueryCount
Catch ex As Exception
If sqlCon.State = ConnectionState.Open Then sqlCon.Close()
Return 0
End Try
End
End Function
Public Function UserDBCommand(cmdStr As String) As Boolean
Try
sqlCon.Open()
sqlCmd.CommandText = "USE " & UserDataBaseName & ";"
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
sqlCon.Close()
Return True
Catch ex As Exception
MsgBox("MySqlCommand Error:" + vbCrLf + Err.Description)
sqlCon.Close()
Return False
End Try
End
End Function
Public Function UserDBQueryReader(cmdStr As String) As Integer
Dim FieldCount As Integer
Dim QueryCount As ULong
Dim initRun As Boolean = True
Dim TmpData As Object
Dim DataTypeName As String
Try
DBOpen()
sqlCmd.CommandText = "USE " & UserDataBaseName & ";"
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
sqlData = sqlCmd.ExecuteReader
FieldCount = sqlData.FieldCount
While (sqlData.Read())
If initRun Then
ReDim sqlDataQuery(FieldCount - 1)
initRun = False
Else
ReDim Preserve sqlDataQuery(UBound(sqlDataQuery) + FieldCount)
End If
For cnt = 0 To FieldCount - 1
DataTypeName = sqlData.GetDataTypeName(cnt)
If DataTypeName = "DATE" Then
TmpData = sqlData.GetDateTime(cnt)
Else
TmpData = sqlData.GetValue(cnt)
End If
If DBNull.Value.Equals(TmpData) Or TmpData.Equals(String.Empty) Then
sqlDataQuery(QueryCount) = "0"
Else
sqlDataQuery(QueryCount) = TmpData
End If
QueryCount += 1
Next
End While
DBClose()
Return QueryCount
Catch ex As Exception
If sqlCon.State = ConnectionState.Open Then sqlCon.Close()
Return 0
End Try
End
End Function
Public Function CheckExistTD_SN(strPV_SN As String) As String
StrCmd = "select PV_SN, Number from jomtCartridgeTbl where PV_SN = '" & strPV_SN & "';"
If DBQueryReader(StrCmd) Then
If sqlDataQuery(0) = strPV_SN.ToUpper() Then
Return sqlDataQuery(1)
Else
Return False
End If
End If
Return False
End Function
Public Function CheckExistCT_SN(strCT_SN As String) As String
StrCmd = "select Product_SN,Number from jomtCartridgeTbl where Product_SN = '" & strCT_SN & "';"
If DBQueryReader(StrCmd) Then
If sqlDataQuery(0) = strCT_SN.ToUpper() Then
Return sqlDataQuery(1)
Else
Return False
End If
End If
Return False
End Function
Public Function CheckExistDEV_SN(strDEV_SN As String) As String
StrCmd = "select Product_SN,Number from jomtDeviceTbl where Product_SN = '" & strDEV_SN & "';"
If DBQueryReader(StrCmd) Then
If sqlDataQuery(0) = strDEV_SN.ToUpper() Then
Return sqlDataQuery(1)
Else
Return False
End If
End If
Return False
End Function
Public Function CheckExistAssy_SN(strItem As String, strDEV_SN As String) As Long
StrCmd = "select " & strItem & ",Number from jomtProductTbl where " & strItem & " = '" & strDEV_SN & "';"
If DBQueryReader(StrCmd) Then
If sqlDataQuery(0) = strDEV_SN.ToUpper() Then
Return Val(sqlDataQuery(1))
Else
Return 0
End If
End If
Return 0
End Function
Public Function CheckExistCountDate(strDate As String) As String
StrCmd = "select Date from jomtMES_ProductTbl where Date='" & strDate & "';"
If DBQueryReader(StrCmd) Then
If sqlDataQuery(0) = strDate Then
Return sqlDataQuery(0)
Else
Return 0
End If
End If
Return 0
End Function
Public Function getNowDateTime() As String
Dim DateTimeStr As String
DateTimeStr = Format(DateAndTime.Year(Now), "0000") & "-" & Format(DateAndTime.Month(Now), "00") & "-" & Format(DateAndTime.Day(Now), "00") & " " & Format(DateAndTime.Hour(Now), "00") & ":" & Format(DateAndTime.Minute(Now), "00") & ":" & Format(DateAndTime.Second(Now), "00")
Return DateTimeStr
End Function
Public Function getNowDate() As String
Dim DateTimeStr As String
DateTimeStr = Format(DateAndTime.Year(Now), "0000") & "-" & Format(DateAndTime.Month(Now), "00") & "-" & Format(DateAndTime.Day(Now), "00")
Return DateTimeStr
End Function
Public Function getNowTime() As String
Dim DateTimeStr As String
DateTimeStr = Format(DateAndTime.Hour(Now), "00") & ":" & Format(DateAndTime.Minute(Now), "00") & ":" & Format(DateAndTime.Second(Now), "00")
Return DateTimeStr
End Function
End Module

View File

@ -0,0 +1,15 @@
''Namespace VisaComLib
''Friend Class FormattedIO488
'' Friend Function IO() As Object
'' 'Throw New NotImplementedException()
'' End Function
'' Friend Sub WriteString(command As String)
'' 'Throw New NotImplementedException()
'' End Sub
'' Friend Function ReadString() As String
'' 'Throw New NotImplementedException()
'' End Function
''End Class
''End Namespace

View File

@ -0,0 +1,7 @@
''Namespace VisaComLib
'' Friend Class ResourceManager
'' Friend Function Open(v As String) As Object
'' 'Throw New NotImplementedException()
'' End Function
'' End Class
''End Namespace

23
app.config Normal file
View File

@ -0,0 +1,23 @@
<?xml version="1.0"?>
<configuration>
<system.diagnostics>
<sources>
<!-- 이 섹션은 My.Application.Log의 로깅 구성을 정의합니다. -->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- 아래 섹션의 주석 처리를 제거하여 응용 프로그램 이벤트 로그에 씁니다. -->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
<!-- 아래 섹션의 주석 처리를 제거하여 APPLICATION_NAME을 응용 프로그램 이름으로 바꾼 후 응용 프로그램 이벤트 로그에 씁니다. -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

133
frmLogin.designer.vb generated Normal file
View File

@ -0,0 +1,133 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<Global.System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726")> _
Partial Class frmLogin
Inherits System.Windows.Forms.Form
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
Friend WithEvents UsernameLabel As System.Windows.Forms.Label
Friend WithEvents PasswordLabel As System.Windows.Forms.Label
Friend WithEvents UsernameTextBox As System.Windows.Forms.TextBox
Friend WithEvents PasswordTextBox As System.Windows.Forms.TextBox
Friend WithEvents OK As System.Windows.Forms.Button
Friend WithEvents Cancel As System.Windows.Forms.Button
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmLogin))
Me.UsernameLabel = New System.Windows.Forms.Label()
Me.PasswordLabel = New System.Windows.Forms.Label()
Me.UsernameTextBox = New System.Windows.Forms.TextBox()
Me.PasswordTextBox = New System.Windows.Forms.TextBox()
Me.OK = New System.Windows.Forms.Button()
Me.Cancel = New System.Windows.Forms.Button()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'UsernameLabel
'
Me.UsernameLabel.Location = New System.Drawing.Point(185, 41)
Me.UsernameLabel.Name = "UsernameLabel"
Me.UsernameLabel.Size = New System.Drawing.Size(220, 23)
Me.UsernameLabel.TabIndex = 0
Me.UsernameLabel.Text = "사용자 이름(&U)"
Me.UsernameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'PasswordLabel
'
Me.PasswordLabel.Location = New System.Drawing.Point(185, 98)
Me.PasswordLabel.Name = "PasswordLabel"
Me.PasswordLabel.Size = New System.Drawing.Size(220, 23)
Me.PasswordLabel.TabIndex = 2
Me.PasswordLabel.Text = "암호(&P)"
Me.PasswordLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'UsernameTextBox
'
Me.UsernameTextBox.Location = New System.Drawing.Point(186, 61)
Me.UsernameTextBox.Name = "UsernameTextBox"
Me.UsernameTextBox.Size = New System.Drawing.Size(220, 21)
Me.UsernameTextBox.TabIndex = 1
'
'PasswordTextBox
'
Me.PasswordTextBox.Location = New System.Drawing.Point(186, 118)
Me.PasswordTextBox.Name = "PasswordTextBox"
Me.PasswordTextBox.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
Me.PasswordTextBox.Size = New System.Drawing.Size(220, 21)
Me.PasswordTextBox.TabIndex = 3
'
'OK
'
Me.OK.Location = New System.Drawing.Point(198, 158)
Me.OK.Name = "OK"
Me.OK.Size = New System.Drawing.Size(94, 23)
Me.OK.TabIndex = 4
Me.OK.Text = "확인(&O)"
'
'Cancel
'
Me.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Cancel.Location = New System.Drawing.Point(301, 158)
Me.Cancel.Name = "Cancel"
Me.Cancel.Size = New System.Drawing.Size(94, 23)
Me.Cancel.TabIndex = 5
Me.Cancel.Text = "취소(&C)"
'
'PictureBox1
'
Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image)
Me.PictureBox1.Location = New System.Drawing.Point(48, 10)
Me.PictureBox1.Margin = New System.Windows.Forms.Padding(3, 2, 3, 2)
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(86, 190)
Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
Me.PictureBox1.TabIndex = 6
Me.PictureBox1.TabStop = False
'
'frmLogin
'
Me.AcceptButton = Me.OK
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.CancelButton = Me.Cancel
Me.ClientSize = New System.Drawing.Size(418, 202)
Me.Controls.Add(Me.PictureBox1)
Me.Controls.Add(Me.Cancel)
Me.Controls.Add(Me.OK)
Me.Controls.Add(Me.PasswordTextBox)
Me.Controls.Add(Me.UsernameTextBox)
Me.Controls.Add(Me.PasswordLabel)
Me.Controls.Add(Me.UsernameLabel)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmLogin"
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "DUALSONIC T/D MEASURING INSTRUMENT"
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
End Class

2193
frmLogin.resx Normal file

File diff suppressed because it is too large Load Diff

125
frmLogin.vb Normal file
View File

@ -0,0 +1,125 @@
Imports System.Linq
Imports System.Net
Imports System.Text.RegularExpressions
Public Class frmLogin
' TODO: 제공된 사용자 이름과 암호를 사용하여 사용자 지정 인증을 수행하는 코드를 삽입합니다
' (자세한 내용은 http://go.microsoft.com/fwlink/?LinkId=35339 참조).
' 그러면 사용자 지정 보안 주체가 현재 스레드의 보안 주체에 다음과 같이 첨부될 있습니다.
' My.User.CurrentPrincipal = CustomPrincipal
' 여기서 CustomPrincipal은 인증을 수행하는 사용되는 IPrincipal이 구현된 것입니다.
' 나중에 My.User는 CustomPrincipal 개체에 캡슐화된 사용자 이름, 표시 이름 등의
' ID 정보를 반환합니다.
Private Const LocalHostIP As String = "192.168.0.250"
Private Const IntServerHubDNS As String = "jomt.iptime.org"
Private Const Ext_802_HubDNS As String = "" ''"jomt802.iptime.org"
Private IntServerHubIPaddr As IPHostEntry = Dns.GetHostEntry(IntServerHubDNS)
Private Ext_802_HubIPaddr As IPHostEntry = Dns.GetHostEntry(Ext_802_HubDNS)
Public IntServerHubIP As String = IntServerHubIPaddr.AddressList(0).ToString
Public Ext_802_HubIP As String = Ext_802_HubIPaddr.AddressList(0).ToString
Public Ext_DeviceIP As String
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Try
UserInfo.UserID = ""
UserInfo.UserPW = ""
UserInfo.IDType = ""
UserInfo.ExtPermition = ""
StrCmd = "select UserPW,IDType,ExtPermition from jomtTesterUserIDTbl where UserID = '" & UsernameTextBox.Text & "';"
If UserDBQueryReader(StrCmd) Then
UserInfo.UserID = UsernameTextBox.Text
UserInfo.UserPW = sqlDataQuery(0)
UserInfo.IDType = sqlDataQuery(1)
UserInfo.ExtPermition = sqlDataQuery(2)
If PasswordTextBox.Text = UserInfo.UserPW Then
If GetLoginStatus() <= LOGIN_STATUS.CHECK_IN_FAIL Then
Select Case UserInfo.IDType
Case USER_ID_TYPE.ADMIN
GoTo loginSuccess
Case USER_ID_TYPE.TD_IQC
GoTo login_Not_Permition
Case USER_ID_TYPE.TD_WRITE
GoTo login_Not_Permition
Case USER_ID_TYPE.PRODUCT_AGING
GoTo login_Not_Permition
Case USER_ID_TYPE.PRODUCT_WRITE
RunMode = FORM_TYPE.WRITE_MODE
SetLoginStatus(LOGIN_STATUS.CHECK_IN_PROGRAM)
GoTo loginSuccess
Case USER_ID_TYPE.PRODUCT_READ
RunMode = FORM_TYPE.READ_MODE
SetLoginStatus(LOGIN_STATUS.CHECK_IN_PROGRAM)
GoTo loginSuccess
Case USER_ID_TYPE.QC_READ_WRITE
GoTo login_Not_Permition
Case USER_ID_TYPE.QC_SHIPMENT
GoTo login_Not_Permition
Case Else
GoTo loginFail
End Select
ElseIf GetLoginStatus() >= LOGIN_STATUS.ENTER_PROGRAM Then
If UserInfo.ExtPermition = USER_PERMITION_TYPE.MANAGER Then
SetLoginStatus(LOGIN_STATUS.CHECK_IN_SETUP)
GoTo loginSuccess
Else
GoTo login_Not_Permition
End If
End If
End If
End If
GoTo loginFail
loginFail:
PasswordTextBox.Text = ""
SetLoginStatus(LOGIN_STATUS.CHECK_IN_FAIL)
MsgBox("아이디 및 비밀번호를 확인하세요!", vbExclamation, MainForm.TITLE_NAME)
Exit Sub
login_Not_Permition:
PasswordTextBox.Text = ""
SetLoginStatus(LOGIN_STATUS.CHECK_IN_SETUP_FAIL)
MsgBox("프로그램 사용권한이 없습니다!", vbExclamation, MainForm.TITLE_NAME)
Exit Sub
loginSuccess:
PasswordTextBox.Text = ""
Me.Close()
Catch ex As Exception
MsgBox("DUALSONIC Software Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + ", " + Err.Description, vbExclamation, MainForm.TITLE_NAME)
End Try
End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel.Click
Me.Close()
End Sub
Private Sub frmLogin_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim TmpHubIP As String
Try
Me.Text = MainForm.PROGRAM_TITLE_NAME
If MainForm.FirstLogin = True Then
TmpHubIP = (New WebClient()).DownloadString("http://checkip.dyndns.org/")
TmpHubIP = (New Regex("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")).Matches(TmpHubIP)(0).ToString()
Ext_DeviceIP = TmpHubIP.ToString
If Ext_DeviceIP = IntServerHubIP Or Ext_DeviceIP = Ext_802_HubIP Then
Exit Sub
End If
MsgBox("허용된 장소가 아니므로 프로그램을 종료합니다!", vbExclamation, MainForm.TITLE_NAME)
Me.Close()
End If
Catch ex As Exception
MsgBox("DUALSONIC Software Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + ", " + Err.Description, vbExclamation, MainForm.TITLE_NAME)
Me.Close()
End Try
End Sub
End Class

BIN
로고 지온메디텍.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
지온로고2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
지온로고3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
지온로고4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
지온아이콘.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB