123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632 |
- 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); // mdi 는 널로 대체함
- // 초기화 버튼을 누를때 되돌리는 값
- string Current_Fault = "";
- string Current_PreFire = "";
- string Current_FireDay = "";
- string Current_FireNight = "";
- // 갱신되는 데이터
- int[] Data = new int[44];
- string tempReceiverID, tempCommBoard, tempLoop, tempRepeaterID;
- //string ReceiverID = null; // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- // cyim 2016.04.06 : mdi 신규창에서 windows base timer 리소스 접근 문제
- 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);
- // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- mdi = mdiparent;
- ReceiverID = mdi.MyReceiverID.ToString();
- tempReceiverID = ReceiverID;
- tempCommBoard = CommBoard;
- tempLoop = Loop;
- tempRepeaterID = RepeaterID;
- // UI
- 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;
- // cyim 2016.11.23 : 아날로그 감지기 레벨값 설정 제한
- 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));// cyim 2015.7.30 데이타베이스 접속 루틴 변경
- 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);
- // cyim 2016.06.15 : 아날로그 감지기 출력 포인트 고려 : 레벨값은 입력포인트만 고려한다
- // 출력포인트가 있을경우에는 레벨값 조회시 중계기 아이디가 중복되어 버린다
- 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();
- // 기타 // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- mdi.AnalogDetect.Form_Active_AnalogDetecter = true;
- //
- // 타이머
- //
- // 트렌드 값 갱신
- //mdi.Timer_WindowBase.Create(ReceiverID + ":" + "Trend_Read_Timer", 15000, Trend_Read_Timer_Tick, true); // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- // cyim 2016.04.06 : mdi 신규창에서 windows base timer 리소스 접근 문제
- // 아날로그 감지기 창 정보와 같이 mdi 기반에서 새롭게 생성된 창의 정보에서는
- // 전역 타이머로 접근하려면 리소스 접근에 문제가 있다 (라벨 정보를 알수가 없다)
- // 아래와 같이 내부적으로 직접 타이머를 직접 생성하고 관리해야만 리소스에 접근이 가능하다
- // 위와 같이 처리하게 되면 처음만 가동된다.
- t.Interval = 15000;
- t.Tick += new EventHandler(Trend_Read_Timer_Tick);
- t.Enabled = true;
- }
- // 폼이 종료
- private void Form_AnalogDetecter_FormClosing(object sender, FormClosingEventArgs e)
- {
- // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- mdi.AnalogDetect.Form_Active_AnalogDetecter = false;
- // cyim 2016.04.06 : mdi 신규창에서 windows base timer 리소스 접근 문제
- //mdi.Timer_WindowBase.Delete(ReceiverID + ":" + "Trend_Read_Timer");
- // 라이팅에 대한 응답
- _Event.AnalogDetecter_SendMessage_Event -= new _Event.AnalogDetecter_SendMessage_Handler(_Event_AnalogDetecter_SendMessage);
- }
- public void _Event_AnalogDetecter_SendMessage(CmdInfo cmd)
- {
- Level_Write_Complete(cmd);
- }
- //
- // UI
- //
- // 레벨값은 편집 가능 상태
- 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();
- // 데이타는 총 44개이다
- // 시간별 : 24
- // 10분별 : 6
- // 1분별 : 10
- // 15초별 : 4
- 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) ? "낮" : "밤"; // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- 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));
- // 레벨에 따라 변경 (Normal : 0, Fault :1, PreFire : 2, Fire : 3)
- switch (mdi.AnalogDetect.Get_LevelStatus(Data[0], Level)) // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- {
- 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)
- {
- // 24시간 데이터만 수집
- //
- // 그래프 : 참고로 24시간 데이터 인덱스는 20~43 까지이다
- //int[] Data = new int[44]{
- // // 시간별 : 24
- // 10,10,10,10,10,10,10,10,10,10,10,10,
- // 10,10,10,10,10,10,10,10,10,10,10,10,
- // // 10분별 : 6
- // 10,10,10,10,10,10,
- // // 1분별 : 10
- // 10,10,10,10,10,10,10,10,10,10,
- // // 15초별 : 4
- // 10,10,10,10
- // };
- 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)
- {
- // UI
- 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());
- // Falut 값은 반드시 양수여야 한다
- 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 값보다 커야 한다");
- // cyim 2016.11.23 : 아날로그 감지기 레벨값 설정 제한
- //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 사이 값이어야 한다");
- // hoon 2020-07-08 : 아날로그 감지기 레벨값 설정 제한 변경 - 최청명 대리 요청사항(1~127 입력가능하게)
- else if (this.label_AnalogDetecter_Type_Value.Text == "열감지기" && (fireday < 0 || fireday > 127))
- MessageBox.Show("Fire Day 레벨 값은 1 ~ 127 사이 값이어야 한다");
- else if (this.label_AnalogDetecter_Type_Value.Text == "열감지기" && (firenight < 0 || firenight > 127))
- MessageBox.Show("Fire Night 레벨 값은 1 ~ 127 사이 값이어야 한다");
- else if (this.label_AnalogDetecter_Type_Value.Text == "연감지기" && (fireday < 0 || fireday > 127))
- MessageBox.Show("Fire Day 레벨 값은 1 ~ 127 사이 값이어야 한다");
- else if (this.label_AnalogDetecter_Type_Value.Text == "연감지기" && (firenight < 0 || firenight > 127))
- MessageBox.Show("Fire Night 레벨 값은 1 ~ 127 사이 값이어야 한다");
- 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
- {
- // cyim 2016.01.07 중계기상태보기 화면에서 에러팝업출력
- 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);
- // cyim 2016.12.07 : 수신기 모델별 내부 로직 변경
- //if (mdi.ReceiverModel == "IFC3300")
- //{
- // // 명령어 생성
- // CmdInfo cmd = new CmdInfo(
- // // 0x24
- // prt_cmd_define.read_analogdetecter_trend,
- // // 수신기 아이디
- // mdi.myReceiverID,
- // // Comm ID
- // 1,
- // // Loop No
- // Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text),
- // // Board ID
- // Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text),
- // // Repeater ID
- // Int32.Parse(this.label_AnalogDetecter_ID_Value.Text),
- // // Event
- // d
- // );
- // // 데몬에 요청
- // this.mdi.ui.runCommand(cmd);
- //}
- //else
- //{
- // cyim 2016.10.27 : 대용량 수신기 아날로그 감지기 트랜드 읽기
- // 하단 주석은 삭제 금지
- // 명령어 생성
- CmdInfo cmd = new CmdInfo(
- // 0x76
- prt_cmd_define.read_command_status,
- // 수신기 아이디
- mdi.myReceiverID,
- // Comm ID
- 1,
- // Loop No
- Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text),
- // Board ID
- Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text),
- // Repeater ID
- Int32.Parse(this.label_AnalogDetecter_ID_Value.Text),
- // Event
- 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")
- {// 0x22, 3300
- // 명령어 생성
- RepeaterDataAll RepaterDataAll = new RepeaterDataAll();
- cmd = new CmdInfo(
- // 0x22
- prt_cmd_define.write_analogdetecter_level_all,
- // 수신기 아이디
- mdi.myReceiverID,
- // Comm ID
- 1,
- // Loop No
- Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text),
- // Board ID
- Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text),
- // Repeater ID
- //Int32.Parse(this.label_AnalogDetecter_ID_Value.Text),
- // Event
- null
- );
- //cmd.dEvent = deleg;
- // 레벨값
- 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 // 0x78, 3000
- {
- // 명령어 생성
- cmd = new CmdInfo(
- // 0x78
- prt_cmd_define.write_analogdetecter_level,
- // 수신기 아이디
- mdi.myReceiverID,
- // Comm ID
- 1,
- // Loop No
- Int32.Parse(this.label_AnalogDetecter_Loop_Value.Text),
- // Board ID
- Int32.Parse(this.label_AnalogDetecter_CommBoard_Value.Text),
- // Repeater ID
- Int32.Parse(this.label_AnalogDetecter_ID_Value.Text),
- // Event
- 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)//A2
- {//RepeaterID == cmd.repeaterNo
- 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();
- // cyim 2015.7.6 레벨값 갱신 이벤트 추가 : 중계기 상태보기 화면에 레벨값 갱신을 통보해야 한다
- mdi.Event.AnalogLevel_Update_SendMessage_Write(mdi); // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- // 정보창 갱신 (중계기상태보기 화면보다 갱신이 늦을수 있다
- Information_Update();
- Popup.CommonPopupClose(this);
- // UI 에는 이미 반영되어있음
- MessageBox.Show("설정되었습니다");
- }
- }
- else
- {
- if (BoardID == cmd.boardNo && cmd.loopNo == Loop && RepeaterID == cmd.repeaterNo && cmd.ResCommand == prt_res_define.write_analogdetecter_level)//F8
- {
- //request_init = false;
- 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();
- // cyim 2015.7.6 레벨값 갱신 이벤트 추가 : 중계기 상태보기 화면에 레벨값 갱신을 통보해야 한다
- mdi.Event.AnalogLevel_Update_SendMessage_Write(mdi); // cyim 2015.8.4 수신반을 위한 static 클래스 정리
- // 정보창 갱신 (중계기상태보기 화면보다 갱신이 늦을수 있다
- Information_Update();
- Popup.CommonPopupClose(this);
- // UI 에는 이미 반영되어있음
- MessageBox.Show("설정되었습니다");
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- }
- public void Level_Write_Complete(CmdInfo cmd)
- {
- Delegate_Cross(cmd);
- }
- }
- }
|