From 2f0c81709876d76b6b120cf6ac43f05cda6dfe4c Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期六, 22 三月 2025 09:36:13 +0800
Subject: [PATCH] 修改websocket;

---
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Server/Controllers/SerialPort/TorqueOpController.cs |    6 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Server/Filter/WebSocketSetup.cs                     |   29 +
 项目代码/WIDESEAWCS_Server 正式/ISerialPortService/IProcessServer.cs                           |    5 
 项目代码/WIDESEAWCS_Server 正式/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                  |  637 +++++++++++----------
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Server/Controllers/SerialPort/ProcessController.cs  |   16 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Server/appsettings.json                             |    4 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs                   |  178 +----
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Model/Models/SerialPort/Dt_Process.cs               |    8 
 项目代码/WIDESEAWCS_Server 正式/ISerialPortService/ITorqueOpServer.cs                          |    2 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj                       |    4 
 项目代码/WIDESEAWCS_Server 正式/SerialPortService/TorqueOpServer.cs                            |   31 +
 项目代码/WIDESEAWCS_Server 正式/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json           |  637 +++++++++++----------
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_DTO/SerialPort/AddProcessDTO.cs                     |    2 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Server/Program.cs                                   |    3 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Model/Models/SerialPort/Dt_Tools.cs                 |    2 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Model/Models/SerialPort/Dt_TorqueOp.cs              |    6 
 项目代码/WIDESEAWCS_Server 正式/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj                     |    1 
 项目代码/WIDESEAWCS_Server 正式/SerialPortService/ProcessServer.cs                             |   87 ++
 18 files changed, 864 insertions(+), 794 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
index 4929e17..4323444 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -7,16 +7,20 @@
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\processserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
-      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\putakeserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\putakeserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_tasks\\serialport\\serialportjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\serialport\\serialportjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\njtaskserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -27,16 +31,52 @@
       "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\iputakeserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_torqueop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_torqueop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_template.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -45,10 +85,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_putake.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_putake.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_njcommands.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -65,26 +101,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_articleinfom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_articleinfom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\injtaskserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -115,18 +131,6 @@
       "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\serialport\\addnjtdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\wideseawcs_server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs_server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\njtakehistoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\njtakehistoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
@@ -141,10 +145,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\templateserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\templateserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\njcommandsserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -211,10 +211,6 @@
       "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_tenantservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\njtaskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\njtaskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
@@ -234,7 +230,7 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 2,
+          "SelectedChildIndex": 4,
           "Children": [
             {
               "$type": "Bookmark",
@@ -246,124 +242,254 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "ProcessServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\ProcessServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs*",
-              "RelativeToolTip": "SerialPortService\\ProcessServer.cs*",
-              "ViewState": "AgIAACcAAAAAAAAAAAAWwJAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:47:38.429Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 3,
-              "Title": "PutakeServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\PutakeServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
-              "RelativeToolTip": "SerialPortService\\PutakeServer.cs",
-              "ViewState": "AgIAABwAAAAAAAAAAAAQwDAAAAARAAAAAAAAAA==",
+              "Title": "SerialPortJob.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs*",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs*",
+              "ViewState": "AgIAADcAAAAAAAAAAAASwEoAAAAqAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:30.012Z",
+              "WhenOpened": "2025-03-21T02:39:47.713Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 5,
-              "Title": "IPutakeServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
-              "RelativeDocumentMoniker": "ISerialPortService\\IPutakeServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
-              "RelativeToolTip": "ISerialPortService\\IPutakeServer.cs",
-              "ViewState": "AgIAAAMAAAAAAAAAAAApwBEAAAAbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:23.95Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
               "Title": "NjTaskServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\NjTaskServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\NjTaskServer.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\NjTaskServer.cs",
               "RelativeToolTip": "SerialPortService\\NjTaskServer.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABoBAABDAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAC4AAAAUAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-18T08:34:48.374Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "AddProcessDTO.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAARAAAAAAAAAA==",
+              "DocumentIndex": 0,
+              "Title": "ProcessServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\ProcessServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs",
+              "RelativeToolTip": "SerialPortService\\ProcessServer.cs",
+              "ViewState": "AgIAAA4BAAAAAAAAAAAWwE8BAAA7AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T05:46:02.575Z",
+              "WhenOpened": "2025-03-18T03:47:38.429Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 4,
               "Title": "ProcessController.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
-              "ViewState": "AgIAAAMAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAADEAAAAAAAAAAAAkwD4AAAAMAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-18T03:45:46.366Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "SerialPortService.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\SerialPortService.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
+              "RelativeToolTip": "SerialPortService\\SerialPortService.cs",
+              "ViewState": "AgIAACEAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T02:01:10.146Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "PutakeServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\PutakeServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
+              "RelativeToolTip": "SerialPortService\\PutakeServer.cs",
+              "ViewState": "AgIAABwAAAAAAAAAAAAQwEAAAAAsAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:54:30.012Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
               "DocumentIndex": 6,
+              "Title": "IPutakeServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
+              "RelativeDocumentMoniker": "ISerialPortService\\IPutakeServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
+              "RelativeToolTip": "ISerialPortService\\IPutakeServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAswA0AAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:54:23.95Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "PutakeController.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAtwBcAAAAeAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:57:42.064Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 14,
+              "Title": "TorqueOpServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\TorqueOpServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
+              "RelativeToolTip": "SerialPortService\\TorqueOpServer.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAAAEIAAABsAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:56:46.727Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "Dt_Process.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "ViewState": "AgIAAGUAAAAAAAAAAAAowIAAAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-20T01:12:06.317Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "IProcessServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
+              "RelativeDocumentMoniker": "ISerialPortService\\IProcessServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
+              "RelativeToolTip": "ISerialPortService\\IProcessServer.cs",
+              "ViewState": "AgIAAB0AAAAAAAAAAAD4vzsAAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:54:16.125Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "appsettings.json",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvx4AAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-03-21T08:03:47.109Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "Dt_TorqueOp.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "ViewState": "AgIAACEAAAAAAAAAAAAjwDUAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-20T07:32:46.346Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "Program.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
+              "ViewState": "AgIAACgAAAAAAAAAAADwvzUAAAAlAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-21T07:23:38.895Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "TorqueOpController.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAABwAAAA5AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-18T08:35:43.197Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 15,
               "Title": "Dt_NjTask.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
-              "ViewState": "AgIAANQAAAAAAAAAAAAqwNEAAAAmAAAAAAAAAA==",
+              "ViewState": "AgIAAIUAAAAAAAAAAAAUwNEAAAAmAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:07:30.689Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "Dt_TorqueOp.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "ViewState": "AgIAABkAAAAAAAAAAAAQwAsAAAA6AAAAAAAAAA==",
+              "DocumentIndex": 16,
+              "Title": "AddProcessDTO.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "ViewState": "AgIAABEAAAAAAAAAAAAAwB0AAAAOAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-20T01:12:44.935Z",
+              "WhenOpened": "2025-03-18T05:46:02.575Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "Dt_Tools.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "ViewState": "AgIAACYAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
+              "DocumentIndex": 17,
+              "Title": "ITorqueOpServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
+              "RelativeDocumentMoniker": "ISerialPortService\\ITorqueOpServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
+              "RelativeToolTip": "ISerialPortService\\ITorqueOpServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAA9AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-20T01:12:41.334Z",
+              "WhenOpened": "2025-03-19T01:54:51.967Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 9,
+              "DocumentIndex": 18,
+              "Title": "ToolsServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\ToolsServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
+              "RelativeToolTip": "SerialPortService\\ToolsServer.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAADwvxgAAAARAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T02:01:18.961Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 19,
               "Title": "Dt_Template.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Template.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Template.cs",
@@ -376,7 +502,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 10,
+              "DocumentIndex": 20,
               "Title": "Dt_Putake.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Putake.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Putake.cs",
@@ -389,46 +515,33 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "Dt_Process.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "ViewState": "AgIAAHAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-20T01:12:06.317Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
+              "DocumentIndex": 21,
               "Title": "Dt_NJCommands.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
-              "ViewState": "AgIAAB0AAAAAAAAAAAA3wAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAB4AAAAAAAAAAAAcwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:11:41.912Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 13,
+              "DocumentIndex": 22,
               "Title": "Dt_NJtakeHistory.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
-              "ViewState": "AgIAAEMAAAAAAAAAAAA0wAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAH0AAAAAAAAAAAAQwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:11:46.083Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 14,
+              "DocumentIndex": 23,
               "Title": "Dt_LoginHistory.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_LoginHistory.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_LoginHistory.cs",
@@ -441,80 +554,20 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 15,
+              "DocumentIndex": 24,
               "Title": "Dt_ArticleInfom.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
-              "ViewState": "AgIAACkAAAAAAAAAAAA6wAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAACoAAAAAAAAAAAAkwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:11:35.733Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 19,
-              "Title": "ToolsServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\ToolsServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
-              "RelativeToolTip": "SerialPortService\\ToolsServer.cs",
-              "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:01:18.961Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 17,
-              "Title": "IProcessServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
-              "RelativeDocumentMoniker": "ISerialPortService\\IProcessServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
-              "RelativeToolTip": "ISerialPortService\\IProcessServer.cs",
-              "ViewState": "AgIAAAsAAAAAAAAAAAD4vyUAAAAbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:16.125Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 16,
-              "Title": "PutakeController.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "ViewState": "AgIAAA8AAAAAAAAAAADgvx0AAAAfAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:57:42.064Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 20,
-              "Title": "ITorqueOpServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
-              "RelativeDocumentMoniker": "ISerialPortService\\ITorqueOpServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
-              "RelativeToolTip": "ISerialPortService\\ITorqueOpServer.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAswA4AAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:51.967Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 18,
-              "Title": "TorqueOpServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\TorqueOpServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
-              "RelativeToolTip": "SerialPortService\\TorqueOpServer.cs",
-              "ViewState": "AgIAAAcAAAAAAAAAAAAjwBcAAAA9AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:56:46.727Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 21,
+              "DocumentIndex": 25,
               "Title": "INjTaskServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\INjTaskServer.cs",
               "RelativeDocumentMoniker": "ISerialPortService\\INjTaskServer.cs",
@@ -522,23 +575,25 @@
               "RelativeToolTip": "ISerialPortService\\INjTaskServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:15.368Z"
+              "WhenOpened": "2025-03-19T01:54:15.368Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 22,
+              "DocumentIndex": 26,
               "Title": "Sys_UserService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
-              "ViewState": "AgIAAIsBAAAAAAAAAAA0wJcBAAAnAAAAAAAAAA==",
+              "ViewState": "AgIAAIwBAAAAAAAAAAAQwJcBAAAnAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:20:17.983Z"
+              "WhenOpened": "2025-03-18T07:20:17.983Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 26,
+              "DocumentIndex": 30,
               "Title": "SetpDTO.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\SetpDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\SetpDTO.cs",
@@ -546,11 +601,12 @@
               "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\SetpDTO.cs",
               "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T06:58:28.509Z"
+              "WhenOpened": "2025-03-19T06:58:28.509Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 23,
+              "DocumentIndex": 27,
               "Title": "Sys_UserController.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
@@ -558,35 +614,38 @@
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
               "ViewState": "AgIAAJMAAAAAAAAAAAASwLMAAAA2AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:20:02.496Z"
+              "WhenOpened": "2025-03-18T07:20:02.496Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 25,
+              "DocumentIndex": 29,
               "Title": "UserDTO.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
               "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAAAAABMAAAAVAAAAAAAAAA==",
+              "ViewState": "AgIAAAQAAAAAAAAAAABUwBMAAAAVAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:33:54.091Z"
+              "WhenOpened": "2025-03-18T07:33:54.091Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 24,
+              "DocumentIndex": 28,
               "Title": "ISys_UserService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
-              "ViewState": "AgIAACQAAAAAAAAAAIA4wD4AAAA3AAAAAAAAAA==",
+              "ViewState": "AgIAACUAAAAAAAAAAAAhwD4AAAA3AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:20:13.531Z"
+              "WhenOpened": "2025-03-18T07:20:13.531Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 32,
+              "DocumentIndex": 33,
               "Title": "LoginHistoryServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\LoginHistoryServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\LoginHistoryServer.cs",
@@ -594,11 +653,12 @@
               "RelativeToolTip": "SerialPortService\\LoginHistoryServer.cs",
               "ViewState": "AgIAAAkAAAAAAAAAAAAuwBUAAAAdAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:35:47.432Z"
+              "WhenOpened": "2025-03-19T02:35:47.432Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 27,
+              "DocumentIndex": 31,
               "Title": "AddNjtDTO.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddNjtDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\AddNjtDTO.cs",
@@ -606,23 +666,12 @@
               "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\AddNjtDTO.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T06:58:26.302Z"
+              "WhenOpened": "2025-03-19T06:58:26.302Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 30,
-              "Title": "WIDESEAWCS_Server.csproj",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2025-03-19T03:23:45.124Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 31,
+              "DocumentIndex": 32,
               "Title": "NJtakeHistoryServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\NJtakeHistoryServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\NJtakeHistoryServer.cs",
@@ -630,47 +679,25 @@
               "RelativeToolTip": "SerialPortService\\NJtakeHistoryServer.cs",
               "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:56:17.448Z"
+              "WhenOpened": "2025-03-19T01:56:17.448Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 29,
-              "Title": "appsettings.json",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-03-19T06:19:03.869Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 28,
-              "Title": "Program.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
-              "ViewState": "AgIAABsAAAAAAAAAAADwvyMAAAA4AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T06:19:09.191Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 34,
+              "DocumentIndex": 35,
               "Title": "TemplateServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TemplateServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\TemplateServer.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TemplateServer.cs",
               "RelativeToolTip": "SerialPortService\\TemplateServer.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAAQAAAAAAAAAAABUwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:01:14.321Z"
+              "WhenOpened": "2025-03-19T02:01:14.321Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 33,
+              "DocumentIndex": 34,
               "Title": "IArticleInfomServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IArticleInfomServer.cs",
               "RelativeDocumentMoniker": "ISerialPortService\\IArticleInfomServer.cs",
@@ -678,19 +705,8 @@
               "RelativeToolTip": "ISerialPortService\\IArticleInfomServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwsAAABCAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:29.625Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 35,
-              "Title": "SerialPortService.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\SerialPortService.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
-              "RelativeToolTip": "SerialPortService\\SerialPortService.cs",
-              "ViewState": "AgIAADwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:01:10.146Z"
+              "WhenOpened": "2025-03-18T03:25:29.625Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -702,7 +718,8 @@
               "RelativeToolTip": "SerialPortService\\NJCommandsServer .cs",
               "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:56:15.37Z"
+              "WhenOpened": "2025-03-19T01:56:15.37Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -714,7 +731,8 @@
               "RelativeToolTip": "ISerialPortService\\IToolsServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:51.309Z"
+              "WhenOpened": "2025-03-19T01:54:51.309Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -726,7 +744,8 @@
               "RelativeToolTip": "SerialPortService\\ArticleInfomServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:52.785Z"
+              "WhenOpened": "2025-03-18T03:25:52.785Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -738,7 +757,8 @@
               "RelativeToolTip": "ISerialPortService\\ITemplateServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:47.676Z"
+              "WhenOpened": "2025-03-19T01:54:47.676Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -750,7 +770,8 @@
               "RelativeToolTip": "ISerialPortService\\ISerialPortService.cs",
               "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:44.241Z"
+              "WhenOpened": "2025-03-19T01:54:44.241Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -762,7 +783,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:07.054Z"
+              "WhenOpened": "2025-03-19T01:54:07.054Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -774,7 +796,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T08:57:16.655Z"
+              "WhenOpened": "2025-03-18T08:57:16.655Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -786,7 +809,8 @@
               "RelativeToolTip": "ISerialPortService\\ILoginHistoryServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:33.264Z"
+              "WhenOpened": "2025-03-18T03:25:33.264Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -798,7 +822,8 @@
               "RelativeToolTip": "ISerialPortService\\INJCommandsServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:34.287Z"
+              "WhenOpened": "2025-03-18T03:25:34.287Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -810,7 +835,8 @@
               "RelativeToolTip": "ISerialPortService\\INJtakeHistoryServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:36.255Z"
+              "WhenOpened": "2025-03-18T03:25:36.255Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -822,7 +848,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:06.179Z"
+              "WhenOpened": "2025-03-19T01:54:06.179Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -834,7 +861,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:05.38Z"
+              "WhenOpened": "2025-03-19T01:54:05.38Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -846,7 +874,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_DictionaryListService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:04.452Z"
+              "WhenOpened": "2025-03-19T01:54:04.452Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -858,7 +887,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_TenantService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:53:55.797Z"
+              "WhenOpened": "2025-03-19T01:53:55.797Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -870,7 +900,8 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:53:51.567Z"
+              "WhenOpened": "2025-03-19T01:53:51.567Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -882,23 +913,12 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_TenantService.cs",
               "ViewState": "AgIAAEcAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:53:47.238Z"
+              "WhenOpened": "2025-03-19T01:53:47.238Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 52,
-              "Title": "TorqueOpController.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T08:35:43.197Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 53,
               "Title": "NjTaskController.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\NjTaskController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\NjTaskController.cs",
@@ -906,11 +926,12 @@
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\NjTaskController.cs",
               "ViewState": "AgIAADQAAAAAAAAAAAAkwEkAAAAfAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T08:32:49.485Z"
+              "WhenOpened": "2025-03-18T08:32:49.485Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 54,
+              "DocumentIndex": 53,
               "Title": "Sys_DictionaryService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
@@ -918,11 +939,12 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
               "ViewState": "AgIAAFEAAAAAAAAAAAAcwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:37:22.246Z"
+              "WhenOpened": "2025-03-18T03:37:22.246Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 55,
+              "DocumentIndex": 54,
               "Title": "Sys_DictionaryListService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_DictionaryListService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryListService.cs",
@@ -930,7 +952,8 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryListService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAJAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:37:17.946Z"
+              "WhenOpened": "2025-03-18T03:37:17.946Z",
+              "EditorCaption": ""
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
index 9b61bcf..0f5b11a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -7,16 +7,20 @@
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\processserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
-      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\putakeserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\putakeserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_tasks\\serialport\\serialportjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\serialport\\serialportjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\processcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\njtaskserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -27,16 +31,52 @@
       "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\iputakeserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_torqueop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_torqueop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_tools.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_njtask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\serialport\\addprocessdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_template.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -45,10 +85,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_putake.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_putake.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_process.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_njcommands.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -65,26 +101,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_model\\models\\serialport\\dt_articleinfom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\serialport\\dt_articleinfom.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\putakecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\iprocessserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\torqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\toolsserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|solutionrelative:iserialportservice\\itorqueopserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{FAAE7C01-D5C8-43BF-84F6-DB034334C3F1}|ISerialPortService\\WIDESEA_ISerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\iserialportservice\\injtaskserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -115,18 +131,6 @@
       "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\serialport\\addnjtdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\wideseawcs_server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs_server.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\njtakehistoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\njtakehistoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
@@ -141,10 +145,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\templateserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\templateserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|solutionrelative:serialportservice\\serialportservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{DE3CBFFF-C6C4-4A38-9A00-06291EF590B9}|SerialPortService\\WIDESEA_SerialPortService.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\serialportservice\\njcommandsserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -211,10 +211,6 @@
       "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_tenantservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\torqueopcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\\u7F8E\u578B\\niujukongzhi\\\u9879\u76EE\u4EE3\u7801\\wideseawcs_server \u6B63\u5F0F\\wideseawcs_server\\controllers\\serialport\\njtaskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\serialport\\njtaskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
@@ -234,7 +230,7 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 2,
+          "SelectedChildIndex": 4,
           "Children": [
             {
               "$type": "Bookmark",
@@ -246,124 +242,254 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "ProcessServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\ProcessServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs",
-              "RelativeToolTip": "SerialPortService\\ProcessServer.cs",
-              "ViewState": "AgIAACEAAAAAAAAAAAAmwEAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:47:38.429Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 3,
-              "Title": "PutakeServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\PutakeServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
-              "RelativeToolTip": "SerialPortService\\PutakeServer.cs",
-              "ViewState": "AgIAABwAAAAAAAAAAAAQwDAAAAARAAAAAAAAAA==",
+              "Title": "SerialPortJob.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SerialPort\\SerialPortJob.cs",
+              "ViewState": "AgIAADcAAAAAAAAAAAASwEoAAAAqAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:30.012Z",
+              "WhenOpened": "2025-03-21T02:39:47.713Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 5,
-              "Title": "IPutakeServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
-              "RelativeDocumentMoniker": "ISerialPortService\\IPutakeServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
-              "RelativeToolTip": "ISerialPortService\\IPutakeServer.cs",
-              "ViewState": "AgIAAAMAAAAAAAAAAAApwBEAAAAbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:23.95Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
               "Title": "NjTaskServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\NjTaskServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\NjTaskServer.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\NjTaskServer.cs",
               "RelativeToolTip": "SerialPortService\\NjTaskServer.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABoBAABDAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAC4AAAAUAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-18T08:34:48.374Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "AddProcessDTO.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAARAAAAAAAAAA==",
+              "DocumentIndex": 0,
+              "Title": "ProcessServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\ProcessServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ProcessServer.cs",
+              "RelativeToolTip": "SerialPortService\\ProcessServer.cs",
+              "ViewState": "AgIAAA4BAAAAAAAAAAAWwE8BAAA7AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T05:46:02.575Z",
+              "WhenOpened": "2025-03-18T03:47:38.429Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 4,
               "Title": "ProcessController.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\ProcessController.cs",
-              "ViewState": "AgIAAAMAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAADEAAAAAAAAAAAAkwD4AAAAMAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-18T03:45:46.366Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "SerialPortService.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\SerialPortService.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
+              "RelativeToolTip": "SerialPortService\\SerialPortService.cs",
+              "ViewState": "AgIAACEAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T02:01:10.146Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "PutakeServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\PutakeServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\PutakeServer.cs",
+              "RelativeToolTip": "SerialPortService\\PutakeServer.cs",
+              "ViewState": "AgIAABwAAAAAAAAAAAAQwEAAAAAsAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:54:30.012Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
               "DocumentIndex": 6,
+              "Title": "IPutakeServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
+              "RelativeDocumentMoniker": "ISerialPortService\\IPutakeServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IPutakeServer.cs",
+              "RelativeToolTip": "ISerialPortService\\IPutakeServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAswA0AAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:54:23.95Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "PutakeController.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAtwBcAAAAeAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:57:42.064Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 14,
+              "Title": "TorqueOpServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\TorqueOpServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
+              "RelativeToolTip": "SerialPortService\\TorqueOpServer.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAAAEIAAABsAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:56:46.727Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "Dt_Process.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
+              "ViewState": "AgIAAGUAAAAAAAAAAAAowIAAAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-20T01:12:06.317Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "IProcessServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
+              "RelativeDocumentMoniker": "ISerialPortService\\IProcessServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
+              "RelativeToolTip": "ISerialPortService\\IProcessServer.cs",
+              "ViewState": "AgIAAB0AAAAAAAAAAAD4vzsAAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T01:54:16.125Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "appsettings.json",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvx4AAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-03-21T08:03:47.109Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "Dt_TorqueOp.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
+              "ViewState": "AgIAACEAAAAAAAAAAAAjwDUAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-20T07:32:46.346Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "Program.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
+              "ViewState": "AgIAACgAAAAAAAAAAADwvzUAAAAlAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-21T07:23:38.895Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "TorqueOpController.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAABwAAAA5AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-18T08:35:43.197Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 15,
               "Title": "Dt_NjTask.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NjTask.cs",
-              "ViewState": "AgIAANQAAAAAAAAAAAAqwNEAAAAmAAAAAAAAAA==",
+              "ViewState": "AgIAAIUAAAAAAAAAAAAUwNEAAAAmAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:07:30.689Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "Dt_TorqueOp.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_TorqueOp.cs",
-              "ViewState": "AgIAABkAAAAAAAAAAAAQwAsAAAA6AAAAAAAAAA==",
+              "DocumentIndex": 16,
+              "Title": "AddProcessDTO.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\AddProcessDTO.cs",
+              "ViewState": "AgIAABEAAAAAAAAAAAAAwB0AAAAOAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-20T01:12:44.935Z",
+              "WhenOpened": "2025-03-18T05:46:02.575Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "Dt_Tools.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Tools.cs",
-              "ViewState": "AgIAACYAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
+              "DocumentIndex": 17,
+              "Title": "ITorqueOpServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
+              "RelativeDocumentMoniker": "ISerialPortService\\ITorqueOpServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
+              "RelativeToolTip": "ISerialPortService\\ITorqueOpServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAA9AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-20T01:12:41.334Z",
+              "WhenOpened": "2025-03-19T01:54:51.967Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 9,
+              "DocumentIndex": 18,
+              "Title": "ToolsServer.cs",
+              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
+              "RelativeDocumentMoniker": "SerialPortService\\ToolsServer.cs",
+              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
+              "RelativeToolTip": "SerialPortService\\ToolsServer.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAADwvxgAAAARAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-19T02:01:18.961Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 19,
               "Title": "Dt_Template.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Template.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Template.cs",
@@ -376,7 +502,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 10,
+              "DocumentIndex": 20,
               "Title": "Dt_Putake.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Putake.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Putake.cs",
@@ -389,46 +515,33 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "Dt_Process.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_Process.cs",
-              "ViewState": "AgIAAHAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-20T01:12:06.317Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
+              "DocumentIndex": 21,
               "Title": "Dt_NJCommands.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJCommands.cs",
-              "ViewState": "AgIAAB0AAAAAAAAAAAA3wAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAB4AAAAAAAAAAAAcwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:11:41.912Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 13,
+              "DocumentIndex": 22,
               "Title": "Dt_NJtakeHistory.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_NJtakeHistory.cs",
-              "ViewState": "AgIAAEMAAAAAAAAAAAA0wAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAH0AAAAAAAAAAAAQwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:11:46.083Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 14,
+              "DocumentIndex": 23,
               "Title": "Dt_LoginHistory.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_LoginHistory.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_LoginHistory.cs",
@@ -441,80 +554,20 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 15,
+              "DocumentIndex": 24,
               "Title": "Dt_ArticleInfom.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
               "RelativeToolTip": "WIDESEAWCS_Model\\Models\\SerialPort\\Dt_ArticleInfom.cs",
-              "ViewState": "AgIAACkAAAAAAAAAAAA6wAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAACoAAAAAAAAAAAAkwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-20T01:11:35.733Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 19,
-              "Title": "ToolsServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\ToolsServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\ToolsServer.cs",
-              "RelativeToolTip": "SerialPortService\\ToolsServer.cs",
-              "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:01:18.961Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 17,
-              "Title": "IProcessServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
-              "RelativeDocumentMoniker": "ISerialPortService\\IProcessServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IProcessServer.cs",
-              "RelativeToolTip": "ISerialPortService\\IProcessServer.cs",
-              "ViewState": "AgIAAAsAAAAAAAAAAAD4vyUAAAAbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:16.125Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 16,
-              "Title": "PutakeController.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\PutakeController.cs",
-              "ViewState": "AgIAAA8AAAAAAAAAAADgvx0AAAAfAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:57:42.064Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 20,
-              "Title": "ITorqueOpServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
-              "RelativeDocumentMoniker": "ISerialPortService\\ITorqueOpServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\ITorqueOpServer.cs",
-              "RelativeToolTip": "ISerialPortService\\ITorqueOpServer.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAswA4AAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:51.967Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 18,
-              "Title": "TorqueOpServer.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\TorqueOpServer.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TorqueOpServer.cs",
-              "RelativeToolTip": "SerialPortService\\TorqueOpServer.cs",
-              "ViewState": "AgIAAAcAAAAAAAAAAAAjwBcAAAA9AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:56:46.727Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 21,
+              "DocumentIndex": 25,
               "Title": "INjTaskServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\INjTaskServer.cs",
               "RelativeDocumentMoniker": "ISerialPortService\\INjTaskServer.cs",
@@ -522,23 +575,25 @@
               "RelativeToolTip": "ISerialPortService\\INjTaskServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:15.368Z"
+              "WhenOpened": "2025-03-19T01:54:15.368Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 22,
+              "DocumentIndex": 26,
               "Title": "Sys_UserService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
-              "ViewState": "AgIAAIsBAAAAAAAAAAA0wJcBAAAnAAAAAAAAAA==",
+              "ViewState": "AgIAAIwBAAAAAAAAAAAQwJcBAAAnAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:20:17.983Z"
+              "WhenOpened": "2025-03-18T07:20:17.983Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 26,
+              "DocumentIndex": 30,
               "Title": "SetpDTO.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\SetpDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\SetpDTO.cs",
@@ -546,11 +601,12 @@
               "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\SetpDTO.cs",
               "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T06:58:28.509Z"
+              "WhenOpened": "2025-03-19T06:58:28.509Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 23,
+              "DocumentIndex": 27,
               "Title": "Sys_UserController.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
@@ -558,35 +614,38 @@
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
               "ViewState": "AgIAAJMAAAAAAAAAAAASwLMAAAA2AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:20:02.496Z"
+              "WhenOpened": "2025-03-18T07:20:02.496Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 25,
+              "DocumentIndex": 29,
               "Title": "UserDTO.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
               "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\UserDTO.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAAAAABMAAAAVAAAAAAAAAA==",
+              "ViewState": "AgIAAAQAAAAAAAAAAABUwBMAAAAVAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:33:54.091Z"
+              "WhenOpened": "2025-03-18T07:33:54.091Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 24,
+              "DocumentIndex": 28,
               "Title": "ISys_UserService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
-              "ViewState": "AgIAACQAAAAAAAAAAIA4wD4AAAA3AAAAAAAAAA==",
+              "ViewState": "AgIAACUAAAAAAAAAAAAhwD4AAAA3AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T07:20:13.531Z"
+              "WhenOpened": "2025-03-18T07:20:13.531Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 32,
+              "DocumentIndex": 33,
               "Title": "LoginHistoryServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\LoginHistoryServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\LoginHistoryServer.cs",
@@ -594,11 +653,12 @@
               "RelativeToolTip": "SerialPortService\\LoginHistoryServer.cs",
               "ViewState": "AgIAAAkAAAAAAAAAAAAuwBUAAAAdAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:35:47.432Z"
+              "WhenOpened": "2025-03-19T02:35:47.432Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 27,
+              "DocumentIndex": 31,
               "Title": "AddNjtDTO.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_DTO\\SerialPort\\AddNjtDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\SerialPort\\AddNjtDTO.cs",
@@ -606,23 +666,12 @@
               "RelativeToolTip": "WIDESEAWCS_DTO\\SerialPort\\AddNjtDTO.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T06:58:26.302Z"
+              "WhenOpened": "2025-03-19T06:58:26.302Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 30,
-              "Title": "WIDESEAWCS_Server.csproj",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2025-03-19T03:23:45.124Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 31,
+              "DocumentIndex": 32,
               "Title": "NJtakeHistoryServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\NJtakeHistoryServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\NJtakeHistoryServer.cs",
@@ -630,47 +679,25 @@
               "RelativeToolTip": "SerialPortService\\NJtakeHistoryServer.cs",
               "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:56:17.448Z"
+              "WhenOpened": "2025-03-19T01:56:17.448Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 29,
-              "Title": "appsettings.json",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-03-19T06:19:03.869Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 28,
-              "Title": "Program.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
-              "ViewState": "AgIAABsAAAAAAAAAAADwvyMAAAA4AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T06:19:09.191Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 34,
+              "DocumentIndex": 35,
               "Title": "TemplateServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TemplateServer.cs",
               "RelativeDocumentMoniker": "SerialPortService\\TemplateServer.cs",
               "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\TemplateServer.cs",
               "RelativeToolTip": "SerialPortService\\TemplateServer.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAAQAAAAAAAAAAABUwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:01:14.321Z"
+              "WhenOpened": "2025-03-19T02:01:14.321Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 33,
+              "DocumentIndex": 34,
               "Title": "IArticleInfomServer.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\ISerialPortService\\IArticleInfomServer.cs",
               "RelativeDocumentMoniker": "ISerialPortService\\IArticleInfomServer.cs",
@@ -678,19 +705,8 @@
               "RelativeToolTip": "ISerialPortService\\IArticleInfomServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwsAAABCAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:29.625Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 35,
-              "Title": "SerialPortService.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
-              "RelativeDocumentMoniker": "SerialPortService\\SerialPortService.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\SerialPortService\\SerialPortService.cs",
-              "RelativeToolTip": "SerialPortService\\SerialPortService.cs",
-              "ViewState": "AgIAADwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T02:01:10.146Z"
+              "WhenOpened": "2025-03-18T03:25:29.625Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -702,7 +718,8 @@
               "RelativeToolTip": "SerialPortService\\NJCommandsServer .cs",
               "ViewState": "AgIAAAwAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:56:15.37Z"
+              "WhenOpened": "2025-03-19T01:56:15.37Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -714,7 +731,8 @@
               "RelativeToolTip": "ISerialPortService\\IToolsServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:51.309Z"
+              "WhenOpened": "2025-03-19T01:54:51.309Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -726,7 +744,8 @@
               "RelativeToolTip": "SerialPortService\\ArticleInfomServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:52.785Z"
+              "WhenOpened": "2025-03-18T03:25:52.785Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -738,7 +757,8 @@
               "RelativeToolTip": "ISerialPortService\\ITemplateServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:47.676Z"
+              "WhenOpened": "2025-03-19T01:54:47.676Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -750,7 +770,8 @@
               "RelativeToolTip": "ISerialPortService\\ISerialPortService.cs",
               "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:44.241Z"
+              "WhenOpened": "2025-03-19T01:54:44.241Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -762,7 +783,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:07.054Z"
+              "WhenOpened": "2025-03-19T01:54:07.054Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -774,7 +796,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T08:57:16.655Z"
+              "WhenOpened": "2025-03-18T08:57:16.655Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -786,7 +809,8 @@
               "RelativeToolTip": "ISerialPortService\\ILoginHistoryServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:33.264Z"
+              "WhenOpened": "2025-03-18T03:25:33.264Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -798,7 +822,8 @@
               "RelativeToolTip": "ISerialPortService\\INJCommandsServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:34.287Z"
+              "WhenOpened": "2025-03-18T03:25:34.287Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -810,7 +835,8 @@
               "RelativeToolTip": "ISerialPortService\\INJtakeHistoryServer.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:25:36.255Z"
+              "WhenOpened": "2025-03-18T03:25:36.255Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -822,7 +848,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_LogService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:06.179Z"
+              "WhenOpened": "2025-03-19T01:54:06.179Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -834,7 +861,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_DictionaryService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:05.38Z"
+              "WhenOpened": "2025-03-19T01:54:05.38Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -846,7 +874,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_DictionaryListService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:54:04.452Z"
+              "WhenOpened": "2025-03-19T01:54:04.452Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -858,7 +887,8 @@
               "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_TenantService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:53:55.797Z"
+              "WhenOpened": "2025-03-19T01:53:55.797Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -870,7 +900,8 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:53:51.567Z"
+              "WhenOpened": "2025-03-19T01:53:51.567Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -882,23 +913,12 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_TenantService.cs",
               "ViewState": "AgIAAEcAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-19T01:53:47.238Z"
+              "WhenOpened": "2025-03-19T01:53:47.238Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 52,
-              "Title": "TorqueOpController.cs",
-              "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "ToolTip": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\TorqueOpController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T08:35:43.197Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 53,
               "Title": "NjTaskController.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_Server\\Controllers\\SerialPort\\NjTaskController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\SerialPort\\NjTaskController.cs",
@@ -906,11 +926,12 @@
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\SerialPort\\NjTaskController.cs",
               "ViewState": "AgIAADQAAAAAAAAAAAAkwEkAAAAfAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T08:32:49.485Z"
+              "WhenOpened": "2025-03-18T08:32:49.485Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 54,
+              "DocumentIndex": 53,
               "Title": "Sys_DictionaryService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
@@ -918,11 +939,12 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
               "ViewState": "AgIAAFEAAAAAAAAAAAAcwAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:37:22.246Z"
+              "WhenOpened": "2025-03-18T03:37:22.246Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 55,
+              "DocumentIndex": 54,
               "Title": "Sys_DictionaryListService.cs",
               "DocumentMoniker": "E:\\\u7F8E\u578B\\NiuJuKongZhi\\\u9879\u76EE\u4EE3\u7801\\WIDESEAWCS_Server \u6B63\u5F0F\\WIDESEAWCS_SystemServices\\Sys_DictionaryListService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryListService.cs",
@@ -930,7 +952,8 @@
               "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryListService.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAJAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-18T03:37:17.946Z"
+              "WhenOpened": "2025-03-18T03:37:17.946Z",
+              "EditorCaption": ""
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/IProcessServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/IProcessServer.cs"
index 0680b92..624b35d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/IProcessServer.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/IProcessServer.cs"
@@ -19,7 +19,7 @@
         /// </summary>
         /// <param name="grops"></param>
         /// <returns></returns>
-        WebResponseContent GetSleeveandStep(string grops);
+        WebResponseContent GetSleeveandStep();
 
         /// <summary>
         /// 鏍规嵁缁勫拰id鏉ユ坊鍔犳暟鎹�
@@ -56,5 +56,8 @@
         /// <returns></returns>
         WebResponseContent PreviousProcess(SetpDTO setpDTO);
 
+
+        WebResponseContent GetValueandNumber(string grop,int setnum);
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/ITorqueOpServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/ITorqueOpServer.cs"
index 118ecbf..286341f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/ITorqueOpServer.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/ISerialPortService/ITorqueOpServer.cs"
@@ -17,5 +17,7 @@
         /// </summary>
         /// <returns></returns>
         WebResponseContent Checkvalue(GetTorDTO getTorDTO);
+
+        WebResponseContent AddTorqueOp(Dt_TorqueOp torqueOp);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs"
index b7d4e44..a22ef55 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/ProcessServer.cs"
@@ -39,21 +39,23 @@
             return base.GetPageData(options);
         }
 
-    
+
 
         //鑾峰彇濂楃瓛鏁伴噺
-        public WebResponseContent GetSleeveandStep(string gruops)
+        public WebResponseContent GetSleeveandStep()
         {
             try
             {
-                var result = BaseDal.QueryData(x => x.CraftType == gruops) // 鍏堢瓫閫� CraftType
+                var result = BaseDal.QueryData() // 鍏堟煡鍑哄叏閮�
                     .GroupBy(x => x.CraftType) // 鎸� CraftType 鍒嗙粍
                     .Select(g => new
                     {
-                        maxNodal = g.Max(a => a.Nodal),
-                        sumTorqueSum = g.Sum(a => a.TorqueSum)
+                        //灏介噺鍚庣鏁版嵁缁欏墠绔殑鏁版嵁锛岃皟涓�娆℃帴鍙e氨鍙互鎷垮埌锛屼笉瑕佽鍓嶇澶氭璋冪敤
+                        CraftType = g.Key, // 娣诲姞 CraftType
+                        maxNodal = g.Max(a => a.Nodal),//鏈�澶ф楠�
+                        sumTorqueSum = g.Sum(a => a.TorqueSum),//濂楃瓛鏁伴噺
                     }).ToList();
-                
+
                 return new WebResponseContent { Status = true, Data = result };
             }
             catch (Exception ex)
@@ -155,22 +157,23 @@
                 if (addProcessDTO.id == 0) // 娣诲姞
                 {
                     // 妫�鏌ユ槸鍚﹀凡缁忓瓨鍦ㄧ浉鍚岀殑 setnum
-                    if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setnum && x.CraftType == addProcessDTO.craftstype))
+                    if (allProcesses.Any(x => x.SetpNum == addProcessDTO.setpNum && x.CraftType == addProcessDTO.craftstype))
                     {
-                        return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setnum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
+                        return new WebResponseContent { Status = false, Message = $"姝ラ {addProcessDTO.setpNum} 宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�" };
                     }
 
                     // 闇�瑕佽皟鏁村悗缁楠ょ殑搴忓彿
-                    foreach (var process in allProcesses.Where(x => x.SetpNum >= addProcessDTO.setnum))
+                    foreach (var process in allProcesses.Where(x => x.SetpNum >= addProcessDTO.setpNum))
                     {
                         process.SetpNum++; // 鍚庣Щ涓�浣�
                         BaseDal.UpdateData(process);
                     }
-
+                    
                     // 鍒涘缓鏂板伐鑹烘楠�
                     var proces = new Dt_Process
                     {
-                        SetpNum = addProcessDTO.setnum,
+                        Nodal=addProcessDTO.Nodal,
+                        SetpNum = addProcessDTO.setpNum,
                         CraftType = addProcessDTO.craftstype,
                         CraftsStep = addProcessDTO.craftsstep,
                         CraftContent = addProcessDTO.craftcontent,
@@ -180,8 +183,11 @@
                         ArticleOne = addProcessDTO.articleone,
                         ArticleTowid = addProcessDTO.aritcletowid,
                         ArticleTwo = addProcessDTO.articletwo,
-                        CreateDate = DateTime.Now
+                        CreateDate = DateTime.Now,
+                        //涓虹┖灏辨槸0锛屼笉涓虹┖灏辨槸1
+                        TorqueSum = (string.IsNullOrEmpty(addProcessDTO.articleone) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.articletwo) ? 0 : 1)
                     };
+                  
 
                     BaseDal.AddData(proces);
                     return new WebResponseContent { Status = true, Data = proces };
@@ -195,7 +201,7 @@
                     }
 
                     int oldSetNum = existingProcess.SetpNum;
-                    int newSetNum = addProcessDTO.setnum;
+                    int newSetNum = addProcessDTO.setpNum;
 
                     if (oldSetNum == newSetNum) // 濡傛灉娌℃敼椤哄簭锛岀洿鎺ユ洿鏂板叾浠栧唴瀹�
                     {
@@ -210,10 +216,15 @@
                         existingProcess.ArticleTowid = addProcessDTO.aritcletowid;
                         existingProcess.ArticleTwo = addProcessDTO.articletwo;
                         existingProcess.CreateDate = DateTime.Now;
+                        existingProcess.TorqueSum = (string.IsNullOrEmpty(addProcessDTO.articleone) ? 0 : 1) + (string.IsNullOrEmpty(addProcessDTO.articletwo) ? 0 : 1);
 
                         BaseDal.UpdateData(existingProcess);
                         return new WebResponseContent { Status = true, Data = existingProcess };
                     }
+                    // 鏇存柊 TorqueSum
+                    
+
+
 
                     // 璋冩暣椤哄簭
                     if (newSetNum < oldSetNum) // 鍚戝墠绉诲姩锛屽悗缁暟鎹線鍚庣Щ
@@ -274,13 +285,13 @@
 
                 //杩斿洖褰撳墠宸ヨ壓鐨勬渶澶ф楠�
                 var maxproce = process.Max(x => x.SetpNum);
-                
+
 
                 //鎷垮埌宸ヨ壓琛ㄤ腑姝ラ涓�1鐨�
                 var proNoe = process.Where(x => x.SetpNum == 1);//鑾峰緱宸ヨ壓琛ㄤ腑鐨勭涓�姝�
                 if (torp.Count == 0)
                 {
-                    return new WebResponseContent { Status = true, Message = "杩斿洖宸ヨ壓琛ㄤ腑鐨勭涓�鏉�", Data =new { proNoe, maxproce } };
+                    return new WebResponseContent { Status = true, Message = "杩斿洖宸ヨ壓琛ㄤ腑鐨勭涓�鏉�", Data = new { proNoe, maxproce } };
                 }
 
                 var nowNum = torp.Max(x => x.ProcessSte);//鑾峰緱褰撳墠鏈�澶ф楠�
@@ -288,7 +299,7 @@
                 //op.Modifier="true"  琛ㄧず鏄己鍒舵墽琛岋紝灏变笉闇�瑕佸垽鏂簲鎵殑娆℃暟锛岀洿鎺ヨ繑鍥� op.ProcessSte+1
                 if (Mod == "true")
                 {
-                   var  now= maxproce + 1;
+                    var now = maxproce + 1;
                     return new WebResponseContent { Status = true, Data = new { proNoe, maxproce, now } };
                 }
 
@@ -298,7 +309,7 @@
 
                 //鍒ゆ柇褰撳墠姝ラ鐨勬壄鍔涙鏁版槸鍚﹀畬鎴愶紝娌″畬鎴愯繑鍥炲綋鍓嶆楠わ紝瀹屾垚杩斿洖op.ProcessSte+1锛岀姸鎬佸�肩粰false   
 
-                return new WebResponseContent { Status = true, Message = "杩斿洖褰撳墠浠诲姟鍋氬埌鐨勫ぇ姝ラ", Data =new { maxpro, maxproce } };
+                return new WebResponseContent { Status = true, Message = "杩斿洖褰撳墠浠诲姟鍋氬埌鐨勫ぇ姝ラ", Data = new { maxpro, maxproce } };
 
             }
             catch (Exception ex)
@@ -307,7 +318,7 @@
             }
         }
 
-        public WebResponseContent Nextprocess(SetpDTO setpDTO,bool flag)//寮哄埗鎵ц缁欐垜true
+        public WebResponseContent Nextprocess(SetpDTO setpDTO, bool flag)//寮哄埗鎵ц缁欐垜true
         {
             try
             {
@@ -325,16 +336,16 @@
                 var maxproce = process.Max(x => x.SetpNum);
 
                 var TorqueOneQuantity = nowdate.Select(x => x.TorqueOneQuantity).FirstOrDefault();
-                var TorqueTwoQuantity= nowdate.Select(x => x.TorqueTwoQuantity).FirstOrDefault();
+                var TorqueTwoQuantity = nowdate.Select(x => x.TorqueTwoQuantity).FirstOrDefault();
 
                 //鍒ゆ柇瀛樺�艰〃鐨勬暟鎹槸鍚︽弧瓒宠姝ラ闇�瑕佸嚑鏉℃暟鎹殑鏉℃暟
                 int TargetCount = TorqueOneQuantity + TorqueTwoQuantity;//涓�鍏辫鏈夊灏戞潯鏁版嵁锛堢洰鏍囨暟閲忥級
 
                 if (practiceCount < TargetCount && !flag)
                 {
-                    return new WebResponseContent { Status = true, Message = "娌℃湁瀹屾垚褰撳墠姝ラ", Data =new { nowdate, maxproce } };
+                    return new WebResponseContent { Status = true, Message = "娌℃湁瀹屾垚褰撳墠姝ラ", Data = new { nowdate, maxproce } };
                 }
-                else if(practiceCount == TargetCount || (practiceCount != TargetCount && flag))//寮哄埗鎵ц 鍓嶇缁欐垜涓�涓猣lag=ture鏃�
+                else if (practiceCount == TargetCount || (practiceCount != TargetCount && flag))//寮哄埗鎵ц 鍓嶇缁欐垜涓�涓猣lag=ture鏃�
                 {
                     //寮哄埗璺宠浆涓嬩竴姝ワ紝鎻掑叆op琛ㄥ綋鍓嶆楠�
                     op.TakeId = setpDTO.takeid;
@@ -356,7 +367,7 @@
 
 
                 _torqueOpRepository.AddData(op);
-                return new WebResponseContent { Status = true,Message= $"浣犲凡瀹屾垚褰撳墠绗瑊setpDTO.setnum}锛屽噯澶囩{num}姝ヤ换鍔�", Data = new { nex, maxproce } };
+                return new WebResponseContent { Status = true, Message = $"浣犲凡瀹屾垚褰撳墠绗瑊setpDTO.setnum}锛屽噯澶囩{num}姝ヤ换鍔�", Data = new { nex, maxproce } };
             }
             catch (Exception ex)
             {
@@ -387,8 +398,36 @@
                 return new WebResponseContent { Status = false, Message = "鏌ヨ澶辫触锛�" + ex.Message };
             }
         }
-    }
-       
 
