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

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

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: 375 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,104 @@
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;
using System.Windows;
using System.ComponentModel;
namespace vmsnet
{
public class CTrendSetting : AR.Setting
{
[Browsable(false)]
public DateTime graph_time_start { get; set; }
[Browsable(false)]
public DateTime graph_time_end { get; set; }
[Category("Y-Axis"), DisplayName("Y축 표시영역(시작)"), Description("Y축 그래프의 시작범위 입니다(voltage)")]
public float graph_y_start { get; set; }
[Category("Y-Axis"), DisplayName("Y축 표시영역(종료)"), Description("Y축 그래프의 종료범위 입니다(voltage)")]
public float graph_y_end { get; set; }
[Category("X-Axis"), DisplayName("X축 바닥영역 최소 크기"), Description("X축 바닥 글자 영역의 최소 크기 입니다. 글자가 가려지는 경우 이값을 늘려주세요")]
public float graph_bottom_minsize { get; set; }
[Category("Y-Axis"), DisplayName("Y축영역 자동설정"), Description("Y축 영역을 자동으로 설정합니다. 입력된 값에 따라서 자동으로 변경 됩니다")]
public bool y_scale_auto { get; set; }
[Browsable(false)]
public string tv_selectgroup0 { get; set; }
[Browsable(false)]
public string tv_selectgroup { get; set; }
public override void AfterLoad()
{
if ((graph_y_end < graph_y_start) || (graph_y_start == 0f && graph_y_end == 0f))
y_scale_auto = true;
if (graph_time_end.Year == 1982 || graph_time_start.Year == 1982)
{
graph_time_end = DateTime.Now;
graph_time_start = graph_time_end.AddDays(-7);
}
if (graph_bottom_minsize < 1) graph_bottom_minsize = 45;
}
public override void AfterSave()
{
}
}
public class CSetting : AR.Setting
{
public int MaxChCount { get; set; }
public string bugreport { get; set; }
public int datadiv { get; set; }
public string databasefolder { get; set; }
public string sangho { get; set; }
public string tel { get; set; }
////트렌드뷰의 각종 설정값
public CSetting()
{
var fn = this.filename;
bugreport = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Bugreport");
}
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 AfterLoad()
{
if (datadiv == 0) datadiv = 1;
}
public override void AfterSave()
{
//throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,122 @@
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_Config : 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_Config));
this.label1 = new System.Windows.Forms.Label();
this.nudMaxCH = new System.Windows.Forms.NumericUpDown();
this.bt_save = new System.Windows.Forms.ToolStripButton();
this.ToolStrip1 = new System.Windows.Forms.ToolStrip();
((System.ComponentModel.ISupportInitialize)(this.nudMaxCH)).BeginInit();
this.ToolStrip1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(16, 23);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(118, 21);
this.label1.TabIndex = 2;
this.label1.Text = "최대 표시 채널";
//
// nudMaxCH
//
this.nudMaxCH.Location = new System.Drawing.Point(155, 19);
this.nudMaxCH.Margin = new System.Windows.Forms.Padding(6, 10, 6, 10);
this.nudMaxCH.Name = "nudMaxCH";
this.nudMaxCH.Size = new System.Drawing.Size(139, 29);
this.nudMaxCH.TabIndex = 3;
this.nudMaxCH.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nudMaxCH.Value = new decimal(new int[] {
10,
0,
0,
0});
//
// bt_save
//
this.bt_save.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.bt_save.Image = ((System.Drawing.Image)(resources.GetObject("bt_save.Image")));
this.bt_save.ImageTransparentColor = System.Drawing.Color.Magenta;
this.bt_save.Name = "bt_save";
this.bt_save.Size = new System.Drawing.Size(83, 52);
this.bt_save.Text = "저장";
this.bt_save.Click += new System.EventHandler(this.ToolStripButton1_Click);
//
// ToolStrip1
//
this.ToolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.ToolStrip1.ImageScalingSize = new System.Drawing.Size(48, 48);
this.ToolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.bt_save});
this.ToolStrip1.Location = new System.Drawing.Point(0, 72);
this.ToolStrip1.Name = "ToolStrip1";
this.ToolStrip1.Padding = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.ToolStrip1.Size = new System.Drawing.Size(359, 55);
this.ToolStrip1.TabIndex = 0;
this.ToolStrip1.Text = "ToolStrip1";
this.ToolStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.ToolStrip1_ItemClicked);
//
// Frm_Config
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 21F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(359, 127);
this.Controls.Add(this.nudMaxCH);
this.Controls.Add(this.label1);
this.Controls.Add(this.ToolStrip1);
this.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.KeyPreview = true;
this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.Name = "Frm_Config";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "프로그램설정";
this.Load += new System.EventHandler(this.Frm_Config_Load);
((System.ComponentModel.ISupportInitialize)(this.nudMaxCH)).EndInit();
this.ToolStrip1.ResumeLayout(false);
this.ToolStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
private System.ComponentModel.IContainer components;
private Label label1;
internal NumericUpDown nudMaxCH;
internal ToolStripButton bt_save;
internal ToolStrip ToolStrip1;
}
}

View File

