initial commit

This commit is contained in:
Arin(asus)
2024-11-26 20:15:16 +09:00
commit 973524ee77
435 changed files with 103766 additions and 0 deletions

View File

@@ -0,0 +1,232 @@
<?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>{310693F9-1234-442A-A3F9-343F8A0BD541}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>
</StartupObject>
<RootNamespace>Project</RootNamespace>
<AssemblyName>AlarmViewer</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<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>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x64</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>..\..\cVMS.NET_CS\bin\Debug\Alarmviewer\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NOWARN>1591,660,661</NOWARN>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NOWARN>1591,660,661</NOWARN>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Alert.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
</PropertyGroup>
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>false</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
</PropertyGroup>
<PropertyGroup>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>
<ItemGroup>
<Reference Include="arCommUtil, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DLL\arCommUtil.dll</HintPath>
</Reference>
<Reference Include="mscorlib" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="PresentationCore" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Drawing.Common.8.0.8\lib\net462\System.Drawing.Common.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Sub\CommData\CommData.csproj">
<Project>{14e8c9a5-013e-49ba-b435-efefc77dd623}</Project>
<Name>CommData</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Compile Include="Class\CFDBA.cs" />
<Compile Include="Dialog\fLog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fLog.Designer.cs">
<DependentUpon>fLog.cs</DependentUpon>
</Compile>
<Compile Include="DocumentElement.cs">
<DependentUpon>DocumentElement.xsd</DependentUpon>
</Compile>
<Compile Include="DocumentElement.Designer.cs">
<DependentUpon>DocumentElement.xsd</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="MethodExts.cs" />
<Compile Include="Program.cs" />
<Compile Include="Dialog\Frm_Alamlist.Designer.cs">
<DependentUpon>Frm_Alamlist.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\Frm_Alamlist.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="PUB.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Setting\CSetting.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Dialog\fLog.resx">
<DependentUpon>fLog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\Frm_Alamlist.resx">
<DependentUpon>Frm_Alamlist.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="DocumentElement.xsc">
<DependentUpon>DocumentElement.xsd</DependentUpon>
</None>
<None Include="DocumentElement.xsd">
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DocumentElement.Designer.cs</LastGenOutput>
<CustomToolNamespace>vmsnet</CustomToolNamespace>
<SubType>Designer</SubType>
</None>
<None Include="DocumentElement.xss">
<DependentUpon>DocumentElement.xsd</DependentUpon>
</None>
<None Include="packages.config" />
<None Include="Properties\app.manifest" />
<None Include="Properties\DataSources\ChartData.datasource" />
</ItemGroup>
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Core" />
</ItemGroup>
<ItemGroup>
<Content Include="Alert.ico" />
<Content Include="ReadMe.txt" />
<None Include="Resources\down_orange.png" />
<None Include="Resources\down_16.png" />
<None Include="Resources\up_16.png" />
<None Include="Resources\Orange Ball.png" />
<None Include="Resources\Get Info Blue Button.png" />
<None Include="Resources\Clear Green Button.png" />
<None Include="Resources\Backup Green Button.png" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<None Include="Resources\Red Ball.png" />
<None Include="Resources\Purple Ball.png" />
<None Include="Resources\Green Ball.png" />
<None Include="Resources\Blue Ball.png" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<!-- 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>
-->
<Import Project="$(MSBuildBinPath)/Microsoft.CSharp.targets" />
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,363 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using AR;
using vmsnet;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Project;
using System.IO;
namespace vmsnet
{
public class CFDBA
{
string _BaseDir;
public class ReadProgessArgs : EventArgs
{
public double value { get; set; }
public ReadProgessArgs(double value)
{
this.value = value;
}
}
public class MessageArgs : EventArgs
{
public string Message { get; set; }
public MessageArgs(string value)
{
Message = value;
}
}
//public event EventHandler<ReadProgessArgs> ReadingProgressValueChanged;
public event EventHandler<MessageArgs> Message;
public CFDBA(params string[] dirarrays)
{
var dir = System.IO.Path.Combine(dirarrays);
_BaseDir = dir;
if (System.IO.Directory.Exists(_BaseDir) == false)
{
System.IO.Directory.CreateDirectory(_BaseDir);
}
}
/// <summary>
/// 데이터를 기록합니다.
/// </summary>
/// <param name="time">기록시간(파일명이 결정됨)</param>
/// <param name="table">기록할테이블명(파일명)</param>
/// <param name="buffer">기록할데이터(열데이터가 틀려서 고정할 수 없다)</param>
/// <returns></returns>
/// <remarks></remarks>
public bool InsertData(DateTime time, int ch, COMM.EALAMRAISETYPE raiseType, float volt, COMM.EALAMTYPE almType, float maxvolt, float minvolt, string am, string am2)
{
string DayStr = time.ToString("yyyyMMdd");
System.IO.FileInfo fi = new System.IO.FileInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6) + "\\" + (time.Hour + 1).ToString("00") + ".txt");
if (!fi.Directory.Exists)
{
try
{
fi.Directory.Create();
}
catch
{
PUB.log.AddE($"fail:make directory value={fi.Directory.FullName}");
return false;
}
}
System.Text.StringBuilder StrBuf = new System.Text.StringBuilder();
////파일이 없다면 제목줄을 생성해준다.
if (!fi.Exists)
{
////헤더를 추가해야한다.
System.Text.StringBuilder Header = new System.Text.StringBuilder();
Header.Append("\t" + "ATIME CH RTYPE VOLT ATYPE MAXVOLT MINVOLT AM AM2");
Header.AppendLine(); ////제목줄을 한칸띄운다
StrBuf.Append(Header.ToString());
}
////실제데이터를 추가
int timeNumber = (int)(PUB.get_TimeNumber(time)); // time.Hour * 3600 + time.Minute * 60 + time.Second
StrBuf.AppendLine($"\t{timeNumber}\t{ch}\t{(int)raiseType}\t{volt}\t{(int)almType}\t{maxvolt}\t{minvolt}\t{am}\t{am2}");
try
{
//fi.WriteText(StrBuf.ToString(), true); // 이전은 단독모드
/* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */
using (FileStream fs = new FileStream(fi.FullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
using (StreamWriter writer = new StreamWriter(fs))
{ writer.Write(StrBuf.ToString()); }
StrBuf.Clear();
}
catch (Exception)
{
PUB.log.AddE($"fail:write aldata file={fi.FullName}");
return false;
}
return true;
}
////기간내 존재하는 파일을 반환합니다(테이블단위)
public List<string> GetfileS(DateTime sd, DateTime ed)
{
List<string> retval = new List<string>();
int SttYear = sd.Year;
int EndYear = ed.Year;
if (EndYear < SttYear)
{
return retval;
}
int SttMonth = sd.Month;
int EndMonth = ed.Month;
int SttDay = sd.Day;
int EndDay = ed.Day;
int si = System.Convert.ToInt32(sd.ToString("yyyyMMdd"));
int ei = System.Convert.ToInt32(ed.ToString("yyyyMMdd"));
bool SameDay = si == ei ? true : false;
////20140101
for (int dayinfo = si; dayinfo <= ei; dayinfo++)
{
string DayStr = dayinfo.ToString();
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6));
if (!dir.Exists)
{
continue;
}
////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다
if (SameDay)
{
////동일날짜라면 해당 시간대만 조회하면됨
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
retval.Add(fn);
}
}
}
else
{
if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다.
{
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
retval.Add(fn);
}
}
}
else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다.
{
for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
retval.Add(fn);
}
}
}
else
{
////중간에 끼어있는 날짜라면 1~24모두가 속한다.
for (int hourinfo = 0; hourinfo <= 23; hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
retval.Add(fn);
}
}
}
}
}
retval.Sort();
return retval;
}
/// <summary>
/// 이번달이후의 데이터를 조회합니다.
/// </summary>
/// <param name="ch"></param>
/// <returns></returns>
/// <remarks></remarks>
public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(int ch)
{
////이번달이후의 데이터를 가져온다.
DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01 00:00:00"));
DateTime ed = DateTime.Now;
return GetAlarmData(ch, sd, ed);
}
public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(DateTime sd, DateTime ed)
{
return GetAlarmData(-1, sd, ed);
}
public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(DateTime sd, DateTime ed, int rtypes, int rtypee)
{
return GetAlarmData(-1, sd, ed, rtypes, rtypee);
}
public volatile bool cancel;
private readonly object lockObject = new object();
/// <summary>
/// 지정된시간사이의 데이터를 조회합니다.
/// </summary>
/// <param name="stime">시작시간(20120319161800)</param>
/// <param name="etime">종료시간(년월일시분초)</param>
/// <returns></returns>
/// <remarks></remarks>
public (TimeSpan, DocumentElement.ALARMDataTable) GetAlarmData(int ch, DateTime sd, DateTime ed, int rtypes = -1, int rtypee = -1)
{
DateTime dtStart = DateTime.Now;
List<string> files = GetfileS(sd, ed);
//전체파일의 내용을 버퍼에 담는다
Dictionary<string, string[]> lines = new Dictionary<string, string[]>();
foreach (var fn in files)
{
lines.Add(fn, System.IO.File.ReadAllLines(fn));
}
var totallines = lines.Sum(t => t.Value.Length);
Message?.Invoke(this, new MessageArgs($"total : {totallines} lines"));
var progressMax = (double)totallines;
var progressVal = 0.0;
var currentline = 0;
var alertprogress = 0.0;
//ReadingProgressValueChanged?.Invoke(this, new ReadProgessArgs(0));
var alaramDT = new DocumentElement.ALARMDataTable();
cancel = false;
try
{
foreach (var line in lines)
{
foreach (string linedata in line.Value)
{
lock (lockObject)
{
if (cancel)
{
//Console.WriteLine("작업이 취소되었습니다.");
//token.ThrowIfCancellationRequested(); // OperationCanceledException을 발생시켜 작업을 종료합니다.
//return (new TimeSpan(0), null);
//cancel = true;
Message?.Invoke(this, new MessageArgs($"job cancel"));
break;
}
}
currentline += 1;
progressVal = currentline / progressMax;
if (progressVal - alertprogress >= 5)
{
alertprogress = progressVal;
Message?.Invoke(this, new MessageArgs($"Progress : {progressVal} lines"));
//ReadingProgressValueChanged?.Invoke(this, new ReadProgessArgs(progressVal));
}
if (linedata.Trim() == "") continue;
string[] buf = linedata.Split(System.Convert.ToChar("\t"));
if (buf.GetUpperBound(0) < 8) continue; ////데이터수량이 안맞다.
string chStr = buf[2];
if (chStr.IsNumeric() == false) continue; ////채널정보가 일치하지 않는경우
if (ch > -1 && chStr != ch.ToString()) continue;
if (rtypes != -1 && rtypee != -1) ////rtype도 검색한다.
{
if (buf[3] != rtypes.ToString() && buf[3] != rtypee.ToString()) continue;
}
var v_atime = buf[1];
var v_ch = short.Parse(buf[2]);
var v_rtype = short.Parse(buf[3]);
//존재하는 데이터는 처리하지 않느낟.
if (alaramDT.Where(t => t.ATIME == v_atime && t.CH == v_ch && t.RTYPE == v_rtype).Any() == false)
{
var newdr = alaramDT.NewALARMRow();
newdr.ATIME = v_atime;// buf[1];
newdr.TIME = PUB.get_TimeString(decimal.Parse(newdr.ATIME), line.Key);
newdr.CH = v_ch;// short.Parse(buf[2]);
newdr.RTYPE = v_rtype;// short.Parse(buf[3]);
newdr.VOLT = float.Parse(buf[4]);
newdr.ATYPE = short.Parse(buf[5]);
newdr.MAXVOLT = float.Parse(buf[6]);
newdr.MINVOLT = float.Parse(buf[7]);
newdr.AM = buf[8];
newdr.AM2 = buf[9];
alaramDT.AddALARMRow(newdr);
}
else
{
//중복데이터
PUB.log.AddAT($"알람중복데이터 atime={v_atime},ch={v_ch},rtype={v_rtype}");
}
}
if (cancel)
{
//Console.WriteLine("작업이 취소되었습니다.");
//token.ThrowIfCancellationRequested(); // OperationCanceledException을 발생시켜 작업을 종료합니다.
//return (new TimeSpan(0), null);
break;
}
}
}
catch (OperationCanceledException)
{
Console.WriteLine("작업이 정상적으로 취소되었습니다.");
throw; // 예외를 다시 던져 작업이 중지되도록 합니다.
}
alaramDT.AcceptChanges();
var ts = DateTime.Now - dtStart;
return (ts, alaramDT);
}
}
}

View File

@@ -0,0 +1,480 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
partial class Frm_Alamlist : System.Windows.Forms.Form
{
//Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
[System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing)
{
try
{
if (disposing && components != null)
{
components.Dispose();
}
}
finally
{
base.Dispose(disposing);
}
}
//참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
//수정하려면 Windows Form 디자이너를 사용하십시오.
//코드 편집기를 사용하여 수정하지 마십시오.
[System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_Alamlist));
System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("1900-01-01 00:00:00");
this.bn = new System.Windows.Forms.BindingNavigator();
this.BindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton();
this.bs = new System.Windows.Forms.BindingSource();
this.documentElement1 = new vmsnet.DocumentElement();
this.BindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel();
this.BindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton();
this.BindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton();
this.BindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton();
this.BindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator();
this.BindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox();
this.BindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.BindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton();
this.BindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton();
this.BindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.ToolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.tb_search = new System.Windows.Forms.ToolStripTextBox();
this.ToolStripLabel5 = new System.Windows.Forms.ToolStripLabel();
this.ToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.prb1 = new System.Windows.Forms.ToolStripProgressBar();
this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
this.panel1 = new System.Windows.Forms.Panel();
this.cmb_gubun = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.tb_etime = new System.Windows.Forms.DateTimePicker();
this.button1 = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.tb_stime = new System.Windows.Forms.DateTimePicker();
this.label2 = new System.Windows.Forms.Label();
this.listView1 = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit();
this.bn.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.documentElement1)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// bn
//
this.bn.AddNewItem = this.BindingNavigatorAddNewItem;
this.bn.BindingSource = this.bs;
this.bn.CountItem = this.BindingNavigatorCountItem;
this.bn.DeleteItem = this.BindingNavigatorDeleteItem;
this.bn.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bn.ImageScalingSize = new System.Drawing.Size(24, 24);
this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.BindingNavigatorMoveFirstItem,
this.BindingNavigatorMovePreviousItem,
this.BindingNavigatorSeparator,
this.BindingNavigatorPositionItem,
this.BindingNavigatorCountItem,
this.BindingNavigatorSeparator1,
this.BindingNavigatorMoveNextItem,
this.BindingNavigatorMoveLastItem,
this.BindingNavigatorSeparator2,
this.BindingNavigatorAddNewItem,
this.BindingNavigatorDeleteItem,
this.ToolStripSeparator2,
this.tb_search,
this.ToolStripLabel5,
this.ToolStripSeparator1,
this.prb1,
this.toolStripLabel1});
this.bn.Location = new System.Drawing.Point(0, 697);
this.bn.MoveFirstItem = this.BindingNavigatorMoveFirstItem;
this.bn.MoveLastItem = this.BindingNavigatorMoveLastItem;
this.bn.MoveNextItem = this.BindingNavigatorMoveNextItem;
this.bn.MovePreviousItem = this.BindingNavigatorMovePreviousItem;
this.bn.Name = "bn";
this.bn.PositionItem = this.BindingNavigatorPositionItem;
this.bn.Size = new System.Drawing.Size(1193, 38);
this.bn.TabIndex = 5;
this.bn.Text = "BindingNavigator1";
//
// BindingNavigatorAddNewItem
//
this.BindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.BindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorAddNewItem.Image")));
this.BindingNavigatorAddNewItem.Name = "BindingNavigatorAddNewItem";
this.BindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true;
this.BindingNavigatorAddNewItem.Size = new System.Drawing.Size(34, 33);
this.BindingNavigatorAddNewItem.Text = "새로 추가";
this.BindingNavigatorAddNewItem.Visible = false;
//
// bs
//
this.bs.DataMember = "ALARM";
this.bs.DataSource = this.documentElement1;
//
// documentElement1
//
this.documentElement1.DataSetName = "DocumentElement";
this.documentElement1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// BindingNavigatorCountItem
//
this.BindingNavigatorCountItem.Name = "BindingNavigatorCountItem";
this.BindingNavigatorCountItem.Size = new System.Drawing.Size(39, 33);
this.BindingNavigatorCountItem.Text = "/{0}";
this.BindingNavigatorCountItem.ToolTipText = "전체 항목 수";
//
// BindingNavigatorDeleteItem
//
this.BindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.BindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorDeleteItem.Image")));
this.BindingNavigatorDeleteItem.Name = "BindingNavigatorDeleteItem";
this.BindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true;
this.BindingNavigatorDeleteItem.Size = new System.Drawing.Size(34, 33);
this.BindingNavigatorDeleteItem.Text = "삭제";
this.BindingNavigatorDeleteItem.Visible = false;
//
// BindingNavigatorMoveFirstItem
//
this.BindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.BindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMoveFirstItem.Image")));
this.BindingNavigatorMoveFirstItem.Name = "BindingNavigatorMoveFirstItem";
this.BindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true;
this.BindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(34, 33);
this.BindingNavigatorMoveFirstItem.Text = "처음으로 이동";
//
// BindingNavigatorMovePreviousItem
//
this.BindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.BindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMovePreviousItem.Image")));
this.BindingNavigatorMovePreviousItem.Name = "BindingNavigatorMovePreviousItem";
this.BindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true;
this.BindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(34, 33);
this.BindingNavigatorMovePreviousItem.Text = "이전으로 이동";
//
// BindingNavigatorSeparator
//
this.BindingNavigatorSeparator.Name = "BindingNavigatorSeparator";
this.BindingNavigatorSeparator.Size = new System.Drawing.Size(6, 38);
//
// BindingNavigatorPositionItem
//
this.BindingNavigatorPositionItem.AccessibleName = "위치";
this.BindingNavigatorPositionItem.AutoSize = false;
this.BindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.BindingNavigatorPositionItem.Name = "BindingNavigatorPositionItem";
this.BindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23);
this.BindingNavigatorPositionItem.Text = "0";
this.BindingNavigatorPositionItem.ToolTipText = "현재 위치";
//
// BindingNavigatorSeparator1
//
this.BindingNavigatorSeparator1.Name = "BindingNavigatorSeparator1";
this.BindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 38);
//
// BindingNavigatorMoveNextItem
//
this.BindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.BindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMoveNextItem.Image")));
this.BindingNavigatorMoveNextItem.Name = "BindingNavigatorMoveNextItem";
this.BindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true;
this.BindingNavigatorMoveNextItem.Size = new System.Drawing.Size(34, 33);
this.BindingNavigatorMoveNextItem.Text = "다음으로 이동";
//
// BindingNavigatorMoveLastItem
//
this.BindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.BindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("BindingNavigatorMoveLastItem.Image")));
this.BindingNavigatorMoveLastItem.Name = "BindingNavigatorMoveLastItem";
this.BindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true;
this.BindingNavigatorMoveLastItem.Size = new System.Drawing.Size(34, 33);
this.BindingNavigatorMoveLastItem.Text = "마지막으로 이동";
//
// BindingNavigatorSeparator2
//
this.BindingNavigatorSeparator2.Name = "BindingNavigatorSeparator2";
this.BindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 38);
//
// ToolStripSeparator2
//
this.ToolStripSeparator2.Name = "ToolStripSeparator2";
this.ToolStripSeparator2.Size = new System.Drawing.Size(6, 38);
//
// tb_search
//
this.tb_search.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
this.tb_search.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.tb_search.Font = new System.Drawing.Font("맑은 고딕", 9F);
this.tb_search.Name = "tb_search";
this.tb_search.Size = new System.Drawing.Size(100, 38);
this.tb_search.KeyUp += new System.Windows.Forms.KeyEventHandler(this.ToolStripTextBox1_KeyUp);
//
// ToolStripLabel5
//
this.ToolStripLabel5.Name = "ToolStripLabel5";
this.ToolStripLabel5.Size = new System.Drawing.Size(48, 33);
this.ToolStripLabel5.Text = "검색";
//
// ToolStripSeparator1
//
this.ToolStripSeparator1.Name = "ToolStripSeparator1";
this.ToolStripSeparator1.Size = new System.Drawing.Size(6, 38);
//
// prb1
//
this.prb1.Name = "prb1";
this.prb1.Size = new System.Drawing.Size(100, 33);
//
// toolStripLabel1
//
this.toolStripLabel1.Name = "toolStripLabel1";
this.toolStripLabel1.Size = new System.Drawing.Size(48, 33);
this.toolStripLabel1.Text = "path";
//
// panel1
//
this.panel1.Controls.Add(this.cmb_gubun);
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.tb_etime);
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.label3);
this.panel1.Controls.Add(this.tb_stime);
this.panel1.Controls.Add(this.label2);
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Padding = new System.Windows.Forms.Padding(5);
this.panel1.Size = new System.Drawing.Size(1193, 55);
this.panel1.TabIndex = 6;
//
// cmb_gubun
//
this.cmb_gubun.Dock = System.Windows.Forms.DockStyle.Left;
this.cmb_gubun.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmb_gubun.Font = new System.Drawing.Font("맑은 고딕", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.cmb_gubun.FormattingEnabled = true;
this.cmb_gubun.Items.AddRange(new object[] {
"High-Off",
"High-On",
"Low-Off",
"Low-On",
"A1-On",
"A1-Off",
"A2-On",
"A2-Off",
"Over-On",
"Over-Off"});
this.cmb_gubun.Location = new System.Drawing.Point(756, 5);
this.cmb_gubun.Name = "cmb_gubun";
this.cmb_gubun.Size = new System.Drawing.Size(104, 63);
this.cmb_gubun.TabIndex = 1;
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Left;
this.label1.Location = new System.Drawing.Point(695, 5);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(61, 45);
this.label1.TabIndex = 2;
this.label1.Text = "형태";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// tb_etime
//
this.tb_etime.CalendarFont = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.tb_etime.CustomFormat = "yyyy-MM-dd HH:mm:ss";
this.tb_etime.Dock = System.Windows.Forms.DockStyle.Left;
this.tb_etime.Font = new System.Drawing.Font("맑은 고딕", 20.25F);
this.tb_etime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.tb_etime.Location = new System.Drawing.Point(396, 5);
this.tb_etime.Name = "tb_etime";
this.tb_etime.Size = new System.Drawing.Size(299, 61);
this.tb_etime.TabIndex = 5;
//
// button1
//
this.button1.Dock = System.Windows.Forms.DockStyle.Right;
this.button1.Location = new System.Drawing.Point(1064, 5);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(124, 45);
this.button1.TabIndex = 0;
this.button1.Text = "조회";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label3
//
this.label3.Dock = System.Windows.Forms.DockStyle.Left;
this.label3.Location = new System.Drawing.Point(365, 5);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(31, 45);
this.label3.TabIndex = 6;
this.label3.Text = "~";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// tb_stime
//
this.tb_stime.CalendarFont = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.tb_stime.CustomFormat = "yyyy-MM-dd HH:mm:ss";
this.tb_stime.Dock = System.Windows.Forms.DockStyle.Left;
this.tb_stime.Font = new System.Drawing.Font("맑은 고딕", 20.25F);
this.tb_stime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.tb_stime.Location = new System.Drawing.Point(66, 5);
this.tb_stime.Name = "tb_stime";
this.tb_stime.Size = new System.Drawing.Size(299, 61);
this.tb_stime.TabIndex = 3;
//
// label2
//
this.label2.Dock = System.Windows.Forms.DockStyle.Left;
this.label2.Location = new System.Drawing.Point(5, 5);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(61, 45);
this.label2.TabIndex = 4;
this.label2.Text = "기간";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// listView1
//
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2,
this.columnHeader3,
this.columnHeader4,
this.columnHeader5,
this.columnHeader6,
this.columnHeader7,
this.columnHeader8});
this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.listView1.FullRowSelect = true;
this.listView1.HideSelection = false;
this.listView1.Items.AddRange(new System.Windows.Forms.ListViewItem[] {
listViewItem1});
this.listView1.Location = new System.Drawing.Point(0, 55);
this.listView1.Name = "listView1";
this.listView1.Size = new System.Drawing.Size(1193, 642);
this.listView1.TabIndex = 7;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
//
// columnHeader1
//
this.columnHeader1.Text = "시간";
this.columnHeader1.Width = 135;
//
// columnHeader2
//
this.columnHeader2.Text = "Cell/Grp";
this.columnHeader2.Width = 70;
//
// columnHeader3
//
this.columnHeader3.Text = "발생형태";
this.columnHeader3.Width = 90;
//
// columnHeader4
//
this.columnHeader4.Text = "측정값";
//
// columnHeader5
//
this.columnHeader5.Text = "HIGH";
//
// columnHeader6
//
this.columnHeader6.Text = "LOW";
//
// columnHeader7
//
this.columnHeader7.Text = "알람설정";
this.columnHeader7.Width = 110;
//
// columnHeader8
//
this.columnHeader8.Text = "비고";
this.columnHeader8.Width = 190;
//
// Frm_Alamlist
//
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1193, 735);
this.Controls.Add(this.listView1);
this.Controls.Add(this.panel1);
this.Controls.Add(this.bn);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Frm_Alamlist";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "알람발생목록";
this.Load += new System.EventHandler(this.Frm_Alam_Load);
((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit();
this.bn.ResumeLayout(false);
this.bn.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.documentElement1)).EndInit();
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
internal System.Windows.Forms.BindingSource bs;
internal System.Windows.Forms.BindingNavigator bn;
internal System.Windows.Forms.ToolStripButton BindingNavigatorAddNewItem;
internal System.Windows.Forms.ToolStripLabel BindingNavigatorCountItem;
internal System.Windows.Forms.ToolStripButton BindingNavigatorDeleteItem;
internal System.Windows.Forms.ToolStripButton BindingNavigatorMoveFirstItem;
internal System.Windows.Forms.ToolStripButton BindingNavigatorMovePreviousItem;
internal System.Windows.Forms.ToolStripSeparator BindingNavigatorSeparator;
internal System.Windows.Forms.ToolStripTextBox BindingNavigatorPositionItem;
internal System.Windows.Forms.ToolStripSeparator BindingNavigatorSeparator1;
internal System.Windows.Forms.ToolStripButton BindingNavigatorMoveNextItem;
internal System.Windows.Forms.ToolStripButton BindingNavigatorMoveLastItem;
internal System.Windows.Forms.ToolStripSeparator BindingNavigatorSeparator2;
internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator2;
internal System.Windows.Forms.ToolStripLabel ToolStripLabel5;
internal System.Windows.Forms.ToolStripTextBox tb_search;
internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator1;
internal System.Windows.Forms.ToolStripProgressBar prb1;
private System.ComponentModel.IContainer components;
private Panel panel1;
private Button button1;
private ComboBox cmb_gubun;
private Label label1;
private DateTimePicker tb_etime;
private Label label3;
private DateTimePicker tb_stime;
private Label label2;
private vmsnet.DocumentElement documentElement1;
private ListView listView1;
private ColumnHeader columnHeader1;
private ColumnHeader columnHeader2;
private ColumnHeader columnHeader3;
private ColumnHeader columnHeader4;
private ColumnHeader columnHeader5;
private ColumnHeader columnHeader6;
private ColumnHeader columnHeader7;
private ColumnHeader columnHeader8;
private ToolStripLabel toolStripLabel1;
}
}

View File

@@ -0,0 +1,221 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using AR;
using vmsnet;
using System.Linq;
using System.Threading.Tasks;
using System.Threading;
namespace vmsnet
{
public partial class Frm_Alamlist
{
public Frm_Alamlist()
{
InitializeComponent();
////DB초기화작업
PUB.INIT(out List<string> errorMessageList);
if (errorMessageList.Any())
foreach (var err in errorMessageList)
UTIL.MsgE(err);
this.cmb_gubun.Items.Clear();
this.cmb_gubun.Items.AddRange(new string[] { "ALL", "HIGH", "LOW", "A1", "A2" });
//PUB.Alarm.Message += (s1, e1) => PUB.log.AddI(e1.Message);
this.label2.Click += (s1,e1)=> {
var f = new fLog();
f.Show();
};
}
public void Frm_Alam_Load(object sender, System.EventArgs e)
{
////알람데이터년도를 변경
this.tb_stime.Text = DateTime.Now.AddDays(0).ToString("yyyy-MM-dd 00:00:00");
this.tb_etime.Text = DateTime.Now.AddDays(0).ToString("yyyy-MM-dd 23:59:59");
if (cmb_gubun.Items.Count > 0)
this.cmb_gubun.SelectedIndex = 0;
toolStripLabel1.Text = PUB.CONFIG.GetDatabasePath();
}
public void ToolStripTextBox1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
string str = this.tb_search.Text.Trim().Replace("'", "").ToUpper();
if (string.IsNullOrEmpty(str))
{
DisplayData(Dt.Item2.AsEnumerable());
}
try
{
if (Dt.Item2 != null)
{
var dt = Dt.Item2.Where(t => t.TIME.Contains(str) || t.CHNAME.Contains(str) || t.RTYPESTR.Contains(str) || t.ATYPESTR.Contains(str));
DisplayData(dt);
}
else UTIL.MsgE("먼저 자료를 조회하세요");
this.tb_search.SelectAll();
}
catch (Exception)
{
this.tb_search.Text = "";
this.bs.Filter = "";
}
}
}
(TimeSpan, DocumentElement.ALARMDataTable) Dt;
private void button1_Click(object sender, EventArgs e)
{ // 조회
if (DateTime.TryParse(this.tb_stime.Text, out DateTime sdate) == false)
{
UTIL.MsgE("시작일시가 잘못 입력되었습니다\r\n확인하세요");
return;
}
if (DateTime.TryParse(this.tb_etime.Text, out DateTime edate) == false)
{
UTIL.MsgE("종료일시가 잘못 입력되었습니다\r\n확인하세요");
return;
}
Dt.Item1 = new TimeSpan(0);
Dt.Item2 = null;
var gubunstr = cmb_gubun.Text.Trim().ToUpper();
this.button1.Enabled = false;
switch (gubunstr)
{
case "HIGH": ////h
Dt = PUB.Alarm.GetAlarmData(sdate, edate, 0, 1);
break;
case "LOW": ////l;
Dt = PUB.Alarm.GetAlarmData(sdate, edate, 2, 3);
break;
case "A1": ////nullb alam1
Dt = PUB.Alarm.GetAlarmData(sdate, edate, 4, 5);
break;
case "A2": ////nullb alam2
Dt = PUB.Alarm.GetAlarmData(sdate, edate, 6, 7);
break;
case "OVER": ////o
Dt = PUB.Alarm.GetAlarmData(sdate, edate, 8, 9);
break;
default: //ALL
Dt = PUB.Alarm.GetAlarmData(sdate, edate);
break;
}
PUB.log.AddI($"read time : {Dt.Item1.TotalSeconds} sec");
Application.DoEvents();
this.prb1.Value = 0;
this.prb1.Maximum = Dt.Item2.Rows.Count;
var dtEdit = DateTime.Now;
foreach (var Dr in Dt.Item2)
{
this.prb1.Value += 1;
if (Dr.RTYPE == 4 || Dr.RTYPE == 5 || Dr.RTYPE == 6 || Dr.RTYPE == 7)
{
Dr.CHNAME = PUB.GetGrpName(Dr.CH);
}
else
{
/* 작성자: 김치균, 작성일: 2024-10-16, 작성내용: Dr.CH + 1 -> Dr.CH 변경 */
Dr.CHNAME = PUB.GetChannelName(Dr.CH);
}
var rtype = (COMM.EALAMRAISETYPE)Dr.RTYPE;
Dr.RTYPESTR = rtype.ToString();
switch (rtype)
{
case COMM.EALAMRAISETYPE.A1_ON:
Dr.RTYPESTR = "NB_ALARM1-ON";
break;
case COMM.EALAMRAISETYPE.A1_OFF:
Dr.RTYPESTR = "NB_ALARM1-OFF";
break;
case COMM.EALAMRAISETYPE.A2_ON:
Dr.RTYPESTR = "NB_ALARM2-ON";
break;
case COMM.EALAMRAISETYPE.A2_OFF:
Dr.RTYPESTR = "NB_ALARM2-OFF";
break;
}
var atype = (COMM.EALAMTYPE)Dr.ATYPE;
Dr.ATYPESTR = atype.ToString();
}
Dt.Item2.AcceptChanges();
var tsEdit = DateTime.Now - dtEdit;
PUB.log.AddI($"edit time : {tsEdit.TotalSeconds} sec");
Application.DoEvents();
dtEdit = DateTime.Now;
DisplayData(Dt.Item2.AsEnumerable());
tsEdit = DateTime.Now - dtEdit;
PUB.log.AddI($"DisplayData time : {tsEdit.TotalSeconds} sec");
button1.Enabled = true;
}
void DisplayData(EnumerableRowCollection<vmsnet.DocumentElement.ALARMRow> search)
{
this.listView1.Items.Clear();
this.listView1.SuspendLayout();
foreach (var item in search)
{
var lv = this.listView1.Items.Add(item.TIME);
lv.SubItems.Add(item.CHNAME);
lv.SubItems.Add(item.RTYPESTR);
lv.SubItems.Add(item.VOLT.ToString());
lv.SubItems.Add(item.MAXVOLT.ToString());
lv.SubItems.Add(item.MINVOLT.ToString());
lv.SubItems.Add(item.ATYPESTR);
lv.SubItems.Add(item.REMARK);
switch (item.RTYPESTR.ToUpper())
{
case "NB_ALARM1_ON":
lv.BackColor = Color.HotPink;
break;
case "NB_ALARM2_ON":
lv.BackColor = Color.OrangeRed; //Color.Red;
break;
case "HIGH_ON":
lv.BackColor = Color.Orange;
break;
case "LOW_ON":
lv.BackColor = Color.LightSkyBlue; //Color.Blue;
break;
case "OVER_ON":
lv.BackColor = Color.Violet; //Color.Magenta;
break;
default:
lv.BackColor = Color.Empty;
break;
}
}
this.listView1.ResumeLayout();
}
}
}

View File

@@ -0,0 +1,450 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>242, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BindingNavigatorAddNewItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC
pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++
Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ
/5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA
zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/
IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E
rkJggg==
</value>
</data>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>176, 17</value>
</metadata>
<metadata name="documentElement1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="BindingNavigatorDeleteItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC
DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC
rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV
i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG
86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG
QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX
bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII=
</value>
</data>
<data name="BindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77
wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0
v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg
UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA
Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu
lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII=
</value>
</data>
<data name="BindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w
5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f
Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+
08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC
</value>
</data>
<data name="BindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78
n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI
N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f
oAc0QjgAAAAASUVORK5CYII=
</value>
</data>
<data name="BindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+//
h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B
twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA
kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG
WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9
8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg==
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA
AABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcrvQCHK70BByu
9AYcrvQKHK70DByu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu
9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu
9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9AwcrvQKHK70Bxyu9AQcrvQCAAAAAByu
9AIcrvQGHK70DByu9BUcrvQdHK70Ixyu9CYcrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu
9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu
9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jhyu9CMcrvQdHK70FRyu
9AwcrvQGHK70Ahyu9AMcrvQMHK70GRyu9CocrvQ7HK70Rhyu9EwcrvROHK70Thyu9E4crvROHK70Thyu
9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu
9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70TRyu
9EYcrvQ7HK70Kxyu9BkcrvQMHK70BByu9AUcrvQSHK70Jwuh7VYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmCqDtWByu9CgcrvQTHK70Bhyu9AYcrvQWHK70Lgmi7nEYsvzXHLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8Zs/3fC6PweRyu9C4crvQWHK70Bxyu9AYcrvQUHK70Kxex
+8Actv//HLb//x23//8et///ILj//yK6//8lu///Kb3//yzA//8wwv//NcT//znH//89yv//Qcv//0bN
//9Kz///TdH//1HS//9T1P//V9X//1nW//9X1f//U9T//1HS//9N0f//Ss///0bN//9By///Pcr//znH
//81xP//MML//yzA//8pvf//Jbv//yK6//8guP//Hrf//xy2//8ctv//GbP81Ryu9CwcrvQVHK70Bhyu
9AQcrvQPHK70IBu1/tUctv//HLb//x63//8nuv//JLv//ym9//8uwP//M8P//zrH//9By///R87//0/R
//9X1f//Xdj//2Tb//9r3f//cd///3bi//974///f+X//4Dm//9/5f//e+P//3bi//9x3///a93//2Tb
//9d2P//V9X//0/R//9Hzv//Qcv//zrH//8zw///LsD//ym9//8mu///JLr//x63//8ctv//HLb/8hyu
9CAcrvQQHK70BRyu9AIcrvQIHK70Ehy1/qIctv//HLb//za+//8juf//Irn//yW8//8rv///MML//zbF
//89yf//RM3//0rQ//9S0///Wdb//1/Z//9m3P//a97//3Hg//904v//d+L//3jk//934v//dOL//3Hg
//9r3v//Ztz//1/Z//9Z1v//UtP//0rQ//9Ezf//Pcn//zbF//8wwv//K7///yW8//8iuf//Mr7//x23
//8ctv//HLb/xRyu9BIcrvQIHK70Ahyu9AEcrvQEHK70CBy0/C8ctv/8HLb//1PJ//8kuv//Ibn//yW7
//8qv///MMH//zXE//87yP//Qsv//0nP//9Q0///Vtb//13Y//9j2v//ad3//23e//9x4P//c+H//3Ti
//9z4f//ceD//23e//9p3f//Y9r//13Y//9W1v//UNP//0nP//9Cy///O8j//zXE//8wwf//Kr///yW7
//8iuf//Q8P//yO5//8ctv//HLX+TByu9AgcrvQEHK70AQAAAAAcrvQBHK70Ahyu9AMctv+bHLb//0/H
//83wP//Irn//yS7//8ovf//LsD//zTE//86yP//QMv//0bO//9N0f//VNT//1nW//9f2f//ZNv//2nd
//9r3v//bd7//27g//9t3v//a97//2nd//9k2///X9n//1nW//9U1P//TdH//0bO//9Ay///Osj//zTE
//8uwP//KL3//yS7//8lu///ac///x+4//8ctv++HK70Axyu9AIcrvQBAAAAAAAAAAAAAAAAAAAAAAAA
AAActv8bHLb/9iS4//9mz///I7r//yK6//8nvf//LL///zLC//83xf//Pcn//0PN//9K0P//UNP//1XV
//9a1///X9n//2Pa//9r3f//zvT//+37//+w7f//Ztz//2Pa//9f2f//Wtf//1XV//9Q0///StD//0PN
//89yf//N8X//zLC//8sv///J73//yS6//89wf//Usn//xy2//8ctv82AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHLb/jRy2//9Vyv//OMD//yO5//8lvP//Kr///y7B//80xP//Osj//0DL
//9Gzf//StD//1DT//9V1f//Wdb//13Y//+f6P//////////////////dN7//13Y//9Z1v//VdX//1DT
//9K0P//Rs3//0DL//86yP//NMT//y7B//8qv///Jbz//ya7//9q0P//JLn//xy2/64AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Ehy2//Mluf//aM///yS6//8juv//J73//yy/
//8xwv//NsX//zvI//9By///Rs7//0rQ//9Q0///VNT//1bW//+T5P/////////////7/v//adr//1bW
//9U1P//UNP//0rQ//9Gzv//Qcv//zvI//82xf//McL//yy///8nvf//JLr//z7C//9SyP//HLb//By2
/yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/34ctv//VMr//zrA
//8juf//Jbz//ym9//8uwP//MsL//zfF//88yf//Qcv//0bN//9K0P//TdH//1DT//9U1P//nuf//8fx
//+C4P//UtP//1DT//9N0f//StD//0bN//9By///PMn//zfF//8ywv//LsD//ym9//8lvP//Jrv//2rQ
//8kuf//HLb/ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2
/wwctv/tJLn//2nP//8nu///Jrv//yq9//8twP//MsL//zbE//87x///P8n//0TM//9Izf//S8///03Q
//9P0f//UdH//1HS//9R0f//T9H//03Q//9Lz///SM3//0TM//8/yf//O8f//zbE//8ywv//LcD//yq9
//8nu///QsL//1HI//8ctv/5HLb/IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAActv9yHLb//1TJ//8/wv//J7v//yq8//8uvv//MsH//zXD//86xP//Psf//0LK
//9Fy///SMz//0rN//9Mzv//Tc///07P//9Nz///TM7//0rN//9IzP//Rcv//0LK//8+x///OsT//zXD
//8ywf//Lr7//yq8//8svP//bdH//yS5//8ctv+TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8GHLb/5CS4//9s0f//Lbz//yy8//8vvf//Mr///zXC
//85w///PcX//0DI//9Dyf//Rsr//0nL//9Ozf//1fP///n9//+K3v//Ssz//0nL//9Gyv//Q8n//0DI
//89xf//OcP//zXC//8yv///L73//yy8//9GxP//UMj//xy2//Mctv8YAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Zhy2//9Vyf//RcP//y68
//8wvf//Mr7//zbA//85wf//PMP//0DE//9Cx///RMf//0bJ//9w1f/////////////Q8f//R8n//0bJ
//9Ex///Qsf//0DE//88w///OcH//zbA//8yvv//ML3//zK+//9w0v//I7n//xy2/4cAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Axy2
/9siuP//b9H//zW+//8yvv//NL///zbA//84wv//O8L//z7D//9Axf//QsX//0TH//9x1f//////////
///U8v//Rcj//0TH//9Cxf//QMX//z7D//87wv//OML//zbA//80v///Mr7//03F//9PyP//HLb/7Ry2
/xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/1cctv//VMn//0zF//81vv//Nr///ze///85wP//O8H//zzC//8/w///QcT//0LE
//9v0//////////////T8v//Q8X//0LE//9BxP//P8P//zzC//87wf//OcD//ze///82v///OMD//3LS
//8guP//HLb/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/PIrj//3TT//88wP//OsD//zvA//88wf//PsL//z/C
//9Aw///QsP//0PD//9w0//////////////T8v//RMX//0PD//9Cw///QMP//z/C//8+wv//PMH//zvA
//87wP//VMn//1DI//8ctv/nHLb/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9OHLb//1PJ//9Vyf//PsD//z7B
//8/wf//QMH//0HC//9Cwv//Q8P//0PD//9w0v/////////////T8f//RMP//0PD//9Dw///QsL//0HC
//9Awf//P8H//z7B//9Bwv//d9X//x+3//8ctv9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/xiK4
//961f//RsT//0LC//9Cwv//Q8P//0TD//9Fw///RcP//0bE//9x0//////////////U8f//RsT//0bE
//9Fw///RcP//0TD//9Dw///QsL//0PC//9dzP//Ucj//xy2/94ctv8GAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/Pxy2//9Vyf//Xs3//0nE//9IxP//SMT//0jE//9IxP//ScT//0nF//900///////////
///V8v//SsX//0nF//9JxP//SMT//0jE//9IxP//SMT//0zH//991f//H7f//xy2/10AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/7oiuP//ftb//1LI//9Ox///Tsf//07H//9Ox///Tsf//07H
//931P/////////////W8v//Tsf//07H//9Ox///Tsf//07H//9Ox///Tsf//2bP//9RyP//HLb/1Ry2
/wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zMctv//Vsn//2jP//9Uyf//U8n//1PJ
//9Tyf//U8n//1PJ//971v/////////////X8v//U8n//1PJ//9Tyf//U8n//1PJ//9Tyf//V8r//4HY
//8ft///HLb/UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+rIbj//4XZ
//9dzP//Wsv//1rL//9ay///Wsv//1rL//+B1//////////////Y8///Wsv//1rL//9ay///Wsv//1rL
//9ay///cdL//1LJ//8ctv/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAActv8nHLb//FfK//900///Yc3//2DN//9gzf//YM3//2DN//+F2f/////////////a8///YM3//2DN
//9gzf//YM3//2DN//9kzv//h9n//x+3//8ctv9CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHLb/nB+3//+L2///atD//2bP//9mz///Zs///2bP//+K2v//////////
///b9P//Zs///2bP//9mz///Zs///2fP//981f//Usn//xy2/70AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Gxy2//lYyv//f9b//23R//9t0f//bdH//23R
//+P3P/////////////d9P//bdH//23R//9t0f//bdH//3DR//+M2v//Hrf//xy2/zYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/40ft///ktz//3bU
//9z0///c9P//3PT//+U3f/////////////e9f//c9P//3PT//9z0///c9P//4bZ//9SyP//HLb/rgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2
/xUctv/zWMr//4ra//961f//etX//3rV//+Z3//////////////g9f//etX//3rV//961f//fdX//5Hc
//8et//8HLb/KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAActv+BH7f//5be//+C2P//gNf//4DX//+Q3P///v/////////Q8P//gNf//4DX
//+A1///kd3//1TJ//8ctv+iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8MHLb/7VnK//+V3f//htn//4bZ//+G2f//m+D//6/m
//+K2v//htn//4bZ//+J2f//lt3//x63//kctv8hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/ciC3//+a3///j9z//43b
//+N2///jdv//43b//+N2///jdv//43b//+b4P//VMn//xy2/5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Bhy2
/+RZyv//n+H//5Pd//+T3f//k93//5Pd//+T3f//k93//5bd//+a3///Hrf/8xy2/xsAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/2Met///oOH//5vg//+a3///mt///5rf//+a3///mt///6bj//9Uyf//HLb/hwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/YWcr//6rk//+f4f//n+H//5/h//+f4f//ouH//57h
//8et//tHLb/EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9UHrf//6Ti//+m4///peL//6Xi
//+l4v//r+X//1LI//8ctv97AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/zFrL
//+z6P//quX//6rl//+s5f//oeL//x63/+cctv8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/RR63//+p5P//tuj//7Pn//+96v//VMn//xy2/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/71GxP//wuz//8Xt//+S3f//HLb/3hy2/wYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zYctv//Mr3//1HI//8iuP//HLb/YAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+HHLb//xy2
//8ctv+lHLb/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/Jxy2/zYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP////////z9gAAAAAAB/P0AAAAAAAD8/QAAAAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAA
AAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAAAAAAAPz9gAAAAAAB/P3wAAAAAA/8/fgAAAAAH/z9+AAAAAAf
/P38AAAAAD/8/fwAAAAAP/z9/gAAAAB//P3+AAAAAH/8/f8AAAAA//z9/wAAAAD//P3/gAAAAf/8/f+A
AAAB//z9/8AAAAP//P3/4AAAA//8/f/gAAAH//z9//AAAAf//P3/8AAAD//8/f/4AAAf//z9//gAAB//
/P3//AAAP//8/f/8AAA///z9//4AAH///P3//gAAf//8/f//AAD///z9//8AAP///P3//4AB///8/f//
gAH///z9///AA////P3//8AD///8/f//4Af///z9///wB////P3///AP///8/f//+A////z9///4H///
/P3///wf///8/f///n////z9/////////P3////////8/SgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHK70ARuu9AIcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu
9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu
9AQcrvQEG670BByu9AMbrvQBAAAAABuu9AIbrvQIG670Ehuu9BobrvQeG670Hhuu9B4brvQeG670Hhuu
9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu
9B4brvQeG670Hhuu9B4brvQaG670Ehuu9AgbrvQCG670Bxyu9BgVqPE+EqfwThKn8FUSp/BWEqfwVhKn
8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn
8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8E4UqPE/G670GRyu9AgbrvQLG670JAuk8IARq/bDEqz3zBKs
98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs
98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqv3xQyk8YYbrvQkG670Cxuu9AocrvQgGbP92hy2
//8et///Ibj//yW7//8qvv//MsP//znG//9Cy///SM7//1HS//9X1f//Xtf//2PZ//9l2///Ydn//1vW
//9W1P//TtD//0fO//8+yf//N8X//y/B//8pvf//I7r//yC4//8ctv//GrT96Ruu9CEcrvQKG670BRuu
9BMbtf7MG7b//yq6//8juf//KL3//y/B//85x///Qsz//07R//9Y1f//Ytr//2vd//9z4f//eOL//3rk
//934v//cN///2nd//9e2P//VdT//0nP//9Ayv//NcT//y3A//8lu///Krv//xy2//8btv/iG670Exuu
9AYbrvQBHK70BRuz+18ctv/zRMT//yS6//8mvP//Lb///zbF//8/yv//Ss///1PU//9d2P//Zdv//2ze
//9w3///ceD//2/f//9q3f//Y9r//1nW//9R0///Rc3//zzJ//8ywv//K7///yS6//9Awv//H7f/+Byz
/HAbrvQFHK70AQAAAAAbrvQBG7L6GBu2/70+wf//M7///yS7//8qvv//NMP//zvI//9Gzv//T9L//1jW
//9f2f//Z9v//5fn//+17v//eOD//2Pa//9d2P//VNT//03R//9CzP//Osf//zDB//8pvf//Kbv//03H
//8ctv/LG7L6Ihuu9AEAAAAAAAAAAAAAAAAAAAAAHLb/Qym6//xHxP//I7r//ye9//8vwf//NsX//0DK
//9Hzv//T9L//1bV//9w3P//3fb///7+//+f6P//Wdb//1TU//9M0f//Rc3//zzJ//80xP//K7///ya8
//8/wv//Nr///hu2/1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8EHLb/w0bE//8tvP//JLv//yu+
//8xwv//Osf//0HL//9Iz///TtH//1nV//+h5///yfH//3Tc//9R0///TdH//0XN//8/yv//NsX//zDB
//8ovf//Jbv//07G//8juP/VG7b/CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv9HH7f/61HH
//8pu///K73//zDA//83xP//Pcf//0TL//9Jzf//TM///0/Q//9P0P//TtD//0vO//9IzP//Qcr//zzG
//80w///LsD//ym8//9Dw///Nb7/8hy2/1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABu2
/w4btv+sQcL//zvB//8svP//ML7//zbC//88xP//Qcn//0XK//9KzP//id7//6fm//9Y0P//SMv//0TK
//8/x///OsT//zTB//8vvv//Mb3//1DH//8dtv+6G7b/FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/y4puv/3Tsb//zC8//8yvv//NsD//zrC//9AxP//Qsb//1PM///P8f//7/r//3TW
//9Ex///Qsb//z7D//85wf//NL///zG9//9Jxf//N7//+xu2/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAG7b/ARy2/6xIxP//PsH//zS+//83v///OsH//z3C//9AxP//Ucn//8/w
///w+v//c9T//0LE//9Aw///PML//znA//82v///Nb///1PI//8iuP+/G7b/BAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7b/OB62/+Fcy///PsH//zzA//8+wf//QML//0HC
//9SyP//z/D///D6//9z0///QsP//0HC//8/wf//PcH//zzA//9UyP//M77/6Ry2/0UAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8JG7b/mUbE//9Rx///QMH//0HC
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
rEHwD6xB+B+sQfgfrEH8P6xB/j+sQf5/rEE=
</value>
</data>
</root>

View File

@@ -0,0 +1,60 @@
namespace vmsnet
{
partial class fLog
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.SuspendLayout();
//
// richTextBox1
//
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBox1.Location = new System.Drawing.Point(0, 0);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(776, 524);
this.richTextBox1.TabIndex = 0;
this.richTextBox1.Text = "";
//
// fLog
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(776, 524);
this.Controls.Add(this.richTextBox1);
this.Name = "fLog";
this.Text = "fLog";
this.Load += new System.EventHandler(this.fLog_Load);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.RichTextBox richTextBox1;
}
}

View File

@@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using vmsnet;
namespace vmsnet
{
public partial class fLog : Form
{
public fLog()
{
InitializeComponent();
PUB.log.RaiseMsg += Log_RaiseMsg;
this.FormClosed += (s1, e1) =>
{
PUB.log.RaiseMsg -= Log_RaiseMsg;
this.Dispose();
};
}
private void Log_RaiseMsg(DateTime LogTime, string TypeStr, string Message)
{
addmsg(Message);
}
void addmsg(string mbox)
{
if (this.richTextBox1.InvokeRequired)
{
this.richTextBox1.BeginInvoke(new Action(() =>
{
this.richTextBox1.AppendText(mbox + "\n");
this.richTextBox1.ScrollToCaret();
}));
}
else
{
this.richTextBox1.AppendText(mbox + "\n");
this.richTextBox1.ScrollToCaret();
}
}
private void fLog_Load(object sender, EventArgs e)
{
}
}
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
public partial class DocumentElement
{
}
}

View File

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

View File

