ningshuxia
2022-10-28 3ccb7c60e1ed8b6748ed7fb8b64b1dbe50d62abf
Socket/IStation.DataDockingSocket4NT/control/SendControlJobHelper.cs
@@ -12,6 +12,9 @@
    /// </summary>
    public class SendControlJobHelper
    {
        /// <summary>
        /// 从MQ里面获取控制指令 辅助类
        /// </summary>
        private static RabbitMqExChangeHelper _queueHelper = null;
        /// <summary>
@@ -45,67 +48,43 @@
                    {
                        if (paras == null)
                        {
                            LogHelper.Info("南通控制命令,数据序列化失败");
                            NtLogHelper.Info("南通控制命令,数据序列化失败");
                            return true;
                        }
                        byte[] bts = null;
                        switch (paras.Type)
                        switch (paras.ControlType)
                        {
                            case 0: bts = MsgDataHelper.GetControlMsg关机(); break;//从辅助类中获取  关闭
                            case 1: bts = MsgDataHelper.GetControlMsg开机(); break;//从辅助类中获取 开启
                            case -1:
                            case Model.MonitorTestControlParas.eControlType.Stop:
                                {
                                    if (string.IsNullOrEmpty(paras.Paras))
                                    {
                                        LogHelper.Error($"[调频]参数: null");
                                    ShutDownMsgHelper.StartJob(session);
                                }
                                break;
                            case Model.MonitorTestControlParas.eControlType.Start:
                                {
                                    if (string.IsNullOrEmpty(paras.Context))
                                        return false;
                                    }
                                    if (!double.TryParse(paras.Paras, out double value))
                                    {
                                        LogHelper.Error($"[调频]参数异常:{paras.Paras}");
                                        return false;
                                    }
                                    else
                                    {
                                        bts = MsgDataHelper.GetControlMsg调频(value);
                                        LogHelper.Info($"[调频]参数:{paras.Paras}");
                                    }
                                    var context = Model.MonitorTestControlParas.StartContext.ToModel(paras.Context);
                                    if (context == null)
                                        return default;
                                    NtLogHelper.Debug(context.ToJson());
                                    StartUpMsgHelper.StartJob(session, context);
                                }
                                break;//从辅助类中获取 变频
                            default: break;
                        }
                        if (bts != null)
                        {
                            if (session != null)
                            {
                                if (session.IsConnected)
                                {
                                    session.Send(bts, 0, bts.Length);
                                    LogHelper.Info(session.SessionName + ":" + BitTransfer.ToString(bts) + ", 发送一条请求控制指令");
                                }
                                else
                                {
                                    LogHelper.Error($"session:Not connected");
                                    return false;
                                }
                            }
                            else
                            {
                                LogHelper.Error($"session:Close");
                                break;
                            default:
                                return false;
                            }
                        }
                        return true;
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Error("南通控制命令,数据消息队列出错,自动跳过", ex);
                        NtLogHelper.Error("南通控制命令,数据消息队列出错,自动跳过", ex);
                        return true;
                    }
                });
            });
        }
    }
}