+        /// <summary>
+        /// 璇诲彇褰撳墠宸ヨ壓姝ラ鐨勬壄鍔涘�间笌娆℃暟
+        /// </summary>
+        /// <param name="grop"></param>
+        /// <param name="setnum"></param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public WebResponseContent GetValueandNumber(string grop, int setnum)
+        {
+            try
+            {
+                var result = BaseDal.QueryData(x => x.CraftType == grop && x.SetpNum == setnum)
+                    .Select(g => new
+                    {
+                        g.TorqueOne,
+                        g.TorqueOneQuantity,
+                        g.TorqueTwo,
+                        g.TorqueTwoQuantity
+                    });
+                return new WebResponseContent { Status = true, Data = result }; 
+              
+            }
+            catch (Exception ex)
+            {
+                return new WebResponseContent { Status = false,Message="閿欒锛�"+ex }; throw;
+            }
+        }
     }
 
+
+}
+
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/TorqueOpServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/TorqueOpServer.cs"
index 3a152e8..65e4ee4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/TorqueOpServer.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/SerialPortService/TorqueOpServer.cs"
@@ -16,9 +16,10 @@
 {
     public class TorqueOpServer : ServiceBase<Dt_TorqueOp, ITorqueOpRepository>,ITorqueOpServer
     {
-        public TorqueOpServer(ITorqueOpRepository BaseDal) : base(BaseDal)
+        private IProcessRepository _iprocessRepository;
+        public TorqueOpServer(ITorqueOpRepository BaseDal, IProcessRepository iprocessRepository) : base(BaseDal)
         {
-
+            _iprocessRepository = iprocessRepository;
         }      
 
         public override PageGridData<Dt_TorqueOp> GetPageData(PageDataOptions options)
@@ -55,5 +56,31 @@
                 return new WebResponseContent { Status = false,Message="鏌ヨ澶辫触锛�"+ex.Message };
             }
         }