@@ -0,0 +1,196 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DocumentElement" targetNamespace="http://tempuri.org/DocumentElement.xsd" xmlns:mstns="http://tempuri.org/DocumentElement.xsd" xmlns="http://tempuri.org/DocumentElement.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DocumentElement" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_UserDSName="DocumentElement" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DocumentElement">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="CHANNEL" msprop:Generator_RowEvHandlerName="CHANNELRowChangeEventHandler" msprop:Generator_RowDeletedName="CHANNELRowDeleted" msprop:Generator_RowDeletingName="CHANNELRowDeleting" msprop:Generator_RowEvArgName="CHANNELRowChangeEvent" msprop:Generator_TablePropName="CHANNEL" msprop:Generator_RowChangedName="CHANNELRowChanged" msprop:Generator_UserTableName="CHANNEL" msprop:Generator_RowChangingName="CHANNELRowChanging" msprop:Generator_RowClassName="CHANNELRow" msprop:Generator_TableClassName="CHANNELDataTable" msprop:Generator_TableVarName="tableCHANNEL">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="ENABLE" msprop:Generator_ColumnPropNameInTable="ENABLEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ENABLE" msprop:Generator_UserColumnName="ENABLE" msprop:Generator_ColumnVarNameInTable="columnENABLE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="USE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="GIDX" msprop:Generator_ColumnPropNameInTable="GIDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="GIDX" msprop:Generator_UserColumnName="GIDX" msprop:Generator_ColumnVarNameInTable="columnGIDX" type="xs:int" default="0" minOccurs="0" />
<xs:element name="MACHINE" msprop:Generator_ColumnPropNameInTable="MACHINEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="MACHINE" msprop:Generator_UserColumnName="MACHINE" msprop:Generator_ColumnVarNameInTable="columnMACHINE" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMTYPE" msprop:Generator_ColumnPropNameInTable="ALAMTYPEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMTYPE" msprop:Generator_UserColumnName="ALAMTYPE" msprop:Generator_ColumnVarNameInTable="columnALAMTYPE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
<xs:element name="COLOR" msprop:Generator_ColumnPropNameInTable="COLORColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="COLOR" msprop:Generator_UserColumnName="COLOR" msprop:Generator_ColumnVarNameInTable="columnCOLOR" type="xs:int" default="0" minOccurs="0" />
<xs:element name="AUTOH" msprop:Generator_ColumnPropNameInTable="AUTOHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOH" msprop:Generator_UserColumnName="AUTOH" msprop:Generator_ColumnVarNameInTable="columnAUTOH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="AUTOL" msprop:Generator_ColumnPropNameInTable="AUTOLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOL" msprop:Generator_UserColumnName="AUTOL" msprop:Generator_ColumnVarNameInTable="columnAUTOL" type="xs:float" default="0" minOccurs="0" />
<xs:element name="UNIT" msprop:Generator_ColumnPropNameInTable="UNITColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="UNIT" msprop:Generator_UserColumnName="UNIT" msprop:Generator_ColumnVarNameInTable="columnUNIT" type="xs:string" default="" minOccurs="0" />
<xs:element name="DECPOS" msprop:Generator_ColumnPropNameInTable="DECPOSColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="DECPOS" msprop:Generator_UserColumnName="DECPOS" msprop:Generator_ColumnVarNameInTable="columnDECPOS" type="xs:int" default="0" minOccurs="0" />
<xs:element name="GRPNAME" msprop:Generator_ColumnPropNameInTable="GRPNAMEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="GRPNAME" msprop:Generator_UserColumnName="GRPNAME" msprop:Generator_ColumnVarNameInTable="columnGRPNAME" type="xs:string" minOccurs="0" />
<xs:element name="IDX_M" msprop:Generator_ColumnPropNameInTable="IDX_MColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="IDX_M" msprop:Generator_UserColumnName="IDX_M" msprop:Generator_ColumnVarNameInTable="columnIDX_M" type="xs:int" minOccurs="0" />
<xs:element name="IDX_U" msprop:Generator_ColumnPropNameInTable="IDX_UColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="IDX_U" msprop:Generator_UserColumnName="IDX_U" msprop:Generator_ColumnVarNameInTable="columnIDX_U" type="xs:int" minOccurs="0" />
<xs:element name="IDX_C" msprop:Generator_ColumnPropNameInTable="IDX_CColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="IDX_C" msprop:Generator_UserColumnName="IDX_C" msprop:Generator_ColumnVarNameInTable="columnIDX_C" type="xs:int" minOccurs="0" />
<xs:element name="VOFFSET" msprop:Generator_ColumnPropNameInTable="VOFFSETColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="VOFFSET" msprop:Generator_UserColumnName="VOFFSET" msprop:Generator_ColumnVarNameInTable="columnVOFFSET" type="xs:float" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DEVICE" msprop:Generator_RowEvHandlerName="DEVICERowChangeEventHandler" msprop:Generator_RowDeletedName="DEVICERowDeleted" msprop:Generator_RowDeletingName="DEVICERowDeleting" msprop:Generator_RowEvArgName="DEVICERowChangeEvent" msprop:Generator_TablePropName="DEVICE" msprop:Generator_RowChangedName="DEVICERowChanged" msprop:Generator_UserTableName="DEVICE" msprop:Generator_RowChangingName="DEVICERowChanging" msprop:Generator_RowClassName="DEVICERow" msprop:Generator_TableClassName="DEVICEDataTable" msprop:Generator_TableVarName="tableDEVICE">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="USE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="IP" msprop:Generator_ColumnPropNameInTable="IPColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="IP" msprop:Generator_UserColumnName="IP" msprop:Generator_ColumnVarNameInTable="columnIP" type="xs:string" default="" minOccurs="0" />
<xs:element name="CHCOUNT" msprop:Generator_ColumnPropNameInTable="CHCOUNTColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="CHCOUNT" msprop:Generator_UserColumnName="CHCOUNT" msprop:Generator_ColumnVarNameInTable="columnCHCOUNT" type="xs:string" default="" minOccurs="0" />
<xs:element name="KACOMMAND" msprop:Generator_ColumnPropNameInTable="KACOMMANDColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="KACOMMAND" msprop:Generator_UserColumnName="KACOMMAND" msprop:Generator_ColumnVarNameInTable="columnKACOMMAND" type="xs:string" default="" minOccurs="0" />
<xs:element name="CHCOMMAND" msprop:Generator_ColumnPropNameInTable="CHCOMMANDColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="CHCOMMAND" msprop:Generator_UserColumnName="CHCOMMAND" msprop:Generator_ColumnVarNameInTable="columnCHCOMMAND" type="xs:string" default="" minOccurs="0" />
<xs:element name="SNCOMMAND" msprop:Generator_ColumnPropNameInTable="SNCOMMANDColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="SNCOMMAND" msprop:Generator_UserColumnName="SNCOMMAND" msprop:Generator_ColumnVarNameInTable="columnSNCOMMAND" type="xs:string" default="" minOccurs="0" />
<xs:element name="PORT" msprop:Generator_ColumnPropNameInTable="PORTColumn" msprop:nullValue="34150" msprop:Generator_ColumnPropNameInRow="PORT" msprop:Generator_UserColumnName="PORT" msprop:Generator_ColumnVarNameInTable="columnPORT" type="xs:int" default="34150" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GRP" msprop:Generator_RowEvHandlerName="GRPRowChangeEventHandler" msprop:Generator_RowDeletedName="GRPRowDeleted" msprop:Generator_RowDeletingName="GRPRowDeleting" msprop:Generator_RowEvArgName="GRPRowChangeEvent" msprop:Generator_TablePropName="GRP" msprop:Generator_RowChangedName="GRPRowChanged" msprop:Generator_UserTableName="GRP" msprop:Generator_RowChangingName="GRPRowChanging" msprop:Generator_RowClassName="GRPRow" msprop:Generator_TableClassName="GRPDataTable" msprop:Generator_TableVarName="tableGRP">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="USE" msdata:Caption="ENABLE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="WINDOW" msprop:Generator_ColumnPropNameInTable="WINDOWColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="WINDOW" msprop:Generator_UserColumnName="WINDOW" msprop:Generator_ColumnVarNameInTable="columnWINDOW" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="MATRIX" msprop:Generator_ColumnPropNameInTable="MATRIXColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="MATRIX" msprop:Generator_UserColumnName="MATRIX" msprop:Generator_ColumnVarNameInTable="columnMATRIX" type="xs:string" default="" minOccurs="0" />
<xs:element name="POS" msprop:Generator_ColumnPropNameInTable="POSColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="POS" msprop:Generator_UserColumnName="POS" msprop:Generator_ColumnVarNameInTable="columnPOS" type="xs:string" default="" minOccurs="0" />
<xs:element name="SPAN" msprop:Generator_ColumnPropNameInTable="SPANColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="SPAN" msprop:Generator_UserColumnName="SPAN" msprop:Generator_ColumnVarNameInTable="columnSPAN" type="xs:string" default="" minOccurs="0" />
<xs:element name="FONT" msprop:Generator_ColumnPropNameInTable="FONTColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="FONT" msprop:Generator_UserColumnName="FONT" msprop:Generator_ColumnVarNameInTable="columnFONT" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
<xs:element name="KADEVICE" msprop:Generator_ColumnPropNameInTable="KADEVICEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="KADEVICE" msprop:Generator_UserColumnName="KADEVICE" msprop:Generator_ColumnVarNameInTable="columnKADEVICE" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMTYPE" msprop:Generator_ColumnPropNameInTable="ALAMTYPEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="ALAMTYPE" msprop:Generator_UserColumnName="ALAMTYPE" msprop:Generator_ColumnVarNameInTable="columnALAMTYPE" type="xs:string" default="" minOccurs="0" />
<xs:element name="AUTOH" msprop:Generator_ColumnPropNameInTable="AUTOHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOH" msprop:Generator_UserColumnName="AUTOH" msprop:Generator_ColumnVarNameInTable="columnAUTOH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="AUTOL" msprop:Generator_ColumnPropNameInTable="AUTOLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOL" msprop:Generator_UserColumnName="AUTOL" msprop:Generator_ColumnVarNameInTable="columnAUTOL" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBOFF" msprop:Generator_ColumnPropNameInTable="NBOFFColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBOFF" msprop:Generator_UserColumnName="NBOFF" msprop:Generator_ColumnVarNameInTable="columnNBOFF" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBSEQ" msprop:Generator_ColumnPropNameInTable="NBSEQColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBSEQ" msprop:Generator_UserColumnName="NBSEQ" msprop:Generator_ColumnVarNameInTable="columnNBSEQ" type="xs:int" default="0" minOccurs="0" />
<xs:element name="NBHH" msprop:Generator_ColumnPropNameInTable="NBHHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBHH" msprop:Generator_UserColumnName="NBHH" msprop:Generator_ColumnVarNameInTable="columnNBHH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBH" msprop:Generator_ColumnPropNameInTable="NBHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBH" msprop:Generator_UserColumnName="NBH" msprop:Generator_ColumnVarNameInTable="columnNBH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBLL" msprop:Generator_ColumnPropNameInTable="NBLLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBLL" msprop:Generator_UserColumnName="NBLL" msprop:Generator_ColumnVarNameInTable="columnNBLL" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBL" msprop:Generator_ColumnPropNameInTable="NBLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBL" msprop:Generator_UserColumnName="NBL" msprop:Generator_ColumnVarNameInTable="columnNBL" type="xs:float" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NORMAL" msprop:Generator_RowEvHandlerName="NORMALRowChangeEventHandler" msprop:Generator_RowDeletedName="NORMALRowDeleted" msprop:Generator_RowDeletingName="NORMALRowDeleting" msprop:Generator_RowEvArgName="NORMALRowChangeEvent" msprop:Generator_TablePropName="NORMAL" msprop:Generator_RowChangedName="NORMALRowChanged" msprop:Generator_UserTableName="NORMAL" msprop:Generator_RowChangingName="NORMALRowChanging" msprop:Generator_RowClassName="NORMALRow" msprop:Generator_TableClassName="NORMALDataTable" msprop:Generator_TableVarName="tableNORMAL">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VIEWGROUP" msprop:Generator_RowEvHandlerName="VIEWGROUPRowChangeEventHandler" msprop:Generator_RowDeletedName="VIEWGROUPRowDeleted" msprop:Generator_RowDeletingName="VIEWGROUPRowDeleting" msprop:Generator_RowEvArgName="VIEWGROUPRowChangeEvent" msprop:Generator_TablePropName="VIEWGROUP" msprop:Generator_RowChangedName="VIEWGROUPRowChanged" msprop:Generator_UserTableName="VIEWGROUP" msprop:Generator_RowChangingName="VIEWGROUPRowChanging" msprop:Generator_RowClassName="VIEWGROUPRow" msprop:Generator_TableClassName="VIEWGROUPDataTable" msprop:Generator_TableVarName="tableVIEWGROUP">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="GNAME" msdata:Caption="SANGHO" msprop:Generator_ColumnPropNameInTable="GNAMEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="GNAME" msprop:Generator_UserColumnName="GNAME" msprop:Generator_ColumnVarNameInTable="columnGNAME" type="xs:string" default="" minOccurs="0" />
<xs:element name="TITLE" msdata:Caption="TEL" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="VAL" msprop:Generator_ColumnPropNameInTable="VALColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="VAL" msprop:Generator_UserColumnName="VAL" msprop:Generator_ColumnVarNameInTable="columnVAL" type="xs:string" default="" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="WIN" msprop:Generator_RowEvHandlerName="WINRowChangeEventHandler" msprop:Generator_RowDeletedName="WINRowDeleted" msprop:Generator_RowDeletingName="WINRowDeleting" msprop:Generator_RowEvArgName="WINRowChangeEvent" msprop:Generator_TablePropName="WIN" msprop:Generator_RowChangedName="WINRowChanged" msprop:Generator_UserTableName="WIN" msprop:Generator_RowChangingName="WINRowChanging" msprop:Generator_RowClassName="WINRow" msprop:Generator_TableClassName="WINDataTable" msprop:Generator_TableVarName="tableWIN">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="USE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="MATRIX" msdata:Caption="MACHINE" msprop:Generator_ColumnPropNameInTable="MATRIXColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="MATRIX" msprop:Generator_UserColumnName="MATRIX" msprop:Generator_ColumnVarNameInTable="columnMATRIX" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ALARM" msprop:Generator_RowEvHandlerName="ALARMRowChangeEventHandler" msprop:Generator_RowDeletedName="ALARMRowDeleted" msprop:Generator_RowDeletingName="ALARMRowDeleting" msprop:Generator_RowEvArgName="ALARMRowChangeEvent" msprop:Generator_TablePropName="ALARM" msprop:Generator_RowChangedName="ALARMRowChanged" msprop:Generator_UserTableName="ALARM" msprop:Generator_RowChangingName="ALARMRowChanging" msprop:Generator_RowClassName="ALARMRow" msprop:Generator_TableClassName="ALARMDataTable" msprop:Generator_TableVarName="tableALARM">
<xs:complexType>
<xs:sequence>
<xs:element name="ATIME" msprop:Generator_ColumnPropNameInTable="ATIMEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="ATIME" msprop:Generator_UserColumnName="ATIME" msprop:Generator_ColumnVarNameInTable="columnATIME" type="xs:string" default="" />
<xs:element name="CH" msprop:Generator_ColumnPropNameInTable="CHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="CH" msprop:Generator_UserColumnName="CH" msprop:Generator_ColumnVarNameInTable="columnCH" type="xs:short" default="0" />
<xs:element name="RTYPE" msprop:Generator_ColumnPropNameInTable="RTYPEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="RTYPE" msprop:Generator_UserColumnName="RTYPE" msprop:Generator_ColumnVarNameInTable="columnRTYPE" type="xs:short" default="0" />
<xs:element name="VOLT" msprop:Generator_ColumnPropNameInTable="VOLTColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="VOLT" msprop:Generator_UserColumnName="VOLT" msprop:Generator_ColumnVarNameInTable="columnVOLT" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ATYPE" msprop:Generator_ColumnPropNameInTable="ATYPEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ATYPE" msprop:Generator_UserColumnName="ATYPE" msprop:Generator_ColumnVarNameInTable="columnATYPE" type="xs:short" default="0" minOccurs="0" />
<xs:element name="MAXVOLT" msprop:Generator_ColumnPropNameInTable="MAXVOLTColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="MAXVOLT" msprop:Generator_UserColumnName="MAXVOLT" msprop:Generator_ColumnVarNameInTable="columnMAXVOLT" type="xs:float" default="0" minOccurs="0" />
<xs:element name="MINVOLT" msprop:Generator_ColumnPropNameInTable="MINVOLTColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="MINVOLT" msprop:Generator_UserColumnName="MINVOLT" msprop:Generator_ColumnVarNameInTable="columnMINVOLT" type="xs:float" default="0" minOccurs="0" />
<xs:element name="AM" msprop:Generator_ColumnPropNameInTable="AMColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="AM" msprop:Generator_UserColumnName="AM" msprop:Generator_ColumnVarNameInTable="columnAM" type="xs:string" default="" minOccurs="0" />
<xs:element name="AM2" msprop:Generator_ColumnPropNameInTable="AM2Column" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="AM2" msprop:Generator_UserColumnName="AM2" msprop:Generator_ColumnVarNameInTable="columnAM2" type="xs:string" default="" minOccurs="0" />
<xs:element name="TIME" msprop:Generator_ColumnPropNameInTable="TIMEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="TIME" msprop:Generator_UserColumnName="TIME" msprop:Generator_ColumnVarNameInTable="columnTIME" type="xs:string" minOccurs="0" />
<xs:element name="RTYPESTR" msprop:Generator_ColumnPropNameInTable="RTYPESTRColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="RTYPESTR" msprop:Generator_UserColumnName="RTYPESTR" msprop:Generator_ColumnVarNameInTable="columnRTYPESTR" type="xs:string" minOccurs="0" />
<xs:element name="ATYPESTR" msprop:Generator_ColumnPropNameInTable="ATYPESTRColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="ATYPESTR" msprop:Generator_UserColumnName="ATYPESTR" msprop:Generator_ColumnVarNameInTable="columnATYPESTR" type="xs:string" minOccurs="0" />
<xs:element name="CHNAME" msprop:Generator_ColumnPropNameInTable="CHNAMEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="CHNAME" msprop:Generator_UserColumnName="CHNAME" msprop:Generator_ColumnVarNameInTable="columnCHNAME" type="xs:string" minOccurs="0" />
<xs:element name="REMARK" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="REMARKColumn" msprop:Generator_ColumnVarNameInTable="columnREMARK" msprop:Generator_UserColumnName="REMARK" msprop:Generator_ColumnPropNameInRow="REMARK" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VIEWGROUPR" msprop:Generator_RowEvHandlerName="VIEWGROUPRRowChangeEventHandler" msprop:Generator_RowDeletedName="VIEWGROUPRRowDeleted" msprop:Generator_RowDeletingName="VIEWGROUPRRowDeleting" msprop:Generator_RowEvArgName="VIEWGROUPRRowChangeEvent" msprop:Generator_TablePropName="VIEWGROUPR" msprop:Generator_RowChangedName="VIEWGROUPRRowChanged" msprop:Generator_UserTableName="VIEWGROUPR" msprop:Generator_RowChangingName="VIEWGROUPRRowChanging" msprop:Generator_RowClassName="VIEWGROUPRRow" msprop:Generator_TableClassName="VIEWGROUPRDataTable" msprop:Generator_TableVarName="tableVIEWGROUPR">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="GNAME" msdata:Caption="SANGHO" msprop:Generator_ColumnPropNameInTable="GNAMEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="GNAME" msprop:Generator_UserColumnName="GNAME" msprop:Generator_ColumnVarNameInTable="columnGNAME" type="xs:string" default="" minOccurs="0" />
<xs:element name="TITLE" msdata:Caption="TEL" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="VAL" msprop:Generator_ColumnPropNameInTable="VALColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="VAL" msprop:Generator_UserColumnName="VAL" msprop:Generator_ColumnVarNameInTable="columnVAL" type="xs:string" default="" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TRENDVIEWCHLIST" msprop:Generator_RowEvHandlerName="TRENDVIEWCHLISTRowChangeEventHandler" msprop:Generator_RowDeletedName="TRENDVIEWCHLISTRowDeleted" msprop:Generator_RowDeletingName="TRENDVIEWCHLISTRowDeleting" msprop:Generator_RowEvArgName="TRENDVIEWCHLISTRowChangeEvent" msprop:Generator_TablePropName="TRENDVIEWCHLIST" msprop:Generator_RowChangedName="TRENDVIEWCHLISTRowChanged" msprop:Generator_UserTableName="TRENDVIEWCHLIST" msprop:Generator_RowChangingName="TRENDVIEWCHLISTRowChanging" msprop:Generator_RowClassName="TRENDVIEWCHLISTRow" msprop:Generator_TableClassName="TRENDVIEWCHLISTDataTable" msprop:Generator_TableVarName="tableTRENDVIEWCHLIST">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="SHOW" msprop:Generator_ColumnPropNameInTable="SHOWColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="SHOW" msprop:Generator_UserColumnName="SHOW" msprop:Generator_ColumnVarNameInTable="columnSHOW" type="xs:boolean" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" minOccurs="0" />
<xs:element name="COLOR" msprop:Generator_ColumnPropNameInTable="COLORColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="COLOR" msprop:Generator_UserColumnName="COLOR" msprop:Generator_ColumnVarNameInTable="columnCOLOR" type="xs:int" minOccurs="0" />
<xs:element name="ch" msprop:Generator_ColumnPropNameInTable="chColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="ch" msprop:Generator_UserColumnName="ch" msprop:Generator_ColumnVarNameInTable="columnch" type="xs:int" minOccurs="0" />
<xs:element name="dev" msprop:Generator_ColumnPropNameInTable="devColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="dev" msprop:Generator_UserColumnName="dev" msprop:Generator_ColumnVarNameInTable="columndev" type="xs:int" minOccurs="0" />
<xs:element name="unit" msprop:Generator_ColumnPropNameInTable="unitColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="unit" msprop:Generator_UserColumnName="unit" msprop:Generator_ColumnVarNameInTable="columnunit" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:CHANNEL" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="DEVICE_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:DEVICE" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="GRP_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:GRP" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="NORMAL_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:NORMAL" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="VIEWGROUP_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:VIEWGROUP" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="WIN_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:WIN" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="ALARM_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:ALARM" />
<xs:field xpath="mstns:ATIME" />
<xs:field xpath="mstns:CH" />
<xs:field xpath="mstns:RTYPE" />
</xs:unique>
<xs:unique name="VIEWGROUPR_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:VIEWGROUPR" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="TRENDVIEWCHLIST_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TRENDVIEWCHLIST" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:CHANNEL" ZOrder="9" X="0" Y="0" Height="448" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="444" />
<Shape ID="DesignTable:DEVICE" ZOrder="8" X="168" Y="0" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="196" />
<Shape ID="DesignTable:GRP" ZOrder="7" X="336" Y="0" Height="429" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="425" />
<Shape ID="DesignTable:NORMAL" ZOrder="6" X="504" Y="0" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="120" />
<Shape ID="DesignTable:VIEWGROUP" ZOrder="5" X="672" Y="0" Height="105" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="101" />
<Shape ID="DesignTable:WIN" ZOrder="4" X="840" Y="0" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:ALARM" ZOrder="3" X="547" Y="177" Height="372" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="368" />
<Shape ID="DesignTable:VIEWGROUPR" ZOrder="2" X="732" Y="152" Height="105" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:TRENDVIEWCHLIST" ZOrder="1" X="753" Y="283" Height="162" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -0,0 +1,39 @@
using System;
using System.Xml;
using System.Linq;
using System.Xml.Linq;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using AR;
using System.IO;
using System.Text;
namespace Project
{
public static class MethodExts
{
/// <summary>
/// 지정된 파일 끝에 내용을 추가합니다.
/// </summary>
/// <param name="filename"></param>
/// <param name="data"></param>
public static void AppendText(this System.IO.FileInfo filename, string data)
{
if (filename.Directory.Exists == false) filename.Directory.Create();
using (var writer = new StreamWriter(filename.FullName, true, System.Text.Encoding.Default))
writer.Write(data);//
}
public static void WriteText(this System.IO.FileInfo filename, string data, bool append = false)
{
if (filename.Directory.Exists == false) filename.Directory.Create();
if (append == false)
System.IO.File.WriteAllText(filename.FullName, data);
else
AppendText(filename, data);
}
}
}

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>Frm_Main</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="ChartData" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>vmsnet.ChartData, cVMS.NET, Version=16.3.15.1530, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@@ -0,0 +1,133 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Blue Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Blue Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Green Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Green Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Purple Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Purple Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Red Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Red Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="test2" Type="System.String" Scope="User">
<Value Profile="(Default)">2</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,25 @@
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
<dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
<dllmap os="linux" dll="libX11" target="libX11.so.6"/>
<dllmap os="linux" dll="libXi" target="libXi.so.6"/>
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0"/>
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL"/>
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib"/>
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib"/>
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib"/>
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib"/>
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib"/>
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib"/>
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib"/>
</configuration>

View File

@@ -0,0 +1,42 @@
using System;
using System.Linq;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using vmsnet;
namespace vmsnet
{
internal static class Program
{
[DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();
/// <summary>
/// 해당 애플리케이션의 주 진입점입니다.
/// </summary>
[STAThread]
static void Main(string[] args)
{
if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (System.Diagnostics.Debugger.IsAttached == false)
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
if (args != null && args.Any()) PUB.ExtCommand = args[0];
Application.Run(new Frm_Alamlist());
}
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
PUB.NotExitMonitor = true;
string fn = System.IO.Path.Combine("Bugreport", DateTime.Now.ToString("yyMMddHHmmss") + "_error.xml");
var fi = new System.IO.FileInfo(fn);
if (fi.Directory.Exists == false) fi.Directory.Create();
System.IO.File.WriteAllText(fi.FullName, e.ExceptionObject.ToString(), System.Text.Encoding.Default);
}
}
}

View File

@@ -0,0 +1,43 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.Reflection;
using System.Runtime.InteropServices;
// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
// 어셈블리와 관련된 정보를 수정하려면
// 이 특성 값을 변경하십시오.
// 어셈블리 특성 값을 검토합니다.
[assembly:AssemblyTitle("cell Voltage Monitoring System - (For GM10) - 2016")]
[assembly:AssemblyDescription("VMS")]
[assembly:AssemblyCompany("JDTEK")]
[assembly: AssemblyProduct("cVMS.NET")]
[assembly:AssemblyCopyright("Copyright ©JDTEK 2012")]
[assembly:AssemblyTrademark("Arinware")]
[assembly:ComVisible(false)]
//이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
[assembly:Guid("b998cd4f-ec54-4613-b634-71682953653e")]
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
//
// 주 버전
// 부 버전
// 빌드 번호
// 수정 버전
//
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
// 지정되도록 할 수 있습니다.
// <Assembly: AssemblyVersion("1.0.*")>
[assembly: AssemblyVersion("24.09.03.1200")]
[assembly: AssemblyFileVersion("24.09.03.1200")]

View File

