You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

92 lines
2.4 KiB

using Leit.FrameWork;
using Leit.FrameWork.Log;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Leit.StationFunction
{
public class UpperCommunication
{
public static event Action<string, string> BarcodeDelegate;
public static UdpHelper UdpCommunication { get; set; }
public static MqAdapter Mq_Adapter { get; set; }
/// <summary>
/// 初始化通讯组件
/// </summary>
public static void InitCommunication()
{
try
{
UdpCommunication = new UdpHelper(UserConfiguration.UdpReceivePort);
UdpCommunication.ReceiveUdpMsg += UdpCommunication_ReceiveUdpMsg; ;
UdpCommunication.ReciveMsg();
Publisher publisher = new Publisher(UserConfiguration.ServerIp, UserConfiguration.MqPubPort);
Mq_Adapter = new MqAdapter(publisher);
Responser responser = new Responser(UserConfiguration.ServerIp, UserConfiguration.ResponsePort);
responser.responseAction += Responser_responseFunc;
}
catch (Exception ex)
{
LogHelper.WriteLog(LogHelper.GetMethodInfo(), ex);
}
}
/// <summary>
/// 接收前端请求
/// </summary>
/// <param name="arg"></param>
/// <returns></returns>
private static void Responser_responseFunc(string arg)
{
MsgStruct msgStruct = (MsgStruct)JsonConvert.DeserializeObject(arg, typeof(MsgStruct));
if (msgStruct.MsgVerifyCode == "SendOrderInfo")
{
Function_OP20.PlanChanged(msgStruct.MsgContent.ToString());
}
if (msgStruct.MsgVerifyCode == "barcode")
{
BarcodeDelegate?.Invoke(msgStruct.StationCode, msgStruct.MsgText);
// LogHelper.WriteLog($"收到条码:{ msgStruct.MsgText}");
}
}
/// <summary>
/// Udp接收条码信息
/// </summary>
/// <param name="msg"></param>
private static void UdpCommunication_ReceiveUdpMsg(MsgStruct msg)
{
if (msg.MsgVerifyCode == "barcode")
{
BarcodeDelegate?.Invoke(msg.StationCode, msg.MsgText);
}
}
}
}