示例#1
0
        /// <summary>
        /// 发送数据,为登录和注销使用。
        /// 登录时,SerssionService需要创建连接;注销时,则删除连接
        /// </summary>
        /// <param name="dataBytes">要发送板卡的数据</param>
        /// <param name="isLogon">是否登陆操作</param>
        /// <returns></returns>
        public int SendPackets(byte[] dataBytes, bool isLogon)
        {
            if (null == dataBytes)
            {
                throw new ArgumentNullException("dataBytes is null");
            }

            SessionData sessionData = new SessionData(dataBytes.Length)
            {
                target =
                {
                    raddr = _netElementConfig.TargetIp,
                    rport = CommonPort.AtpLinkPort,
                    laddr = _netElementConfig.TraceIp
                },
                data = dataBytes
            };

            string sendBytes = JsonHelper.SerializeObjectToString(sessionData);

            //创建和断开连接的topic比较特殊
            string act   = (isLogon ? "Create" : "Delete");
            string topic = string.Format($"/SessionService/{act}/UDP");

            PublishHelper.PublishMsg(topic, sendBytes);
            return(sendBytes.Length);
        }
示例#2
0
        /// <summary>
        /// 发送开关按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            IList <TraceSetTreeModel> selectList     = GetCheckedItems();
            List <string>             lstrSelectName = new List <string>();

            string strTest = string.Empty;

            byte[] arrySwitch = new byte[256];
            for (int i = 0; i < 256; i++)
            {
                arrySwitch[i] = 0;
            }


            for (int i = 0; i < selectList.Count; i++)
            {
                //lstrSelectName.Add(selectList[i].Name);
                int nID = GetIDByName(selectList[i].Name);

                arrySwitch[nID] = 1;

                strTest += nID.ToString() + ": " + arrySwitch[nID].ToString() + "\n";
            }

            PublishHelper.PublishMsg("/AtpBack/TraceConfig/StartTrace", arrySwitch);
            ParseMessageWindow Pw = new ParseMessageWindow();

            Pw.Show();
        }
示例#3
0
        private void ParseUdpData(UdpDataInfo data)
        {
            //TODO 需要确定是否要去掉其他的数据

            //处理完成后,通过接口发送给CDL
            PublishHelper.PublishMsg("/AtpBack/CDLParse/MsgParse", data.UdpDataBytes);
        }
示例#4
0
        private bool ProcessOneMsg(byte[] msgBytes)
        {
            var head = SiMsgHelper.GetSiMsgHead(msgBytes);

            switch (head.u16MsgType)
            {
            case SiMacroDef.O_SILMTENB_GETFILEINFO_RES:
                PublishHelper.PublishMsg("topic", msgBytes);                            //TODO topic协商
                break;

            case SiMacroDef.O_SILMTENB_GETFILEATTRIB_RES:
                break;

            case SiMacroDef.O_SILMTENB_SETRDWRATTRIB_RES:
                break;

            case SiMacroDef.O_SILMTENB_DELFILE_RES:
                break;

            case SiMacroDef.O_SILMTENB_GETCAPACITY_RES:
                break;

            default:
                //TODO 不知道是什么啊,老铁
                break;
            }
            return(true);
        }
示例#5
0
        public int SendPackets(byte[] dataBytes)
        {
            if (null == dataBytes)
            {
                throw new ArgumentNullException("dataBytes is null");
            }

            PublishHelper.PublishMsg($"udp-send://{_netElementConfig.TargetIp}:{CommonPort.AtpLinkPort}", dataBytes);
            return(dataBytes.Length);
        }
示例#6
0
        /// <summary>
        /// 发送报文。直接调用了PublishHelper
        /// </summary>
        /// <param name="dataBytes">要发送的数据流</param>
        /// <param name="topic">该数据流对应的topic</param>
        /// <returns>发送的字节数</returns>
        public int SendPackets(byte[] dataBytes, string topic)
        {
            if (null == dataBytes)
            {
                throw new ArgumentNullException("dataBytes is null");
            }

            PublishHelper.PublishMsg(topic, dataBytes);
            return(dataBytes.Length);
        }
示例#7
0
        /// <summary>
        /// 主界面进行隐藏时调用,清空所有信息,并发送停止消息
        /// </summary>
        public void ClearAll()
        {
            UE_List.Clear();
            ENB_List.Clear();
            GNB_List.Clear();
            lbUE.Items.Clear();
            lbeNB.Items.Clear();
            lbgNB.Items.Clear();

            PublishHelper.PublishMsg("StopTraceHlSignal", "");
        }
示例#8
0
        private void DealSendTraceSwitchRsp(string ip, byte[] dataBytes)
        {
            if (string.IsNullOrWhiteSpace(ip) ||
                string.IsNullOrEmpty(ip))
            {
                throw new ArgumentNullException();
            }

            if (!HasLinkWithSameIp(ip))
            {
                return;
            }

            MsgGtsa2GtsmTraceCtrlRsp rsp = (MsgGtsa2GtsmTraceCtrlRsp)SerializeHelper.BytesToStruct(dataBytes, typeof(MsgGtsa2GtsmTraceCtrlRsp));

            byte[] rspBytes = new byte[] { rsp.u8Complete };
            PublishHelper.PublishMsg("/AtpFront/TraceConfig/TraceActRsp", rspBytes);
        }
示例#9
0
        /// <summary>
        /// 发送消息跟踪控制开关
        /// </summary>
        /// <param name="switchs">前台已经处理好的开关</param>
        /// <returns></returns>
        public bool SendTraceSwitch(byte[] switchs)
        {
            //创建IP连接
            SessionData sessionData = new SessionData(10)
            {
                target =
                {
                    raddr = _netElementConfig.TargetIp,
                    rport = CommonPort.AtpLinkPort,
                    laddr = _netElementConfig.TraceIp
                }
            };
            string sendBytes = JsonHelper.SerializeObjectToString(sessionData);

            PublishHelper.PublishMsg("/SessionService/Create/IP", sendBytes);

            return(SendTSwitchs(switchs, _netElementConfig));
        }
示例#10
0
 //接收数据线程函数
 private void RecvFromBoard(object obj)
 {
     while (true)
     {
         try
         {
             var revBytes = _udpClient.Receive(ref _ipTargetEp);
             var header   = GetHeaderFromBytes.GetHeader(revBytes);
             PublishHelper.PublishMsg($"udp-recv://{_prefix}", revBytes);
         }
         catch (SocketException e)
         {
             if (SocketError.Interrupted == e.SocketErrorCode)
             {
                 break;
             }
         }
     }
 }
示例#11
0
        public void SendHlMessageToUI(ScriptMessage inputMessage)
        {
            //作一个随机延时20ms~50ms
            TimeDelay();
            //添加时间戳
            inputMessage.time = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss.fff");
            string originUI = inputMessage.UI;

            //区分三类消息,对应于界面呈现使用
            if (-1 != originUI.IndexOf("UE"))
            {
                inputMessage.NO = UENo++;
                inputMessage.UI = "UE";
                string msg = JsonConvert.SerializeObject(inputMessage);
                PublishHelper.PublishMsg("HlSignalMsg", msg);
                //记录日志
                logMsg.WriteLog(LogOfType.UE_MSGLOG, msg);
            }
            if (-1 != originUI.IndexOf("eNB"))
            {
                inputMessage.NO = eNBNo++;
                inputMessage.UI = "eNB";
                string msg = JsonConvert.SerializeObject(inputMessage);
                PublishHelper.PublishMsg("HlSignalMsg", msg);
                //记录日志
                logMsg.WriteLog(LogOfType.eNB_MSGLOG, msg);
            }
            if (-1 != originUI.IndexOf("gNB"))
            {
                inputMessage.NO = gNBNo++;
                inputMessage.UI = "gNB";
                string msg = JsonConvert.SerializeObject(inputMessage);
                PublishHelper.PublishMsg("HlSignalMsg", msg);
                //记录日志
                logMsg.WriteLog(LogOfType.gNB_MSGLOG, msg);
            }
        }
示例#12
0
 /// <summary>
 /// gtsa发送过来的跟踪消息,直接publish
 /// </summary>
 /// <param name="msgData"></param>
 private void DealTraceMsg(byte[] msgData)
 {
     PublishHelper.PublishMsg("/GtsMsgParseService/GtsaSend", msgData);
 }
示例#13
0
        /// <summary>
        /// 窗体消息回调函数,负责处理热键消息;
        /// </summary>
        /// <param name="hWnd">窗口句柄</param>
        /// <param name="msg">消息</param>
        /// <param name="wParam">附加参数1</param>
        /// <param name="lParam">附加参数2</param>
        /// <param name="handled">是否处理</param>
        /// <returns></returns>
        private IntPtr WndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            switch (msg)
            {
            //消息是热键消息;
            case HotKeyManager.WM_HOTKEY:

                int atomID = wParam.ToInt32();

                //此处无法使用switch,因为case不是常量而是变量;
                if (atomID == m_HotKeyDic[eHotKey.UserCase1])
                {
                    SignalBConfig.SetScriptTxt(1);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase2])
                {
                    SignalBConfig.SetScriptTxt(2);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase3])
                {
                    SignalBConfig.SetScriptTxt(3);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase4])
                {
                    SignalBConfig.SetScriptTxt(4);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase5])
                {
                    SignalBConfig.SetScriptTxt(5);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase6])
                {
                    SignalBConfig.SetScriptTxt(6);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase7])
                {
                    SignalBConfig.SetScriptTxt(7);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase8])
                {
                    SignalBConfig.SetScriptTxt(8);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                else if (atomID == m_HotKeyDic[eHotKey.UserCase9])
                {
                    SignalBConfig.SetScriptTxt(9);
                    PublishHelper.PublishMsg("StartTraceHlSignal", "");
                }
                handled = true;

                break;

            default:
                break;
            }
            return(IntPtr.Zero);
        }
示例#14
0
 /// <summary>
 /// 开始跟踪  按钮
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnStartTrace_Click(object sender, RoutedEventArgs e)
 {
     SignalBConfig.StartByScriptXml();
     PublishHelper.PublishMsg("StartTraceHlSignal", "");
 }
示例#15
0
 private void OnPacketArrive(object sender, CaptureEventArgs e)
 {
     byte[] data = e.Packet.Data;                   //Data转为string,需要替换-为空字符
     PublishHelper.PublishMsg("/GtsMsgParseService/WinPcap", data);
 }
示例#16
0
 // 开始解析;
 public void beginParse()
 {
     //PubSubServer.GetInstance().InitServer();
     SignalBConfig.StartByScriptXml();
     PublishHelper.PublishMsg("StartTraceHlSignal", "");
 }