Example #1
0
        private void ReadLineInfoXMLFile()
        {
            //mLineInfoXMLDoc.Load(mLineInfoPath);

            //XmlNodeList nodelist = mLineInfoXMLDoc.SelectNodes("LineInfo/LINE");

            //mCurrentLineInfoDataTable.Columns.Add("COM");
            //mCurrentLineInfoDataTable.Columns.Add("BaudRate");
            //mCurrentLineInfoDataTable.Columns.Add("LineName");

            //foreach (XmlNode node in nodelist)
            //{
            //    DataRow row1 = mCurrentLineInfoDataTable.NewRow();

            //    row1[0] = node.SelectSingleNode("COM").InnerText;
            //    row1[1] = node.SelectSingleNode("BaudRate").InnerText;
            //    row1[2] = node.SelectSingleNode("LineName").InnerText;

            //    mCurrentLineInfoDataTable.Rows.Add(row1);
            //}
            try
            {
                mCurrentLineInfoDataTable = xml.ReadLineInfoXMLFile();
            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #2
0
        private void initControls()
        {
            try
            {
                xmlBMSDoc lineList = new xmlBMSDoc();

                mLineList = new DataTable();
                mLineList = lineList.ReadLineInfoXMLFile();

                // 다중탭 에러발생시 상태관리
                mErrorStatus = new bool[mLineList.Rows.Count];
                for (int i = 0; i < mLineList.Rows.Count; i++)
                {
                    mErrorStatus[i] = false;
                }

                foreach (DataRow row in mLineList.Rows)
                {
                    TabPage tp = new TabPage(row["LineName"].ToString());

                    tabPageControl tpc = new tabPageControl(this,
                                                            row["COM"].ToString(),
                                                            row["LineName"].ToString(),
                                                            row["BaudRate"].ToString(),
                                                            row["Interval"].ToString());

                    tpc.Dock = DockStyle.Fill;


                    mTabPageControl.Add(row["COM"].ToString(), tpc);
                    mTabPageControl[row["COM"].ToString()].ErrorTabPageDraw += MainForm_ErrorTabPageDraw;

                    mTabPage.Add(row["COM"].ToString(), tp);

                    mTabPage[row["COM"].ToString()].Controls.Add(mTabPageControl[row["COM"].ToString()]);
                    //mTabPage[row["COM"].ToString()].BackColor = Color.White;

                    this.tabControl.TabPages.Add(mTabPage[row["COM"].ToString()]);
                }
            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #3
0
        /// <summary>
        /// COM / BMS 삭제
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonSetDelete_Click(object sender, EventArgs e)
        {
            xmlBMSDoc xml = new xmlBMSDoc();

            DataTable lineInfoDataTable = xml.ReadLineInfoXMLFile();
            DataTable bmsInfoDataTable  = xml.ReadBMSInfoXMLFile();

            // 현재 선택된 COM 을 가져온다
            foreach (DataGridViewRow item in this.dataGridViewSetLine.SelectedRows)
            {
                // 전체 라인의 리스트를 체크한다.
                for (int i = 0; i < lineInfoDataTable.Rows.Count; i++)
                {
                    // 리스트 내에 선택된 COM과 같은 행을 찾아서 제거한다.
                    if (this.dataGridViewSetLine.Rows[item.Index].Cells[0].Value.Equals(lineInfoDataTable.Rows[i].ItemArray[0]))
                    {
                        lineInfoDataTable.Rows.RemoveAt(i);
                    }
                }

                // 리스트에 연결된 BMS ID도 같이 제거하기 위해 전체를 체크한다.

                for (int i = 0; i < bmsInfoDataTable.Rows.Count; i++)
                {
                    if (this.dataGridViewSetLine.Rows[item.Index].Cells[0].Value.Equals(bmsInfoDataTable.Rows[i].ItemArray[0]))
                    {
                        bmsInfoDataTable.Rows.RemoveAt(i);
                        i--;
                    }
                }

                this.dataGridViewSetLine.Rows.RemoveAt(item.Index);
                this.dataGridViewSetBMSID.Rows.Clear();
            }


            xml.WriteLineInfoXMLFile(lineInfoDataTable);
            xml.WriteBMSInfoXMLFile(bmsInfoDataTable);
        }
Example #4
0
        private void resetControls()
        {
            xmlBMSDoc lineList = new xmlBMSDoc();

            mLineList = new DataTable();
            mLineList = lineList.ReadLineInfoXMLFile();

            // COM 포트가 모두 지워졌으면 컨트롤 전체 삭제
            //if (mLineList.Rows.Count == 0)
            //{
            //    // 삭제
            //    mTabPageControl.Clear();
            //    mTabPage.Clear();
            //    this.tabControl.TabPages.Clear();
            //}



            string[] keyList = new string[mTabPage.Keys.Count];
            mTabPage.Keys.CopyTo(keyList, 0);

            foreach (string key in keyList)
            {
                //mLineList.

                DataRow foundRow = mLineList.Rows.Find(key);

                if (foundRow != null)
                {
                    //MessageBox.Show(foundRow[0].ToString());
                    // 업데이트
                    mTabPage[key].Text = foundRow["LineName"].ToString();

                    mTabPageControl[key].resetTabPageControls(
                        foundRow["COM"].ToString(),
                        foundRow["LineName"].ToString(),
                        foundRow["BaudRate"].ToString(),
                        foundRow["Interval"].ToString());
                }
                else
                {
                    mTabPageControl[key].Stop();    // fix bug (실행중 포트 삭제시 통신이 중지되지 않는 문제)
                    mTabPageControl.Remove(key);
                    this.tabControl.TabPages.Remove(mTabPage[key]);
                    mTabPage.Remove(key);
                }
            }

            // 다중탭 에러발생시 상태관리
            mErrorStatus = new bool[mLineList.Rows.Count];
            for (int i = 0; i < mLineList.Rows.Count; i++)
            {
                mErrorStatus[i] = false;
            }

            foreach (DataRow row in mLineList.Rows)
            {
                // 없다면
                if (!mTabPage.ContainsKey(row["COM"].ToString()))
                {
                    // 탭 페이지 추가
                    TabPage tp = new TabPage(row["LineName"].ToString());

                    tabPageControl tpc = new tabPageControl(this,
                                                            row["COM"].ToString(),
                                                            row["LineName"].ToString(),
                                                            row["BaudRate"].ToString(),
                                                            row["Interval"].ToString());

                    tpc.Dock = DockStyle.Fill;

                    mTabPageControl.Add(row["COM"].ToString(), tpc);
                    mTabPageControl[row["COM"].ToString()].ErrorTabPageDraw += MainForm_ErrorTabPageDraw;

                    mTabPage.Add(row["COM"].ToString(), tp);

                    mTabPage[row["COM"].ToString()].Controls.Add(mTabPageControl[row["COM"].ToString()]);
                    //mTabPage[row["COM"].ToString()].BackColor = Color.White;

                    this.tabControl.TabPages.Add(mTabPage[row["COM"].ToString()]);
                }
            }
        }
Example #5
0
        public LoadBackUp()
        {
            InitializeComponent();

            try
            {
                // 콤보박스에 시간값 입력
                string[] minute = new string[60];
                for (int i = 0; i < 60; i++)
                {
                    minute[i] = string.Format("{0}분", i);
                }

                this.metroComboBox_fromMinute.Items.AddRange(minute);
                this.metroComboBox_toMinute.Items.AddRange(minute);

                string[] tabName = { "   데이터 조회   ", "   에러 데이터 조회   " };

                LoadBackUpControl dataSearchTab = new LoadBackUpControl(this);
                dataSearchTab.Dock = DockStyle.Fill;
                mTabPageControl.Add(tabName[0], dataSearchTab);
                LoadErrorBackUpControl errorDataSearchTab = new LoadErrorBackUpControl(this);
                errorDataSearchTab.Dock = DockStyle.Fill;
                mErrorTabPageControl.Add(tabName[1], errorDataSearchTab);

                foreach (string name in tabName)
                {
                    TabPage tp = new TabPage(name);

                    mTabPage.Add(name, tp);

                    if (name == "   데이터 조회   ")
                    {
                        mTabPage[name].Controls.Add(mTabPageControl[name]);
                    }
                    else
                    {
                        mTabPage[name].Controls.Add(mErrorTabPageControl[name]);
                    }

                    this.tabControl1.TabPages.Add(mTabPage[name]);
                }



                xmlBMSDoc xml = new xmlBMSDoc();
                mLineList = xml.ReadLineInfoXMLFile();

                foreach (DataRow row in mLineList.Rows)
                {
                    this.comboBoxLoadBackUpCom.Items.Add(row["LineName"].ToString());
                }
                this.comboBoxLoadBackUpCom.SelectedIndex = 0;



                DateTime fromTime = DateTime.Now;
                fromTime = fromTime.AddHours(-1);
                DateTime toTime = DateTime.Now;


                this.metroComboBox_fromHour.SelectedIndex   = fromTime.Hour;
                this.metroComboBox_fromMinute.SelectedIndex = fromTime.Minute;

                this.metroComboBox_toHour.SelectedIndex   = toTime.Hour;
                this.metroComboBox_toMinute.SelectedIndex = toTime.Minute;

                // 데이터 조회 페이지로 시작
                this.metroComboBox_type.SelectedIndex = 0;
            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, "저장된 백업데이터를 찾을 수 없습니다.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }