12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Data;
- using System.Drawing;
- using System.Diagnostics;
- using System.Windows.Forms;
- using System.Collections;
- namespace FPER
- {
- public class UIReceiverInfo
- {
- int myReceiverID;
- ReceiverTypeInfo myReceiverTypeInfo; //수신기 설정값
- int cnt_ReceiverCut = 0; //차단 count
- public UIReceiverInfo(int receiverid)
- {
- try
- {
- this.myReceiverID = receiverid;
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- /****************************************************************************************************
- *
- * 수신기 설정값 읽어오기 : 수신기 설정값이 변경되면 호출해 준다...[시작]
- *
- ****************************************************************************************************/
- public ReceiverTypeInfo ReadAll_ReceiverTypeInfo(MDIParent mdi)
- {
- ReceiverTypeInfo myReceiverTypeInfo = new ReceiverTypeInfo(this.myReceiverID);
- try
- {
- DacBoardConfig dacBoardConfig = new DacBoardConfig(this.myReceiverID); // cyim 2015.7.30 데이타베이스 접속 루틴 변경
- try
- {
- /*******************************************************
- * 통신보드 설정값 읽어오기
- *******************************************************/
- DataTable dt = dacBoardConfig.Board_Select(this.myReceiverID, 0, "Y");
- if (dt.Rows.Count > 0)
- {
- // cyim 2017.01.12 : IFC3300 은 통신보드 0번이 존재한다
- // cyim 2016.11.03 : 통신보드(중계반)는 최대 64 //통신보드수 16개로 고정
- BoardTypeInfo[] brd = new BoardTypeInfo[65];
- int boardCnt = 0;
- // cyim 2016.10.31 : 대용량 수신기용 UI 변경
- foreach (DataRow dr in dt.Rows)
- {
- int BoardId = int.Parse(Convert.ToString(dr[0]));
- // cyim 2017.01.12 : IFC3300 은 통신보드 0번이 존재한다
- if (mdi.ReceiverModel == "IFC3300")
- {
- if (BoardId == 0)
- continue;
- }
- else
- {
- if (BoardId == 15)
- continue;
- }
- Boolean Loop0UseFlag = Convert.ToString(dr["LOOP0_USE_FLAG"]) == "Y" ? true : false;
- Boolean Loop1UseFlag = Convert.ToString(dr["LOOP1_USE_FLAG"]) == "Y" ? true : false;
- Boolean Loop2UseFlag = Convert.ToString(Util.NullToStr(dr["LOOP2_USE_FLAG"])) == "Y" ? true : false;
- Boolean Loop3UseFlag = Convert.ToString(Util.NullToStr(dr["LOOP3_USE_FLAG"])) == "Y" ? true : false;
- Boolean Loop0CutFlag = Convert.ToString(dr["LOOP0_CUT_FLAG"]) == "Y" ? true : false;
- Boolean Loop1CutFlag = Convert.ToString(dr["LOOP1_CUT_FLAG"]) == "Y" ? true : false;
- Boolean Loop2CutFlag = Convert.ToString(Util.NullToStr(dr["LOOP2_CUT_FLAG"])) == "Y" ? true : false;
- Boolean Loop3CutFlag = Convert.ToString(Util.NullToStr(dr["LOOP3_CUT_FLAG"])) == "Y" ? true : false;
- Boolean UseFlag = Convert.ToString(dr["USE_FLAG"]) == "Y" ? true : false;
- //통신보드설정 저장
- brd[BoardId - 1] = new BoardTypeInfo(BoardId, UseFlag, Loop0UseFlag, Loop1UseFlag, Loop2UseFlag, Loop3UseFlag);
- if (Loop0UseFlag)
- {
- //Loop0의 중계기 127개의 설정정보 저장, 배열임
- brd[BoardId - 1].Loop0_RepeaterType = RepeaterTypeRead(BoardId, 0);
- brd[BoardId - 1].Loop0CutFlag = Loop0CutFlag;
- }
- if (Loop1UseFlag)
- {
- //Loop1의 중계기 127개의 설정정보 저장, 배열임
- brd[BoardId - 1].Loop1_RepeaterType = RepeaterTypeRead(BoardId, 1);
- brd[BoardId - 1].Loop1CutFlag = Loop1CutFlag;
- }
- if (Loop2UseFlag)
- {
- //Loop0의 중계기 127개의 설정정보 저장, 배열임
- brd[BoardId - 1].Loop2_RepeaterType = RepeaterTypeRead(BoardId, 2);
- brd[BoardId - 1].Loop2CutFlag = Loop2CutFlag;
- }
- if (Loop3UseFlag)
- {
- //Loop1의 중계기 127개의 설정정보 저장, 배열임
- brd[BoardId - 1].Loop3_RepeaterType = RepeaterTypeRead(BoardId, 3);
- brd[BoardId - 1].Loop3CutFlag = Loop3CutFlag;
- }
- ++boardCnt;
- Application.DoEvents();
- }
- //통신보드 설정값 저장
- myReceiverTypeInfo.MyBoardType = brd;
- }
- else
- {
- throw new Exception("통신보드 설정정보가 없습니다. 통신보드 설정정보를 확인하십시요.");
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return myReceiverTypeInfo;
- }
- //중계기 설정정보
- private RepeaterDeviceTypeInfo[] RepeaterTypeRead(int BoardId, int LoopNo)
- {
- RepeaterDeviceTypeInfo[] repType = new RepeaterDeviceTypeInfo[127];
- try
- {
- DacDeviceConfig dacDeviceConfig = new DacDeviceConfig(myReceiverID); // cyim 2015.7.30 데이타베이스 접속 루틴 변경
- DacRepeaterConfig dacRepeaterConfig = new DacRepeaterConfig(myReceiverID); // cyim 2015.7.30 데이타베이스 접속 루틴 변경
- // 특정 계통의 중계기 전체를 읽어온다.
- DataTable dt = dacRepeaterConfig.Repeater_Select(this.myReceiverID, BoardId, LoopNo, 0, null);
- if (dt.Rows.Count > 0)
- {
- foreach (DataRow dr in dt.Rows)
- {
- //중계기설정값
- int RepeaterID = int.Parse(dr["REPEATER_ID"].ToString());
- // lch_19.04.01
- // TB_REPEATER 테이블에서 128 중계기는 없는데 DB에 있을 수 있다(교류전원이상, 예비전원이상 정보를 128 중계기로 요청한다)
- if (RepeaterID == 128) break;
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- // '1' = A : 2X2
- // '2' = B : 4X4
- // '4' = C : 아날로그연감지기
- // '5' = D : 아날로그열감지기
- String RepeaterType = Convert.ToString(dr["REPEATER_TYPE"]);
- Boolean UseFlag = Convert.ToString(dr["USE_FLAG"]) == "Y" ? true : false;
- Boolean CutFlag = Convert.ToString(dr["Cut_FLAG"]) == "Y" ? true : false;
- String Divicetype = "";
- if (RepeaterType.Equals("1")) Divicetype = "A";
- else if (RepeaterType.Equals("2")) Divicetype = "B";
- else if (RepeaterType.Equals("4")) Divicetype = "C";
- else if (RepeaterType.Equals("5")) Divicetype = "D";
- RepeaterDeviceTypeInfo dev = new RepeaterDeviceTypeInfo(RepeaterID); //중계기및 회로 설정정보
- if (!Divicetype.Equals(""))
- {
- dev.UseFlag = UseFlag;
- dev.RepeaterType = Divicetype;
- dev.CutFlag = CutFlag;
- }
- else dev.UseFlag = false;
- //회로설정값
- DataTable dt2 = dacDeviceConfig.Device_Select(this.myReceiverID, BoardId, LoopNo, RepeaterID, 0, null);
- foreach (DataRow dr2 in dt2.Rows)
- {
- int DeviceID = int.Parse(dr2["DEVICE_ID"].ToString());
- Boolean devCutFlag = dr2["CUT_FLAG"].ToString() == "Y" ? true : false;
- if (dr2["INOUT_TYPE"].ToString().Equals(code_GroupIO.Input))
- {
- dev.setInputDeviceTypeInfo(DeviceID, dr2["DEVICE_TYPE"].ToString(), dr2["DEVICE_NAME"].ToString(), dr2["POSITION_CODE"].ToString(), devCutFlag);
- }
- else
- {
- dev.setOutputDeviceTypeInfo(DeviceID, dr2["DEVICE_TYPE"].ToString(), dr2["DEVICE_NAME"].ToString(), dr2["POSITION_CODE"].ToString(), devCutFlag);
- }
- }
- repType[RepeaterID - 1] = dev;
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return repType;
- }
- /****************************************************************************************************
- * 설정값 읽어오기 [끝]
- ****************************************************************************************************/
- //TB_CONFIG의 환경정보를 불러온다.. 없는경우 생성해 준다...
- public ReceiverConfigVo ReadConfig()
- {
- ReceiverConfigVo vo = null;
- try
- {
- DacReceiverConfig dacReceiverConfig = new DacReceiverConfig(myReceiverID); // cyim 2015.7.30 데이타베이스 접속 루틴 변경
- DataTable dt = dacReceiverConfig.Config_Select(this.myReceiverID);
- if (dt.Rows.Count > 0)
- {
- DataRow dr = dt.Rows[0];
- vo = new ReceiverConfigVo(this.myReceiverID);
- vo.Fire_accumulation_mode = Util.NullToStr(dr["FIRE_ACCUMULATION_MODE"]) == "Y" ? true : false;
- vo.Fire_accumulation_time = (Util.StrToInt(dr["FIRE_ACCUMULATION_TIME"], 0) > 60 ? Util.StrToInt(dr["FIRE_ACCUMULATION_TIME"], 0) / 1000 : Util.StrToInt(dr["FIRE_ACCUMULATION_TIME"], 0));
- vo.Fire_process_mode = Util.NullToStr(dr["FIRE_PROCESS_MODE"]) == "Y" ? true : false;
- vo.Sound_process_mode = Util.NullToStr(dr["SOUND_PROCESS_MODE"]) == "Y" ? true : false;
- vo.Master_user_id = Util.NullToStr(dr["MASTER_USER_ID"]);
- vo.Master_password = Util.NullToStr(dr["MASTER_PASSWORD"]);
- vo.Building_name = Util.NullToStr(dr["BUILDING_NAME"]);
- // cyim 2013.7.29 화재시화면전환 정보 데이타베이스 저장 및 읽기
- vo.Jump_field_flag = Util.NullToStr(dr["JUMP_FIELD"]);
- // cyim 2013.6.27 운전설정시에 시운전 모드 체크박스 추가 및 메인 UI 표시
- vo.Test_run_flag = Util.NullToStr(dr["TEST_RUN_FLAG"]);
- // cyim 2014.8.11 화면에 마스터인지 슬레이브인지 표시
- vo.Master_flag = Util.NullToStr(dr["MASTER_FLAG"]);
- try
- {
- vo.Background_image = Util.NullToStr(dr["BACKGROUND_IMAGE"]);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- else
- {
- //TB_CONFIG의 환경정보가 없는경우 기본설정정보
- vo = new ReceiverConfigVo(this.myReceiverID);
- vo.Fire_accumulation_mode = false;
- vo.Fire_accumulation_time = 0;
- vo.Fire_process_mode = false;
- vo.Sound_process_mode = false;
- vo.Master_user_id = "icontrols";
- vo.Master_password = "";
- vo.Building_name = "아이콘트롤스 빌딩";
- // cyim 2013.7.29 화재시화면전환 정보 데이타베이스 저장 및 읽기
- vo.Jump_field_flag = "N";
- // cyim 2013.6.27 운전설정시에 시운전 모드 체크박스 추가 및 메인 UI 표시
- vo.Test_run_flag = "N";
- // cyim 2014.8.11 화면에 마스터인지 슬레이브인지 표시
- vo.Master_flag = "N";
- dacReceiverConfig.Config_Update(QUERYMode.insert, this.myReceiverID, vo.Fire_accumulation_mode ? "Y" : "N"
- , vo.Fire_accumulation_time, vo.Fire_process_mode ? "Y" : "N", vo.Sound_process_mode ? "Y" : "N"
- , vo.Master_user_id, vo.Master_password
- , vo.Building_name, vo.Background_image, vo.Test_run_flag, vo.Jump_field_flag);
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return vo;
- }
- /************************************************************************/
- /* 차단 count : 출력회로,중계기,통신보드,Loop0,Loop1 */
- /************************************************************************/
- public int Count_ReceiverCut(ReceiverTypeInfo receiverInfo)
- {
- this.myReceiverTypeInfo = receiverInfo;
- try
- {
- //----------------------------------------------------------------
- // 변수초기화
- //----------------------------------------------------------------
- this.cnt_ReceiverCut = 0; //차단 count
- //----------------------------------------------------------------
- if (receiverInfo == null) return 0;
- BoardTypeInfo[] boardInfos = receiverInfo.MyBoardType; //전체통신보드
- if (boardInfos != null)
- {
- foreach (BoardTypeInfo brd in boardInfos)
- {
- // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
- RepeaterDeviceTypeInfo[] loop0_repinfo; //127개 중계기 설정값
- RepeaterDeviceTypeInfo[] loop1_repinfo; //127개 중계기 설정값
- RepeaterDeviceTypeInfo[] loop2_repinfo; //127개 중계기 설정값
- RepeaterDeviceTypeInfo[] loop3_repinfo; //127개 중계기 설정값
- if (brd != null)
- {
- //통신보드 차단여부
- if (brd.UseFlag)
- {
- /////////////// loop 0
- if (brd.Loop0UseFlag)
- {
- if (brd.Loop0CutFlag)
- {
- this.cnt_ReceiverCut++; //Loop0 : 차단증가
- }
- else
- {
- loop0_repinfo = brd.Loop0_RepeaterType;
- RepeaterPointUnit[] loop0_repdata = brd.Loop0_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop0_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop0_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 0); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- this.cnt_ReceiverCut++; //중계기 : 차단증가
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- { // 2*2 중계기
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos == null) break;
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- { // 4*4 중계기
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos == null) break;
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- { // 2*2 중계기
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos == null) break;
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 0
- /////////////// loop 1
- if (brd.Loop1UseFlag)
- {
- if (brd.Loop1CutFlag)
- {
- this.cnt_ReceiverCut++; //Loop1 : 차단증가
- }
- else
- {
- loop1_repinfo = brd.Loop1_RepeaterType;
- RepeaterPointUnit[] loop1_repdata = brd.Loop1_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop1_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop1_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 1); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- this.cnt_ReceiverCut++; //중계기 : 차단증가
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 1
- /////////////// loop 2
- if (brd.Loop2UseFlag)
- {
- if (brd.Loop2CutFlag)
- {
- this.cnt_ReceiverCut++; //Loop2 : 차단증가
- }
- else
- {
- loop2_repinfo = brd.Loop2_RepeaterType;
- RepeaterPointUnit[] loop2_repdata = brd.Loop2_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop2_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop2_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 1); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- this.cnt_ReceiverCut++; //중계기 : 차단증가
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 2
- /////////////// loop 3
- if (brd.Loop3UseFlag)
- {
- if (brd.Loop3CutFlag)
- {
- this.cnt_ReceiverCut++; //Loop3 : 차단증가
- }
- else
- {
- loop3_repinfo = brd.Loop3_RepeaterType;
- RepeaterPointUnit[] loop3_repdata = brd.Loop3_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop3_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop3_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 1); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- this.cnt_ReceiverCut++; //중계기 : 차단증가
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) this.cnt_ReceiverCut++; //회로차단 : 증가
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 3
- }
- }
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return this.cnt_ReceiverCut;
- }
- /************************************************************************/
- /* 차단 count : 출력회로,중계기,통신보드,Loop0,Loop1 */
- /************************************************************************/
- public ArrayList Array_ReceiverCut(ReceiverTypeInfo receiverInfo)
- {
- this.myReceiverTypeInfo = receiverInfo;
- ArrayList ary = new ArrayList();
- try
- {
- if (receiverInfo == null) return null;
- BoardTypeInfo[] boardInfos = receiverInfo.MyBoardType; //전체통신보드
- if (boardInfos != null)
- {
- foreach (BoardTypeInfo brd in boardInfos)
- {
- // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
- RepeaterDeviceTypeInfo[] loop0_repinfo; //127개 중계기 설정값
- RepeaterDeviceTypeInfo[] loop1_repinfo; //127개 중계기 설정값
- RepeaterDeviceTypeInfo[] loop2_repinfo; //127개 중계기 설정값
- RepeaterDeviceTypeInfo[] loop3_repinfo; //127개 중계기 설정값
- if (brd != null)
- {
- if (brd.UseFlag) //통신보드 차단여부
- {
- /////////////// loop 0
- if (brd.Loop0UseFlag)
- {
- if (brd.Loop0CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, 0, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP0 차단", brd.BoardNo));
- ary.Add(eventLogMsg);
- }
- else
- {
- loop0_repinfo = brd.Loop0_RepeaterType;
- RepeaterPointUnit[] loop0_repdata = brd.Loop0_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop0_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop0_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 0); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, RepeaterID, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP0 중계기[{1}] 차단", brd.BoardNo, RepeaterID));
- ary.Add(eventLogMsg);
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos == null) break;
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) //입력회로차단 : 증가
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP0 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) //출력회로차단 : 증가
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP0 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos == null) break;
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP0 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP0 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos == null) break;
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag) //입력회로차단 : 증가
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP0 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag) //출력회로차단 : 증가
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 0, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP0 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 0
- /////////////// loop 1
- if (brd.Loop1UseFlag)
- {
- if (brd.Loop1CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, 0, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP1 차단", brd.BoardNo));
- ary.Add(eventLogMsg);
- }
- else
- {
- loop1_repinfo = brd.Loop1_RepeaterType;
- RepeaterPointUnit[] loop1_repdata = brd.Loop1_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop1_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop1_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 1); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, RepeaterID, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP1 중계기[{1}] 차단", brd.BoardNo, RepeaterID));
- ary.Add(eventLogMsg);
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP1 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP1 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP1 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP1 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP1 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 1, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP1 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 1
- /////////////// loop 2
- if (brd.Loop2UseFlag)
- {
- if (brd.Loop2CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, 0, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP2 차단", brd.BoardNo));
- ary.Add(eventLogMsg);
- }
- else
- {
- loop2_repinfo = brd.Loop2_RepeaterType;
- RepeaterPointUnit[] loop2_repdata = brd.Loop2_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop2_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop2_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 1); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, RepeaterID, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP2 중계기[{1}] 차단", brd.BoardNo, RepeaterID));
- ary.Add(eventLogMsg);
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP2 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP2 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP2 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP2 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP2 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 2, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP2 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 2
- /////////////// loop 3
- if (brd.Loop3UseFlag)
- {
- if (brd.Loop3CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, 0, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP3 차단", brd.BoardNo));
- ary.Add(eventLogMsg);
- }
- else
- {
- loop3_repinfo = brd.Loop3_RepeaterType;
- RepeaterPointUnit[] loop3_repdata = brd.Loop3_RepeaterUnit_Data; //127개 중계기 데이터
- foreach (RepeaterDeviceTypeInfo dev in loop3_repinfo)
- {
- if (dev != null)
- {
- int RepeaterID = dev.RepeaterNo;
- RepeaterPointUnit unit = loop3_repdata[RepeaterID - 1];
- //RepeaterUnit_Display(dev, unit, this.myReceiverId, brd.BoardNo, 1); //중계기 설정타입 및 데이터로 카운트 표시
- if (dev.UseFlag)
- {
- if (dev.CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, RepeaterID, 0, "A", true, MappingStatus.Normal, string.Format("통신보드[{0}] LOOP3 중계기[{1}] 차단", brd.BoardNo, RepeaterID));
- ary.Add(eventLogMsg);
- }
- else
- {
- if (dev.RepeaterType.Equals("A"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[2];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[2];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 2; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP3 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP3 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- else if (dev.RepeaterType.Equals("B"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[4];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[4];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 4; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP3 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP3 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- // cyim 2015.6.8 아날로그 감지기 연동 추가
- else if (dev.RepeaterType.Equals("C") || dev.RepeaterType.Equals("D"))
- {
- DeviceTypeInfo[] inDeviceTypeInfos = new DeviceTypeInfo[1];
- DeviceTypeInfo[] outDeviceTypeInfos = new DeviceTypeInfo[1];
- inDeviceTypeInfos = dev.inDeviceTypeInfos;
- outDeviceTypeInfos = dev.outDeviceTypeInfos;
- for (int i = 0; i < 1; i++)
- {
- if (inDeviceTypeInfos[i] != null)
- {
- if (inDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, RepeaterID, i + 1, "I", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP3 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "I"));
- ary.Add(eventLogMsg);
- }
- }
- if (outDeviceTypeInfos[i] != null)
- {
- if (outDeviceTypeInfos[i].CutFlag)
- {
- EventLogInfo eventLogMsg = CreateEventLogInfo("CE", receiverInfo.ReceiverNo, 1
- , brd.BoardNo, 3, RepeaterID, i + 1, "O", true, MappingStatus.Normal
- , string.Format("통신보드[{0}] LOOP3 중계기[{1}] 회로[{2}] 타입[{3}] 차단", brd.BoardNo, RepeaterID, i + 1, "O"));
- ary.Add(eventLogMsg);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- /////////////// loop 3
- }
- //else
- //{
- // this.cnt_ReceiverCut++; //통신보드 : 차단증가
- //}
- }
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return ary;
- }
- //이벤트 로그 메세지 생성
- private EventLogInfo CreateEventLogInfo(String Command_type, int Receiver_id
- , int Comm_id, int Board_id, int Loop_no, int Repeater_id, int Device_id, String Inout_type
- , bool LiveMsgFlag, MappingStatus EventStatus, string message
- )
- {
- EventLogInfo eventLogInfo = null;
- try
- {
- DateTime commandTime = DateTime.Now;
- // * 'L' 밀리 세컨드. 필요에 따라서 0을 선두에 추가해, 3 자리수로 표현합니다 (000 - 999).
- //* 'N' 나노초. 필요에 따라서 0을 선두에 추가해, 9 자리수로 표현합니다 (000000000 - 999999999).
- string commandId = String.Format("{0:yyyy}{0:MM}{0:dd}{0:HH}{0:mm}{0:ss}{9:00000}{1}{2:00}{3:0}{4:00}{5:0}{6:000}{7:00}{8}", commandTime, Command_type
- , Receiver_id, Comm_id, Board_id, Loop_no, Repeater_id, Device_id, Inout_type, commandTime.Millisecond);
- eventLogInfo = new EventLogInfo(commandId);
- //MskDeviceIDString device_str = new MskDeviceIDString(
- // Comm_id, Board_id, Loop_no, Repeater_id, Device_id, Inout_type);
- string eventTypeName = "차단설정";
- //string message = String.Format("[{0}]{1} ", Command_type, eventTypeName);
- string command_time = String.Format("{0:yyyy}{0:MM}{0:dd}{0:HH}{0:mm}{0:ss}{1:00000}", commandTime, commandTime.Millisecond);
- //eventLogInfo.EventTime = command_time;
- eventLogInfo.EventTime = commandTime;
- eventLogInfo.EventType = Command_type; //-----------------------
- eventLogInfo.EventTypeName = eventTypeName; //-----------------------
- eventLogInfo.Message = message; //-----------------------
- eventLogInfo.EventStatus = EventStatus;
- eventLogInfo.LiveMsgFlag = LiveMsgFlag;
- eventLogInfo.ReceiverID = Receiver_id;
- eventLogInfo.CommId = Comm_id;
- eventLogInfo.BoardNo = Board_id;
- eventLogInfo.LoopNo = Loop_no;
- eventLogInfo.RepeaterNo = Repeater_id;
- eventLogInfo.DeviceId = Device_id;
- eventLogInfo.InoutType = Inout_type;
- eventLogInfo.DeviceMessage = Util.device_message(Inout_type, Receiver_id, Comm_id, Board_id, Loop_no, Repeater_id, Device_id);
- //eventLogInfo.Confirm_flag = "N";
- //eventLogInfo.Confirm_remark = message;
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- //MessageBox.Show(string.Format("[{0}]\r\n{1}", ex.Message, ex.Source), Application.ProductName);
- //Debug.WriteLine(ex.Message);
- }
- return eventLogInfo;
- }
- }
- //환경설정정보
- public class ReceiverConfigVo
- {
- private int receiver_id = 0; //현재수신기ID
- private bool fire_accumulation_mode = false; //축적모드
- private int fire_accumulation_time = 0; //축적시간(초)-설정값
- private int fire_accumulation_second = 0; //축적시간(초)
- private bool fire_process_mode = false; //화재모드
- private bool sound_process_mode = false; //지구음향모드--사용안함
- private string master_user_id = ""; //관리자ID
- private string master_password = ""; //관리자PASSWORD
- private string building_name = "아이콘트롤스 빌딩"; //건물명
- //private string background_image = null; //바탕이미지
- private string background_image = null; //바탕이미지
- //D:\타기작업실\아이콘트롤스\이미지
- private bool fire_accumulation_start = false; //축적감지 시작
- // cyim 2013.7.29 화재시화면전환 정보 데이타베이스 저장 및 읽기
- private string jump_field_flag = "";
- // cyim 2013.6.27 운전설정시에 시운전 모드 체크박스 추가 및 메인 UI 표시
- private string test_run_flag = "";
- // cyim 2014.8.11 화면에 마스터인지 슬레이브인지 표시
- private string master_flag = "";
- public ReceiverConfigVo(int recevier_id)
- {
- this.receiver_id = recevier_id;
- }
- public bool Fire_accumulation_mode { get { return this.fire_accumulation_mode; } set { this.fire_accumulation_mode = value; } }
- public int Fire_accumulation_time { get { return this.fire_accumulation_time; } set { this.fire_accumulation_time = value; this.fire_accumulation_second = value; } }
- public int Fire_accumulation_second { get { return this.fire_accumulation_second; } set { this.fire_accumulation_second = value; } }
- public bool Fire_process_mode { get { return this.fire_process_mode; } set { this.fire_process_mode = value; } }
- public bool Sound_process_mode { get { return this.sound_process_mode; } set { this.sound_process_mode = value; } }
- public string Master_user_id { get { return this.master_user_id; } set { this.master_user_id = value; } }
- public string Master_password { get { return this.master_password; } set { this.master_password = value; } }
- public bool Fire_accumulation_start { get { return this.fire_accumulation_start; } set { this.fire_accumulation_start = value; } }
- public string Building_name { get { return this.building_name; } set { this.building_name = value; } }
- //public string Background_image { get { return this.background_image; } set { this.background_image = value; } }
- public string Background_image { get { return this.background_image; } set { this.background_image = value; } }
- // cyim 2013.7.29 화재시화면전환 정보 데이타베이스 저장 및 읽기
- public string Jump_field_flag { get { return this.jump_field_flag; } set { this.jump_field_flag = value; } }
- // cyim 2013.6.27 운전설정시에 시운전 모드 체크박스 추가 및 메인 UI 표시
- public string Test_run_flag { get { return this.test_run_flag; } set { this.test_run_flag = value; } }
- // cyim 2014.8.11 화면에 마스터인지 슬레이브인지 표시
- public string Master_flag { get { return this.master_flag; } set { this.master_flag = value; } }
- public void Fire_accumulation_reset()
- {
- try
- {
- this.fire_accumulation_second = this.fire_accumulation_time;
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- }
- public class ReceiverAlarmProcess
- {
- private int errorCnt = 0; //통신에러카운트
- private int fireCnt = 0; //화재발생카운트
- private int writeCnt = 0; //설비가동카운트
- private int blockingCnt = 0; //단선카운트
- private int cutCnt = 0; //차단카운트
- private RCVData_ReadNotifyStatus[] fireStatus; //화재발생내역
- private RCVData_ReadNotifyStatus[] writeStatus; //설비가동내역
- private RCVData_ReadNotifyStatus[] faultStatus; //Fault내역
- public ReceiverAlarmProcess()
- {
- try
- {
- fireStatus = new RCVData_ReadNotifyStatus[0];
- writeStatus = new RCVData_ReadNotifyStatus[0];
- faultStatus = new RCVData_ReadNotifyStatus[0];
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- public int ErrorCnt { get { return this.errorCnt; } set { this.errorCnt = value; } }
- public int FireCnt { get { return this.fireCnt; } set { this.fireCnt = value; } }
- public int WriteCnt { get { return this.writeCnt; } set { this.writeCnt = value; } }
- public int BlockingCnt { get { return this.blockingCnt; } set { this.blockingCnt = value; } }
- public int CutCnt { get { return this.cutCnt; } set { this.cutCnt = value; } }
- //화재목록에 추가
- public void FireSatusAdd(RCVData_ReadNotifyStatus res)
- {
- try
- {
- int cnt = fireStatus.Length;
- Array.Resize(ref fireStatus, cnt + 1);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- //MessageBox.Show(string.Format("[{0}]\r\n{1}", ex.Message, ex.Source), Application.ProductName);
- }
- }
- //화재목록에서 제외
- public void FireSatusDel(RCVData_ReadNotifyStatus res)
- {
- try
- {
- int cnt = fireStatus.Length;
- RCVData_ReadNotifyStatus[] nfireStatus = new RCVData_ReadNotifyStatus[cnt];
- Array.Copy(fireStatus, 0, nfireStatus, 0, cnt);
- for (int i = 0; i < cnt; i++)
- {
- if (nfireStatus[i] == res)
- {
- Array.Resize(ref fireStatus, cnt - 1);
- Array.Copy(fireStatus, 0, nfireStatus, 0, cnt);
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- //Debug.WriteLine(ex.Message);
- }
- }
- }
- }
|