ningshuxia
2022-10-28 0a1f644804e884ed2d612b78a916e59a6d320011
修改 南通对接程序
已修改9个文件
159 ■■■■ 文件已修改
Application/IStation.Application.Monitor/monitor_control/MonitorControlNTConfigure_Controller.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Entry/IStation.WebApi.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/Log/LogHelper.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/MsgHandle/HandleHelper.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/MsgHandle/ShutDownMsgHelper.cs 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/MsgHandle/StartUpMsgHelper.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/control/SendControlJobHelper.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Socket/IStation.DataDockingSocket4NT/instruction/SendInstructionJob.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
TopShelf/IStation.TopShelf.DataDocking4Socket/Properties/PublishProfiles/FolderProfile.pubxml.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Application/IStation.Application.Monitor/monitor_control/MonitorControlNTConfigure_Controller.cs
@@ -29,8 +29,21 @@
            {
                throw Oops.Oh("密码错误!");
            }
            var context = new Model.MonitorTestControlParas.StartContext(input.HZ, input.OperatingMode, input.OperatingValue);
            double operatingValue = 0;
         /*   switch (input.OperatingMode)
            {
                case Model.MonitorTestControlParas.eOperatingMode.Timing:
                    {
                        operatingValue = input.OperatingValue * 3600;
                    }
                    break;
                case Model.MonitorTestControlParas.eOperatingMode.ConstantFlow:
                    break;
                default:
                    break;
            }*/
            operatingValue = input.OperatingValue * 3600;
            var context = new Model.MonitorTestControlParas.StartContext(input.HZ, input.OperatingMode, operatingValue);
            var paras = new Model.MonitorTestControlParas();
            paras.ControlType = Model.MonitorTestControlParas.eControlType.Start;
            paras.Context = context.ToJson();