+
+        public WebResponseContent AddTorqueOp(Dt_TorqueOp torqueOp)
+        {
+            try
+            {
+                var process = _iprocessRepository.QueryData(a => a.SetpNum == torqueOp.ProcessSte && a.CraftType == torqueOp.GroupOp).FirstOrDefault();
+                if (process != null)
+                {
+                    if (torqueOp.TorqueSize == process.TorqueOne || torqueOp.TorqueSize == process.TorqueTwo)
+                    {
+                        BaseDal.AddData(torqueOp);
+                        return new WebResponseContent { Status = true, Message = "娣诲姞鎴愬姛" };
+                    }
+                    else
+                    {
+                        return new WebResponseContent { Status = false, Message = "鎵姏鍊间笉鍚堟牸", Code = 400 };
+                    }
+                }
+                return new WebResponseContent { Status = false, Message = "鏁版嵁鏈夎", Code = 400 };
+            }
+            catch (Exception ex)
+            {
+                return new WebResponseContent { Status = false, Message = "娣诲姞澶辫触锛�" + ex.Message };
+            }
+        }
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_DTO/SerialPort/AddProcessDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_DTO/SerialPort/AddProcessDTO.cs"
index bcad489..55f268e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_DTO/SerialPort/AddProcessDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_DTO/SerialPort/AddProcessDTO.cs"
@@ -22,7 +22,7 @@
         /// <summary>
         /// 灏忔楠�
         /// </summary>