@@ -0,0 +1,53 @@
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_Config
{
public Frm_Config()
{
InitializeComponent();
}
public void Frm_Config_Load(object sender, System.EventArgs e)
{
this.Show();
Application.DoEvents();
nudMaxCH.Value = (decimal)PUB.CONFIG.MaxChCount;
}
public void ToolStripButton1_Click(System.Object sender, System.EventArgs e)
{
this.Validate();
PUB.CONFIG.MaxChCount = (int)nudMaxCH.Value;
////실제파일에 저장한다.
PUB.CONFIG.Save();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
public void ToolStrip1_ItemClicked(System.Object sender, System.Windows.Forms.ToolStripItemClickedEventArgs e)
{
}
}
}

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.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bt_save.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
ICLsniEAAAAASUVORK5CYII=
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>107</value>
</metadata>
</root>

View File

@@ -0,0 +1,317 @@
<?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>{01516930-42EA-46B2-8643-395E7B2EB314}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>
</StartupObject>
<RootNamespace>vmsnet</RootNamespace>
<AssemblyName>TrendViewer</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\Trendviewer\</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>
<ItemGroup>
<Compile Include="Class\EventArgs.cs" />
<Compile Include="Class\StructAndEnum.cs" />
<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="DS1.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DS1.xsd</DependentUpon>
</Compile>
<Compile Include="Dialog\fPleaseWait.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fPleaseWait.Designer.cs">
<DependentUpon>fPleaseWait.cs</DependentUpon>
</Compile>
<Compile Include="MethodExts.cs" />
<Compile Include="Program.cs" />
<Compile Include="Class\ChartData.cs" />
<Compile Include="Class\CFDBK.cs" />
<Compile Include="Class\CFDB.cs" />
<Compile Include="Setting\CSetting.cs" />
<Compile Include="Dialog\Frm_SelectCH.Designer.cs">
<DependentUpon>Frm_SelectCH.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\Frm_SelectCH.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\Frm_SMsg.Designer.cs">
<DependentUpon>Frm_SMsg.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\Frm_SMsg.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="PUBC.cs" />
<Compile Include="Frm_GraphSetup.Designer.cs">
<DependentUpon>Frm_GraphSetup.cs</DependentUpon>
</Compile>
<Compile Include="Frm_GraphSetup.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Frm_trend.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Frm_trend.Designer.cs">
<DependentUpon>Frm_trend.cs</DependentUpon>
</Compile>
<Compile Include="Class\CFDBA.cs" />
<Compile Include="PUB.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Setting\Frm_Config.Designer.cs">
<DependentUpon>Frm_Config.cs</DependentUpon>
</Compile>
<Compile Include="Setting\Frm_Config.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UControl\TrendCtrlII\CChinfo.cs" />
<Compile Include="UControl\TrendCtrlII\CMouseinfo.cs" />
<Compile Include="UControl\TrendCtrlII\CStyle.cs" />
<Compile Include="UControl\TrendCtrlII\CTimeinfo.cs" />
<Compile Include="UControl\TrendCtrlII\CUserCursor.cs" />
<Compile Include="UControl\TrendCtrlII\MethodExts.cs" />
<Compile Include="UControl\TrendCtrlII\TrendCtrlII.cs">
<SubType>UserControl</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Dialog\fPleaseWait.resx">
<DependentUpon>fPleaseWait.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\Frm_SelectCH.resx">
<DependentUpon>Frm_SelectCH.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\Frm_SMsg.resx">
<DependentUpon>Frm_SMsg.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="Frm_GraphSetup.resx">
<DependentUpon>Frm_GraphSetup.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Frm_trend.resx">
<DependentUpon>Frm_trend.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Setting\Frm_Config.resx">
<DependentUpon>Frm_Config.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UControl\TrendCtrlII\TrendCtrlII.resx">
<DependentUpon>TrendCtrlII.cs</DependentUpon>
</EmbeddedResource>
</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="DS1.xsc">
<DependentUpon>DS1.xsd</DependentUpon>
</None>
<None Include="DS1.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DS1.Designer.cs</LastGenOutput>
</None>
<None Include="DS1.xss">
<DependentUpon>DS1.xsd</DependentUpon>
</None>
<None Include="OpenTK.dll.config" />
<None Include="packages.config" />
<None Include="Properties\app.manifest" />
<None Include="Properties\DataSources\ChartData.datasource" />
</ItemGroup>
<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="OpenTK, Version=3.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
<HintPath>..\..\packages\OpenTK.3.1.0\lib\net20\OpenTK.dll</HintPath>
</Reference>
<Reference Include="OpenTK.GLControl, Version=3.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
<HintPath>..\..\packages\OpenTK.GLControl.3.1.0\lib\net20\OpenTK.GLControl.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="ScottPlot, Version=5.0.37.0, Culture=neutral, PublicKeyToken=86698dc10387c39e, processorArchitecture=MSIL">
<HintPath>..\..\packages\ScottPlot.5.0.37\lib\net462\ScottPlot.dll</HintPath>
</Reference>
<Reference Include="ScottPlot.WinForms, Version=5.0.37.0, Culture=neutral, PublicKeyToken=86698dc10387c39e, processorArchitecture=MSIL">
<HintPath>..\..\packages\ScottPlot.WinForms.5.0.37\lib\net462\ScottPlot.WinForms.dll</HintPath>
</Reference>
<Reference Include="SkiaSharp, Version=2.88.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\..\packages\SkiaSharp.2.88.8\lib\net462\SkiaSharp.dll</HintPath>
</Reference>
<Reference Include="SkiaSharp.Views.Desktop.Common, Version=2.88.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\..\packages\SkiaSharp.Views.Desktop.Common.2.88.8\lib\net462\SkiaSharp.Views.Desktop.Common.dll</HintPath>
</Reference>
<Reference Include="SkiaSharp.Views.WindowsForms, Version=2.88.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\..\packages\SkiaSharp.Views.WindowsForms.2.88.8\lib\net462\SkiaSharp.Views.WindowsForms.dll</HintPath>
</Reference>
<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.Windows.Forms" />
<Reference Include="System.Windows.Forms.DataVisualization" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Content Include="Alert.ico" />
<Content Include="ReadMe.txt" />
<None Include="Resources\icons8-positive-dynamic-48.png" />
<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>
<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" />
<Import Project="..\..\packages\SkiaSharp.NativeAssets.macOS.2.88.8\build\net462\SkiaSharp.NativeAssets.macOS.targets" Condition="Exists('..\..\packages\SkiaSharp.NativeAssets.macOS.2.88.8\build\net462\SkiaSharp.NativeAssets.macOS.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\SkiaSharp.NativeAssets.macOS.2.88.8\build\net462\SkiaSharp.NativeAssets.macOS.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\SkiaSharp.NativeAssets.macOS.2.88.8\build\net462\SkiaSharp.NativeAssets.macOS.targets'))" />
<Error Condition="!Exists('..\..\packages\SkiaSharp.NativeAssets.Win32.2.88.8\build\net462\SkiaSharp.NativeAssets.Win32.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\SkiaSharp.NativeAssets.Win32.2.88.8\build\net462\SkiaSharp.NativeAssets.Win32.targets'))" />
<Error Condition="!Exists('..\..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.8\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.8\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets'))" />
</Target>
<Import Project="..\..\packages\SkiaSharp.NativeAssets.Win32.2.88.8\build\net462\SkiaSharp.NativeAssets.Win32.targets" Condition="Exists('..\..\packages\SkiaSharp.NativeAssets.Win32.2.88.8\build\net462\SkiaSharp.NativeAssets.Win32.targets')" />
<Import Project="..\..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.8\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets" Condition="Exists('..\..\packages\SkiaSharp.NativeAssets.Linux.NoDependencies.2.88.8\build\net462\SkiaSharp.NativeAssets.Linux.NoDependencies.targets')" />
</Project>

