123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Windows.Forms.DataVisualization.Charting;
- namespace FPER
- {
- public partial class Form_AnalogDetecter : Form
- {
-
- MDIParent mdi = null;
- _Popup Popup = new _Popup(null);
-
- string Current_Fault = "";
- string Current_PreFire = "";
- string Current_FireDay = "";
- string Current_FireNight = "";
-
- int[] Data = new int[44];
- string tempReceiverID, tempCommBoard, tempLoop, tempRepeaterID;
-
-
- public Timer t = new Timer();
- public Form_AnalogDetecter(string ReceiverID, string CommBoard, string Loop, string RepeaterID, string RepeaterType, MDIParent mdiparent)
- {
- InitializeComponent();
-
- _Event.AnalogDetecter_SendMessage_Event += new _Event.AnalogDetecter_SendMessage_Handler(_Event_AnalogDetecter_SendMessage);
-
- this.FormClosing += new FormClosingEventHandler(Form_AnalogDetecter_FormClosing);
-
- mdi = mdiparent;
- ReceiverID = mdi.MyReceiverID.ToString();
- tempReceiverID = ReceiverID;
- tempCommBoard = CommBoard;
- tempLoop = Loop;
- tempRepeaterID = RepeaterID;
-
- this.TopMost = true;
- this.label_AnalogDetecter_Receiver_Value.Text = ReceiverID;
- this.label_AnalogDetecter_CommBoard_Value.Text = CommBoard;
- this.label_AnalogDetecter_Loop_Value.Text = Loop;
- this.label_AnalogDetecter_ID_Value.Text = RepeaterID;
-
- if (RepeaterType == "C")
- {
- this.label_AnalogDetecter_Type_Value.Text = "연감지기";
- this.label_FireDay_MinMax.Text = "(34~64)";
- this.label_FireNight_MinMax.Text = "(34~64)";
- }
- else if (RepeaterType == "D")
- {
- this.label_AnalogDetecter_Type_Value.Text = "열감지기";
- this.label_FireDay_MinMax.Text = "(80~95)";
- this.label_FireNight_MinMax.Text = "(80~95)";
- }
- else this.label_AnalogDetecter_Type_Value.Text = "감지기";
- this.label_Information_Current_Color.Text = "None";
- this.label_Information_Current_Color.BackColor = Color.Transparent;
- string Day = (mdi.AnalogDetect.FireDayTime == true) ? "낮" : "밤";
- this.label_Information_Current.Text = string.Format("▶ 현재상태 : {0} ({1})", "None", Day);
- this.label_Information_Average.Text = string.Format("▶ 평균값 : {0}", "None");
- this.label_Information_Max.Text = string.Format("▶ 최대값 : {0}", "None");
- this.label_Information_Min.Text = string.Format("▶ 최소값 : {0}", "None");
-
- Level_Edit_Enable(false);
-
- Chart_Setup();
-
-
-
-
- DacUIProcess dacUIProcess_TB_ANALOG_DEVICE = new DacUIProcess(Int32.Parse(ReceiverID));
- String SQL = "";
- SQL += " SELECT FAULT_VALUE,PREFIRE_VALUE,FIRED_VALUE,FIREN_VALUE";
- SQL += " FROM TB_ANALOG_DEVICE_2 ";
- SQL += string.Format(" WHERE RECEIVER_ID='{0}' AND COMM_ID='{1}' AND BOARD_ID='{2}' AND LOOP_NO='{3}' AND REPEATER_ID='{4}'", ReceiverID, "1", CommBoard, Loop, RepeaterID);
-
-
- SQL += " AND INOUT_TYPE ='I' ";
- DataSet dao_TB_ANALOG_DEVICE = dacUIProcess_TB_ANALOG_DEVICE.Select(SQL);
- DataTable dt_TB_ANALOG_DEVICE = dao_TB_ANALOG_DEVICE.Tables[0];
- if (dt_TB_ANALOG_DEVICE.Rows.Count != 0)
- {
- foreach (DataRow dr in dt_TB_ANALOG_DEVICE.Rows)
- {
- Current_Fault = this.textbox_Level_Fault.Text = dr["FAULT_VALUE"].ToString();
- Current_PreFire = this.textbox_Level_PreFire.Text = dr["PREFIRE_VALUE"].ToString();
- Current_FireDay = this.textbox_Level_FireDay.Text = dr["FIRED_VALUE"].ToString();
- Current_FireNight = this.textbox_Level_FireNight.Text = dr["FIREN_VALUE"].ToString();
- }
- }
-
- int[] Init_Data = new int[44];
- System.Array.Clear(Init_Data, 0, 44);
- Trend_Update(Init_Data);
-
- Trend_Read();
-
- mdi.AnalogDetect.Form_Active_AnalogDetecter = true;
-
-
-
-
-
-
-
-
-
-
- t.Interval = 15000;
- t.Tick += new EventHandler(Trend_Read_Timer_Tick);
- t.Enabled = true;
- }
-
- private void Form_AnalogDetecter_FormClosing(object sender, FormClosingEventArgs e)
- {
-
- mdi.AnalogDetect.Form_Active_AnalogDetecter = false;
-
-
-
- _Event.AnalogDetecter_SendMessage_Event -= new _Event.AnalogDetecter_SendMessage_Handler(_Event_AnalogDetecter_SendMessage);
- }
- public void _Event_AnalogDetecter_SendMessage(CmdInfo cmd)
- {
- Level_Write_Complete(cmd);
- }
-
-
-
-
- private void Level_Edit_Enable(bool Enable)
- {
- this.button_Level_Save.Enabled = Enable;
- this.textbox_Level_Fault.Enabled = Enable;
- this.textbox_Level_PreFire.Enabled = Enable;
- this.textbox_Level_FireDay.Enabled = Enable;
- this.textbox_Level_FireNight.Enabled = Enable;
- }
-
- private void Chart_Setup()
- {
-
- this.chart_trend.ChartAreas[0].AxisY.Maximum = 140;
- this.chart_trend.ChartAreas[0].AxisX.Maximum = 44;
-
- this.chart_trend.Series[0].ChartType = SeriesChartType.Column;
- this.chart_trend.Series[0].BorderWidth = 3;
- this.chart_trend.Series[0].XValueType = ChartValueType.Int32;
- this.chart_trend.Series[0].IsXValueIndexed = false;
- }
-
- private void Trend_Update(int[] Data)
- {
- this.chart_trend.Series[0].Points.Clear();
-
-
-
-
-
- for (int i = 0; i < 44; i++)
- {
- DataPoint Point = new DataPoint(i, Data[43 - i]);
- this.chart_trend.Series[0].Points.Add(Point);
- }
- }
-
- private void Information_Update()
- {
- string Day = (mdi.AnalogDetect.FireDayTime == true) ? "낮" : "밤";
- this.label_Information_Current.Text = string.Format("▶ 현재상태 : {0} ({1})", Data[0], Day);
- this.label_Information_Average.Text = string.Format("▶ 평균값 : {0}", Get_AverageValue(Data));
- this.label_Information_Max.Text = string.Format("▶ 최대값 : {0}", Get_MaxValue(Data));
- this.label_Information_Min.Text = string.Format("▶ 최소값 : {0}", Get_MinValue(Data));
- AnalogLevel Level = new AnalogLevel(
- Int32.Parse(Current_Fault), Int32.Parse(Current_PreFire), Int32.Parse(Current_FireDay), Int32.Parse(Current_FireNight));
-
- switch (mdi.AnalogDetect.Get_LevelStatus(Data[0], Level))
- {
- case 0:
- this.label_Information_Current_Color.Text = "Normal";
- this.label_Information_Current_Color.BackColor = Color.Lime;
- break;
- case 1:
- this.label_Information_Current_Color.Text = "Fault";
- this.label_Information_Current_Color.BackColor = Color.Silver;
- break;
- case 2:
- this.label_Information_Current_Color.Text = "PreFire";
- this.label_Information_Current_Color.BackColor = Color.HotPink;
- break;
- case 3:
- this.label_Information_Current_Color.Text = "Fire";
- this.label_Information_Current_Color.BackColor = Color.Red;
- break;
- }
- }
-
- private int Get_MaxValue(int[] Data)
- {
- int result = 0;
- for (int i = 0; i < 44; i++)
- if (result < Data[i])
- result = Data[i];
- return result;
- }
-
- private int Get_MinValue(int[] Data)
- {
- int result = 127;
- for (int i = 0; i < 44; i++)
- if (result > Data[i])
- result = Data[i];
- return result;
- }
-
- private int Get_AverageValue(int[] Data)
- {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- int result = 0;
- for (int i = 20; i < 44; i++)
- result = result + Data[i];
- return result / 24;
- }
-
-
-
-
- private void button_Level_Edit_Click(object sender, EventArgs e)
- {
-
- Level_Edit_Enable(true);
- }
-
- private void button_Level_Init_Click(object sender, EventArgs e)
- {
-
- this.textbox_Level_Fault.Text = Current_Fault;
- this.textbox_Level_PreFire.Text = Current_PreFire;
- this.textbox_Level_FireDay.Text = Current_FireDay;
- this.textbox_Level_FireNight.Text = Current_FireNight;
-
- Level_Edit_Enable(false);
- }
-
- private void button_Level_Save_Click(object sender, EventArgs e)
- {
- try
- {
-
- int falut = Int32.Parse(this.textbox_Level_Fault.Text.Trim());
- int prefire = Int32.Parse(this.textbox_Level_PreFire.Text.Trim());
- int fireday = Int32.Parse(this.textbox_Level_FireDay.Text.Trim());
- int firenight = Int32.Parse(this.textbox_Level_FireNight.Text.Trim());
-
- if (falut < 0)
- MessageBox.Show("Falut 값은 반드시 양수여야 한다");
- else if (prefire <= falut)
- MessageBox.Show("PreFire 값은 반드시 Falut값보다 커야 한다");
- else if (fireday <= prefire || firenight <= prefire)
- MessageBox.Show("Fire Day 및 Fire Night 값은 PreFire 값보다 커야 한다");
-
- else if (this.label_AnalogDetecter_Type_Value.Text == "열감지기" && (fireday < 80 || fireday > 95))
- MessageBox.Show("Fire Day 레벨 값은 80 ~ 95 사이 값이어야 한다");
- else if (this.label_AnalogDetecter_Type_Value.Text == "열감지기" && (firenight < 80 || firenight > 95))
- MessageBox.Show("Fire Night 레벨 값은 80 ~ 95 사이 값이어야 한다");
- else if (this.label_AnalogDetecter_Type_Value.Text == "연감지기" && (fireday < 34 || fireday > 64))
- MessageBox.Show("Fire Day 레벨 값은 34 ~ 64 사이 값이어야 한다");
- else if (this.label_AnalogDetecter_Type_Value.Text == "연감지기" && (firenight < 34 || firenight > 64))
- MessageBox.Show("Fire Night 레벨 값은 34 ~ 64 사이 값이어야 한다");
- else
- {
- if (MessageBox.Show("저장하시겠습니까?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
- {
-
- Level_Edit_Enable(false);
-
- Level_Write();
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- MessageBox.Show("입력값은 반드시 정수타입이어야 합니다");
- }
- }
-
-
-
- private void Trend_Read_Timer_Tick(object sender, EventArgs e)
- {
- Trend_Read();
- }
-
-
-
-
- private void Trend_Read()
- {
- try
- {
-
- if (this.label_AnalogDetecter_Loop_Value.Text == null || this.label_AnalogDetecter_Loop_Value.Text.Length == 0
- || this.label_AnalogDetecter_CommBoard_Value.Text == null || this.label_AnalogDetecter_CommBoard_Value.Text.Length == 0
- || this.label_AnalogDetecter_ID_Value.Text == null || this.label_AnalogDetecter_ID_Value.Text.Length == 0)
- return;
-
- dCommandResponse d = new dCommandResponse(Trend_Read_Complete);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- CmdInfo cmd = new CmdInfo(
-
- prt_cmd_define.read_command_status,
-
- mdi.myReceiverID,
-
- 1,
-
- Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text),
-
- Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text),
-
- Int32.Parse(this.label_AnalogDetecter_ID_Value.Text),
-
- d
- );
-
- cmd.CommandType = "TR";
-
- this.mdi.ui.runCommand(cmd);
-
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- public void Trend_Read_Complete(CmdInfo cmd)
- {
- try
- {
-
- if (cmd.ErrResponse == true)
- return;
- int BoardID = Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text);
- int Loop = Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text);
- int RepeaterID = Int32.Parse(this.label_AnalogDetecter_ID_Value.Text);
- if (BoardID == cmd.boardNo && cmd.loopNo == Loop && RepeaterID == cmd.repeaterNo && cmd.ResCommand == prt_res_define.read_command_status)
- {
- RCVData_ReadCommandStatus ResponseData = (RCVData_ReadCommandStatus)cmd.ResponseData;
-
- for (int i = 0; i < 44; i++)
- Data[i] = ResponseData.AnalogDetecterTrend[i];
- Trend_Update(Data);
- Information_Update();
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
-
- private void Level_Write()
- {
- try
- {
-
- CmdInfo cmd;
- if (mdi.ReceiverModel == "IFC3300")
- {
-
- RepeaterDataAll RepaterDataAll = new RepeaterDataAll();
- cmd = new CmdInfo(
-
- prt_cmd_define.write_analogdetecter_level_all,
-
- mdi.myReceiverID,
-
- 1,
-
- Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text),
-
- Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text),
-
-
-
- null
- );
-
-
- int iRepeaterID = Int32.Parse(this.label_AnalogDetecter_ID_Value.Text);
- RepaterDataAll.Data[iRepeaterID - 1].Set_Level_AnalogDetecter(
- Convert.ToByte(this.textbox_Level_Fault.Text.Trim()),
- Convert.ToByte(this.textbox_Level_PreFire.Text.Trim()),
- Convert.ToByte(this.textbox_Level_FireNight.Text.Trim()),
- Convert.ToByte(this.textbox_Level_FireDay.Text.Trim())
- );
- cmd.CommandData = RepaterDataAll;
- }
- else
- {
-
- cmd = new CmdInfo(
-
- prt_cmd_define.write_analogdetecter_level,
-
- mdi.myReceiverID,
-
- 1,
-
- Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text),
-
- Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text),
-
- Int32.Parse(this.label_AnalogDetecter_ID_Value.Text),
-
- null
- );
- cmd.AnalogDetecterFault = Convert.ToByte(this.textbox_Level_Fault.Text.Trim());
- cmd.AnalogDetecterPreFire = Convert.ToByte(this.textbox_Level_PreFire.Text.Trim());
- cmd.AnalogDetecterFireNight = Convert.ToByte(this.textbox_Level_FireNight.Text.Trim());
- cmd.AnalogDetecterFireDay = Convert.ToByte(this.textbox_Level_FireDay.Text.Trim());
- }
- Popup.CommonPopupShow(this);
-
- this.mdi.ui.runCommand(cmd);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
-
- delegate void CallBack_Cross(CmdInfo cmd);
- private void Delegate_Cross(CmdInfo cmd)
- {
- if (this.InvokeRequired)
- {
- CallBack_Cross d = new CallBack_Cross(Delegate_Cross);
- this.Invoke(d, new object[] { cmd });
- }
- else
- {
- try
- {
-
- if (cmd.ErrResponse == true)
- return;
- int BoardID = Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text);
- int Loop = Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text);
- int RepeaterID = Int32.Parse(this.label_AnalogDetecter_ID_Value.Text);
- if (mdi.ReceiverModel == "IFC3300")
- {
- if (BoardID == cmd.boardNo && cmd.loopNo == Loop && cmd.ResCommand == prt_res_define.write_analogdetecter_level_all)
- {
- RCVData_WriteAnalogDetecterLevel2 ResponseData = (RCVData_WriteAnalogDetecterLevel2)cmd.ResponseData;
- Current_Fault = Convert.ToInt32(ResponseData.Fault).ToString();
- Current_PreFire = Convert.ToInt32(ResponseData.PreFire).ToString();
- Current_FireNight = Convert.ToInt32(ResponseData.FireNight).ToString();
- Current_FireDay = Convert.ToInt32(ResponseData.FireDay).ToString();
-
- mdi.GetAnalogDetecterLevelDB();
-
- mdi.Event.AnalogLevel_Update_SendMessage_Write(mdi);
-
- Information_Update();
- Popup.CommonPopupClose(this);
-
- MessageBox.Show("설정되었습니다");
- }
- }
- else
- {
- if (BoardID == cmd.boardNo && cmd.loopNo == Loop && RepeaterID == cmd.repeaterNo && cmd.ResCommand == prt_res_define.write_analogdetecter_level)
- {
-
- Current_Fault = Convert.ToInt32(cmd.AnalogDetecterFault).ToString();
- Current_PreFire = Convert.ToInt32(cmd.AnalogDetecterPreFire).ToString();
- Current_FireNight = Convert.ToInt32(cmd.AnalogDetecterFireNight).ToString();
- Current_FireDay = Convert.ToInt32(cmd.AnalogDetecterFireDay).ToString();
-
- mdi.GetAnalogDetecterLevelDB();
-
- mdi.Event.AnalogLevel_Update_SendMessage_Write(mdi);
-
- Information_Update();
- Popup.CommonPopupClose(this);
-
- MessageBox.Show("설정되었습니다");
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- }
- public void Level_Write_Complete(CmdInfo cmd)
- {
- Delegate_Cross(cmd);
- }
- }
- }
|