/// <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); }
/// <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(); }
private void ParseUdpData(UdpDataInfo data) { //TODO 需要确定是否要去掉其他的数据 //处理完成后,通过接口发送给CDL PublishHelper.PublishMsg("/AtpBack/CDLParse/MsgParse", data.UdpDataBytes); }
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); }
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); }
/// <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); }
/// <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", ""); }
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); }
/// <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)); }
//接收数据线程函数 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; } } } }
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); } }
/// <summary> /// gtsa发送过来的跟踪消息,直接publish /// </summary> /// <param name="msgData"></param> private void DealTraceMsg(byte[] msgData) { PublishHelper.PublishMsg("/GtsMsgParseService/GtsaSend", msgData); }
/// <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); }
/// <summary> /// 开始跟踪 按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStartTrace_Click(object sender, RoutedEventArgs e) { SignalBConfig.StartByScriptXml(); PublishHelper.PublishMsg("StartTraceHlSignal", ""); }
private void OnPacketArrive(object sender, CaptureEventArgs e) { byte[] data = e.Packet.Data; //Data转为string,需要替换-为空字符 PublishHelper.PublishMsg("/GtsMsgParseService/WinPcap", data); }
// 开始解析; public void beginParse() { //PubSubServer.GetInstance().InitServer(); SignalBConfig.StartByScriptXml(); PublishHelper.PublishMsg("StartTraceHlSignal", ""); }