@@ -0,0 +1,173 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Project.Properties {
using System;
/// <summary>
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
/// </summary>
// 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
// 클래스에서 자동으로 생성되었습니다.
// 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
// 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Project.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
/// 재정의합니다.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Backup_Green_Button {
get {
object obj = ResourceManager.GetObject("Backup_Green_Button", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Blue_Ball {
get {
object obj = ResourceManager.GetObject("Blue_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Clear_Green_Button {
get {
object obj = ResourceManager.GetObject("Clear_Green_Button", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap down_16 {
get {
object obj = ResourceManager.GetObject("down_16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap down_orange {
get {
object obj = ResourceManager.GetObject("down_orange", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Get_Info_Blue_Button {
get {
object obj = ResourceManager.GetObject("Get_Info_Blue_Button", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Green_Ball {
get {
object obj = ResourceManager.GetObject("Green_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Orange_Ball {
get {
object obj = ResourceManager.GetObject("Orange_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Purple_Ball {
get {
object obj = ResourceManager.GetObject("Purple_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Red_Ball {
get {
object obj = ResourceManager.GetObject("Red_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap up_16 {
get {
object obj = ResourceManager.GetObject("up_16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

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

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Project.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

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

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<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 level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 이 애플리케이션이 테스트되고 함께 작동하도록 설계된 Windows 버전
목록입니다. 해당 요소의 주석 처리를 제거하면 Windows에서
호환 가능성이 가장 큰 환경을 자동으로 선택합니다. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- 애플리케이션이 DPI를 인식하며 높은 DPI에서 Windows가 자동으로 스케일링하지
않음을 나타냅니다. WPF(Windows Presentation Foundation) 애플리케이션은 자동으로 DPI를 인식하며
옵트인할 필요가 없습니다. 이 설정에 옵트인한 .NET Framework 4.6을 대상으로 하는
Windows Forms 애플리케이션은 app.config에서 'EnableWindowsFormsHighDpiAutoResizing' 설정도 'true'로 설정해야 합니다.
애플리케이션이 긴 경로를 인식하도록 설정합니다. https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation을 참조하세요. -->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
<!-- Windows 공용 컨트롤 및 대화 상자의 테마 사용(Windows XP 이상) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

View File

@@ -0,0 +1 @@
DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v10.1.Win, Version=10.1.5.0, Culture=neutral, PublicKeyToken=940cfcde86f32efd

View File

@@ -0,0 +1 @@
20240827 메인프로젝트에서 분리

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,162 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using AR;
using System.Windows.Media;
namespace vmsnet
{
public class CSetting : AR.Setting
{
public int Startup_DelayTime_Alam { get; set; }
public int Startup_DelayTime_Save { get; set; }
public int MaxChCount { get; set; }
public string bugreport { get; set; }
public string databasefolder { get; set; }
public int threadlimit { get; set; }
public int graph_time_day { get; set; }
public int graph_time_hour { get; set; }
public int graph_time_min { get; set; }
public int graph_line_width { get; set; }
public int graph_starty { get; set; }
public int graph_endy { get; set; }
public string win1pos { get; set; }
public string win2pos { get; set; }
public int tvr_selectgroup0 { get; set; }
public int tvr_selectgroup { get; set; }
////150319
public int maintv_xgap { get; set; } ////개별전해조보기에서 X 축 표시간격
public float maintv_ygap { get; set; } ////개별전해조보기에서 Y 축 표시간격
public int maintv_xterm { get; set; } ////개별전해조보기에서 X 축 표시범위
public int maintv_winsize { get; set; } ////개별전해조보기의 창 크기
public int meas_pri1 { get; set; } ////1번째 수집명령의 시작값
public int meas_pri2 { get; set; } ////1번째 수집명령의 종료값
public int meas_sec1 { get; set; } ////2번째 수집명령의 시작값
public int meas_sec2 { get; set; } ////2번째 수집명령의 종료값
public int meas_3rd1 { get; set; } ////2번째 수집명령의 시작값
public int meas_3rd2 { get; set; } ////2번째 수집명령의 종료값
public int meas_4th1 { get; set; } ////2번째 수집명령의 시작값
public int meas_4th2 { get; set; } ////2번째 수집명령의 종료값
public string grp0chlist { get; set; }
public string grp1chlist { get; set; }
public string grp2chlist { get; set; }
public string grp3chlist { get; set; }
public string grp4chlist { get; set; }
public string grp5chlist { get; set; }
public string grp6chlist { get; set; }
public string grp7chlist { get; set; }
public string grp8chlist { get; set; }
public string grp9chlist { get; set; }
////트렌드뷰의 각종 설정값
public CSetting()
{
bugreport = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Bugreport");
}
public override void AfterLoad()
{
////버그리포트 폴더가 없다면 생성한다.
if (bugreport.isEmpty() == false && System.IO.Directory.Exists(bugreport) == false)
System.IO.Directory.CreateDirectory(bugreport);
//시작지연시간
if (Startup_DelayTime_Alam < 1) Startup_DelayTime_Alam = 10;
if (Startup_DelayTime_Save < 1) Startup_DelayTime_Save = 5;
if (threadlimit < 500) threadlimit = 500;
if (MaxChCount < 1) MaxChCount = 10;
if (meas_pri1 == 0 && meas_pri2 == 0)
{
//0번유닛 1번채널 부터~1번유닛 60번채널
meas_pri1 = 001;
meas_pri2 = 160;
}
if (meas_sec1 == 0 && meas_sec2 == 0)
{
//2번유닛 1번채널 부터~3번유닛 60번채널
meas_sec1 = 201;
meas_sec2 = 360;
}
if (meas_3rd1 == 0 && meas_3rd1 == 0)
{
//4번유닛 1번채널 부터~5번유닛 60번채널
meas_3rd1 = 401;
meas_3rd1 = 560;
}
if (meas_4th1 == 0 && meas_4th2 == 0)
{
//4번유닛 1번채널 부터~5번유닛 60번채널
meas_4th1 = 601;
meas_4th2 = 560;
}
//if (viewSize.IsNumeric() == false) viewSize = "300"; //240622
////트렌드뷰용 데이터정보
if (maintv_xgap == 0) maintv_xgap = 300;
if (maintv_xterm == 0) maintv_xterm = 3600;
if (maintv_ygap == 0) maintv_ygap = 0.5f;
if (maintv_winsize == 0) maintv_winsize = 50;
////일반설정
if (tvr_selectgroup0 == 0) tvr_selectgroup0 = 0;
if (tvr_selectgroup == 0) tvr_selectgroup = 0;
////그래프설정
if (win1pos.isEmpty()) win1pos = "10,10";
if (win2pos.isEmpty()) win2pos = "10,10";
try
{
////백업한다.
System.IO.File.Copy("setting.xml", "setting~.xml", true);
}
catch { }
}
public string GetDatabasePath()
{
if (databasefolder.isEmpty())
{
//트렌드와 알람은 상위폴더를 반환해야한다
var di = new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
return di.Parent.FullName;
}
else return databasefolder;
}
public override void AfterSave()
{
//throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,35 @@
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="vmsnet.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<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>
<userSettings>
<vmsnet.My.MySettings>
<setting name="test2" serializeAs="String">
<value>2</value>
</setting>
</vmsnet.My.MySettings>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
<package id="System.Drawing.Common" version="8.0.8" targetFramework="net48" />
<package id="System.Memory" version="4.5.5" targetFramework="net48" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
</packages>

145
Viewer/AlarmViewer/pub.cs Normal file
View File

@@ -0,0 +1,145 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.Xml.Linq;
using AR;
using System.Windows.Media;
using System.Media;
using System.IO;
using System.Runtime.CompilerServices;
using System.Linq;
using System.Threading.Tasks;
using vmsnet;
namespace vmsnet
{
sealed class PUB
{
public static AR.Log log;
public static bool NotExitMonitor = false;
public static CFDBA Alarm;
public static CSetting CONFIG;
public static string lasttime = "";
public static DocumentElement DS = new DocumentElement();
public static bool runerror = false; ////실행오류
public static string lastStatueMessage = "";
public static System.Text.StringBuilder StartErrmsg = new System.Text.StringBuilder();
public static int WindowCount = 0;
public static DateTime StartupTime = DateTime.Now;
public static string ExtCommand = "";
public static string GetGrpName(int idx)
{
var dr = PUB.DS.GRP.Select("IDX=" + System.Convert.ToString(idx)) as DocumentElement.GRPRow[];
if (dr.Length != 1)
{
return "";
}
return dr[0].TITLE;
}
public static string GetChannelName(int idx)
{
var dr = PUB.DS.CHANNEL.Select("IDX=" + System.Convert.ToString(idx)) as DocumentElement.CHANNELRow[];
if (dr.Length != 1)
{
return "";
}
return dr[0].TITLE;
}
////타임정보를 숫자로 반환함
public static decimal get_TimeNumber(DateTime time)
{
return time.Hour * 3600 + time.Minute * 60 + time.Second;
}
public static string get_TimeString(decimal timenumber, string fn)
{
////파일명에 년/월/일이 있음
string[] fnb = fn.Split("\\".ToCharArray());
string Filename = fnb[fnb.Length - 1];
string daystr = fnb[fnb.Length - 2];
string monstr = fnb[fnb.Length - 3];
string yearstr = fnb[fnb.Length - 4];
////timenumber를 다시 시,분,초 로 변환한다.
decimal namugy = timenumber;
int hour = (int)(Math.Floor(namugy / 3600));
namugy = namugy - (hour * 3600);
int min = (int)(Math.Floor(namugy / 60));
namugy = namugy - (min * 60);
int sec = (int)namugy;
return yearstr + "-" + monstr + "-" + daystr + " " + hour.ToString("00") + ":" + min.ToString("00") + ":" + sec.ToString("00");
}
public static void INIT(out List<string> errormessages)
{
errormessages = new List<string>();
var errorlist = new List<string>();
log = new AR.Log();//.ArinLog();
CONFIG = new CSetting(); ////설정파일 초기화 150319
CONFIG.filename = new System.IO.FileInfo("..\\Setting.xml").FullName;
CONFIG.Load();
if (UTIL.IsDriveValid(CONFIG.GetDatabasePath()) == false)
{
errorlist.Add($"저장경로의 드라이브가 유효하지 않아 임시경로로 변경 됩니다\n" +
$"전:{CONFIG.GetDatabasePath()}\n" +
$"후:{UTIL.CurrentPath}");
CONFIG.databasefolder = UTIL.CurrentPath;
}
if (System.IO.Directory.Exists(CONFIG.GetDatabasePath()) == false)
{
try
{
System.IO.Directory.CreateDirectory(CONFIG.GetDatabasePath());
errorlist.Add($"저장경로 신규생성\n{CONFIG.GetDatabasePath()}");
}
catch (Exception ex)
{
//CONFIG.GetDatabasePath() = UTIL.CurrentPath;
errorlist.Add($"저장경로 생성실패\n{CONFIG.GetDatabasePath()}\n{ex.Message}");
}
}
Alarm = new CFDBA(CONFIG.GetDatabasePath(), "Database", "Alarm");
////설정정보를 가져온다.
//List<string> errorlist = new List<string>();
System.Threading.Tasks.Task task = Task.Factory.StartNew(() =>
{
string[] BackTables = new string[] { "DEVICE", "GRP", "NORMAL", "WIN", "VIEWGROUP", "CHANNEL", "VIEWGROUPR" };
foreach (string tabname in BackTables)
{
var fname = System.IO.Path.Combine(CONFIG.GetDatabasePath(), "Database", "Config", $"{tabname}.xml");
var fn = new System.IO.FileInfo(fname);
if (fn.Exists)
{
PUB.DS.Tables[tabname].ReadXml(fn.FullName);
PUB.log.Add($"Load File({tabname}) : {fn.FullName}");
}
}
});
task.Wait();
log.Add(AR.Log.ETYPE.NORMAL, "설정읽어오기완료");
if (errorlist.Any()) errormessages.AddRange(errorlist);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,346 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.IO;
using System.Text;
using AR;
namespace vmsnet
{
public class CFDB
{
string _BaseDir;
System.Text.StringBuilder[] StrBuf; ////데이터버퍼
DateTime[] LastTime; ////데이터시간
System.IO.FileInfo[] File; ////데이터파일정보
int MaxCount = 10;
public bool IsReady { get; private set; }
public CFDB(params string[] dirarrays)
{
var dir = System.IO.Path.Combine(dirarrays);
_BaseDir = dir;
StrBuf = new System.Text.StringBuilder[MaxCount];
LastTime = new DateTime[MaxCount];
File = new System.IO.FileInfo[MaxCount];
if (System.IO.Directory.Exists(_BaseDir) == false)
{
try
{
System.IO.Directory.CreateDirectory(_BaseDir);
IsReady = true;
}
catch
{
IsReady = false;
}
}
else IsReady = true;
////Data Initialize
for (int i = 0; i < MaxCount; i++)
{
StrBuf[i] = new System.Text.StringBuilder();
LastTime[i] = DateTime.Now;
File[i] = null;
}
}
////지정한 기간내 파일의 존재여부를 확인합니다.
//public int GetfileCount(string table, DateTime sd, DateTime ed)
//{
// return GetfileS(table, sd, ed).Count;
//}
/// <summary>
/// 데이터를 기록합니다.
/// </summary>
/// <param name="time">기록시간(파일명이 결정됨)</param>
/// <param name="table">기록할테이블명(파일명)</param>
/// <param name="buffer">기록할데이터(열데이터가 틀려서 고정할 수 없다)</param>
/// <returns></returns>
/// <remarks></remarks>
public bool InsertData(DateTime time, string table, StringBuilder buffers)
{
string DayStr = time.ToString("yyyyMMdd");
byte TableIndex = byte.Parse(table.Substring(5));
////해당데이터의 시간과 파일정보를 기록
LastTime[TableIndex - 1] = time;
File[TableIndex - 1] = new System.IO.FileInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6) + "\\" + (time.Hour ).ToString("00") + "_" + table + ".txt");
if (!File[TableIndex - 1].Directory.Exists)
File[TableIndex - 1].Directory.Create();
////각테이블별로 시작 열번호를 넣는다.
int si = 1 + 160 * (TableIndex - 1);
int ei = si + (160 - 1);
////파일이 없다면 제목줄을 생성해준다.
if (!File[TableIndex - 1].Exists)
{
////헤더를 추가해야한다.
var Header = new System.Text.StringBuilder();
Header.Append("\t" + "TIME");
for (int j = si; j <= ei; j++)
{
Header.Append("\t" + "C" + j.ToString("000"));
}
//Header.Append(vbTab + "KA")
Header.AppendLine(); ////제목줄을 한칸띄운다
//File[TableIndex - 1].WriteText(Header); // 이전 단독모드
/* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */
using (FileStream fs = new FileStream(File[TableIndex - 1].FullName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
using (StreamWriter writer = new StreamWriter(fs))
{ writer.Write(Header.ToString()); }
}
StrBuf[TableIndex - 1].AppendLine("\t" + time.ToFileTime().ToString() + buffers.ToString());
////4kb 단위로 파일을 기록한다.
if (StrBuf[TableIndex - 1].Length > 4096) ////실제파일 기록은 5초마다 한다.
{
//File[TableIndex - 1].AppendText(StrBuf[TableIndex - 1]); // 이전은 단독모드
/* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */
using (FileStream fs = new FileStream(File[TableIndex - 1].FullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
using (StreamWriter writer = new StreamWriter(fs))
{ writer.Write(StrBuf[TableIndex - 1].ToString()); }
StrBuf[TableIndex - 1].Clear();
}
return true;
}
~CFDB()
{
////버퍼에 남아잇는 데이터를 기록한다.
for (int i = 0; i < MaxCount; i++)
{
if (StrBuf[i].Length > 0)
{
try
{
using (var writer = new StreamWriter(File[i].FullName, true, System.Text.Encoding.Default))
writer.Write(StrBuf[i].ToString());//
}
catch { }
}
StrBuf[i].Clear();
}
}
/// <summary>
/// 저장폴더내에 존재하는 날짜정보를 반환합니다.
/// </summary>
/// <returns></returns>
/// <remarks></remarks>
//public List<string> GetDateList()
//{
// List<string> REtval = new List<string>();
// System.IO.DirectoryInfo BDI = new System.IO.DirectoryInfo(_BaseDir);
// foreach (System.IO.DirectoryInfo Fd_Year in BDI.GetDirectories())
// {
// foreach (System.IO.DirectoryInfo FD_Mon in Fd_Year.GetDirectories())
// {
// foreach (System.IO.DirectoryInfo Fd_Day in FD_Mon.GetDirectories())
// {
// if (Fd_Day.GetFiles().Length > 0)
// {
// REtval.Add(Fd_Year.Name + FD_Mon.Name + Fd_Day.Name);
// }
// }
// }
// }
// REtval.Sort();
// return REtval;
//}
//public enum eTableList
//{
// DATAB1 = 1,
// DATAB2 = 2,
// DATAB3 = 3,
// DATAB4 = 4,
// DATAB5 = 5
//}
/// <summary>
/// 저장폴더내에 존재하는 날짜정보를 반환합니다.
/// </summary>
/// <param name="tablename">찾고자하는테이블명(파일은 시_테이블명.txt로 되어있다.</param>
/// <returns></returns>
/// <remarks></remarks>
//public List<string> GetDateList(eTableList tablename)
//{
// List<string> REtval = new List<string>();
// System.IO.DirectoryInfo BDI = new System.IO.DirectoryInfo(_BaseDir);
// foreach (System.IO.DirectoryInfo Fd_Year in BDI.GetDirectories())
// {
// foreach (System.IO.DirectoryInfo FD_Mon in Fd_Year.GetDirectories())
// {
// foreach (System.IO.DirectoryInfo Fd_Day in FD_Mon.GetDirectories())
// {
// if (Fd_Day.GetFiles("*_" + tablename.ToString() +".txt").Length > 0)
// {
// REtval.Add(Fd_Year.Name + FD_Mon.Name + Fd_Day.Name);
// }
// }
// }
// }
// REtval.Sort();
// return REtval;
//}
public List<(int Year, int Month)> GetAvailableDates()
{
var availableDates = new List<(int Year, int Month)>();
if (!Directory.Exists(_BaseDir))
return availableDates;
// Get all year directories
foreach (var yearDir in Directory.GetDirectories(_BaseDir))
{
if (int.TryParse(Path.GetFileName(yearDir), out int year))
{
// Get all month directories within the year directory
foreach (var monthDir in Directory.GetDirectories(yearDir))
{
if (int.TryParse(Path.GetFileName(monthDir), out int month))
{
availableDates.Add((year, month));
}
}
}
}
return availableDates;
}
////기간내 존재하는 파일을 반환합니다(테이블단위)
public List<string> GetfileS(string table, DateTime sd, DateTime ed)
{
List<string> REtval = new List<string>();
int SttYear = sd.Year;
int EndYear = ed.Year;
if (EndYear < SttYear) return REtval;
int SttMonth = sd.Month;
int EndMonth = ed.Month;
int SttDay = sd.Day;
int EndDay = ed.Day;
int si = int.Parse(sd.ToString("yyyyMMdd"));
int ei = int.Parse(ed.ToString("yyyyMMdd"));
bool SameDay = si == ei ? true : false;
//for (int dayinfo = si; dayinfo <= ei; dayinfo++)
//{
// string dayStr = dayinfo.ToString();
// string dirname = Path.Combine(_BaseDir, dayStr.Substring(0, 4), dayStr.Substring(4, 2), dayStr.Substring(6));
// var dir = new DirectoryInfo(dirname);
// if (!dir.Exists) continue;
// int startHour = (dayinfo == si) ? int.Parse(sd.ToString("HH")) : 0;
// int endHour = (dayinfo == ei) ? int.Parse(ed.ToString("HH")) : 23;
// // 동일 날짜인 경우
// if (SameDay)
// {
// startHour = int.Parse(sd.ToString("HH"));
// endHour = int.Parse(ed.ToString("HH"));
// }
// for (int hourinfo = startHour; hourinfo <= endHour; hourinfo++)
// {
// string filename = Path.Combine(dir.FullName, $"{hourinfo:00}_{table}.txt");
// if (System.IO.File.Exists(filename))
// {
// REtval.Add(filename);
// }
// }
//}
////20140101
for (int dayinfo = si; dayinfo <= ei; dayinfo++)
{
string DayStr = dayinfo.ToString();
// Ex) dirname = ..\bin\Debug\Database\volt\2024\09\01
var dirname = Path.Combine(_BaseDir, DayStr.Substring(0, 4), DayStr.Substring(4, 2), DayStr.Substring(6));
var dir = new System.IO.DirectoryInfo(dirname);
if (!dir.Exists) continue;
////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다
if (SameDay)
{
////동일날짜라면 해당 시간대만 조회하면됨
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt";
if (System.IO.File.Exists(fn))
REtval.Add(fn);
}
}
else
{
if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다.
{
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt";
if (System.IO.File.Exists(fn))
REtval.Add(fn);
}
}
else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다.
{
for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt";
if (System.IO.File.Exists(fn))
REtval.Add(fn);
}
}
else
{
////중간에 끼어있는 날짜라면 1~24모두가 속한다.
for (int hourinfo = 0; hourinfo <= 23; hourinfo++)
{
/* 주석일: 2024-09-20 | 주석내용: 파일명 설명 | 주석자: 이재웅
*
* 파일명이 '08_DATAB1.txt'라면
* 08 : 시간
* _DATAB : 고정값
* 1 : 채널
*/
string fn = dir.FullName + "\\" + (hourinfo).ToString("00") + "_" + table + ".txt";
if (System.IO.File.Exists(fn))
REtval.Add(fn);
}
}
}
}
REtval.Sort();
return REtval;
}
}
}

View File

@@ -0,0 +1,195 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using AR;
namespace vmsnet
{
public class CFDBA
{
string _BaseDir;
public CFDBA(params string[] dirarrays)
{
var dir = System.IO.Path.Combine(dirarrays);
_BaseDir = dir;
if (System.IO.Directory.Exists(_BaseDir) == false)
{
System.IO.Directory.CreateDirectory(_BaseDir);
}
}
////지정한 기간내 파일의 존재여부를 확인합니다.
public int GetfileCount(DateTime sd, DateTime ed)
{
return GetfileS(sd, ed).Count;
}
////기간내 존재하는 파일을 반환합니다(테이블단위)
public List<string> GetfileS(DateTime sd, DateTime ed)
{
List<string> REtval = new List<string>();
int SttYear = sd.Year;
int EndYear = ed.Year;
if (EndYear < SttYear)
{
return REtval;
}
int SttMonth = sd.Month;
int EndMonth = ed.Month;
int SttDay = sd.Day;
int EndDay = ed.Day;
int si = System.Convert.ToInt32(sd.ToString("yyyyMMdd"));
int ei = System.Convert.ToInt32(ed.ToString("yyyyMMdd"));
bool SameDay = si == ei ? true : false;
////20140101
for (int dayinfo = si; dayinfo <= ei; dayinfo++)
{
string DayStr = dayinfo.ToString();
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6));
if (!dir.Exists)
{
continue;
}
////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다
if (SameDay)
{
////동일날짜라면 해당 시간대만 조회하면됨
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
else
{
if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다.
{
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다.
{
for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
else
{
////중간에 끼어있는 날짜라면 1~24모두가 속한다.
for (int hourinfo = 0; hourinfo <= 23; hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") + ".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
}
}
REtval.Sort();
return REtval;
}
/// <summary>
/// 이번달이후의 데이터를 조회합니다.
/// </summary>
/// <param name="ch"></param>
/// <returns></returns>
/// <remarks></remarks>
public DocumentElement.ALARMDataTable GetAlarmData(int ch)
{
////이번달이후의 데이터를 가져온다.
DateTime sd = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01 00:00:00"));
DateTime ed = DateTime.Now;
return GetAlarmData(ch, sd, ed);
}
public DocumentElement.ALARMDataTable GetAlarmData(DateTime sd, DateTime ed)
{
return GetAlarmData(-1, sd, ed);
}
public DocumentElement.ALARMDataTable GetAlarmData(DateTime sd, DateTime ed, int rtypes, int rtypee)
{
return GetAlarmData(-1, sd, ed, rtypes, rtypee);
}
/// <summary>
/// 지정된시간사이의 데이터를 조회합니다.
/// </summary>
/// <param name="stime">시작시간(20120319161800)</param>
/// <param name="etime">종료시간(년월일시분초)</param>
/// <returns></returns>
/// <remarks></remarks>
public DocumentElement.ALARMDataTable GetAlarmData(int ch, DateTime sd, DateTime ed, int rtypes = -1, int rtypee = -1)
{
List<string> files = GetfileS(sd, ed);
DocumentElement.ALARMDataTable alaramDT = new DocumentElement.ALARMDataTable();
foreach (string fn in files)
{
foreach (string line in System.IO.File.ReadAllLines(fn))
{
if (line.Trim() == "") continue;
string[] buf = line.Split(System.Convert.ToChar("\t"));
if (buf.GetUpperBound(0) < 8) continue; ////데이터수량이 안맞다.
string chStr = buf[1];
if (chStr.IsNumeric() == false) continue; ////채널정보가 일치하지 않는경우
if (ch > -1 && chStr != ch.ToString()) continue;
if (rtypes != -1 && rtypee != -1) ////rtype도 검색한다.
{
if (buf[2] != rtypes.ToString() && buf[2] != rtypee.ToString()) continue;
}
var newdr = alaramDT.NewALARMRow();
newdr.ATIME = buf[1];
newdr.CH = short.Parse(buf[2]);
newdr.RTYPE = short.Parse(buf[3]);
newdr.VOLT = float.Parse(buf[4]);
newdr.ATYPE = short.Parse(buf[5]);
newdr.MAXVOLT = float.Parse(buf[6]);
newdr.MINVOLT = float.Parse(buf[7]);
newdr.AM = buf[8];
newdr.AM2 = buf[9];
alaramDT.AddALARMRow(newdr);
}
}
alaramDT.AcceptChanges();
return alaramDT;
}
}
}

View File

@@ -0,0 +1,215 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.Text;
using System.IO;
namespace vmsnet
{
public class CFDBK
{
string _BaseDir;
System.Text.StringBuilder StrBuf; ////데이터버퍼
DateTime LastTime; ////데이터시간
System.IO.FileInfo File; ////데이터파일정보
public CFDBK(params string[] dirarrays)
{
var dir = System.IO.Path.Combine(dirarrays);
_BaseDir = dir;
if (System.IO.Directory.Exists(_BaseDir) == false)
{
System.IO.Directory.CreateDirectory(_BaseDir);
}
StrBuf = new System.Text.StringBuilder();
LastTime = DateTime.Now;
File = null;
}
////지정한 기간내 파일의 존재여부를 확인합니다.
public int GetfileCount(DateTime sd, DateTime ed)
{
return GetfileS(sd, ed).Count;
}
/// <summary>
/// 데이터를 기록합니다.
/// </summary>
/// <param name="time">기록시간(파일명이 결정됨)</param>
/// <param name="buffer">기록된데이터</param>
/// <param name="Header">데이터의헤더(신규파일생성시)</param>
/// <returns></returns>
/// <remarks></remarks>
public bool InsertData(DateTime time, string buffer, StringBuilder Header)
{
string DayStr = time.ToString("yyyyMMdd");
//Dim TableIndex As Byte = table.Substring(5, 1)
////해당데이터의 시간과 파일정보를 기록
LastTime = time;
File = new System.IO.FileInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6) + "\\" +
(time.Hour + 1).ToString("00") +".txt");
if (!File.Directory.Exists)
{
File.Directory.Create();
}
////파일이 없다면 제목줄을 생성해준다.
if (!File.Exists)
{
//File.WriteText(Header, true); // 이전은 단독모드
/* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */
using (FileStream fs = new FileStream(File.FullName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
using (StreamWriter writer = new StreamWriter(fs))
{ writer.WriteLine(Header); }
}
StrBuf.AppendLine(System.Convert.ToString("\t" + time.ToFileTime().ToString() + buffer));
////4kb 단위로 파일을 기록한다.
if (StrBuf.Length > 500) ////실제파일 기록은 5초마다 한다.
{
//File.WriteText(StrBuf, true); // 이전은 단독모드
/* 작성자: 이재웅, 작성일: 2024-09-23, 작성내용: 접근모드를 공유모드로 전환 */
using (FileStream fs = new FileStream(File.FullName, FileMode.Append, FileAccess.Write, FileShare.ReadWrite))
using (StreamWriter writer = new StreamWriter(fs))
{ writer.Write(StrBuf.ToString()); }
StrBuf.Clear();
}
return true;
}
~CFDBK()
{
if (StrBuf.Length > 0) File.WriteText(StrBuf, true);
StrBuf.Clear();
}
/// <summary>
/// 저장폴더내에 존재하는 날짜정보를 반환합니다.
/// </summary>
/// <returns></returns>
/// <remarks></remarks>
public List<string> GetDateList()
{
List<string> REtval = new List<string>();
System.IO.DirectoryInfo BDI = new System.IO.DirectoryInfo(_BaseDir);
foreach (System.IO.DirectoryInfo Fd_Year in BDI.GetDirectories())
{
foreach (System.IO.DirectoryInfo FD_Mon in Fd_Year.GetDirectories())
{
foreach (System.IO.DirectoryInfo Fd_Day in FD_Mon.GetDirectories())
{
if (Fd_Day.GetFiles().Length > 0)
{
REtval.Add(Fd_Year.Name + FD_Mon.Name + Fd_Day.Name);
}
}
}
}
REtval.Sort();
return REtval;
}
////기간내 존재하는 파일을 반환합니다(테이블단위)
public List<string> GetfileS(DateTime sd, DateTime ed)
{
List<string> REtval = new List<string>();
int SttYear = sd.Year;
int EndYear = ed.Year;
if (EndYear < SttYear)
{
return REtval;
}
int SttMonth = sd.Month;
int EndMonth = ed.Month;
int SttDay = sd.Day;
int EndDay = ed.Day;
int si = System.Convert.ToInt32(sd.ToString("yyyyMMdd"));
int ei = System.Convert.ToInt32(ed.ToString("yyyyMMdd"));
bool SameDay = si == ei ? true : false;
////20140101
for (int dayinfo = si; dayinfo <= ei; dayinfo++)
{
string DayStr = dayinfo.ToString();
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(_BaseDir + "\\" + DayStr.Substring(0, 4) + "\\" + DayStr.Substring(4, 2) + "\\" + DayStr.Substring(6));
if (!dir.Exists)
{
continue;
}
////폴더가 존재하므로 해당 테이블파일이 존재하는지 확인한다
if (SameDay)
{
////동일날짜라면 해당 시간대만 조회하면됨
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
else
{
if (dayinfo == si) ////시작일이라면 시작시간부터 24시까지 이다.
{
for (int hourinfo = int.Parse(sd.ToString("HH")); hourinfo <= 23; hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
else if (dayinfo == ei) ////종료일이라면 1~ 종료시까지이다.
{
for (int hourinfo = 0; hourinfo <= int.Parse(ed.ToString("HH")); hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
else
{
////중간에 끼어있는 날짜라면 1~24모두가 속한다.
for (int hourinfo = 0; hourinfo <= 23; hourinfo++)
{
string fn = dir.FullName + "\\" + (hourinfo + 1).ToString("00") +".txt";
if (System.IO.File.Exists(fn))
{
REtval.Add(fn);
}
}
}
}
}
REtval.Sort();
return REtval;
}
}
}

View File

@@ -0,0 +1,40 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
public class ChartData
{
public double Volt { get; set; }
public DateTime Time { get; set; }
}
public class ChartListData
{
public List<int> ChannelList; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>׷캰 ä<><C3A4> <20><><EFBFBD><EFBFBD>
public List<string> FileList; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>׷캰 <20><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>
public ChartListData()
{
ChannelList = new List<int>(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>׷캰 ä<><C3A4> <20><><EFBFBD><EFBFBD>
FileList = new List<string>(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>׷캰 <20><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>
}
/// <summary>
/// ä<><C3A4> <20><> <20><><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ
/// </summary>
public void Clear()
{
ChannelList.Clear();
FileList.Clear();
}
public override string ToString()
{
return $"{this.ChannelList.Count}Ch,{this.FileList.Count}Files";
}
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace vmsnet
{
class RemoteCommand : EventArgs
{
public rCommand Command;
public object Data;
public RemoteCommand(rCommand cmd, object data)
{
Command = cmd;
Data = data;
}
}
}

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
namespace vmsnet
{
// struct SCell
//{
// public string name;
// public Color backcolor;
// public short idx;
// public string group;
//}
enum rCommand
{
ValueUpdate,
DisableUIItems,
EnableUIItems,
StateMessage,
UpdateAlarmSetting,
SaveGroupClass,
DAQConnected,
DAQDisconnected,
DAQTryConnect,
RefreshChart,
}
enum ConnState
{
Disconnected,
Connected,
TryConnect,
}
}

1380
Viewer/TrendViewer/DS1.Designer.cs generated Normal file

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DS1" targetNamespace="http://tempuri.org/DS1.xsd" xmlns:mstns="http://tempuri.org/DS1.xsd" xmlns="http://tempuri.org/DS1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DS1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_UserDSName="DS1" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DS1">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="channel" msprop:Generator_RowEvHandlerName="channelRowChangeEventHandler" msprop:Generator_RowDeletedName="channelRowDeleted" msprop:Generator_RowDeletingName="channelRowDeleting" msprop:Generator_RowEvArgName="channelRowChangeEvent" msprop:Generator_TablePropName="channel" msprop:Generator_RowChangedName="channelRowChanged" msprop:Generator_UserTableName="channel" msprop:Generator_RowChangingName="channelRowChanging" msprop:Generator_RowClassName="channelRow" msprop:Generator_TableClassName="channelDataTable" msprop:Generator_TableVarName="tablechannel">
<xs:complexType>
<xs:sequence>
<xs:element name="use" msprop:Generator_ColumnPropNameInTable="useColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="use" msprop:Generator_UserColumnName="use" msprop:Generator_ColumnVarNameInTable="columnuse" type="xs:boolean" minOccurs="0" />
<xs:element name="cname" msprop:Generator_ColumnPropNameInTable="cnameColumn" msprop:nullValue="_throw" msprop:Generator_ColumnPropNameInRow="cname" msprop:Generator_UserColumnName="cname" msprop:Generator_ColumnVarNameInTable="columncname" type="xs:string" minOccurs="0" />
<xs:element name="c1" msprop:Generator_ColumnPropNameInTable="c1Column" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="c1" msprop:Generator_UserColumnName="c1" msprop:Generator_ColumnVarNameInTable="columnc1" type="xs:string" minOccurs="0" />
<xs:element name="c2" msprop:Generator_ColumnPropNameInTable="c2Column" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="c2" msprop:Generator_UserColumnName="c2" msprop:Generator_ColumnVarNameInTable="columnc2" type="xs:string" minOccurs="0" />
<xs:element name="cc" msprop:Generator_ColumnPropNameInTable="ccColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="cc" msprop:Generator_UserColumnName="cc" msprop:Generator_ColumnVarNameInTable="columncc" type="xs:int" minOccurs="0" />
<xs:element name="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:nullValue="_throw" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_UserColumnName="idx" msprop:Generator_ColumnVarNameInTable="columnidx" type="xs:int" minOccurs="0" />
<xs:element name="tidx" msprop:Generator_ColumnPropNameInTable="tidxColumn" msprop:nullValue="_throw" msprop:Generator_ColumnPropNameInRow="tidx" msprop:Generator_UserColumnName="tidx" msprop:Generator_ColumnVarNameInTable="columntidx" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="group" msprop:Generator_RowEvHandlerName="groupRowChangeEventHandler" msprop:Generator_RowDeletedName="groupRowDeleted" msprop:Generator_RowDeletingName="groupRowDeleting" msprop:Generator_RowEvArgName="groupRowChangeEvent" msprop:Generator_TablePropName="group" msprop:Generator_RowChangedName="groupRowChanged" msprop:Generator_UserTableName="group" msprop:Generator_RowChangingName="groupRowChanging" msprop:Generator_RowClassName="groupRow" msprop:Generator_TableClassName="groupDataTable" msprop:Generator_TableVarName="tablegroup">
<xs:complexType>
<xs:sequence>
<xs:element name="cname" msprop:Generator_ColumnPropNameInTable="cnameColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="cname" msprop:Generator_UserColumnName="cname" msprop:Generator_ColumnVarNameInTable="columncname" type="xs:string" minOccurs="0" />
<xs:element name="value" msprop:Generator_ColumnPropNameInTable="valueColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="value" msprop:Generator_UserColumnName="value" msprop:Generator_ColumnVarNameInTable="columnvalue" type="xs:string" minOccurs="0" />
<xs:element name="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:nullValue="_throw" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_UserColumnName="idx" msprop:Generator_ColumnVarNameInTable="columnidx" type="xs:int" minOccurs="0" />
<xs:element name="gname" msprop:Generator_ColumnPropNameInTable="gnameColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="gname" msprop:Generator_UserColumnName="gname" msprop:Generator_ColumnVarNameInTable="columngname" type="xs:string" minOccurs="0" />
<xs:element name="rname" msprop:Generator_ColumnPropNameInTable="rnameColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="rname" msprop:Generator_UserColumnName="rname" msprop:Generator_ColumnVarNameInTable="columnrname" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

View File

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

View File

@@ -0,0 +1,68 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
partial class Frm_SMsg : System.Windows.Forms.Form
{
//Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
[System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing)
{
try
{
if (disposing && components != null)
{
components.Dispose();
}
}
finally
{
base.Dispose(disposing);
}
}
//Windows Form 디자이너에 필요합니다.
private System.ComponentModel.Container components = null;
//참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
//수정하려면 Windows Form 디자이너를 사용하십시오.
//코드 편집기를 사용하여 수정하지 마십시오.
[System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent()
{
this.Label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
//Label1
//
this.Label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.Label1.Location = new System.Drawing.Point(0, 0);
this.Label1.Name = "Label1";
this.Label1.Size = new System.Drawing.Size(516, 56);
this.Label1.TabIndex = 0;
this.Label1.Text = "...";
this.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
//Frm_SMsg
//
this.AutoScaleDimensions = new System.Drawing.SizeF((float) (7.0F), (float) (12.0F));
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(516, 56);
this.Controls.Add(this.Label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "Frm_SMsg";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "잠시만 기다려주세요";
this.ResumeLayout(false);
}
internal System.Windows.Forms.Label Label1;
}
}

View File

@@ -0,0 +1,18 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
public partial class Frm_SMsg
{
public Frm_SMsg()
{
InitializeComponent();
}
}
}

View File

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

View File

@@ -0,0 +1,168 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
partial class Frm_SelectCH : System.Windows.Forms.Form
{
//Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
[System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing)
{
try
{
if (disposing && components != null)
{
components.Dispose();
}
}
finally
{
base.Dispose(disposing);
}
}
//Windows Form 디자이너에 필요합니다.
private System.ComponentModel.Container components = null;
//참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
//수정하려면 Windows Form 디자이너를 사용하십시오.
//코드 편집기에서는 수정하지 마세요.
[System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_SelectCH));
this.Button1 = new System.Windows.Forms.Button();
this.Panel1 = new System.Windows.Forms.Panel();
this.Button4 = new System.Windows.Forms.Button();
this.Button3 = new System.Windows.Forms.Button();
this.Button2 = new System.Windows.Forms.Button();
this.CheckedListBox1 = new System.Windows.Forms.ListView();
this.ColumnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.Panel1.SuspendLayout();
this.SuspendLayout();
//
// Button1
//
this.Button1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.Button1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Button1.Location = new System.Drawing.Point(0, 624);
this.Button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Button1.Name = "Button1";
this.Button1.Size = new System.Drawing.Size(388, 101);
this.Button1.TabIndex = 1;
this.Button1.Text = "확인";
this.Button1.UseVisualStyleBackColor = true;
this.Button1.Click += new System.EventHandler(this.Button1_Click);
//
// Panel1
//
this.Panel1.Controls.Add(this.Button4);
this.Panel1.Controls.Add(this.Button3);
this.Panel1.Controls.Add(this.Button2);
this.Panel1.Dock = System.Windows.Forms.DockStyle.Right;
this.Panel1.Location = new System.Drawing.Point(219, 0);
this.Panel1.Name = "Panel1";
this.Panel1.Size = new System.Drawing.Size(169, 624);
this.Panel1.TabIndex = 2;
//
// Button4
//
this.Button4.Dock = System.Windows.Forms.DockStyle.Top;
this.Button4.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Button4.Location = new System.Drawing.Point(0, 166);
this.Button4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Button4.Name = "Button4";
this.Button4.Size = new System.Drawing.Size(169, 83);
this.Button4.TabIndex = 4;
this.Button4.Text = "선택 반전";
this.Button4.UseVisualStyleBackColor = true;
this.Button4.Visible = false;
this.Button4.Click += new System.EventHandler(this.Button4_Click);
//
// Button3
//
this.Button3.Dock = System.Windows.Forms.DockStyle.Top;
this.Button3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Button3.Location = new System.Drawing.Point(0, 83);
this.Button3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Button3.Name = "Button3";
this.Button3.Size = new System.Drawing.Size(169, 83);
this.Button3.TabIndex = 3;
this.Button3.Text = "전체 해제";
this.Button3.UseVisualStyleBackColor = true;
this.Button3.Click += new System.EventHandler(this.Button3_Click);
//
// Button2
//
this.Button2.Dock = System.Windows.Forms.DockStyle.Top;
this.Button2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Button2.Location = new System.Drawing.Point(0, 0);
this.Button2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Button2.Name = "Button2";
this.Button2.Size = new System.Drawing.Size(169, 83);
this.Button2.TabIndex = 2;
this.Button2.Text = "전체 선택";
this.Button2.UseVisualStyleBackColor = true;
this.Button2.Visible = false;
this.Button2.Click += new System.EventHandler(this.Button2_Click);
//
// CheckedListBox1
//
this.CheckedListBox1.CheckBoxes = true;
this.CheckedListBox1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.ColumnHeader2});
this.CheckedListBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.CheckedListBox1.FullRowSelect = true;
this.CheckedListBox1.GridLines = true;
this.CheckedListBox1.HideSelection = false;
this.CheckedListBox1.Location = new System.Drawing.Point(0, 0);
this.CheckedListBox1.MultiSelect = false;
this.CheckedListBox1.Name = "CheckedListBox1";
this.CheckedListBox1.Size = new System.Drawing.Size(219, 624);
this.CheckedListBox1.TabIndex = 3;
this.CheckedListBox1.UseCompatibleStateImageBehavior = false;
this.CheckedListBox1.View = System.Windows.Forms.View.Details;
//
// ColumnHeader2
//
this.ColumnHeader2.Text = "Title";
this.ColumnHeader2.Width = 214;
//
// Frm_SelectCH
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(388, 725);
this.Controls.Add(this.CheckedListBox1);
this.Controls.Add(this.Panel1);
this.Controls.Add(this.Button1);
this.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.KeyPreview = true;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Frm_SelectCH";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "채널 선택";
this.Load += new System.EventHandler(this.Frm_SelectCH_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Frm_SelectCH_KeyDown);
this.Panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
internal Button Button1;
internal Panel Panel1;
internal Button Button2;
internal Button Button4;
internal Button Button3;
internal ColumnHeader ColumnHeader2;
public ListView CheckedListBox1;
}
}

View File

@@ -0,0 +1,92 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using AR;
namespace vmsnet
{
public partial class Frm_SelectCH
{
public Frm_SelectCH(TrendCtrlII.CChinfo[] lst)
{
// 디자이너에서 이 호출이 필요합니다.
InitializeComponent();
// InitializeComponent() 호출 뒤에 초기화 코드를 추가하세요.
this.CheckedListBox1.Items.Clear();
foreach (var item in lst)
{
ListViewItem lv = this.CheckedListBox1.Items.Add(System.Convert.ToString(item.TITLE));
lv.SubItems.Add(item.TITLE.ToString());
//lv.SubItems.Add(item.CH)
lv.Checked = item.Show;
lv.Tag = item.Idx;
lv.BackColor = item.Show ? Color.Lime : Color.White;
}
CheckedListBox1.ItemChecked += CheckedListBox1_ItemChecked;
}
private void CheckedListBox1_ItemChecked(object sender, ItemCheckedEventArgs e)
{
e.Item.BackColor = e.Item.Checked ? Color.Lime : Color.White;
}
public void Frm_SelectCH_Load(object sender, EventArgs e)
{
}
public void Frm_SelectCH_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
}
public void Button2_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in CheckedListBox1.Items)
{
item.Checked = true;
item.BackColor = item.Checked ? Color.Lime : Color.White;
}
}
public void Button3_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in CheckedListBox1.Items)
{
item.Checked = false;
item.BackColor = item.Checked ? Color.Lime : Color.White;
}
}
public void Button4_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in CheckedListBox1.Items)
{
item.Checked = !item.Checked;
item.BackColor = item.Checked ? Color.Lime : Color.White;
}
}
public void Button1_Click(object sender, EventArgs e)
{
if (CheckedListBox1.CheckedItems.Count > 10)
{
UTIL.MsgE("최대 10개까지 선택 가능 합니다");
return ;
}
DialogResult = DialogResult.OK;
}
}
}

View File

@@ -0,0 +1,377 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA
AABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcrvQCHK70BByu
9AYcrvQKHK70DByu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu
9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu
9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9AwcrvQKHK70Bxyu9AQcrvQCAAAAAByu
9AIcrvQGHK70DByu9BUcrvQdHK70Ixyu9CYcrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu
9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu
9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jhyu9CMcrvQdHK70FRyu
9AwcrvQGHK70Ahyu9AMcrvQMHK70GRyu9CocrvQ7HK70Rhyu9EwcrvROHK70Thyu9E4crvROHK70Thyu
9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu
9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70TRyu
9EYcrvQ7HK70Kxyu9BkcrvQMHK70BByu9AUcrvQSHK70Jwuh7VYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmCqDtWByu9CgcrvQTHK70Bhyu9AYcrvQWHK70Lgmi7nEYsvzXHLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8Zs/3fC6PweRyu9C4crvQWHK70Bxyu9AYcrvQUHK70Kxex
+8Actv//HLb//x23//8et///ILj//yK6//8lu///Kb3//yzA//8wwv//NcT//znH//89yv//Qcv//0bN
//9Kz///TdH//1HS//9T1P//V9X//1nW//9X1f//U9T//1HS//9N0f//Ss///0bN//9By///Pcr//znH
//81xP//MML//yzA//8pvf//Jbv//yK6//8guP//Hrf//xy2//8ctv//GbP81Ryu9CwcrvQVHK70Bhyu
9AQcrvQPHK70IBu1/tUctv//HLb//x63//8nuv//JLv//ym9//8uwP//M8P//zrH//9By///R87//0/R
//9X1f//Xdj//2Tb//9r3f//cd///3bi//974///f+X//4Dm//9/5f//e+P//3bi//9x3///a93//2Tb
//9d2P//V9X//0/R//9Hzv//Qcv//zrH//8zw///LsD//ym9//8mu///JLr//x63//8ctv//HLb/8hyu
9CAcrvQQHK70BRyu9AIcrvQIHK70Ehy1/qIctv//HLb//za+//8juf//Irn//yW8//8rv///MML//zbF
//89yf//RM3//0rQ//9S0///Wdb//1/Z//9m3P//a97//3Hg//904v//d+L//3jk//934v//dOL//3Hg
//9r3v//Ztz//1/Z//9Z1v//UtP//0rQ//9Ezf//Pcn//zbF//8wwv//K7///yW8//8iuf//Mr7//x23
//8ctv//HLb/xRyu9BIcrvQIHK70Ahyu9AEcrvQEHK70CBy0/C8ctv/8HLb//1PJ//8kuv//Ibn//yW7
//8qv///MMH//zXE//87yP//Qsv//0nP//9Q0///Vtb//13Y//9j2v//ad3//23e//9x4P//c+H//3Ti
//9z4f//ceD//23e//9p3f//Y9r//13Y//9W1v//UNP//0nP//9Cy///O8j//zXE//8wwf//Kr///yW7
//8iuf//Q8P//yO5//8ctv//HLX+TByu9AgcrvQEHK70AQAAAAAcrvQBHK70Ahyu9AMctv+bHLb//0/H
//83wP//Irn//yS7//8ovf//LsD//zTE//86yP//QMv//0bO//9N0f//VNT//1nW//9f2f//ZNv//2nd
//9r3v//bd7//27g//9t3v//a97//2nd//9k2///X9n//1nW//9U1P//TdH//0bO//9Ay///Osj//zTE
//8uwP//KL3//yS7//8lu///ac///x+4//8ctv++HK70Axyu9AIcrvQBAAAAAAAAAAAAAAAAAAAAAAAA
AAActv8bHLb/9iS4//9mz///I7r//yK6//8nvf//LL///zLC//83xf//Pcn//0PN//9K0P//UNP//1XV
//9a1///X9n//2Pa//9r3f//zvT//+37//+w7f//Ztz//2Pa//9f2f//Wtf//1XV//9Q0///StD//0PN
//89yf//N8X//zLC//8sv///J73//yS6//89wf//Usn//xy2//8ctv82AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHLb/jRy2//9Vyv//OMD//yO5//8lvP//Kr///y7B//80xP//Osj//0DL
//9Gzf//StD//1DT//9V1f//Wdb//13Y//+f6P//////////////////dN7//13Y//9Z1v//VdX//1DT
//9K0P//Rs3//0DL//86yP//NMT//y7B//8qv///Jbz//ya7//9q0P//JLn//xy2/64AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Ehy2//Mluf//aM///yS6//8juv//J73//yy/
//8xwv//NsX//zvI//9By///Rs7//0rQ//9Q0///VNT//1bW//+T5P/////////////7/v//adr//1bW
//9U1P//UNP//0rQ//9Gzv//Qcv//zvI//82xf//McL//yy///8nvf//JLr//z7C//9SyP//HLb//By2
/yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/34ctv//VMr//zrA
//8juf//Jbz//ym9//8uwP//MsL//zfF//88yf//Qcv//0bN//9K0P//TdH//1DT//9U1P//nuf//8fx
//+C4P//UtP//1DT//9N0f//StD//0bN//9By///PMn//zfF//8ywv//LsD//ym9//8lvP//Jrv//2rQ
//8kuf//HLb/ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2
/wwctv/tJLn//2nP//8nu///Jrv//yq9//8twP//MsL//zbE//87x///P8n//0TM//9Izf//S8///03Q
//9P0f//UdH//1HS//9R0f//T9H//03Q//9Lz///SM3//0TM//8/yf//O8f//zbE//8ywv//LcD//yq9
//8nu///QsL//1HI//8ctv/5HLb/IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAActv9yHLb//1TJ//8/wv//J7v//yq8//8uvv//MsH//zXD//86xP//Psf//0LK
//9Fy///SMz//0rN//9Mzv//Tc///07P//9Nz///TM7//0rN//9IzP//Rcv//0LK//8+x///OsT//zXD
//8ywf//Lr7//yq8//8svP//bdH//yS5//8ctv+TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8GHLb/5CS4//9s0f//Lbz//yy8//8vvf//Mr///zXC
//85w///PcX//0DI//9Dyf//Rsr//0nL//9Ozf//1fP///n9//+K3v//Ssz//0nL//9Gyv//Q8n//0DI
//89xf//OcP//zXC//8yv///L73//yy8//9GxP//UMj//xy2//Mctv8YAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Zhy2//9Vyf//RcP//y68
//8wvf//Mr7//zbA//85wf//PMP//0DE//9Cx///RMf//0bJ//9w1f/////////////Q8f//R8n//0bJ
//9Ex///Qsf//0DE//88w///OcH//zbA//8yvv//ML3//zK+//9w0v//I7n//xy2/4cAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Axy2
/9siuP//b9H//zW+//8yvv//NL///zbA//84wv//O8L//z7D//9Axf//QsX//0TH//9x1f//////////
///U8v//Rcj//0TH//9Cxf//QMX//z7D//87wv//OML//zbA//80v///Mr7//03F//9PyP//HLb/7Ry2
/xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/1cctv//VMn//0zF//81vv//Nr///ze///85wP//O8H//zzC//8/w///QcT//0LE
//9v0//////////////T8v//Q8X//0LE//9BxP//P8P//zzC//87wf//OcD//ze///82v///OMD//3LS
//8guP//HLb/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/PIrj//3TT//88wP//OsD//zvA//88wf//PsL//z/C
//9Aw///QsP//0PD//9w0//////////////T8v//RMX//0PD//9Cw///QMP//z/C//8+wv//PMH//zvA
//87wP//VMn//1DI//8ctv/nHLb/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9OHLb//1PJ//9Vyf//PsD//z7B
//8/wf//QMH//0HC//9Cwv//Q8P//0PD//9w0v/////////////T8f//RMP//0PD//9Dw///QsL//0HC
//9Awf//P8H//z7B//9Bwv//d9X//x+3//8ctv9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/xiK4
//961f//RsT//0LC//9Cwv//Q8P//0TD//9Fw///RcP//0bE//9x0//////////////U8f//RsT//0bE
//9Fw///RcP//0TD//9Dw///QsL//0PC//9dzP//Ucj//xy2/94ctv8GAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/Pxy2//9Vyf//Xs3//0nE//9IxP//SMT//0jE//9IxP//ScT//0nF//900///////////
///V8v//SsX//0nF//9JxP//SMT//0jE//9IxP//SMT//0zH//991f//H7f//xy2/10AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/7oiuP//ftb//1LI//9Ox///Tsf//07H//9Ox///Tsf//07H
//931P/////////////W8v//Tsf//07H//9Ox///Tsf//07H//9Ox///Tsf//2bP//9RyP//HLb/1Ry2
/wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zMctv//Vsn//2jP//9Uyf//U8n//1PJ
//9Tyf//U8n//1PJ//971v/////////////X8v//U8n//1PJ//9Tyf//U8n//1PJ//9Tyf//V8r//4HY
//8ft///HLb/UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+rIbj//4XZ
//9dzP//Wsv//1rL//9ay///Wsv//1rL//+B1//////////////Y8///Wsv//1rL//9ay///Wsv//1rL
//9ay///cdL//1LJ//8ctv/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAActv8nHLb//FfK//900///Yc3//2DN//9gzf//YM3//2DN//+F2f/////////////a8///YM3//2DN
//9gzf//YM3//2DN//9kzv//h9n//x+3//8ctv9CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHLb/nB+3//+L2///atD//2bP//9mz///Zs///2bP//+K2v//////////
///b9P//Zs///2bP//9mz///Zs///2fP//981f//Usn//xy2/70AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Gxy2//lYyv//f9b//23R//9t0f//bdH//23R
//+P3P/////////////d9P//bdH//23R//9t0f//bdH//3DR//+M2v//Hrf//xy2/zYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/40ft///ktz//3bU
//9z0///c9P//3PT//+U3f/////////////e9f//c9P//3PT//9z0///c9P//4bZ//9SyP//HLb/rgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2
/xUctv/zWMr//4ra//961f//etX//3rV//+Z3//////////////g9f//etX//3rV//961f//fdX//5Hc
//8et//8HLb/KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAActv+BH7f//5be//+C2P//gNf//4DX//+Q3P///v/////////Q8P//gNf//4DX
//+A1///kd3//1TJ//8ctv+iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8MHLb/7VnK//+V3f//htn//4bZ//+G2f//m+D//6/m
//+K2v//htn//4bZ//+J2f//lt3//x63//kctv8hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/ciC3//+a3///j9z//43b
//+N2///jdv//43b//+N2///jdv//43b//+b4P//VMn//xy2/5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Bhy2
/+RZyv//n+H//5Pd//+T3f//k93//5Pd//+T3f//k93//5bd//+a3///Hrf/8xy2/xsAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/2Met///oOH//5vg//+a3///mt///5rf//+a3///mt///6bj//9Uyf//HLb/hwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/YWcr//6rk//+f4f//n+H//5/h//+f4f//ouH//57h
//8et//tHLb/EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9UHrf//6Ti//+m4///peL//6Xi
//+l4v//r+X//1LI//8ctv97AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/zFrL
//+z6P//quX//6rl//+s5f//oeL//x63/+cctv8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/RR63//+p5P//tuj//7Pn//+96v//VMn//xy2/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/71GxP//wuz//8Xt//+S3f//HLb/3hy2/wYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zYctv//Mr3//1HI//8iuP//HLb/YAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+HHLb//xy2
//8ctv+lHLb/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/Jxy2/zYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP////////z9gAAAAAAB/P0AAAAAAAD8/QAAAAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAA
AAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAAAAAAAPz9gAAAAAAB/P3wAAAAAA/8/fgAAAAAH/z9+AAAAAAf
/P38AAAAAD/8/fwAAAAAP/z9/gAAAAB//P3+AAAAAH/8/f8AAAAA//z9/wAAAAD//P3/gAAAAf/8/f+A
AAAB//z9/8AAAAP//P3/4AAAA//8/f/gAAAH//z9//AAAAf//P3/8AAAD//8/f/4AAAf//z9//gAAB//
/P3//AAAP//8/f/8AAA///z9//4AAH///P3//gAAf//8/f//AAD///z9//8AAP///P3//4AB///8/f//
gAH///z9///AA////P3//8AD///8/f//4Af///z9///wB////P3///AP///8/f//+A////z9///4H///
/P3///wf///8/f///n////z9/////////P3////////8/SgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHK70ARuu9AIcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu
9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu
9AQcrvQEG670BByu9AMbrvQBAAAAABuu9AIbrvQIG670Ehuu9BobrvQeG670Hhuu9B4brvQeG670Hhuu
9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu
9B4brvQeG670Hhuu9B4brvQaG670Ehuu9AgbrvQCG670Bxyu9BgVqPE+EqfwThKn8FUSp/BWEqfwVhKn
8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn
8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8E4UqPE/G670GRyu9AgbrvQLG670JAuk8IARq/bDEqz3zBKs
98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs
98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqv3xQyk8YYbrvQkG670Cxuu9AocrvQgGbP92hy2
//8et///Ibj//yW7//8qvv//MsP//znG//9Cy///SM7//1HS//9X1f//Xtf//2PZ//9l2///Ydn//1vW
//9W1P//TtD//0fO//8+yf//N8X//y/B//8pvf//I7r//yC4//8ctv//GrT96Ruu9CEcrvQKG670BRuu
9BMbtf7MG7b//yq6//8juf//KL3//y/B//85x///Qsz//07R//9Y1f//Ytr//2vd//9z4f//eOL//3rk
//934v//cN///2nd//9e2P//VdT//0nP//9Ayv//NcT//y3A//8lu///Krv//xy2//8btv/iG670Exuu
9AYbrvQBHK70BRuz+18ctv/zRMT//yS6//8mvP//Lb///zbF//8/yv//Ss///1PU//9d2P//Zdv//2ze
//9w3///ceD//2/f//9q3f//Y9r//1nW//9R0///Rc3//zzJ//8ywv//K7///yS6//9Awv//H7f/+Byz
/HAbrvQFHK70AQAAAAAbrvQBG7L6GBu2/70+wf//M7///yS7//8qvv//NMP//zvI//9Gzv//T9L//1jW
//9f2f//Z9v//5fn//+17v//eOD//2Pa//9d2P//VNT//03R//9CzP//Osf//zDB//8pvf//Kbv//03H
//8ctv/LG7L6Ihuu9AEAAAAAAAAAAAAAAAAAAAAAHLb/Qym6//xHxP//I7r//ye9//8vwf//NsX//0DK
//9Hzv//T9L//1bV//9w3P//3fb///7+//+f6P//Wdb//1TU//9M0f//Rc3//zzJ//80xP//K7///ya8
//8/wv//Nr///hu2/1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8EHLb/w0bE//8tvP//JLv//yu+
//8xwv//Osf//0HL//9Iz///TtH//1nV//+h5///yfH//3Tc//9R0///TdH//0XN//8/yv//NsX//zDB
//8ovf//Jbv//07G//8juP/VG7b/CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv9HH7f/61HH
//8pu///K73//zDA//83xP//Pcf//0TL//9Jzf//TM///0/Q//9P0P//TtD//0vO//9IzP//Qcr//zzG
//80w///LsD//ym8//9Dw///Nb7/8hy2/1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABu2
/w4btv+sQcL//zvB//8svP//ML7//zbC//88xP//Qcn//0XK//9KzP//id7//6fm//9Y0P//SMv//0TK
//8/x///OsT//zTB//8vvv//Mb3//1DH//8dtv+6G7b/FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/y4puv/3Tsb//zC8//8yvv//NsD//zrC//9AxP//Qsb//1PM///P8f//7/r//3TW
//9Ex///Qsb//z7D//85wf//NL///zG9//9Jxf//N7//+xu2/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAG7b/ARy2/6xIxP//PsH//zS+//83v///OsH//z3C//9AxP//Ucn//8/w
///w+v//c9T//0LE//9Aw///PML//znA//82v///Nb///1PI//8iuP+/G7b/BAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7b/OB62/+Fcy///PsH//zzA//8+wf//QML//0HC
//9SyP//z/D///D6//9z0///QsP//0HC//8/wf//PcH//zzA//9UyP//M77/6Ry2/0UAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8JG7b/mUbE//9Rx///QMH//0HC
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
rEHwD6xB+B+sQfgfrEH8P6xB/j+sQf5/rEE=
</value>
</data>
</root>

View File

@@ -0,0 +1,64 @@
namespace vmsnet
{
partial class fPleaseWait
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.BackColor = System.Drawing.Color.White;
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(800, 450);
this.label1.TabIndex = 0;
this.label1.Text = "잠시만 기다려 주세요";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// fPleaseWait
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.label1);
this.DoubleBuffered = true;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "fPleaseWait";
this.Text = "f";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label label1;
}
}

View File

@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace vmsnet
{
public partial class fPleaseWait : Form
{
public fPleaseWait()
{
InitializeComponent();
}
}
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,15 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
public partial class DocumentElement
{
}
}

View File

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

View File

@@ -0,0 +1,196 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DocumentElement" targetNamespace="http://tempuri.org/DocumentElement.xsd" xmlns:mstns="http://tempuri.org/DocumentElement.xsd" xmlns="http://tempuri.org/DocumentElement.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DocumentElement" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_UserDSName="DocumentElement" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DocumentElement">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="CHANNEL" msprop:Generator_RowEvHandlerName="CHANNELRowChangeEventHandler" msprop:Generator_RowDeletedName="CHANNELRowDeleted" msprop:Generator_RowDeletingName="CHANNELRowDeleting" msprop:Generator_RowEvArgName="CHANNELRowChangeEvent" msprop:Generator_TablePropName="CHANNEL" msprop:Generator_RowChangedName="CHANNELRowChanged" msprop:Generator_UserTableName="CHANNEL" msprop:Generator_RowChangingName="CHANNELRowChanging" msprop:Generator_RowClassName="CHANNELRow" msprop:Generator_TableClassName="CHANNELDataTable" msprop:Generator_TableVarName="tableCHANNEL">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="ENABLE" msprop:Generator_ColumnPropNameInTable="ENABLEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ENABLE" msprop:Generator_UserColumnName="ENABLE" msprop:Generator_ColumnVarNameInTable="columnENABLE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="USE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="GIDX" msprop:Generator_ColumnPropNameInTable="GIDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="GIDX" msprop:Generator_UserColumnName="GIDX" msprop:Generator_ColumnVarNameInTable="columnGIDX" type="xs:int" default="0" minOccurs="0" />
<xs:element name="MACHINE" msprop:Generator_ColumnPropNameInTable="MACHINEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="MACHINE" msprop:Generator_UserColumnName="MACHINE" msprop:Generator_ColumnVarNameInTable="columnMACHINE" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMTYPE" msprop:Generator_ColumnPropNameInTable="ALAMTYPEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMTYPE" msprop:Generator_UserColumnName="ALAMTYPE" msprop:Generator_ColumnVarNameInTable="columnALAMTYPE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
<xs:element name="COLOR" msprop:Generator_ColumnPropNameInTable="COLORColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="COLOR" msprop:Generator_UserColumnName="COLOR" msprop:Generator_ColumnVarNameInTable="columnCOLOR" type="xs:int" default="0" minOccurs="0" />
<xs:element name="AUTOH" msprop:Generator_ColumnPropNameInTable="AUTOHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOH" msprop:Generator_UserColumnName="AUTOH" msprop:Generator_ColumnVarNameInTable="columnAUTOH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="AUTOL" msprop:Generator_ColumnPropNameInTable="AUTOLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOL" msprop:Generator_UserColumnName="AUTOL" msprop:Generator_ColumnVarNameInTable="columnAUTOL" type="xs:float" default="0" minOccurs="0" />
<xs:element name="UNIT" msprop:Generator_ColumnPropNameInTable="UNITColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="UNIT" msprop:Generator_UserColumnName="UNIT" msprop:Generator_ColumnVarNameInTable="columnUNIT" type="xs:string" default="" minOccurs="0" />
<xs:element name="DECPOS" msprop:Generator_ColumnPropNameInTable="DECPOSColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="DECPOS" msprop:Generator_UserColumnName="DECPOS" msprop:Generator_ColumnVarNameInTable="columnDECPOS" type="xs:int" default="0" minOccurs="0" />
<xs:element name="GRPNAME" msprop:Generator_ColumnPropNameInTable="GRPNAMEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="GRPNAME" msprop:Generator_UserColumnName="GRPNAME" msprop:Generator_ColumnVarNameInTable="columnGRPNAME" type="xs:string" minOccurs="0" />
<xs:element name="IDX_M" msprop:Generator_ColumnPropNameInTable="IDX_MColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="IDX_M" msprop:Generator_UserColumnName="IDX_M" msprop:Generator_ColumnVarNameInTable="columnIDX_M" type="xs:int" minOccurs="0" />
<xs:element name="IDX_U" msprop:Generator_ColumnPropNameInTable="IDX_UColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="IDX_U" msprop:Generator_UserColumnName="IDX_U" msprop:Generator_ColumnVarNameInTable="columnIDX_U" type="xs:int" minOccurs="0" />
<xs:element name="IDX_C" msprop:Generator_ColumnPropNameInTable="IDX_CColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="IDX_C" msprop:Generator_UserColumnName="IDX_C" msprop:Generator_ColumnVarNameInTable="columnIDX_C" type="xs:int" minOccurs="0" />
<xs:element name="VOFFSET" msprop:Generator_ColumnPropNameInTable="VOFFSETColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="VOFFSET" msprop:Generator_UserColumnName="VOFFSET" msprop:Generator_ColumnVarNameInTable="columnVOFFSET" type="xs:float" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DEVICE" msprop:Generator_RowEvHandlerName="DEVICERowChangeEventHandler" msprop:Generator_RowDeletedName="DEVICERowDeleted" msprop:Generator_RowDeletingName="DEVICERowDeleting" msprop:Generator_RowEvArgName="DEVICERowChangeEvent" msprop:Generator_TablePropName="DEVICE" msprop:Generator_RowChangedName="DEVICERowChanged" msprop:Generator_UserTableName="DEVICE" msprop:Generator_RowChangingName="DEVICERowChanging" msprop:Generator_RowClassName="DEVICERow" msprop:Generator_TableClassName="DEVICEDataTable" msprop:Generator_TableVarName="tableDEVICE">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="USE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="IP" msprop:Generator_ColumnPropNameInTable="IPColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="IP" msprop:Generator_UserColumnName="IP" msprop:Generator_ColumnVarNameInTable="columnIP" type="xs:string" default="" minOccurs="0" />
<xs:element name="CHCOUNT" msprop:Generator_ColumnPropNameInTable="CHCOUNTColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="CHCOUNT" msprop:Generator_UserColumnName="CHCOUNT" msprop:Generator_ColumnVarNameInTable="columnCHCOUNT" type="xs:string" default="" minOccurs="0" />
<xs:element name="KACOMMAND" msprop:Generator_ColumnPropNameInTable="KACOMMANDColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="KACOMMAND" msprop:Generator_UserColumnName="KACOMMAND" msprop:Generator_ColumnVarNameInTable="columnKACOMMAND" type="xs:string" default="" minOccurs="0" />
<xs:element name="CHCOMMAND" msprop:Generator_ColumnPropNameInTable="CHCOMMANDColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="CHCOMMAND" msprop:Generator_UserColumnName="CHCOMMAND" msprop:Generator_ColumnVarNameInTable="columnCHCOMMAND" type="xs:string" default="" minOccurs="0" />
<xs:element name="SNCOMMAND" msprop:Generator_ColumnPropNameInTable="SNCOMMANDColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="SNCOMMAND" msprop:Generator_UserColumnName="SNCOMMAND" msprop:Generator_ColumnVarNameInTable="columnSNCOMMAND" type="xs:string" default="" minOccurs="0" />
<xs:element name="PORT" msprop:Generator_ColumnPropNameInTable="PORTColumn" msprop:nullValue="34150" msprop:Generator_ColumnPropNameInRow="PORT" msprop:Generator_UserColumnName="PORT" msprop:Generator_ColumnVarNameInTable="columnPORT" type="xs:int" default="34150" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GRP" msprop:Generator_RowEvHandlerName="GRPRowChangeEventHandler" msprop:Generator_RowDeletedName="GRPRowDeleted" msprop:Generator_RowDeletingName="GRPRowDeleting" msprop:Generator_RowEvArgName="GRPRowChangeEvent" msprop:Generator_TablePropName="GRP" msprop:Generator_RowChangedName="GRPRowChanged" msprop:Generator_UserTableName="GRP" msprop:Generator_RowChangingName="GRPRowChanging" msprop:Generator_RowClassName="GRPRow" msprop:Generator_TableClassName="GRPDataTable" msprop:Generator_TableVarName="tableGRP">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="USE" msdata:Caption="ENABLE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="WINDOW" msprop:Generator_ColumnPropNameInTable="WINDOWColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="WINDOW" msprop:Generator_UserColumnName="WINDOW" msprop:Generator_ColumnVarNameInTable="columnWINDOW" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="MATRIX" msprop:Generator_ColumnPropNameInTable="MATRIXColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="MATRIX" msprop:Generator_UserColumnName="MATRIX" msprop:Generator_ColumnVarNameInTable="columnMATRIX" type="xs:string" default="" minOccurs="0" />
<xs:element name="POS" msprop:Generator_ColumnPropNameInTable="POSColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="POS" msprop:Generator_UserColumnName="POS" msprop:Generator_ColumnVarNameInTable="columnPOS" type="xs:string" default="" minOccurs="0" />
<xs:element name="SPAN" msprop:Generator_ColumnPropNameInTable="SPANColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="SPAN" msprop:Generator_UserColumnName="SPAN" msprop:Generator_ColumnVarNameInTable="columnSPAN" type="xs:string" default="" minOccurs="0" />
<xs:element name="FONT" msprop:Generator_ColumnPropNameInTable="FONTColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="FONT" msprop:Generator_UserColumnName="FONT" msprop:Generator_ColumnVarNameInTable="columnFONT" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
<xs:element name="KADEVICE" msprop:Generator_ColumnPropNameInTable="KADEVICEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="KADEVICE" msprop:Generator_UserColumnName="KADEVICE" msprop:Generator_ColumnVarNameInTable="columnKADEVICE" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMTYPE" msprop:Generator_ColumnPropNameInTable="ALAMTYPEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="ALAMTYPE" msprop:Generator_UserColumnName="ALAMTYPE" msprop:Generator_ColumnVarNameInTable="columnALAMTYPE" type="xs:string" default="" minOccurs="0" />
<xs:element name="AUTOH" msprop:Generator_ColumnPropNameInTable="AUTOHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOH" msprop:Generator_UserColumnName="AUTOH" msprop:Generator_ColumnVarNameInTable="columnAUTOH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="AUTOL" msprop:Generator_ColumnPropNameInTable="AUTOLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="AUTOL" msprop:Generator_UserColumnName="AUTOL" msprop:Generator_ColumnVarNameInTable="columnAUTOL" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBOFF" msprop:Generator_ColumnPropNameInTable="NBOFFColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBOFF" msprop:Generator_UserColumnName="NBOFF" msprop:Generator_ColumnVarNameInTable="columnNBOFF" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBSEQ" msprop:Generator_ColumnPropNameInTable="NBSEQColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBSEQ" msprop:Generator_UserColumnName="NBSEQ" msprop:Generator_ColumnVarNameInTable="columnNBSEQ" type="xs:int" default="0" minOccurs="0" />
<xs:element name="NBHH" msprop:Generator_ColumnPropNameInTable="NBHHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBHH" msprop:Generator_UserColumnName="NBHH" msprop:Generator_ColumnVarNameInTable="columnNBHH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBH" msprop:Generator_ColumnPropNameInTable="NBHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBH" msprop:Generator_UserColumnName="NBH" msprop:Generator_ColumnVarNameInTable="columnNBH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBLL" msprop:Generator_ColumnPropNameInTable="NBLLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBLL" msprop:Generator_UserColumnName="NBLL" msprop:Generator_ColumnVarNameInTable="columnNBLL" type="xs:float" default="0" minOccurs="0" />
<xs:element name="NBL" msprop:Generator_ColumnPropNameInTable="NBLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="NBL" msprop:Generator_UserColumnName="NBL" msprop:Generator_ColumnVarNameInTable="columnNBL" type="xs:float" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NORMAL" msprop:Generator_RowEvHandlerName="NORMALRowChangeEventHandler" msprop:Generator_RowDeletedName="NORMALRowDeleted" msprop:Generator_RowDeletingName="NORMALRowDeleting" msprop:Generator_RowEvArgName="NORMALRowChangeEvent" msprop:Generator_TablePropName="NORMAL" msprop:Generator_RowChangedName="NORMALRowChanged" msprop:Generator_UserTableName="NORMAL" msprop:Generator_RowChangingName="NORMALRowChanging" msprop:Generator_RowClassName="NORMALRow" msprop:Generator_TableClassName="NORMALDataTable" msprop:Generator_TableVarName="tableNORMAL">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VIEWGROUP" msprop:Generator_RowEvHandlerName="VIEWGROUPRowChangeEventHandler" msprop:Generator_RowDeletedName="VIEWGROUPRowDeleted" msprop:Generator_RowDeletingName="VIEWGROUPRowDeleting" msprop:Generator_RowEvArgName="VIEWGROUPRowChangeEvent" msprop:Generator_TablePropName="VIEWGROUP" msprop:Generator_RowChangedName="VIEWGROUPRowChanged" msprop:Generator_UserTableName="VIEWGROUP" msprop:Generator_RowChangingName="VIEWGROUPRowChanging" msprop:Generator_RowClassName="VIEWGROUPRow" msprop:Generator_TableClassName="VIEWGROUPDataTable" msprop:Generator_TableVarName="tableVIEWGROUP">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="GNAME" msdata:Caption="SANGHO" msprop:Generator_ColumnPropNameInTable="GNAMEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="GNAME" msprop:Generator_UserColumnName="GNAME" msprop:Generator_ColumnVarNameInTable="columnGNAME" type="xs:string" default="" minOccurs="0" />
<xs:element name="TITLE" msdata:Caption="TEL" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="VAL" msprop:Generator_ColumnPropNameInTable="VALColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="VAL" msprop:Generator_UserColumnName="VAL" msprop:Generator_ColumnVarNameInTable="columnVAL" type="xs:string" default="" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="WIN" msprop:Generator_RowEvHandlerName="WINRowChangeEventHandler" msprop:Generator_RowDeletedName="WINRowDeleted" msprop:Generator_RowDeletingName="WINRowDeleting" msprop:Generator_RowEvArgName="WINRowChangeEvent" msprop:Generator_TablePropName="WIN" msprop:Generator_RowChangedName="WINRowChanged" msprop:Generator_UserTableName="WIN" msprop:Generator_RowChangingName="WINRowChanging" msprop:Generator_RowClassName="WINRow" msprop:Generator_TableClassName="WINDataTable" msprop:Generator_TableVarName="tableWIN">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="USE" msprop:Generator_ColumnPropNameInTable="USEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="USE" msprop:Generator_UserColumnName="USE" msprop:Generator_ColumnVarNameInTable="columnUSE" type="xs:int" default="0" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="MATRIX" msdata:Caption="MACHINE" msprop:Generator_ColumnPropNameInTable="MATRIXColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="MATRIX" msprop:Generator_UserColumnName="MATRIX" msprop:Generator_ColumnVarNameInTable="columnMATRIX" type="xs:string" default="" minOccurs="0" />
<xs:element name="ALAMH" msprop:Generator_ColumnPropNameInTable="ALAMHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAMH" msprop:Generator_UserColumnName="ALAMH" msprop:Generator_ColumnVarNameInTable="columnALAMH" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ALAML" msprop:Generator_ColumnPropNameInTable="ALAMLColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ALAML" msprop:Generator_UserColumnName="ALAML" msprop:Generator_ColumnVarNameInTable="columnALAML" type="xs:float" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ALARM" msprop:Generator_RowEvHandlerName="ALARMRowChangeEventHandler" msprop:Generator_RowDeletedName="ALARMRowDeleted" msprop:Generator_RowDeletingName="ALARMRowDeleting" msprop:Generator_RowEvArgName="ALARMRowChangeEvent" msprop:Generator_TablePropName="ALARM" msprop:Generator_RowChangedName="ALARMRowChanged" msprop:Generator_UserTableName="ALARM" msprop:Generator_RowChangingName="ALARMRowChanging" msprop:Generator_RowClassName="ALARMRow" msprop:Generator_TableClassName="ALARMDataTable" msprop:Generator_TableVarName="tableALARM">
<xs:complexType>
<xs:sequence>
<xs:element name="ATIME" msprop:Generator_ColumnPropNameInTable="ATIMEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="ATIME" msprop:Generator_UserColumnName="ATIME" msprop:Generator_ColumnVarNameInTable="columnATIME" type="xs:string" default="" />
<xs:element name="CH" msprop:Generator_ColumnPropNameInTable="CHColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="CH" msprop:Generator_UserColumnName="CH" msprop:Generator_ColumnVarNameInTable="columnCH" type="xs:short" default="0" />
<xs:element name="RTYPE" msprop:Generator_ColumnPropNameInTable="RTYPEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="RTYPE" msprop:Generator_UserColumnName="RTYPE" msprop:Generator_ColumnVarNameInTable="columnRTYPE" type="xs:short" default="0" />
<xs:element name="VOLT" msprop:Generator_ColumnPropNameInTable="VOLTColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="VOLT" msprop:Generator_UserColumnName="VOLT" msprop:Generator_ColumnVarNameInTable="columnVOLT" type="xs:float" default="0" minOccurs="0" />
<xs:element name="ATYPE" msprop:Generator_ColumnPropNameInTable="ATYPEColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="ATYPE" msprop:Generator_UserColumnName="ATYPE" msprop:Generator_ColumnVarNameInTable="columnATYPE" type="xs:short" default="0" minOccurs="0" />
<xs:element name="MAXVOLT" msprop:Generator_ColumnPropNameInTable="MAXVOLTColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="MAXVOLT" msprop:Generator_UserColumnName="MAXVOLT" msprop:Generator_ColumnVarNameInTable="columnMAXVOLT" type="xs:float" default="0" minOccurs="0" />
<xs:element name="MINVOLT" msprop:Generator_ColumnPropNameInTable="MINVOLTColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="MINVOLT" msprop:Generator_UserColumnName="MINVOLT" msprop:Generator_ColumnVarNameInTable="columnMINVOLT" type="xs:float" default="0" minOccurs="0" />
<xs:element name="AM" msprop:Generator_ColumnPropNameInTable="AMColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="AM" msprop:Generator_UserColumnName="AM" msprop:Generator_ColumnVarNameInTable="columnAM" type="xs:string" default="" minOccurs="0" />
<xs:element name="AM2" msprop:Generator_ColumnPropNameInTable="AM2Column" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="AM2" msprop:Generator_UserColumnName="AM2" msprop:Generator_ColumnVarNameInTable="columnAM2" type="xs:string" default="" minOccurs="0" />
<xs:element name="TIME" msprop:Generator_ColumnPropNameInTable="TIMEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="TIME" msprop:Generator_UserColumnName="TIME" msprop:Generator_ColumnVarNameInTable="columnTIME" type="xs:string" minOccurs="0" />
<xs:element name="RTYPESTR" msprop:Generator_ColumnPropNameInTable="RTYPESTRColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="RTYPESTR" msprop:Generator_UserColumnName="RTYPESTR" msprop:Generator_ColumnVarNameInTable="columnRTYPESTR" type="xs:string" minOccurs="0" />
<xs:element name="ATYPESTR" msprop:Generator_ColumnPropNameInTable="ATYPESTRColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="ATYPESTR" msprop:Generator_UserColumnName="ATYPESTR" msprop:Generator_ColumnVarNameInTable="columnATYPESTR" type="xs:string" minOccurs="0" />
<xs:element name="CHNAME" msprop:Generator_ColumnPropNameInTable="CHNAMEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="CHNAME" msprop:Generator_UserColumnName="CHNAME" msprop:Generator_ColumnVarNameInTable="columnCHNAME" type="xs:string" minOccurs="0" />
<xs:element name="REMARK" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInTable="REMARKColumn" msprop:Generator_ColumnVarNameInTable="columnREMARK" msprop:Generator_UserColumnName="REMARK" msprop:Generator_ColumnPropNameInRow="REMARK" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VIEWGROUPR" msprop:Generator_RowEvHandlerName="VIEWGROUPRRowChangeEventHandler" msprop:Generator_RowDeletedName="VIEWGROUPRRowDeleted" msprop:Generator_RowDeletingName="VIEWGROUPRRowDeleting" msprop:Generator_RowEvArgName="VIEWGROUPRRowChangeEvent" msprop:Generator_TablePropName="VIEWGROUPR" msprop:Generator_RowChangedName="VIEWGROUPRRowChanged" msprop:Generator_UserTableName="VIEWGROUPR" msprop:Generator_RowChangingName="VIEWGROUPRRowChanging" msprop:Generator_RowClassName="VIEWGROUPRRow" msprop:Generator_TableClassName="VIEWGROUPRDataTable" msprop:Generator_TableVarName="tableVIEWGROUPR">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="GNAME" msdata:Caption="SANGHO" msprop:Generator_ColumnPropNameInTable="GNAMEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="GNAME" msprop:Generator_UserColumnName="GNAME" msprop:Generator_ColumnVarNameInTable="columnGNAME" type="xs:string" default="" minOccurs="0" />
<xs:element name="TITLE" msdata:Caption="TEL" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" default="" minOccurs="0" />
<xs:element name="VAL" msprop:Generator_ColumnPropNameInTable="VALColumn" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="VAL" msprop:Generator_UserColumnName="VAL" msprop:Generator_ColumnVarNameInTable="columnVAL" type="xs:string" default="" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TRENDVIEWCHLIST" msprop:Generator_RowEvHandlerName="TRENDVIEWCHLISTRowChangeEventHandler" msprop:Generator_RowDeletedName="TRENDVIEWCHLISTRowDeleted" msprop:Generator_RowDeletingName="TRENDVIEWCHLISTRowDeleting" msprop:Generator_RowEvArgName="TRENDVIEWCHLISTRowChangeEvent" msprop:Generator_TablePropName="TRENDVIEWCHLIST" msprop:Generator_RowChangedName="TRENDVIEWCHLISTRowChanged" msprop:Generator_UserTableName="TRENDVIEWCHLIST" msprop:Generator_RowChangingName="TRENDVIEWCHLISTRowChanging" msprop:Generator_RowClassName="TRENDVIEWCHLISTRow" msprop:Generator_TableClassName="TRENDVIEWCHLISTDataTable" msprop:Generator_TableVarName="tableTRENDVIEWCHLIST">
<xs:complexType>
<xs:sequence>
<xs:element name="IDX" msprop:Generator_ColumnPropNameInTable="IDXColumn" msprop:Generator_ColumnPropNameInRow="IDX" msprop:Generator_UserColumnName="IDX" msprop:Generator_ColumnVarNameInTable="columnIDX" type="xs:int" />
<xs:element name="SHOW" msprop:Generator_ColumnPropNameInTable="SHOWColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="SHOW" msprop:Generator_UserColumnName="SHOW" msprop:Generator_ColumnVarNameInTable="columnSHOW" type="xs:boolean" minOccurs="0" />
<xs:element name="TITLE" msprop:Generator_ColumnPropNameInTable="TITLEColumn" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="TITLE" msprop:Generator_UserColumnName="TITLE" msprop:Generator_ColumnVarNameInTable="columnTITLE" type="xs:string" minOccurs="0" />
<xs:element name="COLOR" msprop:Generator_ColumnPropNameInTable="COLORColumn" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="COLOR" msprop:Generator_UserColumnName="COLOR" msprop:Generator_ColumnVarNameInTable="columnCOLOR" type="xs:int" minOccurs="0" />
<xs:element name="ch" msprop:Generator_ColumnPropNameInTable="chColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="ch" msprop:Generator_UserColumnName="ch" msprop:Generator_ColumnVarNameInTable="columnch" type="xs:int" minOccurs="0" />
<xs:element name="dev" msprop:Generator_ColumnPropNameInTable="devColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="dev" msprop:Generator_UserColumnName="dev" msprop:Generator_ColumnVarNameInTable="columndev" type="xs:int" minOccurs="0" />
<xs:element name="unit" msprop:Generator_ColumnPropNameInTable="unitColumn" msprop:nullValue="-1" msprop:Generator_ColumnPropNameInRow="unit" msprop:Generator_UserColumnName="unit" msprop:Generator_ColumnVarNameInTable="columnunit" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:CHANNEL" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="DEVICE_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:DEVICE" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="GRP_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:GRP" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="NORMAL_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:NORMAL" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="VIEWGROUP_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:VIEWGROUP" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="WIN_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:WIN" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="ALARM_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:ALARM" />
<xs:field xpath="mstns:ATIME" />
<xs:field xpath="mstns:CH" />
<xs:field xpath="mstns:RTYPE" />
</xs:unique>
<xs:unique name="VIEWGROUPR_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:VIEWGROUPR" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
<xs:unique name="TRENDVIEWCHLIST_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TRENDVIEWCHLIST" />
<xs:field xpath="mstns:IDX" />
</xs:unique>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:CHANNEL" ZOrder="9" X="0" Y="0" Height="448" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="444" />
<Shape ID="DesignTable:DEVICE" ZOrder="8" X="168" Y="0" Height="200" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="196" />
<Shape ID="DesignTable:GRP" ZOrder="7" X="336" Y="0" Height="429" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="425" />
<Shape ID="DesignTable:NORMAL" ZOrder="6" X="504" Y="0" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="120" />
<Shape ID="DesignTable:VIEWGROUP" ZOrder="5" X="672" Y="0" Height="105" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="101" />
<Shape ID="DesignTable:WIN" ZOrder="4" X="840" Y="0" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:ALARM" ZOrder="3" X="547" Y="177" Height="372" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="368" />
<Shape ID="DesignTable:VIEWGROUPR" ZOrder="2" X="732" Y="152" Height="105" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:TRENDVIEWCHLIST" ZOrder="1" X="753" Y="283" Height="162" Width="180" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -0,0 +1,219 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
partial class Frm_GraphSetup : System.Windows.Forms.Form
{
//Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
[System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing)
{
try
{
if (disposing && components != null)
{
components.Dispose();
}
}
finally
{
base.Dispose(disposing);
}
}
//Windows Form 디자이너에 필요합니다.
private System.ComponentModel.Container components = null;
//참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
//수정하려면 Windows Form 디자이너를 사용하십시오.
//코드 편집기를 사용하여 수정하지 마십시오.
[System.Diagnostics.DebuggerStepThrough()]private void InitializeComponent()
{
this.GroupBox1 = new System.Windows.Forms.GroupBox();
this.dte = new System.Windows.Forms.DateTimePicker();
this.dts = new System.Windows.Forms.DateTimePicker();
this.label11 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.bt_cancel = new System.Windows.Forms.Button();
this.bt_ok = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.button3 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.GroupBox1.SuspendLayout();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// GroupBox1
//
this.GroupBox1.Controls.Add(this.dte);
this.GroupBox1.Controls.Add(this.dts);
this.GroupBox1.Controls.Add(this.label11);
this.GroupBox1.Controls.Add(this.label10);
this.GroupBox1.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.GroupBox1.Location = new System.Drawing.Point(14, 15);
this.GroupBox1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.GroupBox1.Name = "GroupBox1";
this.GroupBox1.Padding = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.GroupBox1.Size = new System.Drawing.Size(747, 155);
this.GroupBox1.TabIndex = 0;
this.GroupBox1.TabStop = false;
this.GroupBox1.Text = "조회기간";
//
// dte
//
this.dte.CustomFormat = "yyyy년 MM월 dd일 HH시 mm분 ss초";
this.dte.Font = new System.Drawing.Font("맑은 고딕", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.dte.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dte.Location = new System.Drawing.Point(103, 93);
this.dte.Name = "dte";
this.dte.Size = new System.Drawing.Size(629, 50);
this.dte.TabIndex = 30;
//
// dts
//
this.dts.CustomFormat = "yyyy년 MM월 dd일 HH시 mm분 ss초";
this.dts.Font = new System.Drawing.Font("맑은 고딕", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.dts.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dts.Location = new System.Drawing.Point(103, 37);
this.dts.Name = "dts";
this.dts.Size = new System.Drawing.Size(629, 50);
this.dts.TabIndex = 29;
//
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(31, 106);
this.label11.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(50, 25);
this.label11.TabIndex = 25;
this.label11.Text = "종료";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(31, 49);
this.label10.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(50, 25);
this.label10.TabIndex = 12;
this.label10.Text = "시작";
//
// bt_cancel
//
this.bt_cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bt_cancel.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.bt_cancel.Location = new System.Drawing.Point(632, 8);
this.bt_cancel.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.bt_cancel.Name = "bt_cancel";
this.bt_cancel.Size = new System.Drawing.Size(137, 79);
this.bt_cancel.TabIndex = 2;
this.bt_cancel.Text = "취소";
this.bt_cancel.UseVisualStyleBackColor = true;
this.bt_cancel.Click += new System.EventHandler(this.Button1_Click);
//
// bt_ok
//
this.bt_ok.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bt_ok.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.bt_ok.Location = new System.Drawing.Point(486, 8);
this.bt_ok.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.bt_ok.Name = "bt_ok";
this.bt_ok.Size = new System.Drawing.Size(137, 79);
this.bt_ok.TabIndex = 1;
this.bt_ok.Text = "확인";
this.bt_ok.UseVisualStyleBackColor = true;
this.bt_ok.Click += new System.EventHandler(this.Button2_Click);
//
// panel1
//
this.panel1.Controls.Add(this.button3);
this.panel1.Controls.Add(this.button2);
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.bt_ok);
this.panel1.Controls.Add(this.bt_cancel);
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(0, 181);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(777, 92);
this.panel1.TabIndex = 3;
//
// button3
//
this.button3.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.button3.Location = new System.Drawing.Point(296, 7);
this.button3.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(137, 79);
this.button3.TabIndex = 5;
this.button3.Text = "이번달";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// button2
//
this.button2.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.button2.Location = new System.Drawing.Point(149, 6);
this.button2.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(137, 79);
this.button2.TabIndex = 4;
this.button2.Text = "-7일";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click_1);
//
// button1
//
this.button1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.button1.Location = new System.Drawing.Point(5, 6);
this.button1.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(137, 79);
this.button1.TabIndex = 3;
this.button1.Text = "최근 1달";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click_1);
//
// Frm_GraphSetup
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(777, 273);
this.Controls.Add(this.panel1);
this.Controls.Add(this.GroupBox1);
this.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.KeyPreview = true;
this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Frm_GraphSetup";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "데이터 조회 환경";
this.Load += new System.EventHandler(this.Frm_GraphSetup_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Frm_GraphSetup_KeyDown);
this.GroupBox1.ResumeLayout(false);
this.GroupBox1.PerformLayout();
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
internal System.Windows.Forms.Button bt_cancel;
internal System.Windows.Forms.Button bt_ok;
internal System.Windows.Forms.GroupBox GroupBox1;
private Panel panel1;
internal Button button1;
internal Label label11;
internal Button button2;
internal Button button3;
private DateTimePicker dts;
internal Label label10;
private DateTimePicker dte;
}
}

View File

@@ -0,0 +1,83 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using AR;
using System.Linq;
namespace vmsnet
{
public partial class Frm_GraphSetup
{
public Frm_GraphSetup()
{
// 이 호출은 디자이너에 필요합니다.
InitializeComponent();
}
public void Button1_Click(object sender, EventArgs e)
{
this.Close();
}
public void Frm_GraphSetup_Load(object sender, EventArgs e)
{
dts.Value = PUB.TREND.graph_time_start;
dte.Value = PUB.TREND.graph_time_end;
}
public void Button2_Click(object sender, EventArgs e)
{
PUB.TREND.graph_time_start = dts.Value;
PUB.TREND.graph_time_end = dte.Value;
PUB.CONFIG.Save();
DialogResult = System.Windows.Forms.DialogResult.OK;
}
public void Frm_GraphSetup_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Escape:
bt_cancel.PerformClick();
break;
case Keys.Enter:
bt_ok.PerformClick();
break;
}
}
private void button1_Click_1(object sender, EventArgs e)
{
var dates = PUB.DB.GetAvailableDates();
if (dates.Any() == false)
{
UTIL.MsgE("가능한 날짜가 없습니다");
return;
}
var lastmon = dates.Last();
dte.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59"));
dts.Value = dte.Value.AddMonths(-1).AddSeconds(1);
}
private void button2_Click_1(object sender, EventArgs e)
{
dte.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59"));
dts.Value = dte.Value.AddDays(-7).AddSeconds(1);
}
private void button3_Click(object sender, EventArgs e)
{
dts.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01 00:00:00"));
dte.Value = DateTime.Parse(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59"));
}
}
}

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>

895
Viewer/TrendViewer/Frm_trend.Designer.cs generated Normal file
View File

@@ -0,0 +1,895 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace vmsnet
{
partial class Frm_trend : System.Windows.Forms.Form
{
//Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
[System.Diagnostics.DebuggerNonUserCode()]protected override void Dispose(bool disposing)
{
try
{
if (disposing && components != null)
{
components.Dispose();
}
}
finally
{
base.Dispose(disposing);
}
}
//참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
//수정하려면 Windows Form 디자이너를 사용하십시오.
//코드 편집기를 사용하여 수정하지 마십시오.
[System.Diagnostics.DebuggerStepThrough()]
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_trend));
this.TabControl1 = new System.Windows.Forms.TabControl();
this.TabPage1 = new System.Windows.Forms.TabPage();
this.dv_chlist = new System.Windows.Forms.DataGridView();
this.useDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.cnameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.c1DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.c2DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ccDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.idxDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tidxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.bs_Channel = new System.Windows.Forms.BindingSource(this.components);
this.dS1 = new vmsnet.DS1();
this.TabPage2 = new System.Windows.Forms.TabPage();
this.PropertyGrid1 = new System.Windows.Forms.PropertyGrid();
this.ToolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.bt_cursor2 = new System.Windows.Forms.Button();
this.bt_cursor1 = new System.Windows.Forms.Button();
this.bt_clear = new System.Windows.Forms.Button();
this.cm_grpmenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
this.bs_grp = new System.Windows.Forms.BindingSource(this.components);
this.Panel1 = new System.Windows.Forms.Panel();
this.dv_grp = new System.Windows.Forms.DataGridView();
this.cnameDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.valueDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.idxDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.gnameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.rnameDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.label1 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.panel7 = new System.Windows.Forms.Panel();
this.bt_delgroup = new System.Windows.Forms.LinkLabel();
this.LinkLabel5 = new System.Windows.Forms.LinkLabel();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.bt_run = new System.Windows.Forms.Button();
this.Button2 = new System.Windows.Forms.Button();
this.Button1 = new System.Windows.Forms.Button();
this.bt_print = new System.Windows.Forms.Button();
this.panel6 = new System.Windows.Forms.Panel();
this.cmb_group = new System.Windows.Forms.ComboBox();
this.Label4 = new System.Windows.Forms.Label();
this.ContextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.PrintDocument1 = new System.Drawing.Printing.PrintDocument();
this.PrintPreviewDialog1 = new System.Windows.Forms.PrintPreviewDialog();
this.ToolStrip1 = new System.Windows.Forms.ToolStrip();
this.lb_datatcnt = new System.Windows.Forms.ToolStripLabel();
this.lb_Area = new System.Windows.Forms.ToolStripLabel();
this.lb_selgroup = new System.Windows.Forms.ToolStripLabel();
this.lb_filesearchtime = new System.Windows.Forms.ToolStripLabel();
this.lb_querytime = new System.Windows.Forms.ToolStripLabel();
this.ToolStripButton1 = new System.Windows.Forms.ToolStripButton();
this.lb_charttime = new System.Windows.Forms.ToolStripLabel();
this.lb_totaltime = new System.Windows.Forms.ToolStripLabel();
this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel();
this.btConfig = new System.Windows.Forms.ToolStripButton();
this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.Panel2 = new System.Windows.Forms.Panel();
this.panel8 = new System.Windows.Forms.Panel();
this.Panel4 = new System.Windows.Forms.Panel();
this.TabControl1.SuspendLayout();
this.TabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dv_chlist)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bs_Channel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dS1)).BeginInit();
this.TabPage2.SuspendLayout();
this.cm_grpmenu.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.bs_grp)).BeginInit();
this.Panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dv_grp)).BeginInit();
this.panel7.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
this.panel6.SuspendLayout();
this.ContextMenuStrip2.SuspendLayout();
this.ToolStrip1.SuspendLayout();
this.TableLayoutPanel1.SuspendLayout();
this.Panel2.SuspendLayout();
this.Panel4.SuspendLayout();
this.SuspendLayout();
//
// TabControl1
//
this.TabControl1.Controls.Add(this.TabPage1);
this.TabControl1.Controls.Add(this.TabPage2);
this.TabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.TabControl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.TabControl1.Location = new System.Drawing.Point(987, 3);
this.TabControl1.Name = "TabControl1";
this.TabControl1.SelectedIndex = 0;
this.TabControl1.Size = new System.Drawing.Size(194, 762);
this.TabControl1.TabIndex = 5;
//
// TabPage1
//
this.TabPage1.Controls.Add(this.dv_chlist);
this.TabPage1.Location = new System.Drawing.Point(4, 34);
this.TabPage1.Name = "TabPage1";
this.TabPage1.Padding = new System.Windows.Forms.Padding(3);
this.TabPage1.Size = new System.Drawing.Size(186, 724);
this.TabPage1.TabIndex = 0;
this.TabPage1.Text = "셀";
this.TabPage1.UseVisualStyleBackColor = true;
//
// dv_chlist
//
this.dv_chlist.AllowUserToAddRows = false;
this.dv_chlist.AllowUserToDeleteRows = false;
this.dv_chlist.AllowUserToResizeColumns = false;
this.dv_chlist.AllowUserToResizeRows = false;
this.dv_chlist.AutoGenerateColumns = false;
this.dv_chlist.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
this.dv_chlist.BackgroundColor = System.Drawing.Color.White;
this.dv_chlist.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.dv_chlist.ColumnHeadersHeight = 34;
this.dv_chlist.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.dv_chlist.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.useDataGridViewCheckBoxColumn,
this.cnameDataGridViewTextBoxColumn1,
this.c1DataGridViewTextBoxColumn,
this.c2DataGridViewTextBoxColumn,
this.ccDataGridViewTextBoxColumn,
this.idxDataGridViewTextBoxColumn1,
this.tidxDataGridViewTextBoxColumn});
this.dv_chlist.DataSource = this.bs_Channel;
this.dv_chlist.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv_chlist.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.dv_chlist.Location = new System.Drawing.Point(3, 3);
this.dv_chlist.Name = "dv_chlist";
this.dv_chlist.RowHeadersVisible = false;
this.dv_chlist.RowHeadersWidth = 62;
this.dv_chlist.RowTemplate.Height = 23;
this.dv_chlist.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dv_chlist.Size = new System.Drawing.Size(180, 718);
this.dv_chlist.TabIndex = 6;
this.dv_chlist.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dv_chlist_CellContentClick);
this.dv_chlist.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.DataGridView1_CellFormatting);
this.dv_chlist.MouseLeave += new System.EventHandler(this.dv_chlist_MouseLeave);
this.dv_chlist.MouseMove += new System.Windows.Forms.MouseEventHandler(this.dv_chlist_MouseMove);
//
// useDataGridViewCheckBoxColumn
//
this.useDataGridViewCheckBoxColumn.DataPropertyName = "use";
this.useDataGridViewCheckBoxColumn.HeaderText = "√";
this.useDataGridViewCheckBoxColumn.MinimumWidth = 10;
this.useDataGridViewCheckBoxColumn.Name = "useDataGridViewCheckBoxColumn";
this.useDataGridViewCheckBoxColumn.ReadOnly = true;
this.useDataGridViewCheckBoxColumn.Width = 29;
//
// cnameDataGridViewTextBoxColumn1
//
this.cnameDataGridViewTextBoxColumn1.DataPropertyName = "cname";
this.cnameDataGridViewTextBoxColumn1.HeaderText = "채널";
this.cnameDataGridViewTextBoxColumn1.MinimumWidth = 8;
this.cnameDataGridViewTextBoxColumn1.Name = "cnameDataGridViewTextBoxColumn1";
this.cnameDataGridViewTextBoxColumn1.Width = 78;
//
// c1DataGridViewTextBoxColumn
//
this.c1DataGridViewTextBoxColumn.DataPropertyName = "c1";
this.c1DataGridViewTextBoxColumn.HeaderText = "C1";
this.c1DataGridViewTextBoxColumn.MinimumWidth = 8;
this.c1DataGridViewTextBoxColumn.Name = "c1DataGridViewTextBoxColumn";
this.c1DataGridViewTextBoxColumn.Width = 74;
//
// c2DataGridViewTextBoxColumn
//
this.c2DataGridViewTextBoxColumn.DataPropertyName = "c2";
this.c2DataGridViewTextBoxColumn.HeaderText = "C2";
this.c2DataGridViewTextBoxColumn.MinimumWidth = 8;
this.c2DataGridViewTextBoxColumn.Name = "c2DataGridViewTextBoxColumn";
this.c2DataGridViewTextBoxColumn.Width = 74;
//
// ccDataGridViewTextBoxColumn
//
this.ccDataGridViewTextBoxColumn.DataPropertyName = "cc";
this.ccDataGridViewTextBoxColumn.HeaderText = "cc";
this.ccDataGridViewTextBoxColumn.MinimumWidth = 8;
this.ccDataGridViewTextBoxColumn.Name = "ccDataGridViewTextBoxColumn";
this.ccDataGridViewTextBoxColumn.Visible = false;
this.ccDataGridViewTextBoxColumn.Width = 68;
//
// idxDataGridViewTextBoxColumn1
//
this.idxDataGridViewTextBoxColumn1.DataPropertyName = "idx";
this.idxDataGridViewTextBoxColumn1.HeaderText = "idx";
this.idxDataGridViewTextBoxColumn1.MinimumWidth = 8;
this.idxDataGridViewTextBoxColumn1.Name = "idxDataGridViewTextBoxColumn1";
this.idxDataGridViewTextBoxColumn1.Visible = false;
this.idxDataGridViewTextBoxColumn1.Width = 73;
//
// tidxDataGridViewTextBoxColumn
//
this.tidxDataGridViewTextBoxColumn.DataPropertyName = "tidx";
this.tidxDataGridViewTextBoxColumn.HeaderText = "tidx";
this.tidxDataGridViewTextBoxColumn.MinimumWidth = 8;
this.tidxDataGridViewTextBoxColumn.Name = "tidxDataGridViewTextBoxColumn";
this.tidxDataGridViewTextBoxColumn.Visible = false;
this.tidxDataGridViewTextBoxColumn.Width = 78;
//
// bs_Channel
//
this.bs_Channel.DataMember = "channel";
this.bs_Channel.DataSource = this.dS1;
//
// dS1
//
this.dS1.DataSetName = "DS1";
this.dS1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
//
// TabPage2
//
this.TabPage2.Controls.Add(this.PropertyGrid1);
this.TabPage2.Location = new System.Drawing.Point(4, 34);
this.TabPage2.Name = "TabPage2";
this.TabPage2.Padding = new System.Windows.Forms.Padding(3);
this.TabPage2.Size = new System.Drawing.Size(186, 724);
this.TabPage2.TabIndex = 1;
this.TabPage2.Text = "기타";
this.TabPage2.UseVisualStyleBackColor = true;
//
// PropertyGrid1
//
this.PropertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
this.PropertyGrid1.Location = new System.Drawing.Point(3, 3);
this.PropertyGrid1.Name = "PropertyGrid1";
this.PropertyGrid1.Size = new System.Drawing.Size(180, 718);
this.PropertyGrid1.TabIndex = 0;
//
// bt_cursor2
//
this.bt_cursor2.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.bt_cursor2.Location = new System.Drawing.Point(75, 4);
this.bt_cursor2.Name = "bt_cursor2";
this.bt_cursor2.Size = new System.Drawing.Size(66, 48);
this.bt_cursor2.TabIndex = 12;
this.bt_cursor2.Tag = "1";
this.bt_cursor2.Text = "C2\r\nF11";
this.ToolTip1.SetToolTip(this.bt_cursor2, "커서를 설정합니다.");
this.bt_cursor2.UseVisualStyleBackColor = true;
this.bt_cursor2.Click += new System.EventHandler(this.bt_cursor_Click);
//
// bt_cursor1
//
this.bt_cursor1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.bt_cursor1.Location = new System.Drawing.Point(8, 4);
this.bt_cursor1.Name = "bt_cursor1";
this.bt_cursor1.Size = new System.Drawing.Size(66, 48);
this.bt_cursor1.TabIndex = 11;
this.bt_cursor1.Tag = "0";
this.bt_cursor1.Text = "C1\r\nF10";
this.ToolTip1.SetToolTip(this.bt_cursor1, "커서를 설정합니다.");
this.bt_cursor1.UseVisualStyleBackColor = true;
this.bt_cursor1.Click += new System.EventHandler(this.bt_cursor_Click);
//
// bt_clear
//
this.bt_clear.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.bt_clear.Location = new System.Drawing.Point(142, 4);
this.bt_clear.Name = "bt_clear";
this.bt_clear.Size = new System.Drawing.Size(96, 48);
this.bt_clear.TabIndex = 14;
this.bt_clear.Text = "C1, C2\r\nHide";
this.ToolTip1.SetToolTip(this.bt_clear, "커서를 설정합니다.");
this.bt_clear.UseVisualStyleBackColor = true;
this.bt_clear.Click += new System.EventHandler(this.bt_Hide_Click);
//
// cm_grpmenu
//
this.cm_grpmenu.ImageScalingSize = new System.Drawing.Size(24, 24);
this.cm_grpmenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem3});
this.cm_grpmenu.Name = "ContextMenuStrip1";
this.cm_grpmenu.Size = new System.Drawing.Size(248, 36);
//
// ToolStripMenuItem3
//
this.ToolStripMenuItem3.Name = "ToolStripMenuItem3";
this.ToolStripMenuItem3.Size = new System.Drawing.Size(247, 32);
this.ToolStripMenuItem3.Text = "Channel Index(TEST)";
this.ToolStripMenuItem3.Click += new System.EventHandler(this.ToolStripMenuItem3_Click);
//
// bs_grp
//
this.bs_grp.DataMember = "group";
this.bs_grp.DataSource = this.dS1;
//
// Panel1
//
this.Panel1.BackColor = System.Drawing.Color.WhiteSmoke;
this.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.Panel1.Controls.Add(this.dv_grp);
this.Panel1.Controls.Add(this.label1);
this.Panel1.Controls.Add(this.textBox1);
this.Panel1.Controls.Add(this.panel7);
this.Panel1.Controls.Add(this.tableLayoutPanel2);
this.Panel1.Controls.Add(this.panel6);
this.Panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.Panel1.Location = new System.Drawing.Point(3, 3);
this.Panel1.Name = "Panel1";
this.Panel1.Size = new System.Drawing.Size(215, 762);
this.Panel1.TabIndex = 7;
//
// dv_grp
//
this.dv_grp.AllowUserToAddRows = false;
this.dv_grp.AllowUserToDeleteRows = false;
this.dv_grp.AllowUserToResizeColumns = false;
this.dv_grp.AllowUserToResizeRows = false;
this.dv_grp.AutoGenerateColumns = false;
this.dv_grp.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
this.dv_grp.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dv_grp.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.dv_grp.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv_grp.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.cnameDataGridViewTextBoxColumn2,
this.valueDataGridViewTextBoxColumn1,
this.idxDataGridViewTextBoxColumn2,
this.gnameDataGridViewTextBoxColumn1,
this.rnameDataGridViewTextBoxColumn1});
this.dv_grp.ContextMenuStrip = this.cm_grpmenu;
this.dv_grp.DataSource = this.bs_grp;
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 9);
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv_grp.DefaultCellStyle = dataGridViewCellStyle1;
this.dv_grp.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv_grp.Location = new System.Drawing.Point(0, 33);
this.dv_grp.Name = "dv_grp";
this.dv_grp.ReadOnly = true;
this.dv_grp.RowHeadersVisible = false;
this.dv_grp.RowHeadersWidth = 62;
this.dv_grp.RowTemplate.Height = 23;
this.dv_grp.Size = new System.Drawing.Size(213, 533);
this.dv_grp.TabIndex = 0;
this.dv_grp.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DataGridView2_CellDoubleClick);
//
// cnameDataGridViewTextBoxColumn2
//
this.cnameDataGridViewTextBoxColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.cnameDataGridViewTextBoxColumn2.DataPropertyName = "cname";
this.cnameDataGridViewTextBoxColumn2.HeaderText = "Group List";
this.cnameDataGridViewTextBoxColumn2.MinimumWidth = 8;
this.cnameDataGridViewTextBoxColumn2.Name = "cnameDataGridViewTextBoxColumn2";
this.cnameDataGridViewTextBoxColumn2.ReadOnly = true;
//
// valueDataGridViewTextBoxColumn1
//
this.valueDataGridViewTextBoxColumn1.DataPropertyName = "value";
this.valueDataGridViewTextBoxColumn1.HeaderText = "value";
this.valueDataGridViewTextBoxColumn1.MinimumWidth = 8;
this.valueDataGridViewTextBoxColumn1.Name = "valueDataGridViewTextBoxColumn1";
this.valueDataGridViewTextBoxColumn1.ReadOnly = true;
this.valueDataGridViewTextBoxColumn1.Visible = false;
this.valueDataGridViewTextBoxColumn1.Width = 60;
//
// idxDataGridViewTextBoxColumn2
//
this.idxDataGridViewTextBoxColumn2.DataPropertyName = "idx";
this.idxDataGridViewTextBoxColumn2.HeaderText = "idx";
this.idxDataGridViewTextBoxColumn2.MinimumWidth = 8;
this.idxDataGridViewTextBoxColumn2.Name = "idxDataGridViewTextBoxColumn2";
this.idxDataGridViewTextBoxColumn2.ReadOnly = true;
this.idxDataGridViewTextBoxColumn2.Visible = false;
this.idxDataGridViewTextBoxColumn2.Width = 47;
//
// gnameDataGridViewTextBoxColumn1
//
this.gnameDataGridViewTextBoxColumn1.DataPropertyName = "gname";
this.gnameDataGridViewTextBoxColumn1.HeaderText = "gname";
this.gnameDataGridViewTextBoxColumn1.MinimumWidth = 8;
this.gnameDataGridViewTextBoxColumn1.Name = "gnameDataGridViewTextBoxColumn1";
this.gnameDataGridViewTextBoxColumn1.ReadOnly = true;
this.gnameDataGridViewTextBoxColumn1.Visible = false;
this.gnameDataGridViewTextBoxColumn1.Width = 69;
//
// rnameDataGridViewTextBoxColumn1
//
this.rnameDataGridViewTextBoxColumn1.DataPropertyName = "rname";
this.rnameDataGridViewTextBoxColumn1.HeaderText = "rname";
this.rnameDataGridViewTextBoxColumn1.MinimumWidth = 8;
this.rnameDataGridViewTextBoxColumn1.Name = "rnameDataGridViewTextBoxColumn1";
this.rnameDataGridViewTextBoxColumn1.ReadOnly = true;
this.rnameDataGridViewTextBoxColumn1.Visible = false;
this.rnameDataGridViewTextBoxColumn1.Width = 66;
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.label1.Location = new System.Drawing.Point(0, 566);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(213, 30);
this.label1.TabIndex = 23;
this.label1.Text = "Channel List";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// textBox1
//
this.textBox1.BackColor = System.Drawing.Color.Silver;
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs_grp, "value", true));
this.textBox1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.textBox1.Location = new System.Drawing.Point(0, 596);
this.textBox1.Multiline = true;
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(213, 46);
this.textBox1.TabIndex = 22;
this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// panel7
//
this.panel7.Controls.Add(this.bt_delgroup);
this.panel7.Controls.Add(this.LinkLabel5);
this.panel7.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel7.Location = new System.Drawing.Point(0, 642);
this.panel7.Name = "panel7";
this.panel7.Padding = new System.Windows.Forms.Padding(5, 8, 0, 0);
this.panel7.Size = new System.Drawing.Size(213, 31);
this.panel7.TabIndex = 21;
//
// bt_delgroup
//
this.bt_delgroup.AutoSize = true;
this.bt_delgroup.Dock = System.Windows.Forms.DockStyle.Left;
this.bt_delgroup.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.bt_delgroup.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
this.bt_delgroup.Location = new System.Drawing.Point(93, 8);
this.bt_delgroup.Name = "bt_delgroup";
this.bt_delgroup.Size = new System.Drawing.Size(88, 22);
this.bt_delgroup.TabIndex = 11;
this.bt_delgroup.TabStop = true;
this.bt_delgroup.Text = "선택그룹삭제";
this.bt_delgroup.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLabel4_LinkClicked);
//
// LinkLabel5
//
this.LinkLabel5.AutoSize = true;
this.LinkLabel5.Dock = System.Windows.Forms.DockStyle.Left;
this.LinkLabel5.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.LinkLabel5.Location = new System.Drawing.Point(5, 8);
this.LinkLabel5.Name = "LinkLabel5";
this.LinkLabel5.Size = new System.Drawing.Size(88, 22);
this.LinkLabel5.TabIndex = 10;
this.LinkLabel5.TabStop = true;
this.LinkLabel5.Text = "신규그룹생성";
this.LinkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLabel5_LinkClicked);
//
// tableLayoutPanel2
//
this.tableLayoutPanel2.ColumnCount = 2;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Controls.Add(this.bt_run, 0, 0);
this.tableLayoutPanel2.Controls.Add(this.Button2, 1, 0);
this.tableLayoutPanel2.Controls.Add(this.Button1, 1, 1);
this.tableLayoutPanel2.Controls.Add(this.bt_print, 0, 1);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Bottom;
this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 673);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 2;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(213, 87);
this.tableLayoutPanel2.TabIndex = 20;
//
// bt_run
//
this.bt_run.Dock = System.Windows.Forms.DockStyle.Fill;
this.bt_run.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.bt_run.Location = new System.Drawing.Point(3, 3);
this.bt_run.Name = "bt_run";
this.bt_run.Size = new System.Drawing.Size(100, 37);
this.bt_run.TabIndex = 7;
this.bt_run.Text = "조회";
this.bt_run.UseVisualStyleBackColor = true;
this.bt_run.Click += new System.EventHandler(this.bt_run_Click);
//
// Button2
//
this.Button2.Dock = System.Windows.Forms.DockStyle.Fill;
this.Button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Button2.Location = new System.Drawing.Point(109, 3);
this.Button2.Name = "Button2";
this.Button2.Size = new System.Drawing.Size(101, 37);
this.Button2.TabIndex = 18;
this.Button2.Text = "조회범위설정";
this.Button2.UseVisualStyleBackColor = true;
this.Button2.Click += new System.EventHandler(this.Button2_Click_2);
//
// Button1
//
this.Button1.Dock = System.Windows.Forms.DockStyle.Fill;
this.Button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Button1.Location = new System.Drawing.Point(109, 46);
this.Button1.Name = "Button1";
this.Button1.Size = new System.Drawing.Size(101, 38);
this.Button1.TabIndex = 17;
this.Button1.Text = "저장(PNG)";
this.Button1.UseVisualStyleBackColor = true;
this.Button1.Click += new System.EventHandler(this.Button1_Click_1);
//
// bt_print
//
this.bt_print.Dock = System.Windows.Forms.DockStyle.Fill;
this.bt_print.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.bt_print.Location = new System.Drawing.Point(3, 46);
this.bt_print.Name = "bt_print";
this.bt_print.Size = new System.Drawing.Size(100, 38);
this.bt_print.TabIndex = 14;
this.bt_print.Text = "인쇄";
this.bt_print.UseVisualStyleBackColor = true;
this.bt_print.Click += new System.EventHandler(this.Button1_Click);
//
// panel6
//
this.panel6.Controls.Add(this.cmb_group);
this.panel6.Controls.Add(this.Label4);
this.panel6.Dock = System.Windows.Forms.DockStyle.Top;
this.panel6.Location = new System.Drawing.Point(0, 0);
this.panel6.Name = "panel6";
this.panel6.Padding = new System.Windows.Forms.Padding(0, 5, 0, 5);
this.panel6.Size = new System.Drawing.Size(213, 33);
this.panel6.TabIndex = 19;
//
// cmb_group
//
this.cmb_group.Dock = System.Windows.Forms.DockStyle.Fill;
this.cmb_group.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmb_group.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.cmb_group.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.cmb_group.FormattingEnabled = true;
this.cmb_group.Location = new System.Drawing.Point(43, 5);
this.cmb_group.Name = "cmb_group";
this.cmb_group.Size = new System.Drawing.Size(170, 30);
this.cmb_group.TabIndex = 16;
this.cmb_group.SelectedIndexChanged += new System.EventHandler(this.cmb_group_SelectedIndexChanged);
//
// Label4
//
this.Label4.Dock = System.Windows.Forms.DockStyle.Left;
this.Label4.Location = new System.Drawing.Point(0, 5);
this.Label4.Name = "Label4";
this.Label4.Size = new System.Drawing.Size(43, 23);
this.Label4.TabIndex = 15;
this.Label4.Text = "대분류";
this.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// ContextMenuStrip2
//
this.ContextMenuStrip2.ImageScalingSize = new System.Drawing.Size(24, 24);
this.ContextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem1,
this.ToolStripMenuItem2});
this.ContextMenuStrip2.Name = "ContextMenuStrip1";
this.ContextMenuStrip2.Size = new System.Drawing.Size(157, 68);
//
// ToolStripMenuItem1
//
this.ToolStripMenuItem1.Name = "ToolStripMenuItem1";
this.ToolStripMenuItem1.Size = new System.Drawing.Size(156, 32);
this.ToolStripMenuItem1.Text = "신규생성";
this.ToolStripMenuItem1.Click += new System.EventHandler(this.ToolStripMenuItem1_Click);
//
// ToolStripMenuItem2
//
this.ToolStripMenuItem2.Name = "ToolStripMenuItem2";
this.ToolStripMenuItem2.Size = new System.Drawing.Size(156, 32);
this.ToolStripMenuItem2.Text = "선택삭제";
this.ToolStripMenuItem2.Click += new System.EventHandler(this.ToolStripMenuItem2_Click);
//
// PrintDocument1
//
this.PrintDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.PrintDocument1_PrintPage);
//
// PrintPreviewDialog1
//
this.PrintPreviewDialog1.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.PrintPreviewDialog1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.PrintPreviewDialog1.ClientSize = new System.Drawing.Size(400, 300);
this.PrintPreviewDialog1.Document = this.PrintDocument1;
this.PrintPreviewDialog1.Enabled = true;
this.PrintPreviewDialog1.Icon = ((System.Drawing.Icon)(resources.GetObject("PrintPreviewDialog1.Icon")));
this.PrintPreviewDialog1.Name = "PrintPreviewDialog1";
this.PrintPreviewDialog1.UseAntiAlias = true;
this.PrintPreviewDialog1.Visible = false;
//
// ToolStrip1
//
this.ToolStrip1.BackColor = System.Drawing.Color.White;
this.ToolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.ToolStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
this.ToolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.lb_datatcnt,
this.lb_Area,
this.lb_selgroup,
this.lb_filesearchtime,
this.lb_querytime,
this.ToolStripButton1,
this.lb_charttime,
this.lb_totaltime,
this.toolStripLabel1,
this.toolStripLabel2,
this.toolStripLabel3,
this.btConfig});
this.ToolStrip1.Location = new System.Drawing.Point(0, 768);
this.ToolStrip1.Name = "ToolStrip1";
this.ToolStrip1.Size = new System.Drawing.Size(1184, 33);
this.ToolStrip1.TabIndex = 7;
this.ToolStrip1.Text = "ToolStrip1";
//
// lb_datatcnt
//
this.lb_datatcnt.Name = "lb_datatcnt";
this.lb_datatcnt.Size = new System.Drawing.Size(121, 28);
this.lb_datatcnt.Text = "<dataCount>";
//
// lb_Area
//
this.lb_Area.Name = "lb_Area";
this.lb_Area.Size = new System.Drawing.Size(72, 28);
this.lb_Area.Text = "<area>";
//
// lb_selgroup
//
this.lb_selgroup.Name = "lb_selgroup";
this.lb_selgroup.Size = new System.Drawing.Size(89, 28);
this.lb_selgroup.Text = "<Group>";
//
// lb_filesearchtime
//
this.lb_filesearchtime.Name = "lb_filesearchtime";
this.lb_filesearchtime.Size = new System.Drawing.Size(114, 28);
this.lb_filesearchtime.Text = "<filesearch>";
//
// lb_querytime
//
this.lb_querytime.Name = "lb_querytime";
this.lb_querytime.Size = new System.Drawing.Size(120, 28);
this.lb_querytime.Text = "<querytime>";
//
// ToolStripButton1
//
this.ToolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.ToolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.ToolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("ToolStripButton1.Image")));
this.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.ToolStripButton1.Name = "ToolStripButton1";
this.ToolStripButton1.Size = new System.Drawing.Size(34, 28);
this.ToolStripButton1.Text = "ToolStripButton1";
this.ToolStripButton1.Click += new System.EventHandler(this.ToolStripButton1_Click_1);
//
// lb_charttime
//
this.lb_charttime.Name = "lb_charttime";
this.lb_charttime.Size = new System.Drawing.Size(94, 28);
this.lb_charttime.Text = "<refresh>";
//
// lb_totaltime
//
this.lb_totaltime.Name = "lb_totaltime";
this.lb_totaltime.Size = new System.Drawing.Size(74, 28);
this.lb_totaltime.Text = "<total>";
//
// toolStripLabel1
//
this.toolStripLabel1.Name = "toolStripLabel1";
this.toolStripLabel1.Size = new System.Drawing.Size(117, 28);
this.toolStripLabel1.Text = "<value info>";
//
// toolStripLabel2
//
this.toolStripLabel2.Name = "toolStripLabel2";
this.toolStripLabel2.Size = new System.Drawing.Size(111, 28);
this.toolStripLabel2.Text = "<time info>";
//
// toolStripLabel3
//
this.toolStripLabel3.Name = "toolStripLabel3";
this.toolStripLabel3.Size = new System.Drawing.Size(89, 28);
this.toolStripLabel3.Text = "<config>";
//
// btConfig
//
this.btConfig.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.btConfig.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.btConfig.Image = global::vmsnet.Properties.Resources.graphsetting;
this.btConfig.ImageTransparentColor = System.Drawing.Color.Magenta;
this.btConfig.Name = "btConfig";
this.btConfig.Size = new System.Drawing.Size(34, 28);
this.btConfig.Text = "config";
this.btConfig.Click += new System.EventHandler(this.btConfig_Click);
//
// TableLayoutPanel1
//
this.TableLayoutPanel1.ColumnCount = 3;
this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 221F));
this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F));
this.TableLayoutPanel1.Controls.Add(this.Panel1, 0, 0);
this.TableLayoutPanel1.Controls.Add(this.TabControl1, 2, 0);
this.TableLayoutPanel1.Controls.Add(this.Panel2, 1, 0);
this.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.TableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.TableLayoutPanel1.Name = "TableLayoutPanel1";
this.TableLayoutPanel1.RowCount = 1;
this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.TableLayoutPanel1.Size = new System.Drawing.Size(1184, 768);
this.TableLayoutPanel1.TabIndex = 9;
//
// Panel2
//
this.Panel2.Controls.Add(this.panel8);
this.Panel2.Controls.Add(this.Panel4);
this.Panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.Panel2.Location = new System.Drawing.Point(224, 3);
this.Panel2.Name = "Panel2";
this.Panel2.Padding = new System.Windows.Forms.Padding(5);
this.Panel2.Size = new System.Drawing.Size(757, 762);
this.Panel2.TabIndex = 8;
//
// panel8
//
this.panel8.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel8.Location = new System.Drawing.Point(5, 5);
this.panel8.Name = "panel8";
this.panel8.Size = new System.Drawing.Size(747, 695);
this.panel8.TabIndex = 2;
//
// Panel4
//
this.Panel4.Controls.Add(this.bt_clear);
this.Panel4.Controls.Add(this.bt_cursor2);
this.Panel4.Controls.Add(this.bt_cursor1);
this.Panel4.Dock = System.Windows.Forms.DockStyle.Bottom;
this.Panel4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Panel4.Location = new System.Drawing.Point(5, 700);
this.Panel4.Name = "Panel4";
this.Panel4.Padding = new System.Windows.Forms.Padding(5);
this.Panel4.Size = new System.Drawing.Size(747, 57);
this.Panel4.TabIndex = 0;
//
// Frm_trend
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(1184, 801);
this.Controls.Add(this.TableLayoutPanel1);
this.Controls.Add(this.ToolStrip1);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.999999F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.KeyPreview = true;
this.Name = "Frm_trend";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "트렌드뷰(과거)";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Frm_trend_FormClosing);
this.Load += new System.EventHandler(this.Frm_trend_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Frm_trend_KeyDown);
this.TabControl1.ResumeLayout(false);
this.TabPage1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dv_chlist)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bs_Channel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dS1)).EndInit();
this.TabPage2.ResumeLayout(false);
this.cm_grpmenu.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.bs_grp)).EndInit();
this.Panel1.ResumeLayout(false);
this.Panel1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.dv_grp)).EndInit();
this.panel7.ResumeLayout(false);
this.panel7.PerformLayout();
this.tableLayoutPanel2.ResumeLayout(false);
this.panel6.ResumeLayout(false);
this.ContextMenuStrip2.ResumeLayout(false);
this.ToolStrip1.ResumeLayout(false);
this.ToolStrip1.PerformLayout();
this.TableLayoutPanel1.ResumeLayout(false);
this.Panel2.ResumeLayout(false);
this.Panel4.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
internal System.Windows.Forms.TabControl TabControl1;
internal System.Windows.Forms.TabPage TabPage1;
internal System.Windows.Forms.TabPage TabPage2;
internal System.Windows.Forms.PropertyGrid PropertyGrid1;
internal System.Windows.Forms.ToolTip ToolTip1;
internal System.Windows.Forms.Button bt_run;
internal System.Windows.Forms.LinkLabel bt_delgroup;
internal System.Windows.Forms.LinkLabel LinkLabel5;
internal System.Windows.Forms.DataGridView dv_chlist;
internal System.Windows.Forms.ContextMenuStrip ContextMenuStrip2;
internal System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem1;
internal System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem2;
internal System.Windows.Forms.Button bt_print;
internal System.Drawing.Printing.PrintDocument PrintDocument1;
internal System.Windows.Forms.PrintPreviewDialog PrintPreviewDialog1;
internal System.Windows.Forms.Panel Panel1;
internal System.Windows.Forms.ContextMenuStrip cm_grpmenu;
internal System.Windows.Forms.ToolStripMenuItem ToolStripMenuItem3;
internal System.Windows.Forms.BindingSource bs_grp;
internal System.Windows.Forms.ComboBox cmb_group;
internal System.Windows.Forms.Label Label4;
internal System.Windows.Forms.BindingSource bs_Channel;
internal System.Windows.Forms.ToolStrip ToolStrip1;
internal System.Windows.Forms.ToolStripLabel lb_datatcnt;
internal System.Windows.Forms.ToolStripLabel lb_querytime;
internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1;
internal System.Windows.Forms.Button Button1;
internal System.Windows.Forms.Panel Panel2;
internal System.Windows.Forms.Panel Panel4;
internal System.Windows.Forms.ToolStripButton ToolStripButton1;
internal System.Windows.Forms.ToolStripLabel lb_Area;
internal System.Windows.Forms.ToolStripLabel lb_selgroup;
internal System.Windows.Forms.Button bt_cursor2;
internal System.Windows.Forms.Button bt_cursor1;
internal System.Windows.Forms.ToolStripLabel lb_filesearchtime;
internal System.Windows.Forms.ToolStripLabel lb_charttime;
internal System.Windows.Forms.ToolStripLabel lb_totaltime;
internal System.Windows.Forms.Button Button2;
private System.ComponentModel.IContainer components;
private ToolStripLabel toolStripLabel1;
private Panel panel7;
private TableLayoutPanel tableLayoutPanel2;
private Panel panel6;
private ToolStripLabel toolStripLabel2;
private DS1 dS1;
private ToolStripLabel toolStripLabel3;
private Panel panel8;
private DataGridView dv_grp;
private TextBox textBox1;
private Label label1;
private DataGridViewTextBoxColumn cnameDataGridViewTextBoxColumn2;
private DataGridViewTextBoxColumn valueDataGridViewTextBoxColumn1;
private DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn2;
private DataGridViewTextBoxColumn gnameDataGridViewTextBoxColumn1;
private DataGridViewTextBoxColumn rnameDataGridViewTextBoxColumn1;
private ToolStripButton btConfig;
internal Button bt_clear;
private DataGridViewCheckBoxColumn useDataGridViewCheckBoxColumn;
private DataGridViewTextBoxColumn cnameDataGridViewTextBoxColumn1;
private DataGridViewTextBoxColumn c1DataGridViewTextBoxColumn;
private DataGridViewTextBoxColumn c2DataGridViewTextBoxColumn;
private DataGridViewTextBoxColumn ccDataGridViewTextBoxColumn;
private DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn1;
private DataGridViewTextBoxColumn tidxDataGridViewTextBoxColumn;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,597 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bs_Channel.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 54</value>
</metadata>
<metadata name="dS1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>241, 54</value>
</metadata>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="cm_grpmenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>581, 17</value>
</metadata>
<metadata name="bs_grp.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>706, 17</value>
</metadata>
<metadata name="ContextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>117, 17</value>
</metadata>
<metadata name="PrintDocument1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>276, 17</value>
</metadata>
<metadata name="PrintPreviewDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>419, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PrintPreviewDialog1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAYAICAQAAAAAADoAgAAZgAAABAQEAAAAAAAKAEAAE4DAAAgIAAAAQAIAKgIAAB2BAAAEBAAAAEA
CABoBQAAHg0AACAgAAABACAAqBAAAIYSAAAQEAAAAQAgAGgEAAAuIwAAKAAAACAAAABAAAAAAQAEAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA
/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIoiI
iIiIiIiIiIiIiIiIiIiCIigiIiIozMzMzMzMyCIogiIoIiIiKM7m5ubm5sgiKIIiKCIiIijObm5ubm7I
IiiCIigiIiIozubm5ubmyCIogiIoIiIiKM5ubm5ubsgiKIIiKCIiIijO5ubm5ubIIiiIiIiIiIiIzm5u
bm5uyCIogRERERERGM7u7u7u7sgiKIHZWVlZWRjMzMzMzMzIIiiB1ZWVlZUYiIiIiIiIiIiIgdlZWVlZ
GDMzMzMzMzMzOIHVlZWVlRg/uLi4uLi4uDiB2VlZWVkYP7uLi4uLi4s4gdWVlZWVGD+4uLi4uLi4OIHZ
WVlZWRg/u4uLi4uLiziB1ZWVlZUYP7i4uLi4uLg4gdlZWVlZGD+7i4uLi4uLOIHVlZWVlRg/uLi4uLi4
uDiB3d3d3d0YP7uLi4uLi4s4gRERERERGD+4uLi4uLi4OIiIiIiIiIg/u4uLi4uLiziCIiIiIiIoP7i4
uLi4uLg4giIiIiIiKD+7i4uLi4uLOIIiIiIiIig/uLi4uLi4uDiCIiIiIiIoP7u7u7u7u7s4giIiIiIi
KD//////////OIIiIiIiIigzMzMzMzMzMziIiIiIiIiIiIiIiIiIiIiIIiIiIiIiIiIiIiIiIiIiIv//
////////AAAAAHv4AA57+AAOe/gADnv4AA57+AAOe/gADgAAAA4AAAAOAAAADgAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAB/+AAAf/gAAH/4AAB/+AAAf/gAAAAA
AAD/////KAAAABAAAAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAACA
gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAiIiIiIiIiIoiI
iIiIiIiIgigijMzMyCiCKCKM5mbIKIiIiIzu7sgogRERjMzMyCiB2ZGIiIiIiIHZkYMzMzM4gdmRg/u7
uziB3dGD+7u7OIEREYP7u7s4iIiIg/u7uziCIiKD+7u7OIIiIoP///84giIigzMzMziIiIiIiIiIiP//
KCIAACjObALm5mwCIigAAoiIAAKIzgAAbm4AACIoAAAREQAAGM4AAO7uAAAiKHwAWVl8ABjMfADMzAAA
IigoAAAAIAAAAEAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA
AACAAIAAgIAAAICAgADA3MAA8MqmAKo/KgD/PyoAAF8qAFVfKgCqXyoA/18qAAB/KgBVfyoAqn8qAP9/
KgAAnyoAVZ8qAKqfKgD/nyoAAL8qAFW/KgCqvyoA/78qAADfKgBV3yoAqt8qAP/fKgAA/yoAVf8qAKr/
KgD//yoAAABVAFUAVQCqAFUA/wBVAAAfVQBVH1UAqh9VAP8fVQAAP1UAVT9VAKo/VQD/P1UAAF9VAFVf
VQCqX1UA/19VAAB/VQBVf1UAqn9VAP9/VQAAn1UAVZ9VAKqfVQD/n1UAAL9VAFW/VQCqv1UA/79VAADf
VQBV31UAqt9VAP/fVQAA/1UAVf9VAKr/VQD//1UAAAB/AFUAfwCqAH8A/wB/AAAffwBVH38Aqh9/AP8f
fwAAP38AVT9/AKo/fwD/P38AAF9/AFVffwCqX38A/19/AAB/fwBVf38Aqn9/AP9/fwAAn38AVZ9/AKqf
fwD/n38AAL9/AFW/fwCqv38A/79/AADffwBV338Aqt9/AP/ffwAA/38AVf9/AKr/fwD//38AAACqAFUA
qgCqAKoA/wCqAAAfqgBVH6oAqh+qAP8fqgAAP6oAVT+qAKo/qgD/P6oAAF+qAFVfqgCqX6oA/1+qAAB/
qgBVf6oAqn+qAP9/qgAAn6oAVZ+qAKqfqgD/n6oAAL+qAFW/qgCqv6oA/7+qAADfqgBV36oAqt+qAP/f
qgAA/6oAVf+qAKr/qgD//6oAAADUAFUA1ACqANQA/wDUAAAf1ABVH9QAqh/UAP8f1AAAP9QAVT/UAKo/
1AD/P9QAAF/UAFVf1ACqX9QA/1/UAAB/1ABVf9QAqn/UAP9/1AAAn9QAVZ/UAKqf1AD/n9QAAL/UAFW/
1ACqv9QA/7/UAADf1ABV39QAqt/UAP/f1AAA/9QAVf/UAKr/1AD//9QAVQD/AKoA/wAAH/8AVR//AKof
/wD/H/8AAD//AFU//wCqP/8A/z//AABf/wBVX/8Aql//AP9f/wAAf/8AVX//AKp//wD/f/8AAJ//AFWf
/wCqn/8A/5//AAC//wBVv/8Aqr//AP+//wAA3/8AVd//AKrf/wD/3/8AVf//AKr//wD/zMwA/8z/AP//
MwD//2YA//+ZAP//zAAAfwAAVX8AAKp/AAD/fwAAAJ8AAFWfAACqnwAA/58AAAC/AABVvwAAqr8AAP+/
AAAA3wAAVd8AAKrfAAD/3wAAVf8AAKr/AAAAACoAVQAqAKoAKgD/ACoAAB8qAFUfKgCqHyoA/x8qAAA/
KgBVPyoA8Pv/AKSgoACAgIAAAAD/AAD/AAAA//8A/wAAAAAAAAD//wAA////AP39/f39/f39/f39/f39
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
/f39/f39/f39/f39/f39/f39/f39/f39qoYIqoYIhqoIqgiqCaoIqgiqhqqGhoYIhoYIqv39/f0I/f39
/ar9/f39/YY2Ng4yDg4ODgoOCgoKCgqG/f39/Yb9/f39CP39/f39qjY7Ozs3Nzc3NjMSMjIOCqr9/f39
qv39/f2G/f39/f0IN19fOzs3Nzc3NjcODg4KCP39/f0I/f39/ar9/f39/ao6X19fXzs7Ozc3NzY3NgqG
/f39/Yb9/f39CP39/f39hl9jY19jX187Ozs7Nzc3Dqr9/f39qv39/f2G/f39/f0IOodjh19jX19fXztf
OzcOCP39/f0ICAmqCAiqCKoICapfCYdjh2ODY19fXzs7Ow6q/f39/QhITEwoSCUoKSQoqmMJCYcJCWNj
Y2NfY19fNgj9/f39qkyZmZmYmJRwlCmqX19fXl9fX186WzY3Njc2gv39/f0JcJ2dmZmZlJmUJAmqCaoJ
hggIqggICKoIqggI/f39/YZwnp2dnZmZmJVMqnx8fHx8fFR8VHhUVFRUVKr9/f39CHChoZ2dnZ2ZmUwJ
fKSkxqSkxqSkpKSkpKBUCP39/f2qcKLDoqGdnZ2ZTKp8ysakxqSkxqSkxqSkpFSq/f39/QiUpqbDoqHE
nZ1Mq3ykqMakyqSkxqSkpKSkVAj9/f39hpTIyKbHoqGhoXAIfMrLpMqkxqSkxqTGpKRUqv39/f0IlMym
yKbIpcShcAh8y6jKpMqkxsqkpKSkxlQI/f39/aqUzMzMyKbIpqJwqnzLy8qpxsqkpMakxqSkeAj9/f39
CJSUlJSUlJSUlJQJgMupy8qpysqkyqSkxqRUqv39/f2GCKoIqgiqCKoIhgigrcvPqcuoy8qkxsqkxnyG
/f39/ar9/f39/f39/f39qnzPz6nLy8uoyqnKpKTKVAj9/f39CP39/f39/f39/f0IfNDPz8+py8upyqjG
yqR8hv39/f2G/f39/f39/f39/Qik0K7P0M+ty8vLy6jKpXyq/f39/ar9/f39/f39/f39CHzQ09Ctz8/P
qcupy6jKeAj9/f39CP39/f39/f39/f2qoNPQ0NPQ0M/Qz8vLy6l8CP39/f2G/f39/f39/f39/QmkfKR8
oHx8fHx8fHx8fHyG/f39/aoIqgiqCKoIqgiqCKoIqgiqCKoIqgiqCKoIqgj9/f39/f39/f39/f39/f39
/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3/////////////
///AAAAD3vgAA974AAPe+AAD3vgAA974AAPe+AADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AA
AAPAAAADwAAAA8AAAAPAAAADwAAAA9/4AAPf+AAD3/gAA9/4AAPf+AAD3/gAA8AAAAP//////////ygA
AAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA
gACAgAAAgICAAMDcwADwyqYAqj8qAP8/KgAAXyoAVV8qAKpfKgD/XyoAAH8qAFV/KgCqfyoA/38qAACf
KgBVnyoAqp8qAP+fKgAAvyoAVb8qAKq/KgD/vyoAAN8qAFXfKgCq3yoA/98qAAD/KgBV/yoAqv8qAP//
KgAAAFUAVQBVAKoAVQD/AFUAAB9VAFUfVQCqH1UA/x9VAAA/VQBVP1UAqj9VAP8/VQAAX1UAVV9VAKpf
VQD/X1UAAH9VAFV/VQCqf1UA/39VAACfVQBVn1UAqp9VAP+fVQAAv1UAVb9VAKq/VQD/v1UAAN9VAFXf
VQCq31UA/99VAAD/VQBV/1UAqv9VAP//VQAAAH8AVQB/AKoAfwD/AH8AAB9/AFUffwCqH38A/x9/AAA/
fwBVP38Aqj9/AP8/fwAAX38AVV9/AKpffwD/X38AAH9/AFV/fwCqf38A/39/AACffwBVn38Aqp9/AP+f
fwAAv38AVb9/AKq/fwD/v38AAN9/AFXffwCq338A/99/AAD/fwBV/38Aqv9/AP//fwAAAKoAVQCqAKoA
qgD/AKoAAB+qAFUfqgCqH6oA/x+qAAA/qgBVP6oAqj+qAP8/qgAAX6oAVV+qAKpfqgD/X6oAAH+qAFV/
qgCqf6oA/3+qAACfqgBVn6oAqp+qAP+fqgAAv6oAVb+qAKq/qgD/v6oAAN+qAFXfqgCq36oA/9+qAAD/
qgBV/6oAqv+qAP//qgAAANQAVQDUAKoA1AD/ANQAAB/UAFUf1ACqH9QA/x/UAAA/1ABVP9QAqj/UAP8/
1AAAX9QAVV/UAKpf1AD/X9QAAH/UAFV/1ACqf9QA/3/UAACf1ABVn9QAqp/UAP+f1AAAv9QAVb/UAKq/
1AD/v9QAAN/UAFXf1ACq39QA/9/UAAD/1ABV/9QAqv/UAP//1ABVAP8AqgD/AAAf/wBVH/8Aqh//AP8f
/wAAP/8AVT//AKo//wD/P/8AAF//AFVf/wCqX/8A/1//AAB//wBVf/8Aqn//AP9//wAAn/8AVZ//AKqf
/wD/n/8AAL//AFW//wCqv/8A/7//AADf/wBV3/8Aqt//AP/f/wBV//8Aqv//AP/MzAD/zP8A//8zAP//
ZgD//5kA///MAAB/AABVfwAAqn8AAP9/AAAAnwAAVZ8AAKqfAAD/nwAAAL8AAFW/AACqvwAA/78AAADf
AABV3wAAqt8AAP/fAABV/wAAqv8AAAAAKgBVACoAqgAqAP8AKgAAHyoAVR8qAKofKgD/HyoAAD8qAFU/
KgDw+/8ApKCgAICAgAAAAP8AAP8AAAD//wD/AAAAAAAAAP//AAD///8A/f39/f39/f39/f39/f39/f0I
hgiqCKoICKoICKaGCP39qv39hv2GNg4ODjII/ar9/Yb9/ar9qjdjXzsOCP2G/f0IhquGCAleCWNfNob9
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
bv+3d0n/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/FRqE/0dN1v8/RNL/Nz3Q/y40zv8nLcz/ISfK/xwh
yf8WHMf/GxJh/8K/wf/gr3r/4K96/+Cvev/gr3r/3614/9yqdf/apnL/16Nw/9Sea//Rmmj/zZZk/8qR
X//GjFz/w4dW/7+CUv/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8SHZD/WF3a/05U1/9FS9X/PUPS/zU7
0P8uM83/JyzL/yAmyf8aFGn/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/xAfnP9obt7/YGTc/1Zb
2f9NU9f/RUrU/ztB0v80OdD/LDHO/xgWcv/Cv8H/Dn+n/w18pP8MeqH/DHie/wt1m/8Kc5j/CXGV/wlv
k/8JbJD/CGqN/wdpi/8HZ4j/BmWH/wZkhf8GYoP/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/DiKp/3l+
4/9vdeH/Zmze/11i2/9UWtn/S1HW/0NI1P86P9H/Fhh9/8K/wf8Ogar/Barp/wGo6P8Apef/AKPm/wCi
5P8An+L/AJ7h/wCd3/8AnN7/AJnc/wCY2/8AmNn/AJbX/wZjhP/Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/
wf8MJbX/iI7n/4CF5v93fOP/bnPg/2Vr3f9bYdv/UljY/0lP1v8UGoj/wr/B/w+Erf8Lrur/Bqvq/wOo
6f8Apuf/AKTm/wCi5f8AoOT/AJ/i/wCd4f8AnN//AJrd/wCZ2/8AmNr/BmWH/8K/wf8AAAAAAAAAAAAA
AAAAAAAAwr/B/wkowP+WnOz/jpTq/4aL6P9+hOX/dXri/2xx4P9jaN3/WV/b/xEek//Cv8H/EIaw/xay
7P8Or+z/Cavr/wWq6v8Bp+j/AKbn/wCj5f8AoeT/AJ/j/wCe4f8AnOD/AJve/wCa3f8HZ4n/wr/B/wAA
AAAAAAAAAAAAAAAAAADCv8H/CCrK/6Ko7/+coe7/lZrr/42T6f+Fiub/fIHl/3N54v9rcN//ECGg/8K/
wf8QiLP/I7nu/xq07f8Ssez/C63r/war6v8Cqen/AKbo/wCk5v8AouX/AKHk/wCf4f8AneH/AJzf/who
i//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf8GLNP/q7Hy/6as8P+hpu//mp/u/5OY6/+LkOj/g4nm/3qA
5P8NI6z/wr/B/xCKtv8xvvD/J7rv/x627f8Vsuz/Dq/s/wmr6/8Equn/Aafo/wCl5/8Ao+X/AKHk/wCf
4v8AnuH/CGqO/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wUu2/+vtPP/r7Tz/6qv8v+mq/D/oKXv/5me
7f+Sl+v/io/p/wsmt//Cv8H/Eo24/0HF8f82wfD/LLzv/yK47v8atO3/EbHs/wut6/8Gq+r/A6np/wCm
6P8Apeb/AKLl/wCh5P8IbJD/wr/B/wAAAAAAAAAAAAAAAAAAAADCv8H/BC/h/wQv3/8FL9z/BS3Z/wYt
1v8GLNL/ByvP/wgqy/8IKcb/CSnC/8K/wf8Sjrv/Uszy/0fH8f87w/H/Mb7v/ye67/8et+7/FbPt/w6v
6/8IrOv/BKnp/wGo6P8Apef/AKPl/wluk//Cv8H/AAAAAAAAAAAAAAAAAAAAAMK/wf/Cv8H/wr/B/8K/
wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/8K/wf/Cv8H/wr/B/xKRvf9j0/P/WM/z/0zK8f9BxfH/N8Hw/yy8
7/8iuO7/GbTt/xGx7P8Lruv/Bqrq/wOo6f8Apuf/CnGV/8K/wf8AAAAAAAAAAAAAAAAAAAAAwr/B/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv8H/E5LA/3Ta8/9q1fP/XtHz/1LM
8v9Hx/H/O8Pw/zG+7/8nu+//Hrbt/xay7f8Or+v/CKzq/wSq6f8Kc5j/wr/B/wAAAAAAAAAAAAAAAAAA
AADCv8H/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/wf8UlMH/hOD1/3rc
9f9v2PP/ZNTy/1jO8v9NyvH/Qsbx/zbB8P8svO//I7ju/xm07f8SsOz/C67r/wt2m//Cv8H/AAAAAAAA
AAAAAAAAAAAAAMK/wf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr/B/xSW
w/+T5vb/iuL1/3/e9P912vT/adbz/13R8/9SzPL/R8jx/zzD8P8xvvD/J7rv/x627v8Vsuz/C3ie/8K/
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
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 54</value>
</metadata>
<data name="ToolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAJySURBVDhPpZFLTNNwHMd78O7NuwcvIhJFpjcOJiYmHjwZ
Eg8mGi9gosGEgwcqMSBqguGhJkgwCvIWlCFhM2TBwDZAGLKKZWyzG2PSCXS062Nd16//jSpqYuLjm37T
R/6f7+9R6r+1NFK8EBk+o0d/8croiVDwxeF9ob7ivT/5TfFel6t0j4VTlLfDpplmFoBJrpx3njNqAjFX
eXrVc1775vjcVTXiqYywr46es3CKYoZKkqahQos1QA43QuaeQIkMwMwIJCsF05CIt3feM1vgeT7NDtoY
C6eoQNcRMatvE7gFqWAzxA812JwpR2L2CgR/LYTFmxAWbmDLV0VcSTrjERg8Jlk4Cegv0TPKOgSmBVvz
9eAnrkPhp0lV0aqeuye/d5Abz9dfpFp4roPjen7+rEasAIacBw2FhRZ/AIbphd3tRfs4h+7JNTh9UeT2
ZuEkoMWWNg0FhuhFRnBA3xhAer0N6uo9+Bc7MDLHY+WzjE8bGqZDIsYWvmDYThsWTv5Cq03L6iL0TTvS
fGe+qhqthRKuQp87jqWYhBlOgTssY4rYH9fQ85aDhVOU736RauoCgZ9CW2uEGqkhcCXkwKV828GEBnco
hclgCuOshLmohs6J2G7A8p3CuJJkki5Xdza10g4p8BAS2wDpYx16yMxLazImAjtwzu9WNbSOLu8GsHUF
19j6Q13M7YMJX32h+qNfD9HGdFDEPIE8nIpZUt3+XgJN06aj+uQFK+L3anJw+1udHN1PdtE7Fcdjpyub
g/1jbfA2l4nPKwrKrKN/rpfVpy97Hl0Uwo4mjN4qla3Pf6dnFQfKxuhTivPu2d1d/Jso6iuYciOObRud
LgAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>145</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA
AABgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcrvQCHK70BByu
9AYcrvQKHK70DByu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu
9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu
9A0crvQNHK70DRyu9A0crvQNHK70DRyu9A0crvQNHK70DRyu9AwcrvQKHK70Bxyu9AQcrvQCAAAAAByu
9AIcrvQGHK70DByu9BUcrvQdHK70Ixyu9CYcrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu
9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu
9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jxyu9CccrvQnHK70Jhyu9CMcrvQdHK70FRyu
9AwcrvQGHK70Ahyu9AMcrvQMHK70GRyu9CocrvQ7HK70Rhyu9EwcrvROHK70Thyu9E4crvROHK70Thyu
9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu
9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70Thyu9E4crvROHK70TRyu
9EYcrvQ7HK70Kxyu9BkcrvQMHK70BByu9AUcrvQSHK70Jwuh7VYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ6WYAmelmAJnpZgCZ
6WYAmelmAJnpZgCZ6WYAmelmCqDtWByu9CgcrvQTHK70Bhyu9AYcrvQWHK70Lgmi7nEYsvzXHLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2//8ctv//HLb//xy2
//8ctv//HLb//xy2//8ctv//HLb//xy2//8Zs/3fC6PweRyu9C4crvQWHK70Bxyu9AYcrvQUHK70Kxex
+8Actv//HLb//x23//8et///ILj//yK6//8lu///Kb3//yzA//8wwv//NcT//znH//89yv//Qcv//0bN
//9Kz///TdH//1HS//9T1P//V9X//1nW//9X1f//U9T//1HS//9N0f//Ss///0bN//9By///Pcr//znH
//81xP//MML//yzA//8pvf//Jbv//yK6//8guP//Hrf//xy2//8ctv//GbP81Ryu9CwcrvQVHK70Bhyu
9AQcrvQPHK70IBu1/tUctv//HLb//x63//8nuv//JLv//ym9//8uwP//M8P//zrH//9By///R87//0/R
//9X1f//Xdj//2Tb//9r3f//cd///3bi//974///f+X//4Dm//9/5f//e+P//3bi//9x3///a93//2Tb
//9d2P//V9X//0/R//9Hzv//Qcv//zrH//8zw///LsD//ym9//8mu///JLr//x63//8ctv//HLb/8hyu
9CAcrvQQHK70BRyu9AIcrvQIHK70Ehy1/qIctv//HLb//za+//8juf//Irn//yW8//8rv///MML//zbF
//89yf//RM3//0rQ//9S0///Wdb//1/Z//9m3P//a97//3Hg//904v//d+L//3jk//934v//dOL//3Hg
//9r3v//Ztz//1/Z//9Z1v//UtP//0rQ//9Ezf//Pcn//zbF//8wwv//K7///yW8//8iuf//Mr7//x23
//8ctv//HLb/xRyu9BIcrvQIHK70Ahyu9AEcrvQEHK70CBy0/C8ctv/8HLb//1PJ//8kuv//Ibn//yW7
//8qv///MMH//zXE//87yP//Qsv//0nP//9Q0///Vtb//13Y//9j2v//ad3//23e//9x4P//c+H//3Ti
//9z4f//ceD//23e//9p3f//Y9r//13Y//9W1v//UNP//0nP//9Cy///O8j//zXE//8wwf//Kr///yW7
//8iuf//Q8P//yO5//8ctv//HLX+TByu9AgcrvQEHK70AQAAAAAcrvQBHK70Ahyu9AMctv+bHLb//0/H
//83wP//Irn//yS7//8ovf//LsD//zTE//86yP//QMv//0bO//9N0f//VNT//1nW//9f2f//ZNv//2nd
//9r3v//bd7//27g//9t3v//a97//2nd//9k2///X9n//1nW//9U1P//TdH//0bO//9Ay///Osj//zTE
//8uwP//KL3//yS7//8lu///ac///x+4//8ctv++HK70Axyu9AIcrvQBAAAAAAAAAAAAAAAAAAAAAAAA
AAActv8bHLb/9iS4//9mz///I7r//yK6//8nvf//LL///zLC//83xf//Pcn//0PN//9K0P//UNP//1XV
//9a1///X9n//2Pa//9r3f//zvT//+37//+w7f//Ztz//2Pa//9f2f//Wtf//1XV//9Q0///StD//0PN
//89yf//N8X//zLC//8sv///J73//yS6//89wf//Usn//xy2//8ctv82AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHLb/jRy2//9Vyv//OMD//yO5//8lvP//Kr///y7B//80xP//Osj//0DL
//9Gzf//StD//1DT//9V1f//Wdb//13Y//+f6P//////////////////dN7//13Y//9Z1v//VdX//1DT
//9K0P//Rs3//0DL//86yP//NMT//y7B//8qv///Jbz//ya7//9q0P//JLn//xy2/64AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Ehy2//Mluf//aM///yS6//8juv//J73//yy/
//8xwv//NsX//zvI//9By///Rs7//0rQ//9Q0///VNT//1bW//+T5P/////////////7/v//adr//1bW
//9U1P//UNP//0rQ//9Gzv//Qcv//zvI//82xf//McL//yy///8nvf//JLr//z7C//9SyP//HLb//By2
/yoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/34ctv//VMr//zrA
//8juf//Jbz//ym9//8uwP//MsL//zfF//88yf//Qcv//0bN//9K0P//TdH//1DT//9U1P//nuf//8fx
//+C4P//UtP//1DT//9N0f//StD//0bN//9By///PMn//zfF//8ywv//LsD//ym9//8lvP//Jrv//2rQ
//8kuf//HLb/ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2
/wwctv/tJLn//2nP//8nu///Jrv//yq9//8twP//MsL//zbE//87x///P8n//0TM//9Izf//S8///03Q
//9P0f//UdH//1HS//9R0f//T9H//03Q//9Lz///SM3//0TM//8/yf//O8f//zbE//8ywv//LcD//yq9
//8nu///QsL//1HI//8ctv/5HLb/IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAActv9yHLb//1TJ//8/wv//J7v//yq8//8uvv//MsH//zXD//86xP//Psf//0LK
//9Fy///SMz//0rN//9Mzv//Tc///07P//9Nz///TM7//0rN//9IzP//Rcv//0LK//8+x///OsT//zXD
//8ywf//Lr7//yq8//8svP//bdH//yS5//8ctv+TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8GHLb/5CS4//9s0f//Lbz//yy8//8vvf//Mr///zXC
//85w///PcX//0DI//9Dyf//Rsr//0nL//9Ozf//1fP///n9//+K3v//Ssz//0nL//9Gyv//Q8n//0DI
//89xf//OcP//zXC//8yv///L73//yy8//9GxP//UMj//xy2//Mctv8YAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Zhy2//9Vyf//RcP//y68
//8wvf//Mr7//zbA//85wf//PMP//0DE//9Cx///RMf//0bJ//9w1f/////////////Q8f//R8n//0bJ
//9Ex///Qsf//0DE//88w///OcH//zbA//8yvv//ML3//zK+//9w0v//I7n//xy2/4cAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Axy2
/9siuP//b9H//zW+//8yvv//NL///zbA//84wv//O8L//z7D//9Axf//QsX//0TH//9x1f//////////
///U8v//Rcj//0TH//9Cxf//QMX//z7D//87wv//OML//zbA//80v///Mr7//03F//9PyP//HLb/7Ry2
/xIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/1cctv//VMn//0zF//81vv//Nr///ze///85wP//O8H//zzC//8/w///QcT//0LE
//9v0//////////////T8v//Q8X//0LE//9BxP//P8P//zzC//87wf//OcD//ze///82v///OMD//3LS
//8guP//HLb/eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/PIrj//3TT//88wP//OsD//zvA//88wf//PsL//z/C
//9Aw///QsP//0PD//9w0//////////////T8v//RMX//0PD//9Cw///QMP//z/C//8+wv//PMH//zvA
//87wP//VMn//1DI//8ctv/nHLb/DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9OHLb//1PJ//9Vyf//PsD//z7B
//8/wf//QMH//0HC//9Cwv//Q8P//0PD//9w0v/////////////T8f//RMP//0PD//9Dw///QsL//0HC
//9Awf//P8H//z7B//9Bwv//d9X//x+3//8ctv9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/xiK4
//961f//RsT//0LC//9Cwv//Q8P//0TD//9Fw///RcP//0bE//9x0//////////////U8f//RsT//0bE
//9Fw///RcP//0TD//9Dw///QsL//0PC//9dzP//Ucj//xy2/94ctv8GAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/Pxy2//9Vyf//Xs3//0nE//9IxP//SMT//0jE//9IxP//ScT//0nF//900///////////
///V8v//SsX//0nF//9JxP//SMT//0jE//9IxP//SMT//0zH//991f//H7f//xy2/10AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/7oiuP//ftb//1LI//9Ox///Tsf//07H//9Ox///Tsf//07H
//931P/////////////W8v//Tsf//07H//9Ox///Tsf//07H//9Ox///Tsf//2bP//9RyP//HLb/1Ry2
/wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zMctv//Vsn//2jP//9Uyf//U8n//1PJ
//9Tyf//U8n//1PJ//971v/////////////X8v//U8n//1PJ//9Tyf//U8n//1PJ//9Tyf//V8r//4HY
//8ft///HLb/UQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+rIbj//4XZ
//9dzP//Wsv//1rL//9ay///Wsv//1rL//+B1//////////////Y8///Wsv//1rL//9ay///Wsv//1rL
//9ay///cdL//1LJ//8ctv/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAActv8nHLb//FfK//900///Yc3//2DN//9gzf//YM3//2DN//+F2f/////////////a8///YM3//2DN
//9gzf//YM3//2DN//9kzv//h9n//x+3//8ctv9CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHLb/nB+3//+L2///atD//2bP//9mz///Zs///2bP//+K2v//////////
///b9P//Zs///2bP//9mz///Zs///2fP//981f//Usn//xy2/70AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Gxy2//lYyv//f9b//23R//9t0f//bdH//23R
//+P3P/////////////d9P//bdH//23R//9t0f//bdH//3DR//+M2v//Hrf//xy2/zYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/40ft///ktz//3bU
//9z0///c9P//3PT//+U3f/////////////e9f//c9P//3PT//9z0///c9P//4bZ//9SyP//HLb/rgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2
/xUctv/zWMr//4ra//961f//etX//3rV//+Z3//////////////g9f//etX//3rV//961f//fdX//5Hc
//8et//8HLb/KgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAActv+BH7f//5be//+C2P//gNf//4DX//+Q3P///v/////////Q8P//gNf//4DX
//+A1///kd3//1TJ//8ctv+iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv8MHLb/7VnK//+V3f//htn//4bZ//+G2f//m+D//6/m
//+K2v//htn//4bZ//+J2f//lt3//x63//kctv8hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/ciC3//+a3///j9z//43b
//+N2///jdv//43b//+N2///jdv//43b//+b4P//VMn//xy2/5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/Bhy2
/+RZyv//n+H//5Pd//+T3f//k93//5Pd//+T3f//k93//5bd//+a3///Hrf/8xy2/xsAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/2Met///oOH//5vg//+a3///mt///5rf//+a3///mt///6bj//9Uyf//HLb/hwAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/wMctv/YWcr//6rk//+f4f//n+H//5/h//+f4f//ouH//57h
//8et//tHLb/EgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv9UHrf//6Ti//+m4///peL//6Xi
//+l4v//r+X//1LI//8ctv97AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHLb/zFrL
//+z6P//quX//6rl//+s5f//oeL//x63/+cctv8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/RR63//+p5P//tuj//7Pn//+96v//VMn//xy2/2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/71GxP//wuz//8Xt//+S3f//HLb/3hy2/wYAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABy2/zYctv//Mr3//1HI//8iuP//HLb/YAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAActv+HHLb//xy2
//8ctv+lHLb/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHLb/Jxy2/zYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP////////z9gAAAAAAB/P0AAAAAAAD8/QAAAAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAA
AAAAAPz9AAAAAAAA/P0AAAAAAAD8/QAAAAAAAPz9gAAAAAAB/P3wAAAAAA/8/fgAAAAAH/z9+AAAAAAf
/P38AAAAAD/8/fwAAAAAP/z9/gAAAAB//P3+AAAAAH/8/f8AAAAA//z9/wAAAAD//P3/gAAAAf/8/f+A
AAAB//z9/8AAAAP//P3/4AAAA//8/f/gAAAH//z9//AAAAf//P3/8AAAD//8/f/4AAAf//z9//gAAB//
/P3//AAAP//8/f/8AAA///z9//4AAH///P3//gAAf//8/f//AAD///z9//8AAP///P3//4AB///8/f//
gAH///z9///AA////P3//8AD///8/f//4Af///z9///wB////P3///AP///8/f//+A////z9///4H///
/P3///wf///8/f///n////z9/////////P3////////8/SgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHK70ARuu9AIcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu
9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu9AQcrvQEG670BByu9AQbrvQEHK70BBuu
9AQcrvQEG670BByu9AMbrvQBAAAAABuu9AIbrvQIG670Ehuu9BobrvQeG670Hhuu9B4brvQeG670Hhuu
9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu9B4brvQeG670Hhuu
9B4brvQeG670Hhuu9B4brvQaG670Ehuu9AgbrvQCG670Bxyu9BgVqPE+EqfwThKn8FUSp/BWEqfwVhKn
8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn
8FYSp/BWEqfwVhKn8FYSp/BWEqfwVhKn8E4UqPE/G670GRyu9AgbrvQLG670JAuk8IARq/bDEqz3zBKs
98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs
98wSrPfMEqz3zBKs98wSrPfMEqz3zBKs98wSrPfMEqv3xQyk8YYbrvQkG670Cxuu9AocrvQgGbP92hy2
//8et///Ibj//yW7//8qvv//MsP//znG//9Cy///SM7//1HS//9X1f//Xtf//2PZ//9l2///Ydn//1vW
//9W1P//TtD//0fO//8+yf//N8X//y/B//8pvf//I7r//yC4//8ctv//GrT96Ruu9CEcrvQKG670BRuu
9BMbtf7MG7b//yq6//8juf//KL3//y/B//85x///Qsz//07R//9Y1f//Ytr//2vd//9z4f//eOL//3rk
//934v//cN///2nd//9e2P//VdT//0nP//9Ayv//NcT//y3A//8lu///Krv//xy2//8btv/iG670Exuu
9AYbrvQBHK70BRuz+18ctv/zRMT//yS6//8mvP//Lb///zbF//8/yv//Ss///1PU//9d2P//Zdv//2ze
//9w3///ceD//2/f//9q3f//Y9r//1nW//9R0///Rc3//zzJ//8ywv//K7///yS6//9Awv//H7f/+Byz
/HAbrvQFHK70AQAAAAAbrvQBG7L6GBu2/70+wf//M7///yS7//8qvv//NMP//zvI//9Gzv//T9L//1jW
//9f2f//Z9v//5fn//+17v//eOD//2Pa//9d2P//VNT//03R//9CzP//Osf//zDB//8pvf//Kbv//03H
//8ctv/LG7L6Ihuu9AEAAAAAAAAAAAAAAAAAAAAAHLb/Qym6//xHxP//I7r//ye9//8vwf//NsX//0DK
//9Hzv//T9L//1bV//9w3P//3fb///7+//+f6P//Wdb//1TU//9M0f//Rc3//zzJ//80xP//K7///ya8
//8/wv//Nr///hu2/1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8EHLb/w0bE//8tvP//JLv//yu+
//8xwv//Osf//0HL//9Iz///TtH//1nV//+h5///yfH//3Tc//9R0///TdH//0XN//8/yv//NsX//zDB
//8ovf//Jbv//07G//8juP/VG7b/CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv9HH7f/61HH
//8pu///K73//zDA//83xP//Pcf//0TL//9Jzf//TM///0/Q//9P0P//TtD//0vO//9IzP//Qcr//zzG
//80w///LsD//ym8//9Dw///Nb7/8hy2/1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABu2
/w4btv+sQcL//zvB//8svP//ML7//zbC//88xP//Qcn//0XK//9KzP//id7//6fm//9Y0P//SMv//0TK
//8/x///OsT//zTB//8vvv//Mb3//1DH//8dtv+6G7b/FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAABy2/y4puv/3Tsb//zC8//8yvv//NsD//zrC//9AxP//Qsb//1PM///P8f//7/r//3TW
//9Ex///Qsb//z7D//85wf//NL///zG9//9Jxf//N7//+xu2/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAG7b/ARy2/6xIxP//PsH//zS+//83v///OsH//z3C//9AxP//Ucn//8/w
///w+v//c9T//0LE//9Aw///PML//znA//82v///Nb///1PI//8iuP+/G7b/BAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7b/OB62/+Fcy///PsH//zzA//8+wf//QML//0HC
//9SyP//z/D///D6//9z0///QsP//0HC//8/wf//PcH//zzA//9UyP//M77/6Ry2/0UAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbtv8JG7b/mUbE//9Rx///QMH//0HC
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
rEHwD6xB+B+sQfgfrEH8P6xB/j+sQf5/rEE=
</value>
</data>
</root>

View File

@@ -0,0 +1,69 @@
using System;
using System.Xml;
using System.Linq;
using System.Xml.Linq;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using AR;
using System.IO;
using System.Text;
using System.Drawing;
namespace vmsnet
{
public static class MethodExts
{
/// <summary>
/// 지정된 파일 끝에 내용을 추가합니다.
/// </summary>
/// <param name="filename"></param>
/// <param name="data"></param>
public static void AppendText(this System.IO.FileInfo filename, string data)
{
if (filename.Directory.Exists == false) filename.Directory.Create();
using (var writer = new StreamWriter(filename.FullName, true, System.Text.Encoding.Default))
writer.Write(data);//
}
public static void AppendText(this System.IO.FileInfo filename, StringBuilder data)
{
AppendText(filename, data.ToString());
}
/// <summary>
/// 파일에 내용을 기록합니다.
/// 파일지 존재하면 덮어쓰기 됩니다.
/// </summary>
/// <param name="filename"></param>
/// <param name="data"></param>
public static void WriteText(this System.IO.FileInfo filename, StringBuilder data, bool append = false)
{
WriteText(filename, data.ToString(), append);
}
public static void WriteText(this System.IO.FileInfo filename, string data, bool append = false)
{
if (filename.Directory.Exists == false) filename.Directory.Create();
if (append == false)
System.IO.File.WriteAllText(filename.FullName, data);
else
AppendText(filename, data);
}
public static string GetData(this XElement el, string key, string elName, string defvalue = "")
{
if (el == null) return defvalue;
if (el.HasElements == false) return defvalue;
var KeyItem = el.Element(key);
if (KeyItem == null || KeyItem.HasElements == false) return defvalue;
var item = KeyItem.Element(elName);
if (item == null) return defvalue;
if (item.IsEmpty) return defvalue;
return item.Value;
}
}
}

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>Frm_Main</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="ChartData" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>vmsnet.ChartData, cVMS.NET, Version=16.3.15.1530, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@@ -0,0 +1,133 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Blue Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Blue Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Green Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Green Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Purple Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Purple Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Red Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Red Ball.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="test2" Type="System.String" Scope="User">
<Value Profile="(Default)">2</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,25 @@
<configuration>
<dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
<dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
<dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
<dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
<dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
<dllmap os="linux" dll="libX11" target="libX11.so.6"/>
<dllmap os="linux" dll="libXi" target="libXi.so.6"/>
<dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0"/>
<dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL"/>
<dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
<dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
<dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
<dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib"/>
<!-- XQuartz compatibility (X11 on Mac) -->
<dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib"/>
<dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib"/>
<dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib"/>
<dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib"/>
<dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib"/>
<dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib"/>
</configuration>