-        public int setnum { get; set; }
+        public int setpNum { get; set; }
 
 
  
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Process.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Process.cs"
index b997dd3..6f92ab3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Process.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Process.cs"
@@ -38,28 +38,28 @@
         /// <summary>
         /// 宸ヤ綔鍓嶅噯澶囨楠�
         /// </summary>
-        [SugarColumn(IsNullable = true, Length = 255)]
+        [SugarColumn(IsNullable = true, Length = 500)]
         public string CraftsStep { get; set; }
 
 
         /// <summary>
         /// 宸ヨ壓鍏蜂綋鍐呭
         /// </summary>
-        [SugarColumn(IsNullable = true, Length = 255)]
+        [SugarColumn(IsNullable = true, Length = 2000)]
         public string CraftContent { get; set; }
 
 
         /// <summary>
         /// 宸ュ叿
         /// </summary>
-        [SugarColumn(IsNullable = true, Length = 50)]
+        [SugarColumn(IsNullable = true, Length = 200)]
         public string Tools { get; set; }
 
 
         /// <summary>
         /// 鐗╂枡
         /// </summary>
-        [SugarColumn(IsNullable = true, Length = 50)]
+        [SugarColumn(IsNullable = true, Length = 200)]
         public  string Material { get; set; }
         
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Tools.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Tools.cs"
index 887631f..c4fa4f8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Tools.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_Tools.cs"
@@ -32,7 +32,7 @@
         /// 宸ュ叿瑙勬牸
         /// </summary>
             [SugarColumn(IsNullable = true, ColumnDescription = "瑙勬牸")]