View File

@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Drawing.Drawing2D;
using System.Drawing;
namespace TrendCtrlII
{
[TypeConverterAttribute(typeof(ExpandableObjectConverter))]
public partial class CChinfo
{
public Dictionary<UInt32,float> Value;
public String C1value { get; set; } = "";
public String C2value { get; set; } = "";
public UInt16 Idx { get; set; } //트렌드뷰에서표시되고있는 인덱스값
public Boolean Show { get; set; }
public Color Color { get; set; }
public int CH { get; set; }
public String TITLE { get; set; }
public String GROUP { get; set; }
public CChinfo()
{
CH = 0;
TITLE = "";
GROUP = "";
Value = new Dictionary<uint, float>();// List<Single>(0);
}
public override string ToString()
{
return $"{(Show ? "[O]" : "[X]")} GRP:{GROUP},CH:{CH},{TITLE},{Value.Count}건";
}
}
}

View File

@@ -0,0 +1,105 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
using System.Drawing.Drawing2D;
using System.Drawing;
namespace TrendCtrlII
{
[TypeConverterAttribute(typeof(ExpandableObjectConverter))]
public partial class CMouseinfo
{
private Boolean hand;
private Boolean cross;
private Boolean move;
private Boolean changepos;
private Boolean drag;
private EDRAGTYPE dragtype;
//private PointF dragstart;
private PointF position;
private PointF position0;
//private Single _time;
private Single _volt;
private Boolean _showinfo;
private int _dragindex;
public CMouseinfo(PointF _pf)
{
position = _pf;
position0 = _pf;
_showinfo = false;
_volt = 0;
_dragindex = -1;
}
public int DragIndex
{
get { return this._dragindex; }
set { this._dragindex = value; }
}
public Boolean Showinfo
{
get { return this._showinfo; }
set { this._showinfo = value; }
}
public Int64 Time { get; set; }
public Single Volt
{
get { return this._volt; }
set { this._volt = value; }
}
public EDRAGTYPE DragType
{
get { return this.dragtype; }
set { this.dragtype = value; }
}
public PointF DragStart { get; set; }
public PointF Position
{
get { return this.position; }
set {
this.position0 = new PointF(this.position.X, this.position.Y);
this.position = value;
}
}
public PointF Position0
{
get { return this.position0; }
set { this.position0 = value; }
}
public Boolean Hand
{
get { return this.hand; }
set { this.hand = value; }
}
public Boolean Cross
{
get { return this.cross; }
set { this.cross = value; }
}
public Boolean ChangePos
{
get { return this.changepos; }
set { this.changepos = value; }
}
public Boolean Move
{
get { return this.move; }
set { this.move = value; }
}
public Boolean Drag
{
get { return this.drag; }
set { this.drag = value; }
}
}
}