Entry/IStation.WebApi.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
<Project>
  <PropertyGroup>
    <_PublishTargetUrl>D:\WorkData\IStation\IStationV4.1\Core\Service.V4.1\Entry\IStation.WebApi.Entry\bin\Release\net6.0\publish\</_PublishTargetUrl>
    <History>True|2022-10-27T06:51:12.0416021Z;True|2022-10-27T14:46:01.8195700+08:00;True|2022-10-27T14:38:00.5077582+08:00;True|2022-10-27T14:28:16.2348825+08:00;False|2022-10-27T14:27:49.2720060+08:00;False|2022-10-27T14:27:25.1445739+08:00;True|2022-10-26T11:27:54.4483138+08:00;True|2022-10-26T11:19:37.6322046+08:00;True|2022-10-26T11:10:05.4129456+08:00;True|2022-10-25T16:33:32.7872520+08:00;True|2022-10-24T16:12:49.4291001+08:00;True|2022-10-24T16:10:25.3757944+08:00;True|2022-10-24T14:04:51.7783988+08:00;True|2022-10-21T18:51:32.0221235+08:00;True|2022-10-21T18:35:12.1463858+08:00;True|2022-10-21T09:54:19.2138550+08:00;True|2022-10-21T09:38:21.1672347+08:00;True|2022-10-19T12:04:59.9103579+08:00;True|2022-10-19T11:57:45.1000513+08:00;True|2022-10-19T11:49:03.6494799+08:00;True|2022-10-19T11:06:22.4198711+08:00;True|2022-10-18T11:17:20.1435537+08:00;True|2022-10-18T09:08:58.6802639+08:00;True|2022-10-17T16:33:12.8912333+08:00;True|2022-10-17T14:23:10.0264671+08:00;True|2022-10-17T14:16:07.3590282+08:00;True|2022-10-17T11:53:21.9425089+08:00;True|2022-10-17T11:45:51.9336429+08:00;True|2022-10-14T14:37:15.6323508+08:00;True|2022-10-11T09:01:44.5831439+08:00;True|2022-10-09T14:03:43.6568874+08:00;True|2022-10-09T11:15:56.2934983+08:00;True|2022-10-09T09:39:28.1074512+08:00;True|2022-10-08T18:45:23.9581502+08:00;True|2022-10-08T18:35:18.5574217+08:00;True|2022-10-08T16:12:04.2903137+08:00;True|2022-10-08T15:59:54.5588351+08:00;True|2022-10-08T15:55:01.2711550+08:00;True|2022-10-08T15:19:08.5487617+08:00;True|2022-10-08T15:11:55.8626990+08:00;False|2022-10-08T15:02:33.5639703+08:00;True|2022-10-08T09:23:21.6592006+08:00;True|2022-10-07T15:35:37.7532304+08:00;True|2022-10-07T15:04:51.9161653+08:00;False|2022-10-07T14:58:32.8816319+08:00;False|2022-10-07T14:54:55.4175944+08:00;False|2022-10-07T14:52:46.7215376+08:00;False|2022-10-07T14:51:14.0508027+08:00;False|2022-10-07T14:49:57.6007572+08:00;False|2022-10-07T14:48:56.6085134+08:00;False|2022-10-07T14:47:54.7931315+08:00;True|2022-09-22T13:35:52.6495568+08:00;True|2022-09-22T13:19:28.3609130+08:00;True|2022-09-22T09:45:29.7312648+08:00;True|2022-09-21T17:11:30.6881814+08:00;True|2022-09-15T16:32:44.8582766+08:00;True|2022-09-04T14:21:59.9156800+08:00;True|2022-09-03T18:27:37.0001278+08:00;True|2022-08-29T10:26:27.0532192+08:00;True|2022-08-24T13:40:25.0333335+08:00;True|2022-08-23T10:20:23.3347504+08:00;True|2022-08-19T15:24:53.5488496+08:00;False|2022-08-19T15:24:15.4430294+08:00;True|2022-08-19T11:51:17.0556654+08:00;True|2022-08-19T11:45:03.9834334+08:00;True|2022-08-19T10:56:27.1184994+08:00;True|2022-08-18T16:31:26.4673400+08:00;True|2022-08-18T10:37:50.8776926+08:00;True|2022-08-17T17:10:09.3527873+08:00;True|2022-08-17T16:04:30.4487827+08:00;True|2022-08-15T13:35:48.4976973+08:00;True|2022-08-15T13:35:34.4046702+08:00;True|2022-08-15T13:31:44.3380038+08:00;True|2022-08-15T13:07:03.2183172+08:00;True|2022-07-25T15:14:36.3659352+08:00;True|2022-07-25T15:10:01.3426246+08:00;True|2022-07-25T13:20:08.1574461+08:00;True|2022-07-19T10:26:17.1257582+08:00;True|2022-07-14T10:30:13.1942620+08:00;True|2022-07-13T14:35:30.0524912+08:00;True|2022-07-08T14:32:42.4327635+08:00;True|2022-07-05T11:08:07.0982998+08:00;True|2022-07-04T10:33:11.4756479+08:00;True|2022-07-01T22:05:04.4907981+08:00;True|2022-07-01T15:57:41.6399584+08:00;True|2022-06-29T10:33:01.2518877+08:00;True|2022-06-29T09:35:04.8176716+08:00;True|2022-06-22T10:29:08.8189250+08:00;True|2022-06-21T20:20:26.7306581+08:00;True|2022-06-21T09:54:59.2174617+08:00;True|2022-06-20T16:05:34.5414017+08:00;True|2022-06-16T13:17:09.9717924+08:00;True|2022-06-16T09:40:45.1175998+08:00;True|2022-06-15T18:01:54.0267150+08:00;False|2022-06-15T18:00:46.8407587+08:00;True|2022-06-15T15:22:18.3048191+08:00;True|2022-06-15T14:10:37.0479735+08:00;False|2022-06-15T14:08:52.7287625+08:00;True|2022-06-15T11:52:36.3090013+08:00;True|2022-06-15T10:29:17.8467709+08:00;</History>
    <History>True|2022-10-28T01:37:04.8336241Z;True|2022-10-27T16:13:52.0290129+08:00;True|2022-10-27T14:51:12.0416021+08:00;True|2022-10-27T14:46:01.8195700+08:00;True|2022-10-27T14:38:00.5077582+08:00;True|2022-10-27T14:28:16.2348825+08:00;False|2022-10-27T14:27:49.2720060+08:00;False|2022-10-27T14:27:25.1445739+08:00;True|2022-10-26T11:27:54.4483138+08:00;True|2022-10-26T11:19:37.6322046+08:00;True|2022-10-26T11:10:05.4129456+08:00;True|2022-10-25T16:33:32.7872520+08:00;True|2022-10-24T16:12:49.4291001+08:00;True|2022-10-24T16:10:25.3757944+08:00;True|2022-10-24T14:04:51.7783988+08:00;True|2022-10-21T18:51:32.0221235+08:00;True|2022-10-21T18:35:12.1463858+08:00;True|2022-10-21T09:54:19.2138550+08:00;True|2022-10-21T09:38:21.1672347+08:00;True|2022-10-19T12:04:59.9103579+08:00;True|2022-10-19T11:57:45.1000513+08:00;True|2022-10-19T11:49:03.6494799+08:00;True|2022-10-19T11:06:22.4198711+08:00;True|2022-10-18T11:17:20.1435537+08:00;True|2022-10-18T09:08:58.6802639+08:00;True|2022-10-17T16:33:12.8912333+08:00;True|2022-10-17T14:23:10.0264671+08:00;True|2022-10-17T14:16:07.3590282+08:00;True|2022-10-17T11:53:21.9425089+08:00;True|2022-10-17T11:45:51.9336429+08:00;True|2022-10-14T14:37:15.6323508+08:00;True|2022-10-11T09:01:44.5831439+08:00;True|2022-10-09T14:03:43.6568874+08:00;True|2022-10-09T11:15:56.2934983+08:00;True|2022-10-09T09:39:28.1074512+08:00;True|2022-10-08T18:45:23.9581502+08:00;True|2022-10-08T18:35:18.5574217+08:00;True|2022-10-08T16:12:04.2903137+08:00;True|2022-10-08T15:59:54.5588351+08:00;True|2022-10-08T15:55:01.2711550+08:00;True|2022-10-08T15:19:08.5487617+08:00;True|2022-10-08T15:11:55.8626990+08:00;False|2022-10-08T15:02:33.5639703+08:00;True|2022-10-08T09:23:21.6592006+08:00;True|2022-10-07T15:35:37.7532304+08:00;True|2022-10-07T15:04:51.9161653+08:00;False|2022-10-07T14:58:32.8816319+08:00;False|2022-10-07T14:54:55.4175944+08:00;False|2022-10-07T14:52:46.7215376+08:00;False|2022-10-07T14:51:14.0508027+08:00;False|2022-10-07T14:49:57.6007572+08:00;False|2022-10-07T14:48:56.6085134+08:00;False|2022-10-07T14:47:54.7931315+08:00;True|2022-09-22T13:35:52.6495568+08:00;True|2022-09-22T13:19:28.3609130+08:00;True|2022-09-22T09:45:29.7312648+08:00;True|2022-09-21T17:11:30.6881814+08:00;True|2022-09-15T16:32:44.8582766+08:00;True|2022-09-04T14:21:59.9156800+08:00;True|2022-09-03T18:27:37.0001278+08:00;True|2022-08-29T10:26:27.0532192+08:00;True|2022-08-24T13:40:25.0333335+08:00;True|2022-08-23T10:20:23.3347504+08:00;True|2022-08-19T15:24:53.5488496+08:00;False|2022-08-19T15:24:15.4430294+08:00;True|2022-08-19T11:51:17.0556654+08:00;True|2022-08-19T11:45:03.9834334+08:00;True|2022-08-19T10:56:27.1184994+08:00;True|2022-08-18T16:31:26.4673400+08:00;True|2022-08-18T10:37:50.8776926+08:00;True|2022-08-17T17:10:09.3527873+08:00;True|2022-08-17T16:04:30.4487827+08:00;True|2022-08-15T13:35:48.4976973+08:00;True|2022-08-15T13:35:34.4046702+08:00;True|2022-08-15T13:31:44.3380038+08:00;True|2022-08-15T13:07:03.2183172+08:00;True|2022-07-25T15:14:36.3659352+08:00;True|2022-07-25T15:10:01.3426246+08:00;True|2022-07-25T13:20:08.1574461+08:00;True|2022-07-19T10:26:17.1257582+08:00;True|2022-07-14T10:30:13.1942620+08:00;True|2022-07-13T14:35:30.0524912+08:00;True|2022-07-08T14:32:42.4327635+08:00;True|2022-07-05T11:08:07.0982998+08:00;True|2022-07-04T10:33:11.4756479+08:00;True|2022-07-01T22:05:04.4907981+08:00;True|2022-07-01T15:57:41.6399584+08:00;True|2022-06-29T10:33:01.2518877+08:00;True|2022-06-29T09:35:04.8176716+08:00;True|2022-06-22T10:29:08.8189250+08:00;True|2022-06-21T20:20:26.7306581+08:00;True|2022-06-21T09:54:59.2174617+08:00;True|2022-06-20T16:05:34.5414017+08:00;True|2022-06-16T13:17:09.9717924+08:00;True|2022-06-16T09:40:45.1175998+08:00;True|2022-06-15T18:01:54.0267150+08:00;False|2022-06-15T18:00:46.8407587+08:00;True|2022-06-15T15:22:18.3048191+08:00;True|2022-06-15T14:10:37.0479735+08:00;False|2022-06-15T14:08:52.7287625+08:00;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>