-            public float Specification { get; set; }
+            public string Specification { get; set; }
 
         /// <summary>
         /// 宸ュ叿鍗曚綅锛堜釜锛�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_TorqueOp.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_TorqueOp.cs"
index d7b1d15..a3e9c54 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_TorqueOp.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Model/Models/SerialPort/Dt_TorqueOp.cs"
@@ -51,7 +51,11 @@
         [SugarColumn(IsNullable = true, Length = 50)]
         public float TorqueSize { get; set; }
 
-       
+        ///// <summary>
+        ///// 鎵姏鍊兼槸鍚﹀悎鏍�
+        ///// </summary>
+        //[SugarColumn(IsNullable = true)]
+        //public bool OpStatus { get; set; }
          
 
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/ProcessController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/ProcessController.cs"
index ec18006..4315e0b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/ProcessController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/ProcessController.cs"
@@ -21,9 +21,9 @@
         }
 
         [HttpGet, Route("GetSleeveandStep"), AllowAnonymous]
-        public WebResponseContent GetSleeveandStep(string grops)
+        public WebResponseContent GetSleeveandStep()
         {
-            return Service.GetSleeveandStep(grops);
+            return Service.GetSleeveandStep();
         }
 
         /// <summary>
@@ -74,5 +74,17 @@
             return Service.PreviousProcess(setpDTO);
         }
 
+        /// <summary>
+        /// 璇诲彇褰撳墠宸ヨ壓姝ラ鐨勬壄鍔涘�间笌娆℃暟
+        /// </summary>
+        /// <param name="grop"></param>
+        /// <param name="setnum"></param>
+        /// <returns></returns>
+        [HttpPost, Route("GetValueandNumber"), AllowAnonymous]
+        public WebResponseContent GetValueandNumber(string grop, int setnum)
+        {
+            return Service.GetValueandNumber(grop, setnum);
+        }
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/TorqueOpController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/TorqueOpController.cs"
index 67af9c2..a1c17fb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/TorqueOpController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Controllers/SerialPort/TorqueOpController.cs"
@@ -25,5 +25,11 @@
             return Service.Checkvalue(getTorDTO);
         }
 
