using System; using System.Collections.Generic; using System.Text; using System.ComponentModel; using System.Drawing.Drawing2D; using System.Drawing; namespace vmsnet.HMI { [TypeConverterAttribute(typeof(ExpandableObjectConverter)),Serializable()] public partial class CGROUP { private int idx; private int widx; private String title; private int row; private int column; private int rspan; private int cspan; private int rowcount; private int columncount; private String matrix; private RectangleF rect; private Font cellfont; private Color cellfontcolor; public String maxcellname = "#999"; public String maxcellvalue = "00.000"; public String maxcellalam = "↑0↓0"; private String _alamtype; public CITEM[] itemarray; private RectangleF[] cellgroup; private Single cellgroup_width; private Single cellgroup_height; public Single _cell_title_width; public Single _cell_value_width; public Single _cell_alam_width; public short _null_itemseq; public Single _null_valueL; public Single _null_valueR; private Single _null_offset; //옵셋 public RectangleF Rect_Title; public RectangleF Rect_Header; public RectangleF Rect_body; private Single alamh; //상위알람 private Single alaml; //하위알람 private Single aalamh; //상위알람 //private Single aalaml; //하위알람 //public Single nbhh; public Single nbh; //public Single nbll; public Single nbl; public Boolean _pre_nbalam_h=false; public Boolean _pre_nbalam_l=false; public Boolean _nbalam_h = false; public Boolean _nbalam_l = false; public Single _amp; //KAVALUE public String _ampidx; //KAINDEX public String _ampunit; //KAINDEX public short _ampdecpos; //KAINDEX public Single _maxvolt; public Single _avgvolt; public Single _minvolt; public Single _sumvolt; //전체합계 public Single _sumvolt1; //분주된SUm public Single _sumvoltA; //전체합계(A) public Single _sumvoltB; //전체합계(B) public short _alamcount=0; public short _alamcountlb = 0; public CITEM _maxitem = null; public CITEM _minitem = null; public CITEM _maxitemp = null; public CITEM _minitemp = null; public Boolean Showinfo=false; public delegate void OnChangeDataHandler(); public event OnChangeDataHandler OnChangeData; public int _unusedcount = 0; //미사용채널수 public int _errorcount = 0; //에러난채널수 public int _disccount = 0; //에러난채널수 public CGROUP() { _sumvolt = 0; _sumvolt1 = 0; _sumvoltA = 0; _sumvoltB = 0; _maxvolt = 0; _minvolt = 0; _avgvolt = 0; _errorcount = 0; _disccount = 0; idx = 0; widx = 0; row = 0; column = 0; columncount = 2; rowcount = 15; rspan = 1; cspan = 1; matrix = "15x2"; title = "TINDEVIL"; rect = new RectangleF(0, 0, 0, 0); cellfont = new Font("나눔고딕", 10, FontStyle.Bold); cellfontcolor = Color.Black; cellgroup = new RectangleF[1]; Items = new CITEM[0]; } [System.ComponentModel.Browsable(false)] public Single Sumvolt { get { return _sumvolt; } } [System.ComponentModel.Browsable(false)] public Single Sumvolt1 { get { return _sumvolt1; } } [System.ComponentModel.Browsable(false)] public Single SumvoltA { get { return _sumvoltA; } } [System.ComponentModel.Browsable(false)] public Single SumvoltB { get { return _sumvoltB; } } [System.ComponentModel.Browsable(false)] public Single Maxvolt { get { return _maxvolt; } } [System.ComponentModel.Browsable(false)] public Single Minvolt { get { return _minvolt; } } [System.ComponentModel.Browsable(false)] public Single Avgvolt { get { return _avgvolt; } } //[System.ComponentModel.Browsable(false)] //public Single AmpKA //{ // get { return _ampka; } //} [DesignerSerializationVisibility(DesignerSerializationVisibility.Content),Browsable(false), Category("알람"), Description("그룹에 지정된 알람형태입니다. Manual 과 Auto 가 있으며 변경을 하시려면 알람설정(alam Setup)을 이용하세요.")] public String AlarmType { get { return _alamtype; } set { _alamtype = value; } } [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("알람수동"), Description("그룹에 지정되는 상위알람값입니다. 셀의 알람설정이 그룹으로 지정되었다면 이 값이 사용됩니다.")] public Single HIGH { get { return alamh; } set { alamh = value; if (OnChangeData != null) OnChangeData(); } } [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("알람수동"), Description("그룹에 지정되는 하위알람값입니다. 셀의 알람설정이 그룹으로 지정되었다면 이 값이 사용됩니다.")] public Single LOW { get { return alaml; } set { alaml = value; if (OnChangeData != null) OnChangeData(); } } [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("알람자동"), Description("그룹에 지정되는 상위알람값입니다. 셀의 알람설정이 그룹으로 지정되었다면 이 값이 사용됩니다.")] public Single UP { get { return aalamh; } set { aalamh = value; if (OnChangeData != null) OnChangeData(); } } //[DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("알람자동"), Description("그룹에 지정되는 하위알람값입니다. 셀의 알람설정이 그룹으로 지정되었다면 이 값이 사용됩니다.")] //public Single DOWN //{ // get { return aalaml; } // set // { // aalaml = value; // try { OnChangeData(); } // catch { } // } //} [DesignerSerializationVisibility(DesignerSerializationVisibility.Content),Browsable(false), Category("일반"), Description("Null Balance 보정값입니다.")] public Single NullBalanceOffset { get { return this._null_offset; } set { this._null_offset = value; if (OnChangeData != null) OnChangeData(); } } [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Browsable(false), Category("일반"), Description("Null Balance 기준 아이템번호입니다.")] public short NullBalanceSeq { get { return this._null_itemseq; } set { this._null_itemseq = value; if (OnChangeData != null) OnChangeData(); } } [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("셀표시 글꼴의 색상입니다."),Browsable(false)] public Color 셀글꼴색상 { get { return this.cellfontcolor; } set { this.cellfontcolor = value; if (OnChangeData != null) OnChangeData(); } } [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("셀표시 글꼴입니다.")] public Font 셀글꼴 { get { return this.cellfont; } set { this.cellfont = value; if (OnChangeData != null) OnChangeData(); } } [System.ComponentModel.Browsable(false)] public RectangleF[] CellGroup { get { return this.cellgroup; } set { this.cellgroup = value; } } [System.ComponentModel.Browsable(false)] public Single CellGroup_Height { get { return cellgroup_height; } set { cellgroup_height = value; } } [System.ComponentModel.Browsable(false)] public Single CellGroup_Width { get { return cellgroup_width; } set { cellgroup_width = value; } } [System.ComponentModel.Browsable(false)] public Single Cell_Title_Width { get { return _cell_title_width; } } [System.ComponentModel.Browsable(false)] public Single Cell_Value_Width { get { return _cell_value_width; } } [System.ComponentModel.Browsable(false)] public Single Cell_Alam_Width { get { return _cell_alam_width; } } [System.ComponentModel.Browsable(false)] public int ColumnCount { get { return columncount; } } [System.ComponentModel.Browsable(false)] public int RowCount { get { return rowcount; } } /// /// 내부아이템 /// [System.ComponentModel.Browsable(false)] public CITEM[] Items { get { return itemarray; } set { itemarray = value; } } /// /// 이그룹의 전체 영역 /// [System.ComponentModel.Browsable(false)] public RectangleF R { get { return rect; } set { rect = value; } } /// /// 그룹의일련번호 /// [System.ComponentModel.Browsable(false)] public int IDX { get { return idx; } set { idx = value; } } /// /// ROWSPAN /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("이 그룹이 표시되는데 사용되는 줄병합 갯수입니다.(기본값:1)"), System.ComponentModel.Browsable(false)] public int 줄병합 { get { return rspan; } set { rspan = value; } } /// /// COLUMNSPAN /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("이 그룹이 표시되는데 사용되는 열병합 갯수입니다.(기본값:1)"), System.ComponentModel.Browsable(false)] public int 열병합 { get { return cspan; } set { cspan = value; } } /// /// WINDOW IDX /// [System.ComponentModel.Browsable(false)] public int WIDX { get { return widx; } set { widx = value; } } /// /// LOCATION COLUmN /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("이 그룹이 표시되는데 사용되는 열의 위치값입니다."), System.ComponentModel.Browsable(false)] public int 열번호 { get { return this.column; } set { column = value; } } /// /// LOCATION ROW /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("이 그룹이 표시되는데 사용되는 줄의 위치값입니다."), System.ComponentModel.Browsable(false)] public int 줄번호 { get { return this.row; } set { row = value; } } /// /// MATRIX ARRAY /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("이 그룹이 표시되는 아이템의 배열을 표시합니다. 20x2 일경우 총 40개의 셀이 배치됩니다."), System.ComponentModel.Browsable(false)] public String 아이템배열 { get { return this.matrix; } set { matrix = value; matrix = matrix.Replace("*", "x").Replace("X", "x").Replace("/", "x").Replace("-", "x"); rowcount = int.Parse(matrix.Split(new char[] { 'x' })[0]); columncount = int.Parse(matrix.Split(new char[] { 'x' })[1]); cellgroup = new RectangleF[columncount]; itemarray = new CITEM[(rowcount * columncount) - 1]; } } /// /// THIS NAME /// [DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("일반"), Description("이 그룹의 이름입니다.")] public String 이름 { get { return this.title; } set { title = value; if (OnChangeData != null) OnChangeData(); } } } }