View File

@@ -0,0 +1,41 @@
using System;
using System.Linq;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace vmsnet
{
internal static class Program
{
[DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();
/// <summary>
/// 해당 애플리케이션의 주 진입점입니다.
/// </summary>
[STAThread]
static void Main(string[] args)
{
if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (System.Diagnostics.Debugger.IsAttached == false)
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
if (args != null && args.Any()) PUB.ExtCommand = args[0];
Application.Run(new Frm_trend());
}
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
PUB.NotExitMonitor = true;
string fn = System.IO.Path.Combine("Bugreport", DateTime.Now.ToString("yyMMddHHmmss") + "_error.xml");
var fi = new System.IO.FileInfo(fn);
if (fi.Directory.Exists == false) fi.Directory.Create();
System.IO.File.WriteAllText(fi.FullName, e.ExceptionObject.ToString(), System.Text.Encoding.Default);
}
}
}

View File

@@ -0,0 +1,43 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.Reflection;
using System.Runtime.InteropServices;
// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
// 어셈블리와 관련된 정보를 수정하려면
// 이 특성 값을 변경하십시오.
// 어셈블리 특성 값을 검토합니다.
[assembly:AssemblyTitle("cell Voltage Monitoring System - (For GM10) - 2016")]
[assembly:AssemblyDescription("VMS")]
[assembly:AssemblyCompany("JDTEK")]
[assembly: AssemblyProduct("cVMS.NET")]
[assembly:AssemblyCopyright("Copyright ©JDTEK 2012")]
[assembly:AssemblyTrademark("Arinware")]
[assembly:ComVisible(false)]
//이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
[assembly: Guid("b998cd4f-ec54-4613-b634-716829186500")]
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
//
// 주 버전
// 부 버전
// 빌드 번호
// 수정 버전
//
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
// 지정되도록 할 수 있습니다.
// <Assembly: AssemblyVersion("1.0.*")>
[assembly: AssemblyVersion("24.09.05.1200")]
[assembly: AssemblyFileVersion("24.09.05.1200")]

View File

@@ -0,0 +1,183 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace vmsnet.Properties {
using System;
/// <summary>
/// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다.
/// </summary>
// 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder
// 클래스에서 자동으로 생성되었습니다.
// 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을
// 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("vmsnet.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을
/// 재정의합니다.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Backup_Green_Button {
get {
object obj = ResourceManager.GetObject("Backup_Green_Button", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Blue_Ball {
get {
object obj = ResourceManager.GetObject("Blue_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Clear_Green_Button {
get {
object obj = ResourceManager.GetObject("Clear_Green_Button", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap down_16 {
get {
object obj = ResourceManager.GetObject("down_16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap down_orange {
get {
object obj = ResourceManager.GetObject("down_orange", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Get_Info_Blue_Button {
get {
object obj = ResourceManager.GetObject("Get_Info_Blue_Button", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap graphsetting {
get {
object obj = ResourceManager.GetObject("graphsetting", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Green_Ball {
get {
object obj = ResourceManager.GetObject("Green_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Orange_Ball {
get {
object obj = ResourceManager.GetObject("Orange_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Purple_Ball {
get {
object obj = ResourceManager.GetObject("Purple_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap Red_Ball {
get {
object obj = ResourceManager.GetObject("Red_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다.
/// </summary>
internal static System.Drawing.Bitmap up_16 {
get {
object obj = ResourceManager.GetObject("up_16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@@ -0,0 +1,157 @@
<?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="Backup_Green_Button" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Backup Green Button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Blue_Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Blue Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Clear_Green_Button" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Clear Green Button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="down_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\down_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="down_orange" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\down_orange.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Get_Info_Blue_Button" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Get Info Blue Button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="graphsetting" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-positive-dynamic-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Green_Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Green Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Orange_Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Orange Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Purple_Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Purple Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Red_Ball" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Red Ball.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="up_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\up_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace vmsnet.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}

View File

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

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<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 level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 이 애플리케이션이 테스트되고 함께 작동하도록 설계된 Windows 버전
목록입니다. 해당 요소의 주석 처리를 제거하면 Windows에서
호환 가능성이 가장 큰 환경을 자동으로 선택합니다. -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- 애플리케이션이 DPI를 인식하며 높은 DPI에서 Windows가 자동으로 스케일링하지
않음을 나타냅니다. WPF(Windows Presentation Foundation) 애플리케이션은 자동으로 DPI를 인식하며
옵트인할 필요가 없습니다. 이 설정에 옵트인한 .NET Framework 4.6을 대상으로 하는
Windows Forms 애플리케이션은 app.config에서 'EnableWindowsFormsHighDpiAutoResizing' 설정도 'true'로 설정해야 합니다.
애플리케이션이 긴 경로를 인식하도록 설정합니다. https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation을 참조하세요. -->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
<!-- Windows 공용 컨트롤 및 대화 상자의 테마 사용(Windows XP 이상) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

View File

@@ -0,0 +1 @@
DevExpress.XtraGauges.Win.GaugeControl, DevExpress.XtraGauges.v10.1.Win, Version=10.1.5.0, Culture=neutral, PublicKeyToken=940cfcde86f32efd

View File

@@ -0,0 +1,32 @@
##########################################
## 업체명 : 백광산업
##
## 프로그램설치경로 : d:\vms2
##########################################
2024-07-04
설정화면 로딩시 로딩 중 메세지 추가
채널자동생성 시간 단축 (1600개채널 생성 시간 300초 -> 15초)
2024-07-03
신규 차트 테스트
2024-06-28
통신연결이 비정상 종료된 후 간헐적 연결 불량 제거(예외발생시 연결이 재개되지 않았음)
2015-03-20
장비재연결시 재연결 경고 메세지가 사라지지 않는현상제거
한화용 DIV nullbalnce 값을 적용하도록 환경설정에 추가 (널밸런스 기준값, datadiv) - 프로그램 1개로 두개모두 적용가능
트렌드뷰에 datadiv 적용(한화 ca1에서 문제발생)
sumab 표시기능을 환경설정에 추가함
2015-03-19
설정파일을 ARinsetting dll로 변경
2015-03-10
KA가 저장되도록 기본저장폴더아래에 ka 에 저장함
2015-02-24
트렌드뷰 안정화 및 데이터 로딩부분 개선
15초마다 작동상태확인 용 로그기록
불필요한 로그기록 제거
2015-02-23
트렌드뷰 : 마우스가 화면 좌측에 있을때는 위치정보가 우측에 표시되고, 우측에 있을때는 좌측에 표시되도록 수정

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

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