View File

@@ -0,0 +1,339 @@
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Drawing;
namespace TrendCtrlII
{
[TypeConverterAttribute(typeof(ExpandableObjectConverter))]
public class ChartStyle
{
//X<><58><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>
private Int64 _X1;
private Int64 _X2;
//<2F><><EFBFBD><EFBFBD>ȭ<EFBFBD>鿡 ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private Int64 _XV1;
private Int64 _XV2;
//<2F><><EFBFBD><EFBFBD>ȭ<EFBFBD>鿡 ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public Int64 XV1o;
public Int64 XV2o;
//Y<><59><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private Single _Y1;
private Single _Y2;
//<2F><><EFBFBD><EFBFBD>ȭ<EFBFBD>鿡 ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private Single _YV1 = 1;
private Single _YV2 = 3;
//<2F><><EFBFBD><EFBFBD>ȭ<EFBFBD>鿡 ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public Single YV1o = 1;
public Single YV2o = 3;
//
private Boolean _datapoint = false;
private Font _yfont = new Font("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 12, FontStyle.Bold);
public int _ZoneMarginX = 50;
public int _ZoneMarginY = 50;
//public Color design_backcolor = Color.White;
public Color design_mouseinfocolor = Color.Black;
// public int _xterm = 1800;
private Font _xfont = new Font("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 8, FontStyle.Bold);
public Font _mouseinfofont = new Font("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", 12, FontStyle.Bold);
private Boolean showdebug = false;
// private short defaultviewhour = 3;
public event OnUpdateinfoHandler OnUpdateinfo; //UPDATE USER CURSOR
public delegate void OnUpdateinfoHandler();
public Boolean UseZoomX { get; set; }
public Boolean UseZoomY { get; set; }
public UInt16 MaxZoomX { get; set; }
public Single MaxZoomY { get; set; }
public String UnitY { get; set; }
public String UnitX { get; set; }
public ChartStyle()
{
MaxZoomX = 10;
MaxZoomY = 0.01f;
UseZoomX = true;
UseZoomY = true;
UnitY = "Volt";
UnitX = "Sec";
<EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD> = 0; //<2F><EFBFBD><E2BABB>üǥ<C3BC>ø<EFBFBD><C3B8><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ
XGap = 0; //<2F>⺻ X<><58> ǥ<>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
YGap = 0; //<2F>⺻ Y<><59> ǥ<>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("X<><58>(<28>ð<EFBFBD>)"), Description("X<>࿡ ǥ<>õǴ<C3B5> <20>ð<EFBFBD><C3B0><EFBFBD> ǥ<>ð<EFBFBD><C3B0><EFBFBD> (0<><30> <20>ڵ<EFBFBD>)")]
public int XGap { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>"), Description("Y<>࿡ ǥ<>õǴ<C3B5> ǥ<>ð<EFBFBD><C3B0><EFBFBD> (0<><30> <20>ڵ<EFBFBD>)")]
public Single YGap { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> ǥ<>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Font FontY
{
get { return _yfont; }
set
{
_yfont = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("X<><58>(<28>ð<EFBFBD>)"), Description("<22><><EFBFBD><EFBFBD><EFBFBD>࿡ ǥ<>õǴ<C3B5> <20>۲<EFBFBD><DBB2><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Font FontX
{
get { return _xfont; }
set
{
_xfont = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
private Int32 _xterm = 0;
/// <summary>
/// X<><58><EFBFBD><EFBFBD> ǥ<>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD>(<28><>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD>(<28><>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> ȭ<>鿡 ǥ<>õ˴ϴ<CBB4>. <20><> <20><><EFBFBD><EFBFBD> 0<><30> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE>ִٸ<D6B4> <20>ǽð<C7BD><C3B0><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20>۵<EFBFBD><DBB5>ϰ<EFBFBD> <20>˴ϴ<CBB4>.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("<22><>ȸ"), Description("X<><58><EFBFBD><EFBFBD> ǥ<>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD>(<28><>) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD>(<28><>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> ȭ<>鿡 ǥ<>õ˴ϴ<CBB4>. <20><> <20><><EFBFBD><EFBFBD> 0<><30> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE>ִٸ<D6B4> <20>ǽð<C7BD><C3B0><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> <20>۵<EFBFBD><DBB5>ϰ<EFBFBD> <20>˴ϴ<CBB4>.")]
public Int32 <EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD> {
get { return _xterm; }
set {
_xterm = value;
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE><EFBFBD>ϰ<EFBFBD> <20>Ѵ´ٸ<C2B4> <20>պκ<D5BA><CEBA><EFBFBD> <20>ڸ<EFBFBD><DAB8><EFBFBD>.
if(value != 0 )
{
TimeSpan ts = DateTime.FromFileTime(X2) - DateTime.FromFileTime(X1);
if (ts.TotalSeconds > value) {
DateTime NewEd = DateTime.FromFileTime(X2);
DateTime NewSd = NewEd.AddSeconds(-1 * value);
if (NewSd > DateTime.Now)
{
NewSd = DateTime.Now;
NewEd = NewSd.AddSeconds(value);
}
X1 = NewSd.ToFileTime();
X2 = NewEd.ToFileTime();
}
}
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("<22><>Ÿ"), Description("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> ǥ<><C7A5><EFBFBD>մϴ<D5B4>.")]
public Boolean Show_DataPoint {
get { return _datapoint; }
set { _datapoint = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), Description("Debug Message")]
public Boolean Show_DebugMsg
{
get { return this.showdebug; }
set { this.showdebug = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("<22><><EFBFBD><EFBFBD><ECBDBA><EFBFBD><EFBFBD>"), Description("<22><><EFBFBD><EFBFBD><ECBDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD>ϴ<EFBFBD> â<><C3A2> <20><><EFBFBD>ڻ<EFBFBD>")]
public Color <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD>
{
get { return design_mouseinfocolor; }
set { design_mouseinfocolor = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("<22><><EFBFBD><EFBFBD><ECBDBA><EFBFBD><EFBFBD>"), Description("<22><><EFBFBD><EFBFBD><ECBDBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ǥ<><C7A5><EFBFBD>ϴ<EFBFBD> â<><C3A2> <20>۲<EFBFBD>")]
public Font <EFBFBD><EFBFBD><EFBFBD><EFBFBD>۲<EFBFBD>
{
get { return _mouseinfofont; }
set { _mouseinfofont = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// Y<><EFBFBD><E0B0AA> ǥ<>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
/// </summary>
public void ResetYxis()
{
YV1 = Y1;
YV2 = Y2;
}
/// <summary>
/// X<><EFBFBD><E0B0AA> ǥ<>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
/// </summary>
public void ResetXxis()
{
XV1 = X1;
XV2 = X2;
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᰪ(<28><><EFBFBD><EFBFBD> ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD> XV2<56><32> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ִ밪<D6B4><EBB0AA> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Int64 X2
{
get { return _X2; }
set
{
_X2 = value;
_XV2 = value;
XV2o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǽ<EFBFBD><C7BD>۰<EFBFBD>(<28><><EFBFBD><EFBFBD> ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD> XV1<56><31> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ּҰ<D6BC><D2B0><EFBFBD> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Int64 X1
{
get { return _X1; }
set
{
_X1 = value;
_XV1 = value;
XV1o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD> ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>۰<EFBFBD><DBB0>Դϴ<D4B4>.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ּҰ<D6BC><D2B0><EFBFBD> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Int64 XV1
{
get { return _XV1; }
set
{
//<2F><EFBFBD><E4B0AA> <20>Ѱ<EFBFBD>ġ üũ
if (value < X1) _XV1 = X1;
else if (value >= XV2 && XV2 > 0) _XV1 = DateTime.FromFileTime(XV2).AddSeconds(-1).ToFileTime();
else _XV1 = value;
XV1o = _XV1;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD> ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Դϴ<D4B4>.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ּҰ<D6BC><D2B0><EFBFBD> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Int64 XV2
{
get { return _XV2; }
set
{
//<2F><EFBFBD><E4B0AA> <20>Ѱ<EFBFBD>ġ üũ
if (value > X2) _XV2 = X2;
else if (value <= XV1 && XV1 > 0) _XV2 = DateTime.FromFileTime(XV1).AddSeconds(1).ToFileTime();
else _XV2 = value;
XV2o = _XV2;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ᰪ(<28><><EFBFBD><EFBFBD> ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD> YV2<56><32> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ִ밪<D6B4><EBB0AA> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Single Y2
{
get { return _Y2; }
set {
_Y2 = value;
_YV2 = value;
YV2o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>ǥ<EFBFBD>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Դϴ<D4B4>.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ִ밪<D6B4><EBB0AA> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Single YV2
{
get { return _YV2; }
set
{
_YV2 = value;
YV2o = value;
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>۰<EFBFBD>(<28><><EFBFBD><EFBFBD> ǥ<>õǴ<C3B5> <20><><EFBFBD><EFBFBD> YV1<56><31> <20><><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><CFBC><EFBFBD>)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ּҰ<D6BC><D2B0><EFBFBD> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Single Y1
{
get { return _Y1; }
set {
_Y1 = value;
_YV1 = value;
YV1o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>۰<EFBFBD>
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y<><59>(VOLT)"), Description("Y<>࿡ ǥ<>õǴ<C3B5> VOLT<4C><54> <20>ּҰ<D6BC><D2B0><EFBFBD> <20>Է<EFBFBD><D4B7>ϼ<EFBFBD><CFBC><EFBFBD>.")]
public Single YV1
{
get { return _YV1; }
set
{
_YV1 = value;
YV1o = value;
}
}
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("<22><><EFBFBD><EFBFBD>"), Description("<22><>Ʈ<EFBFBD><C6AE>ǥ<EFBFBD>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>")]
//public int <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
//{
// get { return _ZoneMarginX; }
// set { _ZoneMarginX = value;
// if (OnUpdateinfo != null) OnUpdateinfo();
// }
//}
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("<22><><EFBFBD><EFBFBD>"), Description("<22><>Ʈ<EFBFBD><C6AE>ǥ<EFBFBD>õǴ<C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>")]
//public int <20><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>
//{
// get { return _ZoneMarginY; }
// set { _ZoneMarginY = value;
// if (OnUpdateinfo != null) OnUpdateinfo();
// }
//}
}
}

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TrendCtrlII
{
public partial class CTimeinfo
{
public Int64 Value { get; set; }
public UInt32 idx { get; set; }
public CTimeinfo(UInt32 _idx, Int64 _val)
{
Value = _val;
idx = _idx;
}
public DateTime DateTimeData
{
get
{
return DateTime.FromFileTime(Value);
}
}
}
}

View File

@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TrendCtrlII
{
public partial class CUserCursor
{
private short _idx = 0;
private Int64 _time = 0;
private Single _value = 0;
private Single _newx = 0;
public CUserCursor(short pidx, Int64 ptime, Single px)
{
_idx = pidx;
_time = ptime;
_newx = px;
}
public Int64 Time
{
get { return this._time; }
set { this._time = value; }
}
public short Idx
{
get { return this._idx; }
set { this._idx = value; }
}
public Single Value
{
get { return this._value; }
set { this._value = value; }
}
public Single Newx
{
get { return this._newx; }
set { this._newx = value; }
}
}
}

View File

@@ -0,0 +1,23 @@
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 TrendCtrlII
{
public static class MethodExts
{
public static void DrawRectangle(this System.Drawing.Graphics graphics, Pen pen, System.Drawing.RectangleF rect)
{
graphics.DrawRectangle(pen, rect.X, rect.Y, rect.Width, rect.Height);
}
}
}

File diff suppressed because it is too large Load Diff

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=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>
</root>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<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>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="OpenTK.GLControl" publicKeyToken="bad199fe84eb3df4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.3.0" newVersion="3.3.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="OpenTK" publicKeyToken="bad199fe84eb3df4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.3.3.0" newVersion="3.3.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="OpenTK" version="3.1.0" targetFramework="net48" />
<package id="OpenTK.GLControl" version="3.1.0" targetFramework="net48" />
<package id="ScottPlot" version="5.0.37" targetFramework="net48" />
<package id="ScottPlot.WinForms" version="5.0.37" targetFramework="net48" />
<package id="SkiaSharp" version="2.88.8" targetFramework="net48" />
<package id="SkiaSharp.NativeAssets.Linux.NoDependencies" version="2.88.8" targetFramework="net48" />
<package id="SkiaSharp.NativeAssets.macOS" version="2.88.8" targetFramework="net48" />
<package id="SkiaSharp.NativeAssets.Win32" version="2.88.8" targetFramework="net48" />
<package id="SkiaSharp.Views.Desktop.Common" version="2.88.8" targetFramework="net48" />
<package id="SkiaSharp.Views.WindowsForms" version="2.88.8" targetFramework="net48" />
<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>

288
Viewer/TrendViewer/pub.cs Normal file
View File

@@ -0,0 +1,288 @@
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;
namespace vmsnet
{
sealed class PUB
{
//public static bool MonitorOn = false;
public static AR.Log log;
public static bool RaiseSound1 = false;
public static bool RaiseSound2 = false;
public static bool RaiseSound = false;
public static string ExtCommand = "";
public static bool setupmode = false;
public static bool NotExitMonitor = false;
public static CFDB DB;
public static CFDBA Alarm;
public static CFDBK KADB;
public static CSetting CONFIG;
public static CTrendSetting TREND;
public static int sleepoffset = 0; ////쓰레드슬립시간
public static int sleeplimit = 1000; ////쓰레드슬립최대값
public static int[,,] Values; ////이차원배열이다.
public static string[,,] Times;
public static string lasttime = "";
public static event EventHandler<RemoteCommand> RemoteCommandEvent;
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;
private static Frm_SMsg fSMsg = null;
// private static Frm_Msg fMsg = null;
private static MediaPlayer mplayer = null;
/// <summary>
/// 입력한 채널의 파일버퍼기준의 인덱스값을 반환합니다.
/// 각 파일은 최대 160개의 채널데이터를 가지고 있다.
/// 161번 채널의 경우 2번째 파일의 001번 데이터이다
/// 160번 채널의 경우 1번째 파일의 160번 데이터이다
/// </summary>
/// <param name="ValueIdx">채널번호(1~)</param>
/// <returns></returns>
public static int GetChannelIndexFromFileBuffer(int ValueIdx)
{
//각 파일당 160개씩 저장되어있으므로 채널번호를 통해서 파일의 위치를 파악해야한다.
int quotient = ValueIdx / 160; // 몫
int remainder = ValueIdx % 160; // 나머지
//나머지가 0인경우에는 마지막데이터이다
//그외의 경우에는 나머지가 해당 인덱스가 된다.
return remainder == 0 ? quotient * 160 : remainder;
}
public static void RaiseRemoteCommandEvent(rCommand cmd, object data = null)
{
RemoteCommandEvent?.Invoke(null, new RemoteCommand(cmd, data));
}
public static void smsg(string m)
{
if (fSMsg == null || fSMsg.IsDisposed)
fSMsg = new Frm_SMsg();
if (fSMsg.Visible == false) fSMsg.Show();
fSMsg.Activate();
fSMsg.Label1.Text = m;
Application.DoEvents();
if (m == "") fSMsg.Close();
}
public static Font GetFontFromStr(string strfontbuffer)
{
try
{
string[] fontstr = strfontbuffer.Split(",".ToCharArray());
FontStyle fstyle = (FontStyle)(int.Parse(fontstr[2]));
return new Font(fontstr[0], float.Parse(fontstr[1]), fstyle);
}
catch
{
return new Font("Tahoma", 10, FontStyle.Bold);
}
}
//public static void workmsg(string m)
//{
// if (fMsg == null || fMsg.IsDisposed)
// fMsg = new Frm_Msg();
// if (fMsg.Visible == false) fMsg.Show();
// fMsg.Activate();
// fMsg.lb_Status.Text = m;
// Application.DoEvents();
// if (m == "") fMsg.Close();
//}
////타임정보를 숫자로 반환함
public static decimal get_TimeNumber(DateTime time)
{
return time.Hour * 3600 + time.Minute * 60 + time.Second;
}
public static void ShowForm(Form f, Type ftype, params object[] data)
{
if (f == null || f.IsDisposed)
f = (Form)Activator.CreateInstance(ftype, data);
f.Show();
if (f.WindowState == FormWindowState.Minimized)
f.WindowState = FormWindowState.Normal;
else if (f.Visible == false)
f.Visible = true;
f.Activate();
}
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 AddMeasureValue(int idx, int unit, int ch, int value, string time)
{
var l0 = PUB.Values.GetUpperBound(0) + 1;
var l1 = PUB.Values.GetUpperBound(1) + 1;
var l2 = PUB.Values.GetUpperBound(2) + 1;
if (idx < l0 && unit < l1 && ch > 0 && ch <= l2)
{
try
{
PUB.Values[idx, unit, ch - 1] = value;
PUB.Times[idx, unit, ch - 1] = time;
}
catch (Exception)
{
if (System.Diagnostics.Debugger.IsAttached)
{
Console.WriteLine($"수신데이터입력실패 M/C:{idx},Unit:{unit},CH:{ch - 1}");
}
}
}
else
{
if (System.Diagnostics.Debugger.IsAttached)
{
Console.WriteLine($"수신데이터배열크기오류 mc:{idx},unit:{unit},ch:{ch}");
}
}
}
/// <summary>
/// 채널인덱스를 가지고 버퍼인덱스를 계산 합니다.
/// 1개의 버퍼는 최대 160개를 저장 합니다.
/// </summary>
/// <param name="chidx"></param>
/// <returns></returns>
public static int ConvertChIndexToBufferIndex(int chidx)
{
var ValueIdx = chidx;
int quotient = ValueIdx / 160; // 몫
int remainder = ValueIdx % 160; // 나머지
if (remainder == 0) ValueIdx = quotient - 1;
else ValueIdx = quotient;
if (ValueIdx < 0) ValueIdx = 0;
return ValueIdx;
}
static string lastDAQerrMsg = "";
static DateTime lastDAQerrTime = DateTime.Now;
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();
TREND = new CTrendSetting();
TREND.filename = new System.IO.FileInfo("TrendSetting.xml").FullName;
TREND.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}");
}
}
DB = new CFDB(CONFIG.GetDatabasePath(), "Database", "volt");
Alarm = new CFDBA(CONFIG.GetDatabasePath(), "Database", "Alarm");
KADB = new CFDBK(CONFIG.GetDatabasePath(), "Database", "Ka"); ////ka 전용데이터베이스 150310
log.Add(AR.Log.ETYPE.NORMAL, "설정읽어오기완료");
////설정정보를 가져온다.
//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}");
}
else if (tabname.StartsWith("VIEWGROUP") == false)
errorlist.Add($"설정파일없음\n{tabname}");
}
});
task.Wait();
if (errorlist.Any()) errormessages.AddRange(errorlist);
}
}
}

233
Viewer/TrendViewer/pubC.cs Normal file
View File

@@ -0,0 +1,233 @@
using System.Collections.Generic;
using System;
using System.Drawing;
using System.Diagnostics;
using System.Data;
using System.Collections;
using System.Windows.Forms;
using System.Linq;
namespace vmsnet
{
sealed class PUBC
{
/// <summary>
/// 설정된 DEVICE 의 채널 갯수를반환
/// </summary>
/// <returns></returns>
/// <remarks></remarks>
public static int GetChannelCount()
{
int chcount = 0;
foreach (DocumentElement.DEVICERow DR in PUB.DS.DEVICE.Select("use=1")) // Dt.Rows
{
string buf = DR.CHCOUNT;
if (buf.Trim() == "")
{
continue;
}
foreach (string C in buf.Split(",".ToCharArray()))
{
int cc = 0;
if (C.IndexOf("*") == -1)
{
cc = int.Parse(C);
}
else
{
cc = System.Convert.ToInt32(C.Split("*".ToCharArray())[1]);
}
chcount += cc;
}
}
return chcount;
}
public static int GetUseDeviceCount()
{
return PUB.DS.DEVICE.Select("use=1").Length;
}
public static int GetWindowCount()
{
var dr = PUB.DS.WIN.Select("use=1") as DocumentElement.WINRow[];
return dr.Length;
}
public static string GetWindowName(int idx)
{
var dr = PUB.DS.WIN.Select("IDX=" + System.Convert.ToString(idx)) as DocumentElement.WINRow[];
if (dr.Length != 1)
{
return "";
}
return dr[0].TITLE;
}
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;
}
/// <summary>
/// 널밸런스 옵셋값을 설정합니다.
/// </summary>
/// <param name="idx"></param>
/// <param name="nb"></param>
/// <returns></returns>
/// <remarks></remarks>
public static bool UpdateNullBalanceOffset(int idx, float nb)
{
//Dim sql As String = "UPDATE GRP set NBOFF=" & value & " WHERE IDX=" & idx
var DR = PUB.DS.GRP.Select("idx=" + idx.ToString()) as DocumentElement.GRPRow[];
if (DR.Length != 1)
{
return false;
}
DR[0].NBOFF = nb;
DR[0].AcceptChanges();
PUB.DS.GRP.AcceptChanges();
return true;
}
/// <summary>
/// viewgoupr에 데이터를 넣습니다.
/// </summary>
/// <param name="title"></param>
/// <param name="val"></param>
/// <param name="gname"></param>
/// <returns></returns>
/// <remarks></remarks>
public static short AddviewGroup(string title, string val, string gname)
{
var maxidrow = PUB.DS.VIEWGROUP.Select("", "idx desc") as DocumentElement.VIEWGROUPRow[];
short maxid = (short) 0;
if (maxidrow.GetUpperBound(0) == -1)
{
maxid = (short) 1;
}
else
{
////160315 error
maxid = (short) (maxidrow[0].IDX + 1);
}
try
{
DocumentElement.VIEWGROUPRow newdr = PUB.DS.VIEWGROUP.NewVIEWGROUPRow();
newdr.IDX = maxid;
newdr.TITLE = title;
newdr.VAL = val;
newdr.GNAME = gname;
PUB.DS.VIEWGROUP.AddVIEWGROUPRow(newdr);
PUB.DS.VIEWGROUP.AcceptChanges();
return maxid;
}
catch (Exception)
{
return (short) -1;
}
}
public static bool DeleteViewGroup(int gidx, string gname)
{
var dr = PUB.DS.VIEWGROUP.Select("idx=" + gidx.ToString() + " and gname='" + gname + "'") as DocumentElement.VIEWGROUPRow[];
if (dr.Length == 1)
{
PUB.DS.VIEWGROUP.Rows.Remove(dr[0]);
PUB.DS.VIEWGROUP.AcceptChanges();
}
else
{
return false;
}
return true;
}
public static bool UpdateGroup(int idx, string alamtype, float alamh, float alaml, float autoh, float autol, float nbh, float nbl)
{
//string sql = "update GRP set ALAMTYPE=@ALAMTYPE,ALAMH=@ALAMH,ALAML=@ALAML,AUTOH=@AUTOH,AUTOL=@AUTOL,NBH=@NBH,NBL=@NBL WHERE IDX=" + System.Convert.ToString(idx);
var dr = PUB.DS.GRP.Select("idx=" + idx.ToString()) as DocumentElement.GRPRow[];
if (dr.Length == 1)
{
DocumentElement.GRPRow Drow = dr[0];
Drow.ALAMTYPE = alamtype;
Drow.ALAMH = alamh;
Drow.ALAML = alaml;
Drow.AUTOH = autoh;
Drow.AUTOL = autol;
Drow.NBH = nbh;
Drow.NBL = nbl;
Drow.AcceptChanges();
PUB.DS.AcceptChanges();
}
else
{
return false;
}
return true;
}
public static dynamic UpdateWin(int idx, string title)
{
//string sql = "UPDATE WIN set TITLE=@TITLE WHERE IDX=@IDX";
var Drow = PUB.DS.WIN.Where(t => t.IDX == idx).FirstOrDefault();// Select("idx=" + idx.ToString()) as DocumentElement.WINRow[];
if (Drow != null)
{
//DocumentElement.WINRow Drow = dr[0];
Drow.TITLE = title;
Drow.EndEdit();
Drow.AcceptChanges();
PUB.DS.AcceptChanges();
}
else
{
return false;
}
return true;
}
public static bool UpdateChannel(int idx, string title, int alamtype, int enable, float alamh, float alaml, float autoh, float autol)
{
//string sql = "UPDATE CHANNEL set TITLE=@TITLE,ALAMTYPE=@ALAMTYPE,ENABLE=@ENABLE,ALAMH=@ALAMH,ALAML=@ALAML,AUTOH=@AUTOH,AUTOL=@AUTOL WHERE IDX=@IDX";
var Drow = PUB.DS.CHANNEL.Where(t => t.IDX == idx).FirstOrDefault();// .Select("idx=" + idx.ToString()) as DocumentElement.CHANNELRow[];
if (Drow != null)
{
//DocumentElement.CHANNELRow Drow = dr[0];
Drow.TITLE = title;
Drow.ALAMTYPE = alamtype;
Drow.ENABLE = enable;
Drow.ALAMH = alamh;
Drow.ALAML = alaml;
Drow.AUTOH = autoh;
Drow.AUTOL = autol;
Drow.EndEdit();
Drow.AcceptChanges();
PUB.DS.AcceptChanges();
}
else
{
return false;
}
return true;
}
}
}