Socket/IStation.DataDockingSocket4NT/Log/LogHelper.cs
@@ -12,7 +12,7 @@
    /// </summary>
    internal class NtLogHelper
    {
        private const string _logNameDebug = "socket-nt";
        private const string _logNameDebug = "socket-nt-debug";
        /// <summary>
        /// 生成调试信息辅助类
@@ -24,9 +24,9 @@
            var json = JsonHelper.Object2Json(rece_list);
            LogHelper.Custom(_logNameDebug, json);
        }
        public static void Debug(string  msg)
        {
        {
            LogHelper.Custom(_logNameDebug, msg);
        }
Socket/IStation.DataDockingSocket4NT/MsgHandle/HandleHelper.cs
@@ -7,7 +7,7 @@
using IStation.Model;
using IStation.Untity;
namespace IStation.DataDockingSocket.MsgHandle
namespace IStation.DataDockingSocket
{
    public class HandleHelper : IDataDockingSocket.IHandleHelper
    {
@@ -79,19 +79,18 @@
            {
                return;
            }
            NtLogHelper.Info("开始处理数据...");
            _session = session;
            if (MonitorMsgHelper.IsNeedHandle(byteMessage))
            {//监控指令
            {
                NtLogHelper.Info("MonitorMsgHelper...");
                //监控指令
                var receList = MonitorMsgHelper.HandleReceive(byteMessage);
                if (receList == null || receList.Count == 0)
                    return;
                NtLogHelper.Src(byteMessage);
                //  NtLogHelper.Debug(src_list);
                //NtLogHelper.Info($"解析数据数量:{receList.Count}\n\r" +
                //    $"{JsonHelper.Object2Json(receList)}");
                NtLogHelper.Info("MonitorMsgHelper Over");
                NtLogHelper.Src(byteMessage);
                onReceive(receList);
@@ -100,15 +99,24 @@
            //不要加else
            if (ShutDownMsgHelper.IsNeedHandle(byteMessage))
            {
                NtLogHelper.Info("ShutDownMsgHelper...");
                if (ShutDownMsgHelper.HandleReceive(session, byteMessage))
                {
                    NtLogHelper.Info("ShutDownMsgHelper Over");
                    return;
                }
            }
            //不要加else
            if (StartUpMsgHelper.IsNeedHandle(byteMessage))
            {
                NtLogHelper.Info("StartUpMsgHelper... ");
                if (StartUpMsgHelper.HandleReceive(session, byteMessage))
                {
                    NtLogHelper.Info("StartUpMsgHelper Over");
                    return;
                }
            }
            NtLogHelper.Info("数据处理结束...");
        }
Socket/IStation.DataDockingSocket4NT/MsgHandle/ShutDownMsgHelper.cs
@@ -1,5 +1,4 @@
using IStation.DataDockingSocket.MsgHandle;
using IStation.Untity;
using IStation.Untity;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -19,7 +18,7 @@
        /// <returns></returns>
        public static bool StartJob(Model.IMonitorDataDockingSession session)
        {
            if (session != null)
            if (session == null)
            {
                NtLogHelper.Error($"关机 session:Close");
                return false;
@@ -50,23 +49,44 @@
        static System.Timers.Timer _timeAutoClose;
        public static void StartAutoClose(double second)
        {
            NtLogHelper.Info("开启自动关机模式 时间:" + second+"s");
            _timeAutoClose = new System.Timers.Timer(10000 * second);//实例化Timer类,设置间隔时间为10000毫秒;
            _timeAutoClose.Elapsed += new System.Timers.ElapsedEventHandler(ExecuteAutoClose);//到达时间的时候执行事件;
            _timeAutoClose.AutoReset = false;//设置是执行一次(false)还是一直执行(true);
            _timeAutoClose.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
            _timeAutoClose.Start(); //启动定时器
            try
            {
                NtLogHelper.Info("开启自动关机模式 时间:" + second + "s");
                _timeAutoClose = new System.Timers.Timer(1000 * second);//实例化Timer类,设置间隔时间为10000毫秒;
                NtLogHelper.Info("_timeAutoClose 创建成功!");
                _timeAutoClose.Elapsed += new System.Timers.ElapsedEventHandler(ExecuteAutoClose);//到达时间的时候执行事件;
                NtLogHelper.Info(" _timeAutoClose.Elapsed");
                _timeAutoClose.AutoReset = false;//设置是执行一次(false)还是一直执行(true);
                NtLogHelper.Info("  _timeAutoClose.AutoReset = false");
                _timeAutoClose.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
                NtLogHelper.Info("   _timeAutoClose.Enabled");
                _timeAutoClose.Start(); //启动定时器
                NtLogHelper.Info("_timeAutoClose.Start()");
            }
            catch (Exception ex)
            {
                NtLogHelper.Error(ex.Message);
            }
        }
        private static void ExecuteAutoClose(object source, System.Timers.ElapsedEventArgs e)
        {
            if (_timeAutoClose == null)
                return;
            _timeAutoClose.Stop(); //先关闭定时器
            _timeAutoClose = null;
            //要执行的业务代码
            NtLogHelper.Info("正在自动关机...." );
            ShutDownMsgHelper.StartJob(HandleHelper.GetLastSession());
            try
            {
                NtLogHelper.Info("ExecuteAutoClose");
                _timeAutoClose.Stop(); //先关闭定时器
                NtLogHelper.Info(" _timeAutoClose.Stop()");
                _timeAutoClose = null;
                //要执行的业务代码
                NtLogHelper.Info("正在自动关机....");
                StartJob(HandleHelper.GetLastSession());
            }
            catch (Exception ex)
            {
                NtLogHelper.Error(ex.Message);
            }
            // t.Start(); //执行完毕后再开启器
        }
Socket/IStation.DataDockingSocket4NT/MsgHandle/StartUpMsgHelper.cs
@@ -1,5 +1,4 @@
using IStation.DataDockingSocket.MsgHandle;
using IStation.Model;
using IStation.Model;
using IStation.Untity;
using System;
using System.Collections.Generic;
@@ -24,7 +23,7 @@
        /// <returns></returns>
        public static bool StartJob(Model.IMonitorDataDockingSession session, MonitorTestControlParas.StartContext paras)
        {
            if (session != null)
            if (session == null)
            {
                NtLogHelper.Error($"开机 session:Close");
                return false;
@@ -82,7 +81,7 @@
                return false;
        }
        /// <summary>
        /// 关机指令
        /// 开机指令
        /// </summary>
        static string ControlMsgOpen = "01-06-00-0F-00-01-78-09";
        /// <summary>
@@ -92,30 +91,56 @@
        public static bool HandleReceive(Model.IMonitorDataDockingSession session, byte[] byteMessage)
        {
            if (InstructionStatus == eStartUpInstructionStatus.未发送)
            {
                NtLogHelper.Info("InstructionStatus==eStartUpInstructionStatus.未发送");
                return false;
            }
            if (InstructionStatus == eStartUpInstructionStatus.开机指令发送)
            {
                if (byteMessage.Length >= ControlMsgOpen.Length)
                NtLogHelper.Info("InstructionStatus==eStartUpInstructionStatus.开机指令发送");
                var byteMsgOpen = Encoding.Unicode.GetBytes(ControlMsgOpen);
                //if (byteMessage.Length >= byteMsgOpen.Length)
                //{
                string strMessage = BitConverter.ToString(byteMessage, 0, byteMessage.Length);
                if (strMessage == ControlMsgOpen)
                {
                    string strMessage = BitConverter.ToString(byteMessage, 0, byteMessage.Length);
                    if (strMessage == ControlMsgOpen)
                    {//01-06-00-0F-00-01-78-09
                        InstructionStatus = eStartUpInstructionStatus.未发送;
                    NtLogHelper.Info($"strMessage ({strMessage})== ControlMsgOpen ({ControlMsgOpen})");
                    //01-06-00-0F-00-01-78-09
                    InstructionStatus = eStartUpInstructionStatus.未发送;
                        NtLogHelper.Debug("开机指令返回:" + BitTransfer.ToString(byteMessage));
                    NtLogHelper.Info("开机指令返回:" + BitTransfer.ToString(byteMessage));
                    if (_lastParas.OperatingValue > 0)
                    {
                        //开启自动关闭
                        ShutDownMsgHelper.StartAutoClose(_lastParas.OperatingValue);
                        return true;
                    }
                    else
                    {
                        NtLogHelper.Info("时间小于等于0,不开启自动关闭");
                    }
                    return true;
                }
                else
                {
                    NtLogHelper.Info($"strMessage ({strMessage})!= ControlMsgOpen ({ControlMsgOpen})");
                }
                //}
                //else
                //{
                //    NtLogHelper.Info($"byteMessage.Length ({byteMessage.Length}) <= ControlMsgOpen.Length ({ControlMsgOpen.Length})");
                //}
                //返回失败, 再发送一次再确认一下
                if ((DateTime.Now - _lastOpenSendTime).TotalSeconds > 5)
                {
                    NtLogHelper.Info($"返回失败, 再发送一次再确认一下");
                    SendOpenMsg(session);
                }
            }
            if (InstructionStatus == eStartUpInstructionStatus.调频指令发送)
            {
                NtLogHelper.Info($"InstructionStatus == eStartUpInstructionStatus.调频指令发送");
                //需要判断是否是调频指令:以后再补充
                {
                    SendOpenMsg(session);
@@ -125,6 +150,7 @@
                //返回失败, 再发送一次再确认一下
                if ((DateTime.Now - _lastHzSendTime).TotalSeconds > 5)
                {
                    NtLogHelper.Info($"返回失败, 再发送一次再确认一下");
                    StartJob(session, _lastParas);
                }
            }
@@ -132,10 +158,9 @@
            return false;
        }
        private static  void SendOpenMsg(Model.IMonitorDataDockingSession session)
        private static void SendOpenMsg(Model.IMonitorDataDockingSession session)
        {
            byte[] bts = GetControlMsg开机();
            session.Send(bts, 0, bts.Length);
            InstructionStatus = eStartUpInstructionStatus.开机指令发送;
Socket/IStation.DataDockingSocket4NT/control/SendControlJobHelper.cs
@@ -1,5 +1,4 @@
using IStation.DataDockingSocket.MsgHandle;
using IStation.Untity;
using IStation.Untity;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -66,7 +65,7 @@
                                    var context = Model.MonitorTestControlParas.StartContext.ToModel(paras.Context);
                                    if (context == null)
                                        return default;
                                    NtLogHelper.Debug(context.ToJson());
                                    StartUpMsgHelper.StartJob(session, context);
                                }
                                break;
Socket/IStation.DataDockingSocket4NT/instruction/SendInstructionJob.cs
@@ -33,7 +33,7 @@
                    if (session.IsConnected)
                    {
                        SessionHelper.Cache.Send(bytes, 0, bytes.Length);
                        NtLogHelper.Info(session.SessionName + ":" + BitConverter.ToString(bytes) + ", 发送一条请求数据指令");
                        NtLogHelper.Info(session.SessionName + ":" + BitConverter.ToString(bytes) + ", 发送一条请求数据指令");
                    }
                });
TopShelf/IStation.TopShelf.DataDocking4Socket/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -4,7 +4,7 @@
-->
<Project>
  <PropertyGroup>
    <History>True|2022-10-27T07:32:23.6326778Z;True|2022-10-27T15:31:21.2898598+08:00;True|2022-10-27T15:31:06.9752171+08:00;True|2022-10-27T15:30:12.3351290+08:00;True|2022-10-27T15:16:06.6376480+08:00;True|2022-10-27T15:04:16.6181644+08:00;True|2022-10-27T14:56:07.3371453+08:00;True|2022-10-27T14:55:40.9994920+08:00;True|2022-10-26T14:21:13.7358061+08:00;True|2022-10-26T13:58:17.8518712+08:00;True|2022-10-26T10:50:57.8305616+08:00;True|2022-10-26T10:41:24.0512951+08:00;True|2022-10-26T10:36:18.9669938+08:00;True|2022-10-26T10:23:42.5700603+08:00;True|2022-10-26T09:49:18.1242267+08:00;True|2022-10-24T17:44:25.5039390+08:00;True|2022-07-02T00:06:16.6338790+08:00;True|2022-07-02T00:02:49.1000053+08:00;True|2022-07-01T23:23:53.1924783+08:00;True|2022-07-01T14:02:38.1190102+08:00;True|2022-07-01T13:55:33.4591108+08:00;</History>
    <History>True|2022-10-28T01:35:47.1875028Z;True|2022-10-28T09:10:26.0008427+08:00;True|2022-10-27T18:39:24.9534804+08:00;True|2022-10-27T18:33:34.4681116+08:00;True|2022-10-27T18:13:21.7875951+08:00;True|2022-10-27T18:12:44.3890244+08:00;True|2022-10-27T18:07:26.1755739+08:00;True|2022-10-27T17:57:58.0347320+08:00;True|2022-10-27T17:34:58.8259465+08:00;True|2022-10-27T17:22:06.3154634+08:00;False|2022-10-27T17:20:19.9004059+08:00;True|2022-10-27T17:18:10.4716763+08:00;True|2022-10-27T17:05:00.4099257+08:00;True|2022-10-27T16:54:07.3727699+08:00;True|2022-10-27T16:42:08.7868428+08:00;True|2022-10-27T16:20:40.9187590+08:00;True|2022-10-27T16:15:48.8887876+08:00;True|2022-10-27T15:32:23.6326778+08:00;True|2022-10-27T15:31:21.2898598+08:00;True|2022-10-27T15:31:06.9752171+08:00;True|2022-10-27T15:30:12.3351290+08:00;True|2022-10-27T15:16:06.6376480+08:00;True|2022-10-27T15:04:16.6181644+08:00;True|2022-10-27T14:56:07.3371453+08:00;True|2022-10-27T14:55:40.9994920+08:00;True|2022-10-26T14:21:13.7358061+08:00;True|2022-10-26T13:58:17.8518712+08:00;True|2022-10-26T10:50:57.8305616+08:00;True|2022-10-26T10:41:24.0512951+08:00;True|2022-10-26T10:36:18.9669938+08:00;True|2022-10-26T10:23:42.5700603+08:00;True|2022-10-26T09:49:18.1242267+08:00;True|2022-10-24T17:44:25.5039390+08:00;True|2022-07-02T00:06:16.6338790+08:00;True|2022-07-02T00:02:49.1000053+08:00;True|2022-07-01T23:23:53.1924783+08:00;True|2022-07-01T14:02:38.1190102+08:00;True|2022-07-01T13:55:33.4591108+08:00;</History>
    <LastFailureDetails />
  </PropertyGroup>
</Project>