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

40
TrendCtrlII/CChinfo.cs Normal file
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}건";
}
}
}

105
TrendCtrlII/CMouseinfo.cs Normal file
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; }
}
}
}

339
TrendCtrlII/CStyle.cs Normal file
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축의 원본 값
private Int64 _X1;
private Int64 _X2;
//실제화면에 표시되는 데이터
private Int64 _XV1;
private Int64 _XV2;
//실제화면에 표시되는 데이터의 원본값
public Int64 XV1o;
public Int64 XV2o;
//Y축의 원본값
private Single _Y1;
private Single _Y2;
//실제화면에 표시되는 데이터
private Single _YV1 = 1;
private Single _YV2 = 3;
//실제화면에 표시되는 데이터의 원본값
public Single YV1o = 1;
public Single YV2o = 3;
//
private Boolean _datapoint = false;
private Font _yfont = new Font("나눔고딕", 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("나눔고딕", 8, FontStyle.Bold);
public Font _mouseinfofont = new Font("나눔고딕", 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";
X표시범위 = 0; //기본전체표시모드로 전환
XGap = 0; //기본 X축 표시간격은 자동으로
YGap = 0; //기본 Y축 표시간격은 자동으로
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("X축(시간)"), Description("X축에 표시되는 시간의 표시간격 (0은 자동)")]
public int XGap { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축"), Description("Y축에 표시되는 표시간격 (0은 자동)")]
public Single YGap { get; set; }
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 표시간격을 입력하세요.")]
public Font FontY
{
get { return _yfont; }
set
{
_yfont = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("X축(시간)"), Description("가로축에 표시되는 글꼴을 선택하세요.")]
public Font FontX
{
get { return _xfont; }
set
{
_xfont = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
private Int32 _xterm = 0;
/// <summary>
/// X축의 표시범위값(초) 지정된 시간(초)의 데이터만 화면에 표시됩니다. 이 값이 0일 경우 제한이 없음이 되며 만약 이 값이 설정되어있다면 실시간모드처럼 작동하게 됩니다.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("조회"), Description("X축의 표시범위값(초) 지정된 시간(초)의 데이터만 화면에 표시됩니다. 이 값이 0일 경우 제한이 없음이 되며 만약 이 값이 설정되어있다면 실시간모드처럼 작동하게 됩니다.")]
public Int32 X표시범위 {
get { return _xterm; }
set {
_xterm = value;
//현재 영역을 확인하고 넘는다면 앞부분을 자른다.
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("기타"), Description("데이터포인터를 표시합니다.")]
public Boolean Show_DataPoint {
get { return _datapoint; }
set { _datapoint = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("개발자정보"), Description("Debug Message")]
public Boolean Show_DebugMsg
{
get { return this.showdebug; }
set { this.showdebug = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("마우스정보"), Description("마우스정보를 표시하는 창의 글자색")]
public Color
{
get { return design_mouseinfocolor; }
set { design_mouseinfocolor = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("마우스정보"), Description("마우스정보를 표시하는 창의 글꼴")]
public Font
{
get { return _mouseinfofont; }
set { _mouseinfofont = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// Y축값을 표시영역을 최초의 값으로 변경합니다.
/// </summary>
public void ResetYxis()
{
YV1 = Y1;
YV2 = Y2;
}
/// <summary>
/// X축값의 표시영역을 최초의 값으로 변경합니다.
/// </summary>
public void ResetXxis()
{
XV1 = X1;
XV2 = X2;
}
/// <summary>
/// 가로축의 종료값(현재 표시되는 값은 XV2를 참고하세요)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최대값을 입력하세요.")]
public Int64 X2
{
get { return _X2; }
set
{
_X2 = value;
_XV2 = value;
XV2o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// 가로축의시작값(현재 표시되는 값은 XV1을 참고하세요)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최소값을 입력하세요.")]
public Int64 X1
{
get { return _X1; }
set
{
_X1 = value;
_XV1 = value;
XV1o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// 현재 표시되는 가로축의 시작값입니다.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최소값을 입력하세요.")]
public Int64 XV1
{
get { return _XV1; }
set
{
//뷰값의 한계치 체크
if (value < X1) _XV1 = X1;
else if (value >= XV2 && XV2 > 0) _XV1 = DateTime.FromFileTime(XV2).AddSeconds(-1).ToFileTime();
else _XV1 = value;
XV1o = _XV1;
}
}
/// <summary>
/// 현재 표시되는 가로축의 종료값입니다.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최소값을 입력하세요.")]
public Int64 XV2
{
get { return _XV2; }
set
{
//뷰값의 한계치 체크
if (value > X2) _XV2 = X2;
else if (value <= XV1 && XV1 > 0) _XV2 = DateTime.FromFileTime(XV1).AddSeconds(1).ToFileTime();
else _XV2 = value;
XV2o = _XV2;
}
}
/// <summary>
/// 세로축의 종료값(현재 표시되는 값은 YV2를 참고하세요)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최대값을 입력하세요.")]
public Single Y2
{
get { return _Y2; }
set {
_Y2 = value;
_YV2 = value;
YV2o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// 현재표시되는 세로축의 종료값입니다.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최대값을 입력하세요.")]
public Single YV2
{
get { return _YV2; }
set
{
_YV2 = value;
YV2o = value;
}
}
/// <summary>
/// 세로축의 시작값(현재 표시되는 값은 YV1을 참고하세요)
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최소값을 입력하세요.")]
public Single Y1
{
get { return _Y1; }
set {
_Y1 = value;
_YV1 = value;
YV1o = value;
if (OnUpdateinfo != null) OnUpdateinfo();
}
}
/// <summary>
/// 세로축의 시작값
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("Y축(VOLT)"), Description("Y축에 표시되는 VOLT의 최소값을 입력하세요.")]
public Single YV1
{
get { return _YV1; }
set
{
_YV1 = value;
YV1o = value;
}
}
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("여백"), Description("차트가표시되는 영역의 상단 여백")]
//public int 왼쪽여백
//{
// get { return _ZoneMarginX; }
// set { _ZoneMarginX = value;
// if (OnUpdateinfo != null) OnUpdateinfo();
// }
//}
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("여백"), Description("차트가표시되는 영역의 하단 여백")]
//public int 위쪽여백
//{
// get { return _ZoneMarginY; }
// set { _ZoneMarginY = value;
// if (OnUpdateinfo != null) OnUpdateinfo();
// }
//}
}
}

28
TrendCtrlII/CTimeinfo.cs Normal file
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,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다.
// 어셈블리와 관련된 정보를 수정하려면
// 이 특성 값을 변경하십시오.
[assembly: AssemblyTitle("cVMS Trend Chart Control")]
[assembly: AssemblyDescription("Cell Voltage Monitoring System Display Control by Arin")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("JDTEK - TINDEVIL")]
[assembly: AssemblyProduct("cVMS Trend Chart")]
[assembly: AssemblyCopyright("Copyright ©JDTEK 2012")]
[assembly: AssemblyTrademark("arinware")]
[assembly: AssemblyCulture("")]
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면
// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오.
[assembly: ComVisible(false)]
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
[assembly: Guid("b674bfe2-26c9-49c9-b80a-45aa3502e3f3")]
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다.
//
// 주 버전
// 부 버전
// 빌드 번호
// 수정 버전
//
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로
// 지정되도록 할 수 있습니다.
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.1.61")]

View File

@@ -0,0 +1,133 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 이 코드는 도구를 사용하여 생성되었습니다.
// 런타임 버전:4.0.30319.42000
//
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
// 이러한 변경 내용이 손실됩니다.
// </auto-generated>
//------------------------------------------------------------------------------
namespace TrendCtrlII.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("TrendCtrlII.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 alam {
get {
object obj = ResourceManager.GetObject("alam", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <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 Red_Ball {
get {
object obj = ResourceManager.GetObject("Red_Ball", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@@ -0,0 +1,143 @@
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="alam" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Get Info Blue Button.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Backup_Green_Button" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Backup Green Button.png;System.Drawing.Bitmap, System.Drawing, Version=2.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=2.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=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>
<data name="down_16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\down_16.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="down_orange" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\down_orange.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

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: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

1807
TrendCtrlII/TrendCtrlII.cs Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,103 @@
<?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)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{A2FF254F-97C8-4AB1-8AB4-070DF48139CE}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TrendCtrlII</RootNamespace>
<AssemblyName>TrendCtrlII</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CTimeinfo.cs" />
<Compile Include="CUserCursor.cs" />
<Compile Include="CMouseinfo.cs" />
<Compile Include="CStyle.cs" />
<Compile Include="TrendCtrlII.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="CChinfo.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="TrendCtrlII.resx">
<DependentUpon>TrendCtrlII.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="Resources\alam.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Get Info Blue Button.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Blue Ball.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Red Ball.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Backup Green Button.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Clear Green Button.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\down_16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\down_orange.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,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,20 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrendCtrlII", "TrendCtrlII.csproj", "{A2FF254F-97C8-4AB1-8AB4-070DF48139CE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2FF254F-97C8-4AB1-8AB4-070DF48139CE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal