/// <summary> /// 재난 메시지를 판단해 일반, 특수수신기, 저장메시지, 사이렌을 구분해 전송한다. /// </summary> /// <param name="wmessage"></param> public void TcpSendWmsg(WMessage _wmessage) { try { WMessage wmessage = _wmessage; this.PrintSendMsg("TcpSendWmsg 메소드 들어온 직후 - " + DateTime.Now); //logmanager.Dir_Mng(); //#region 로그 etcData 셋팅 //string sopt = string.Empty; //if (wmessage.SOPT_CONTROL) { sopt += "제어 "; } //if (wmessage.SOPT_DMB) { sopt += "일반메시지 "; } //if (wmessage.SOPT_LIVE) { sopt += "라이브 "; } //if (wmessage.SOPT_SMS) { sopt += "SMS "; } //if (wmessage.SOPT_STOREDMESSAGE) { sopt += "저장메시지 "; } //if (wmessage.SOPT_TTS) { sopt += "TTS "; } //if (wmessage.SOPT_WARNING) { sopt += "사이렌 "; } //string etcData = string.Format("메시지ID - {0}, 발령시간 - {1}, 송출이 받은시간 - {2}, 발령구분 - {3}", //wmessage.ID, wmessage.DDateTime, DateTime.Now, sopt); //#endregion if (((wmessage.SOPT_TTS) && (wmessage.SOPT_DMB)) || ((wmessage.SOPT_STOREDMESSAGE) && (wmessage.SOPT_DMB))) { //일반 발령 this.PrintSendMsg("일반 만들기 직전 - " + DateTime.Now.ToString()); Proto02 p02 = ProtoMng.GetPObject("02") as Proto02; byte[] body = p02.BodyMake(wmessage); byte[] totproto = p02.totMake(body); this.PrintSendMsg("일반 만들기 직후 - " + DateTime.Now); soc.tcpClientSndMsg(totproto); this.PrintSendMsg("일반 만들기 후 전송 직후 - " + DateTime.Now); //logmanager.File_Mng(etcData + ", EWS편성으로 전송하는 일반 발령메시지", this.LogFileWrite(totproto)); //특수수신기 발령 this.PrintSendMsg("특수 만들기 직전 - " + DateTime.Now); Proto01 p01 = ProtoMng.GetPObject("01") as Proto01; byte[] devbody = p01.BodyMake(wmessage); byte[] devtotproto = p01.totMake(devbody); this.PrintSendMsg("특수 만들기 직후 - " + DateTime.Now); soc.tcpClientSndMsg(devtotproto); this.PrintSendMsg("특수 만들기 후 전송 직후 - " + DateTime.Now); //logmanager.File_Mng(etcData + ", EWS편성으로 전송하는 특수수신기 발령메시지", this.LogFileWrite(devtotproto)); } else if (wmessage.SOPT_DMB || ((wmessage.SOPT_SMS) && (wmessage.SOPT_DMB)) || ((wmessage.SOPT_WARNING) && (wmessage.SOPT_DMB))) { //일반 발령 this.PrintSendMsg("일반 만들기 직전 - " + DateTime.Now); Proto02 p02 = ProtoMng.GetPObject("02") as Proto02; byte[] body = p02.BodyMake(wmessage); byte[] totproto = p02.totMake(body); this.PrintSendMsg("일반 만들기 직후 - " + DateTime.Now); soc.tcpClientSndMsg(totproto); this.PrintSendMsg("일반 만들기 후 전송 직후 - " + DateTime.Now); //logmanager.File_Mng(etcData + ", EWS편성으로 전송하는 일반 발령메시지", this.LogFileWrite(totproto)); if (wmessage.SOPT_WARNING) { Proto01 p01 = ProtoMng.GetPObject("01") as Proto01; byte[] devbody = p01.BodyMake(wmessage); byte[] devtotproto = p01.totMake(devbody); soc.tcpClientSndMsg(devtotproto); //logmanager.File_Mng(etcData + ", EWS편성으로 전송하는 특수수신기 발령메시지", this.LogFileWrite(devtotproto)); } } else if (wmessage.SOPT_CONTROL || wmessage.SOPT_STOREDMESSAGE || wmessage.SOPT_WARNING || wmessage.SOPT_TTS) { //특수수신기 발령 this.PrintSendMsg("특수 만들기 직전 - " + DateTime.Now); Proto01 p01 = ProtoMng.GetPObject("01") as Proto01; byte[] devbody = p01.BodyMake(wmessage); byte[] devtotproto = p01.totMake(devbody); this.PrintSendMsg("특수 만들기 직후 - " + DateTime.Now); soc.tcpClientSndMsg(devtotproto); this.PrintSendMsg("특수 만들기 후 전송 직후 - " + DateTime.Now); //logmanager.File_Mng(etcData + ", EWS편성으로 전송하는 특수수신기 발령메시지", this.LogFileWrite(devtotproto)); } } catch (Exception ex) { Console.WriteLine("Secession.TcpSendWmsg(WMessage wmessage) - " + ex.Message); } }
/// <summary> /// 임시로 만든 WMessage로 TCP로 송신한다. /// </summary> /// <param name="wmessage"></param> private void TcpSendWmsg(WMessage wmessage) { try { if (wmessage.SendPart != WMessage.E_sendPart.SMS) { SocketClient soc = SocketClient.getInstance(); if (((wmessage.SOPT_TTS) && (wmessage.SOPT_DMB))) { //일반 발령 Proto02 p02 = ProtoMng.GetPObject("02") as Proto02; byte[] body = p02.BodyMake(wmessage); byte[] totproto = p02.totMake(body); soc.tcpClientSndMsg(totproto); if (this.recvform.InvokeRequired) { this.Invoke(new InvokeSetTextByte(this.PrintSendMsg), new object[] { totproto }); } else { this.PrintSendMsg(totproto); } //특수수신기 발령 Proto01 p01 = ProtoMng.GetPObject("01") as Proto01; byte[] devbody = p01.BodyMake(wmessage); byte[] devtotproto = p01.totMake(devbody); soc.tcpClientSndMsg(devtotproto); if (this.recvform.InvokeRequired) { this.Invoke(new InvokeSetTextByte(this.PrintSendMsg), new object[] { devtotproto }); } else { this.PrintSendMsg(devtotproto); } } else if (wmessage.SOPT_DMB) { //일반 발령 Proto02 p02 = ProtoMng.GetPObject("02") as Proto02; byte[] body = p02.BodyMake(wmessage); byte[] totproto = p02.totMake(body); soc.tcpClientSndMsg(totproto); if (this.recvform.InvokeRequired) { this.Invoke(new InvokeSetTextByte(this.PrintSendMsg), new object[] { totproto }); } else { this.PrintSendMsg(totproto); } } else if (wmessage.SOPT_CONTROL || wmessage.SOPT_STOREDMESSAGE || wmessage.SOPT_WARNING || wmessage.SOPT_TTS) { //특수수신기 발령 Proto01 p01 = ProtoMng.GetPObject("01") as Proto01; byte[] devbody = p01.BodyMake(wmessage); byte[] devtotproto = p01.totMake(devbody); soc.tcpClientSndMsg(devtotproto); if (this.recvform.InvokeRequired) { this.Invoke(new InvokeSetTextByte(this.PrintSendMsg), new object[] { devtotproto }); } else { this.PrintSendMsg(devtotproto); } } } } catch (Exception ex) { Console.WriteLine("TcpSendWmsg - " + ex.Message); } }