wangzelong
2022-10-24 b7ac35c97fd8119bf67c1139818810e7313a628d
Merge branch 'master' of http://47.103.154.90:83/r/IStation/Service.V4.1
已修改4个文件
已添加2个文件
135 ■■■■■ 文件已修改
Application/IStation.Application.Monitor/IStation.Application.Monitor.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Monitor/monitor_control/MonitorControlNTConfigure_Controller.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/IStation.Model.Monitor/control/MonitorTestControlParas.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/HandleHelper.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/IStation.DataDockingSocket4NT.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/control/SendControlJobHelper.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Monitor/IStation.Application.Monitor.csproj
@@ -16,6 +16,7 @@
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\Component\IStation.RabbitMq\IStation.RabbitMq.csproj" />
    <ProjectReference Include="..\..\Service\IStation.Service.Monitor\IStation.Service.Monitor.csproj" />
    <ProjectReference Include="..\IStation.Application.Core\IStation.Application.Core.csproj" />
  </ItemGroup>
Application/IStation.Application.Monitor/monitor_control/MonitorControlNTConfigure_Controller.cs
@@ -26,7 +26,13 @@
        [HttpPost]
        public string TestStart()
        {
            return "测试成功!";
            var paras = new Model.MonitorTestControlParas();
            paras.Type = 1;
            paras.Paras = string.Empty;
            var runQueue = new RabbitMqExChangeHelper();
            runQueue.Push("NTTEST", paras);
            return "OK";
        }
        /// <summary>
@@ -36,7 +42,13 @@
        [HttpPost]
        public string TestStop()
        {
            return "测试成功!";
            var paras = new Model.MonitorTestControlParas();
            paras.Type = 0;
            paras.Paras = string.Empty;
            var runQueue = new RabbitMqExChangeHelper();
            runQueue.Push("NTTEST", paras);
            return "OK";
        }
        /// <summary>
@@ -46,7 +58,13 @@
        [HttpPost]
        public string TestChange(NTTestChangeInput input)
        {
            return "测试成功!";
            var paras = new Model.MonitorTestControlParas();
            paras.Type = -1;
            paras.Paras = input.HZ.ToString();
            var runQueue = new RabbitMqExChangeHelper();
            runQueue.Push("NTTEST", paras);
            return "OK";
        }
Model/IStation.Model.Monitor/control/MonitorTestControlParas.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.Model
{
    /// <summary>
    /// ç›‘测测试控制参数
    /// </summary>
    public class MonitorTestControlParas
    {
        /// <summary>
        /// 0代表关机 1代表开机 -1代表变频
        /// </summary>
        public int Type { get; set; }
        /// <summary>
        /// å‚æ•°
        /// </summary>
        public string Paras { get; set; }
    }
}
Socket/IStation.DataDockingSocket4NT/HandleHelper.cs
@@ -45,6 +45,7 @@
                Thread.Sleep(appParas.InstructionSendSpace * 1000);
            }
            SendControlJobHelper.StartJob(session);
        }
        /// <summary>
Socket/IStation.DataDockingSocket4NT/IStation.DataDockingSocket4NT.csproj
@@ -15,6 +15,7 @@
  <ItemGroup>
    <ProjectReference Include="..\..\Component\IStation.Log4Net\IStation.Log4Net.csproj" />
    <ProjectReference Include="..\..\Component\IStation.Quartz\IStation.Quartz.csproj" />
    <ProjectReference Include="..\..\Component\IStation.RabbitMq\IStation.RabbitMq.csproj" />
    <ProjectReference Include="..\IStation.IDataDockingSocket\IStation.IDataDockingSocket.csproj" />
  </ItemGroup>
Socket/IStation.DataDockingSocket4NT/control/SendControlJobHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
using IStation.Untity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.DataDockingSocket
{
    /// <summary>
    /// å‘送控制指令辅助类
    /// </summary>
    public class SendControlJobHelper
    {
        private static RabbitMqExChangeHelper _queueHelper = null;
        /// <summary>
        /// å¼€å§‹ä»»åŠ¡
        /// </summary>
        public static Task StartJob(Model.IMonitorDataDockingSession session)
        {
            //已经开启就关闭
            if (_queueHelper != null)
            {
                _queueHelper.Close();
                _queueHelper = null;
            }
            //会话结束后关闭
            session.SessionClosedEvent += () =>
            {
                if (_queueHelper != null)
                {
                    _queueHelper.Close();
                    _queueHelper = null;
                }
            };
            _queueHelper = new RabbitMqExChangeHelper();
            return Task.Run(() =>
            {
                _queueHelper.Receive<Model.MonitorTestControlParas>("NTTEST", (paras) =>
                {
                    try
                    {
                        if(paras==null)
                        {
                            LogHelper.Info("南通控制命令,数据序列化失败");
                            return true;
                        }
                        byte[] bts = null;
                        switch (paras.Type)
                        {
                            case 0:bts = null; break;//从辅助类中获取  å…³é—­
                            case 1: bts = null; break;//从辅助类中获取 å¼€å¯
                            case -1:bts = null;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) + ", å‘送一条请求控制指令");
                                }
                            }
                        }
                        return true;
                    }
                    catch (Exception ex)
                    {
                        LogHelper.Error("南通控制命令,数据消息队列出错,自动跳过", ex);
                        return true;
                    }
                });
            });
        }
    }
}