예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        /// <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);
            }
        }