+        [HttpPost, Route("AddTorqueOp"), AllowAnonymous]
+        public WebResponseContent AddTorqueOp([FromBody] Dt_TorqueOp torqueOp)
+        {
+            return Service.AddTorqueOp(torqueOp);
+        }
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Filter/WebSocketSetup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Filter/WebSocketSetup.cs"
new file mode 100644
index 0000000..26232e4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Filter/WebSocketSetup.cs"
@@ -0,0 +1,29 @@
+锘縰sing HslCommunication.WebSocket;
+using WIDESEAWCS_Core.Helper;
+
+namespace WIDESEAWCS_Server.HostedService
+{
+    public static class WebSocketSetup
+    {
+        public static void AddWebSocketSetup(this IServiceCollection services)
+        {
+            if (services == null) throw new ArgumentNullException(nameof(services));
+
+            if(AppSettings.Get("WebSocketEnable").ObjToBool())
+            {
+                int port = AppSettings.Get("WebSocketPort").ObjToInt();
+                if (port == 0)
+                {
+                    port = 9296;
+                }
+
+                services.AddSingleton(x =>
+                {
+                    WebSocketServer socketServer = new WebSocketServer();
+                    socketServer.ServerStart(port);
+                    return socketServer;
+                });
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Program.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Program.cs"
index 339d8b5..56c8257 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Program.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/Program.cs"
@@ -23,6 +23,7 @@
 using Microsoft.AspNetCore.Builder;
 //using WIDESEA_SerialPortService;
 using WIDESEA_ISerialPortService;
+using WIDESEAWCS_Server.HostedService;
 
 var builder = WebApplication.CreateBuilder(args);
 
@@ -50,7 +51,7 @@
 
 builder.Services.AddScoped<QuartzJobCreateDataTabel>();
 builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
-
+builder.Services.AddWebSocketSetup();
 builder.Services.AddAutoMapperSetup();
 
 builder.Services.AddCorsSetup();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
index 2b11518..78f2d98 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
@@ -44,7 +44,6 @@
 	<ItemGroup>
 		<PackageReference Include="SerialPortStream" Version="2.4.2" />
 		<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
-		<PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.5" />
 	</ItemGroup>
 
 	<ItemGroup>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/appsettings.json"
index c343d6e..97c4b53 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Server/appsettings.json"
@@ -28,5 +28,7 @@
     "ApiName": "WIDESEA",
     "ExpMinutes": 120,
     "QuartzJobAutoStart": true,
-    "PrintSql": true
+    "PrintSql": false,
+    "WebSocketEnable": true,
+    "WebSocketPort": 0
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs"
index d2c82c9..d4f798f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/SerialPort/SerialPortJob.cs"
@@ -3,26 +3,23 @@
 using System.Drawing.Imaging;
 using System.IO.Ports;
 using System.Linq;
+using System.Net.WebSockets;
 using System.Text;
 using System.Threading.Tasks;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using HslCommunication.WebSocket;
+using Newtonsoft.Json;
 using Quartz;
 using SqlSugar;
 using StackExchange.Profiling.Internal;
 using WIDESEA_ISerialPortRepository;
-using WIDESEA_SerialPortRepository;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_QuartzJob.DTO;
-using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
-using WIDESEAWCS_Tasks.ConveyorLineJob;
-using WIDESEAWCS_Tasks.StackerCraneJob;
 
 namespace WIDESEAWCS_Tasks
 {
     [DisallowConcurrentExecution]
-    public class SerialPortJob : JobBase, IJob, IDisposable
+    public class SerialPortJob : JobBase, IJob,IDisposable
     {
         public void Dispose()
         {
@@ -45,11 +42,14 @@
         private readonly IPutakeRepository _putakeRepository;
         private readonly IProcessRepository _processRepository;
         private readonly ITorqueOpRepository _orqueOpRepository;
-        public SerialPortJob(IPutakeRepository putakeRepository, IProcessRepository processRepository, ITorqueOpRepository torqueOpRepository)
+        private WebSocketServer _webSocketContext;
+
+        public SerialPortJob(IPutakeRepository putakeRepository, IProcessRepository processRepository, ITorqueOpRepository torqueOpRepository, WebSocketServer webSocketContext)
         {
             _putakeRepository = putakeRepository;
             _processRepository = processRepository;
             _orqueOpRepository = torqueOpRepository;
+            _webSocketContext = webSocketContext;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -59,6 +59,7 @@
                 SerialPortDevice serialPortDevice = (SerialPortDevice)context.JobDetail.JobDataMap.Get("JobParams");
                 if (serialPortDevice != null)
                 {
+
                     List<DeviceProDTO> deviceProDTOs = serialPortDevice.DeviceProDTOs;
                     foreach (var item in deviceProDTOs)
                     {
@@ -67,109 +68,21 @@
                             DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandType) && x.ProtocolDetailType == nameof(CommandType.Set));
                             if (deviceProtocolDetail != null)
                             {
-
-                                //鍏堟煡鐘舵�佸拰缁勶紝鎸夋椂闂撮檷搴�
+                                # region  Setvalue
                                 string group = item.DeviceProDataBlock;
-
-
-                                //杩欓噷鍒ゆ柇缁勫埆涓変釜鐪嬫槸閭d釜锛屽氨鏌ラ偅涓伐鑹鸿〃鐨勫��
                                 if (group == "鐢垫皵")
                                 {
+                                    //鏌ョ湅姝ラ
+                                    var com = item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (5 * 1000).ToString().PadLeft(7, '0'))+"\r";
+                                    serialPortDevice.Communicator.Write(com+"\r");
+                                    //鎵撳紑涓插彛鏃跺厛璁惧��
                                     
-                                    //        鍏堢湅Dt_TorqueOp琛紝鏌ヨ鍒扮幇鍦ㄨ繖鏉℃暟鎹殑浠诲姟鍙峰拰姝ラ
-                                    var take = _putakeRepository.QueryData(x => x.Pustatus == 2 && x.Grouptype == group).OrderBy(x => x.Dispatchtime).First();
-                                    if (take==null)
-                                    {
-                                        //绛変簬绌哄氨鍋�
-                                    }
-
-                                    //鏌ュ埌鏈夎鏉℃暟鎹簡
-                                    var process = _processRepository.QueryData(x => x.CraftType == group).OrderBy(x => x.SetpNum).First();
-
-
-
-                                    float torqueone = process.TorqueOne;//璇诲埌鍊间簡
-                                    float torquetow = process.TorqueTwo;
-                                    if (torqueone != 0)
-                                    {
-                                        serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torqueone * 1000).ToString().PadLeft(7, '0')) + "\r");
-                                        //杩欓噷缁欏畠璁惧畬鍊煎氨  鏌ュ瓨鍌ㄥ�艰〃 杩欎釜鏁版嵁鏄惁婊¤冻浜嗭紝婊¤冻浜嗗氨杩涜涓嬩竴涓�硷紝涓嶆弧瓒冲氨涓嶅彉涓�鐩寸粰鍊�
-                                     var num=   _orqueOpRepository.QueryData(x => x.TakeId == take.Njtakeid && x.GroupOp == group && x.TorqueSize == torqueone).Count();
-                                        if (num!= process.TorqueOneQuantity)
-                                        {
-
-                                        }
-
-                                    }
-                                    if (torquetow != 0)
-                                    {
-                                        serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torquetow * 1000).ToString().PadLeft(7, '0')) + "\r");
-                                    }
-
-                                    //        // 璁$畻褰撳墠姝ラ鎵�闇�鐨� Torque 鎬绘暟
-                                    int requiredTorqueCount = process.TorqueOneQuantity + process.TorqueTwoQuantity;
-
-                                    // 鏌ヨ褰撳墠姝ラ鐨� TorqueOp 璁板綍锛屽尮閰� ProcessSte鍜岀粍锛屾鏌ユ槸鍚﹁揪鍒拌姹�
-                                    int torqueCount = _orqueOpRepository.QueryData(x => x.ProcessSte == process.SetpNum && x.GroupOp == group).Count();
-
-                                    if (torqueCount < requiredTorqueCount)
-                                    {
-                                        // 濡傛灉鏁伴噺涓嶆弧瓒筹紝鍋滄璇诲彇
-
-                                        break;
-                                    }
-                                #region
-
-                                //    //鍏堢湅宸ヨ壓琛ㄤ腑姝ラ涓�涓鎵殑鍊兼湁澶氬皯涓� 鍐嶆煡鐪婦t_TorqueOp琛ㄤ腑鏄惁鏈夎浠诲姟鍙穒d鍜屾楠ゆ�绘暟鏄惁婊¤冻宸ヨ壓琛�
-                                //    // 鏌ヨ鎵�鏈夊伐鑹烘暟鎹紝鎸夌収姝ラ鍙� SetpNum 閫掑鎺掑簭                                                                                                                                            
-                                //    var processList = _processRepository.QueryData(x => x.CraftType == group)
-                                //                                        .OrderBy(x => x.SetpNum)
-                                //                                        .ToList();
-
-                                //    foreach (var process in processList)
-                                //    {
-                                //        float  torqueone = process.TorqueOne;//璇诲埌鍊间簡
-                                //        float torquetow = process.TorqueTwo;
-                                //        if (torqueone!=0)
-                                //        {
-                                //            serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torqueone * 1000).ToString().PadLeft(7, '0')) + "\r");
-                                //        }
-                                //        if (torquetow != 0)
-                                //        {
-                                //            serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (torquetow * 1000).ToString().PadLeft(7, '0')) + "\r");
-                                //        }
-
-                                //        // 璁$畻褰撳墠姝ラ鎵�闇�鐨� Torque 鎬绘暟
-                                //        int requiredTorqueCount = process.TorqueOneQuantity + process.TorqueTwoQuantity;
-
-                                //        // 鏌ヨ褰撳墠姝ラ鐨� TorqueOp 璁板綍锛屽尮閰� ProcessSte鍜岀粍锛屾鏌ユ槸鍚﹁揪鍒拌姹�
-                                //        int torqueCount = _orqueOpRepository.QueryData(x => x.ProcessSte == process.SetpNum&& x.GroupOp== group).Count();
-
-                                //        if (torqueCount < requiredTorqueCount)
-                                //        {
-                                //            // 濡傛灉鏁伴噺涓嶆弧瓒筹紝鍋滄璇诲彇
-
-                                //            break;
-                                //        }
-                                //        //绗﹀悎瑕佹眰锛岀户缁鍙栦笅涓�姝�
-
-                            }
-
-                                //}
-                                //if (group == "鏈烘")
-                                //{
-
-                                //}
-                                //if (group == "鍦版矡")
-                                //{
-
-                                //}
+                                     
+                                }
                                 #endregion
-
-
-                                serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue.Replace("[setNum]", (5 * 1000).ToString().PadLeft(7, '0')) + "\r");
-                                //鎵撳紑涓插彛鏃跺厛璁惧��
                                 item.DeviceProParamName = CommandType.Set.ToString();
+
+
                             }
                         }
 
@@ -218,54 +131,38 @@
                                 {
                                     DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetOK));
                                     //03鎴愬姛
-
                                     if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue))
                                     {
-                                        ////杩欓噷鎴愬姛涔嬪悗锛岃瀛樺偍鍒扮湅Dt_TorqueOp锛堝瓨浠诲姟鍙凤紝缁勶紝鍊硷級
-                                        //string group = "";
-                                        //if (group == "鐢垫皵")
-                                        //{
-                                        //    var putake = _putakeRepository.QueryData(x => x.Pustatus == 2 && x.Grouptype == group).OrderByDescending(x => x.Dispatchtime).FirstOrDefault();//姣忔閮芥嬁鏈�鏃╃殑閭f潯
-                                        //    var punjid = putake.ID;
-                                        //    var Nj = new Dt_TorqueOp()
-                                        //    {
-                                        //        TakeId = putake.Njtakeid,
-                                        //        GroupOp = group,
-                                        //        //ProcessSte= processList
-                                        //        TorqueSize = receiveData
 
-                                        //    };
-                                        //    _orqueOpRepository.AddData(Nj);
-
-                                        //}
-                                        //if (group == "鏈烘")
-                                        //{
-
-                                        //}
-                                        //if (group == "鍦版矡")
-
+                                        string group = item.DeviceProDataBlock; // 璁惧鎵�灞炵粍鍒�
+                                        if (group == "鐢垫皵")
+                                        {
 
                                             item.DeviceProParamName = CommandType.Set.ToString();
-
-                                    }
-                                }
-                                else if (item.DeviceProParamName == CommandType.Get.ToString())
-                                {
-                                    DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetError));
-                                    if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue))
-                                    {
-                                        item.DeviceProParamName = CommandType.Set.ToString();
+                                        }
+                                        else if (item.DeviceProParamName == CommandType.Get.ToString())
+                                        {
+                                            //DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetError));
+                                            //if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue))
+                                            //{
+                                            //    item.DeviceProParamName = CommandType.Set.ToString();
 
 
 
+                                            //}
+                                        }
                                     }
                                 }
                             }
+
+
+                            //寤轰竴涓璞″皢鍏朵紶缁欏墠绔�
+                            string data = JsonConvert.SerializeObject(serialPortDevice);//杩欓噷serialPortDevice鏄亣璁炬湁杩欎釜瀵硅薄
+                            _webSocketContext.PublishAllClientPayload(data);
                         }
+
                     }
-
                 }
-
             }
             catch (Exception ex)
             {
@@ -274,5 +171,8 @@
             WriteDebug("CommonConveyorLineJob", "test");
             return Task.CompletedTask;
         }
+       
+
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
index 8fd25b0..2ead5da 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WIDESEAWCS_Server \346\255\243\345\274\217/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
@@ -8,8 +8,8 @@
 
 	<ItemGroup>
 	  <PackageReference Include="System.IO.Ports" Version="6.0.0" />
-	  <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.5" />
-	  <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.7" />
+	  <PackageReference Include="WIDESEAWCS_Communicator" Version="2.2.9" />
+	  <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.9" />
 	</ItemGroup>
 
 	<ItemGroup>

--
Gitblit v1.9.3