1
hutongqing
2024-12-17 f142e86b68f5480f342442b1a4ae4c6a4fc3d912
1
已删除2个文件
已修改15个文件
已添加3个文件
1485 ■■■■■ 文件已修改
WIDESEAWCS_Client/src/assets/imgs/wcs_x.png 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Client/src/views/Index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/005d5771-1857-4071-93b7-c64261f27980.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/1da9a23b-264a-4b05-b19c-21e0e7e0f19a.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/47f1c681-b60a-42e6-a1ee-65b795a138fe.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8b56c96-5c9f-4b7c-acab-2d88b650b051.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json 826 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WIDESEAWCS_Client/src/assets/imgs/wcs_x.png
WIDESEAWCS_Client/src/views/Index.vue
@@ -120,7 +120,7 @@
import VolMenu from "@/components/basic/VolElementMenu.vue";
import Message from "./index/Message.vue";
import MessageConfig from "./index/MessageConfig.js";
var imgUrl = require("@/assets/imgs/wcs_logo.png");
var imgUrl = require("@/assets/imgs/wcs_x.png");
var $this;
var $interval;
var $indexDate;
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/005d5771-1857-4071-93b7-c64261f27980.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/1da9a23b-264a-4b05-b19c-21e0e7e0f19a.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/47f1c681-b60a-42e6-a1ee-65b795a138fe.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8b56c96-5c9f-4b7c-acab-2d88b650b051.vsidx
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
Binary files differ
WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,28 +3,116 @@
  "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\",
  "Documents": [
    {
      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\wideseawcs_model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\wideseawcs_model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\middlewares\\apilogmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\apilogmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\extensions\\autofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\autofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\vuedictionarydto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\vuedictionarydto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\utilities\\entityproperties.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\utilities\\entityproperties.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\httpcontextuser\\aspnetuser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\httpcontextuser\\aspnetuser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\omron\\omronethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\omron\\omronethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\inovance\\inovancetcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\inovance\\inovancetcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -35,24 +123,24 @@
      "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:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\seed\\dbseed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\seed\\dbseed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -67,28 +155,12 @@
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -203,16 +275,8 @@
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\shuttlecarjob\\shuttlecarjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -225,10 +289,6 @@
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -267,10 +327,6 @@
      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
@@ -285,10 +341,6 @@
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
    },
    {
      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -318,7 +370,7 @@
      "DocumentGroups": [
        {
          "DockedWidth": 200,
          "SelectedChildIndex": 4,
          "SelectedChildIndex": 12,
          "Children": [
            {
              "$type": "Bookmark",
@@ -337,81 +389,400 @@
              "Name": "ST:0:0:{65ddf8c3-8f89-4077-a6c6-dbb8853aab13}"
            },
            {
              "$type": "Bookmark",
              "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
            },
            {
              "$type": "Document",
              "DocumentIndex": 0,
              "Title": "Sys_DictionaryService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-28T07:42:40.328Z",
              "DocumentIndex": 2,
              "Title": "WIDESEAWCS_Model.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
              "RelativeToolTip": "WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-12-16T05:55:48.031Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "Sys_DictionaryController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "DocumentIndex": 6,
              "Title": "Sys_Log.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
              "ViewState": "AgIAADgAAAAAAAAAAAAcwFMAAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-21T01:29:06.865Z"
              "WhenOpened": "2024-12-12T02:48:02.899Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 5,
              "Title": "Logger.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
              "ViewState": "AgIAAIIAAAAAAAAAAAAUwJEAAABlAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-12T02:46:50.608Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 12,
              "Title": "WIDESEAWCS_Communicator.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAcAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-11-13T02:53:56.497Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "CommonConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEYAAAAsAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:20:49.51Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAD0AAABYAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T06:24:51.147Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "Dt_DispatchInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAAAADkAAAAeAAAAAAAAAA==",
              "ViewState": "AgIAACMAAAAAAAAAAADwvzkAAAAeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:37:35.521Z"
              "WhenOpened": "2024-11-11T02:37:35.521Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 11,
              "Title": "Dt_DeviceInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ViewState": "AgIAACAAAAAAAAAAAAAwwCsAAAAeAAAAAAAAAA==",
              "DocumentIndex": 0,
              "Title": "DispatchInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAArwDwAAAAyAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:36:57.223Z"
              "WhenOpened": "2024-11-13T01:06:37.692Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "AutofacModuleRegister.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
              "ViewState": "AgIAAC4AAAAAAAAAAAArwEkAAABPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-12T02:48:56.913Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "Title": "ApiLogMiddleware.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
              "ViewState": "AgIAADsAAAAAAAAAAAAgwGgAAAAtAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-12T02:49:18.98Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "Title": "RouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ViewState": "AgIAABYAAAAAAAAAAAAAwAsAAAAmAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:40.549Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "Title": "JobFactory.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ViewState": "AgIAACQAAAAAAAAAAAAEwD0AAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:29:37.04Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 8,
              "Title": "Sys_DictionaryService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
              "ViewState": "AgIAADkAAAAAAAAAAAAIwEoAAAA7AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-28T07:42:40.328Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "VueDictionaryDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAoAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-15T01:47:05.446Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 25,
              "Title": "OmronEtherNetCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
              "ViewState": "AgIAAEsBAAAAAAAAAAAAAEsBAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:35:17.529Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "Title": "QuartzJobHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAASAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:34:48.326Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "AllenBrandlyEtherNetCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
              "ViewState": "AgIAAG4BAAAAAAAAAAArwKUCAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:35:39.773Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "Title": "Program.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
              "ViewState": "AgIAACUAAAAAAAAAAAAAACUAAAADAAAAAAAAAA==",
              "ViewState": "AgIAACIAAAAAAAAAAAAAAEAAAAA4AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T03:40:59.936Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "Title": "BaseCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAFIAAAA6AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T06:53:45.876Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "SiemensS7Communicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ViewState": "AgIAAFkAAAAAAAAAAADwv2wBAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:52:46.701Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 27,
              "Title": "InovanceTcpCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
              "ViewState": "AgIAAEkAAAAAAAAAAAAAAEkAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:10:31.214Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 18,
              "Title": "EntityProperties.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
              "ViewState": "AgIAAKYAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-04T07:51:53.507Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "Title": "TaskService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-05T05:59:47.833Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 26,
              "Title": "ModbusTcpCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
              "ViewState": "AgIAADkBAAAAAAAAAAAAADkBAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:35:23.258Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "Title": "AspNetUser.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "RelativeToolTip": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
              "ViewState": "AgIAADEAAAAAAAAAAAAowDoAAAA3AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T08:11:26.585Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "Title": "OtherDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ViewState": "AgIAAIwAAAAAAAAAAAAUwJEAAAAcAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:36:32.34Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "CommonStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ViewState": "AgIAAMsBAAAAAAAAAAAswHQBAAAaAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:16:12.855Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 24,
              "Title": "SiemensDBDataType.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-12-03T06:52:46.064Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 31,
              "Title": "Sys_DictionaryController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
              "ViewState": "AgIAAAsAAAAAAAAAAAASwBcAAAAcAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-21T01:29:06.865Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAABEAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2024-11-14T07:21:55.699Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 30,
              "Title": "SchedulerCenterServer.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAMBAAAXAAAAAAAAAA==",
              "ViewState": "AgIAALMAAAAAAAAAAAAEwOcAAAAUAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-19T02:46:45.891Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 9,
              "DocumentIndex": 28,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAAAoAAAAAAAAAAAAvwC4AAABXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T06:54:07.273Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 33,
              "Title": "DBSeed.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Seed\\DBSeed.cs",
@@ -423,45 +794,19 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 4,
              "Title": "CommonStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
              "ViewState": "AgIAAHEBAAAAAAAAAAAIwJ0BAAAzAAAAAAAAAA==",
              "DocumentIndex": 34,
              "Title": "Dt_DeviceInfo.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
              "ViewState": "AgIAACAAAAAAAAAAAAAwwCsAAAAeAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:16:12.855Z"
              "WhenOpened": "2024-11-11T02:36:57.223Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 2,
              "Title": "RouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAmAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:40.549Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 1,
              "Title": "VueDictionaryDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-15T01:47:05.446Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 3,
              "DocumentIndex": 32,
              "Title": "IRouterService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
@@ -473,7 +818,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 14,
              "DocumentIndex": 36,
              "Title": "QuartzJobAutofacModuleRegister.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
@@ -485,7 +830,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 13,
              "DocumentIndex": 35,
              "Title": "JobSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
@@ -497,31 +842,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 6,
              "Title": "CommonStackerCraneJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
              "ViewState": "AgIAABoAAAAAAAAAAADwvygAAAAPAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T06:54:07.273Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 7,
              "Title": "appsettings.json",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAdAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
              "WhenOpened": "2024-11-14T07:21:55.699Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 15,
              "DocumentIndex": 37,
              "Title": "QuartzNetExtension.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
@@ -533,19 +854,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 10,
              "Title": "QuartzJobHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
              "ViewState": "AgIAACYAAAAAAAAAAAAEwD0AAAAJAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:34:48.326Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 19,
              "DocumentIndex": 39,
              "Title": "JobBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\JobBase.cs",
@@ -557,31 +866,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 20,
              "Title": "SiemensS7Communicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
              "ViewState": "AgIAAJAAAAAAAAAAAAAAwLsAAAANAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T06:57:16.632Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 16,
              "Title": "DispatchInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAAEwEMAAAAXAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-13T01:06:37.692Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 17,
              "DocumentIndex": 38,
              "Title": "DispatchInfoDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
@@ -593,7 +878,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 27,
              "DocumentIndex": 45,
              "Title": "StackerCraneDBName.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
@@ -605,19 +890,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 21,
              "Title": "BaseCommunicator.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAGAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T06:53:45.876Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 25,
              "DocumentIndex": 43,
              "Title": "SchedulerController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
@@ -629,7 +902,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 22,
              "DocumentIndex": 40,
              "Title": "TestJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs",
@@ -641,7 +914,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 28,
              "DocumentIndex": 46,
              "Title": "CustomAuthorizeFilter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
@@ -653,7 +926,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 23,
              "DocumentIndex": 41,
              "Title": "ServiceBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
@@ -665,7 +938,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 24,
              "DocumentIndex": 42,
              "Title": "RepositoryBase.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
@@ -677,7 +950,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 29,
              "DocumentIndex": 47,
              "Title": "AutoMapperConfig.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
@@ -689,7 +962,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 26,
              "DocumentIndex": 44,
              "Title": "ISchedulerCenter.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
@@ -701,7 +974,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 30,
              "DocumentIndex": 48,
              "Title": "CustomProfile.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
@@ -713,7 +986,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 37,
              "DocumentIndex": 55,
              "Title": "Sys_Menu.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
@@ -725,7 +998,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 34,
              "DocumentIndex": 52,
              "Title": "Sys_MenuRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
@@ -737,7 +1010,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 36,
              "DocumentIndex": 54,
              "Title": "ISys_MenuRepository.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
@@ -749,7 +1022,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 33,
              "DocumentIndex": 51,
              "Title": "Sys_RoleService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
@@ -761,7 +1034,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 32,
              "DocumentIndex": 50,
              "Title": "Sys_MenuService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
@@ -773,7 +1046,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 31,
              "DocumentIndex": 49,
              "Title": "ISys_MenuService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
@@ -785,7 +1058,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 42,
              "DocumentIndex": 60,
              "Title": "index.html",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
@@ -797,7 +1070,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 41,
              "DocumentIndex": 59,
              "Title": "Sys_UserController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
@@ -809,7 +1082,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 35,
              "DocumentIndex": 53,
              "Title": "MenuDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\MenuDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\MenuDTO.cs",
@@ -821,7 +1094,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 38,
              "DocumentIndex": 56,
              "Title": "Sys_MenuController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
@@ -833,7 +1106,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 40,
              "DocumentIndex": 58,
              "Title": "AutoMapperSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
@@ -845,7 +1118,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 39,
              "DocumentIndex": 57,
              "Title": "WIDESEAWCS.xml",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS.xml",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS.xml",
@@ -857,7 +1130,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 43,
              "DocumentIndex": 61,
              "Title": "DispatchInfoController.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
@@ -869,7 +1142,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 44,
              "DocumentIndex": 62,
              "Title": "QuartzJobDataTableHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
@@ -881,7 +1154,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 45,
              "DocumentIndex": 63,
              "Title": "QuartzLogger.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
@@ -893,7 +1166,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 46,
              "DocumentIndex": 64,
              "Title": "Storage.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Storage.cs",
@@ -905,7 +1178,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 48,
              "DocumentIndex": 66,
              "Title": "ActionDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\ActionDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\ActionDTO.cs",
@@ -917,7 +1190,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 47,
              "DocumentIndex": 65,
              "Title": "UserPermissions.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\UserPermissions.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\UserPermissions.cs",
@@ -929,19 +1202,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 50,
              "Title": "JobFactory.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
              "ViewState": "AgIAABgAAAAAAAAAAAAAABwAAAARAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:29:37.04Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 49,
              "DocumentIndex": 67,
              "Title": "DeviceInfoDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
@@ -953,19 +1214,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 52,
              "Title": "CommonConveyorLineJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
              "ViewState": "AgIAADMAAAAAAAAAAAAAwDkAAAAMAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-14T06:24:51.147Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 51,
              "DocumentIndex": 68,
              "Title": "TaskExecuteDetailService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
@@ -977,7 +1226,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 53,
              "DocumentIndex": 69,
              "Title": "ShuttleCarJob.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
@@ -989,7 +1238,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 55,
              "DocumentIndex": 71,
              "Title": "Dt_DeviceProtocol.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
@@ -1001,7 +1250,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 54,
              "DocumentIndex": 70,
              "Title": "DeviceProDTO.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
@@ -1013,19 +1262,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 56,
              "Title": "CommonConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
              "ViewState": "AgIAALEAAAAAAAAAAAAewNAAAAA+AAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T02:20:49.51Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 57,
              "DocumentIndex": 72,
              "Title": "IConveyorLine.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
@@ -1037,7 +1274,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 58,
              "DocumentIndex": 73,
              "Title": "DeviceProtocolDetailService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
@@ -1049,7 +1286,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 60,
              "DocumentIndex": 75,
              "Title": "Dt_Router.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
@@ -1061,7 +1298,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 61,
              "DocumentIndex": 76,
              "Title": "Dt_DeviceProtocolDetail.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
@@ -1073,7 +1310,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 59,
              "DocumentIndex": 74,
              "Title": "DeviceInfoService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
@@ -1085,7 +1322,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 62,
              "DocumentIndex": 77,
              "Title": "BaseEntity.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
@@ -1097,7 +1334,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 63,
              "DocumentIndex": 78,
              "Title": "IStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
@@ -1109,7 +1346,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 64,
              "DocumentIndex": 79,
              "Title": "SpeStackerCrane.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
@@ -1121,7 +1358,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 65,
              "DocumentIndex": 80,
              "Title": "WIDESEAWCS_Core.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
@@ -1129,23 +1366,12 @@
              "RelativeToolTip": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAABoAAABSAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-11-13T02:53:57.289Z"
              "WhenOpened": "2024-11-13T02:53:57.289Z",
              "EditorCaption": ""
            },
            {
              "$type": "Document",
              "DocumentIndex": 66,
              "Title": "WIDESEAWCS_Communicator.csproj",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
              "WhenOpened": "2024-11-13T02:53:56.497Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 67,
              "DocumentIndex": 81,
              "Title": "DeviceProtocolService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
@@ -1157,7 +1383,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 68,
              "DocumentIndex": 82,
              "Title": "InitializationHostServiceSetup.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
@@ -1169,7 +1395,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 69,
              "DocumentIndex": 83,
              "Title": "SeedDataHostedService.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
@@ -1181,7 +1407,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 70,
              "DocumentIndex": 84,
              "Title": "IDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
@@ -1193,7 +1419,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 73,
              "DocumentIndex": 86,
              "Title": "ShuttleCar.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
@@ -1205,7 +1431,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 74,
              "DocumentIndex": 87,
              "Title": "IShuttleCar.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
@@ -1217,7 +1443,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 72,
              "DocumentIndex": 85,
              "Title": "IOtherDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
@@ -1229,19 +1455,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 71,
              "Title": "OtherDevice.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
              "ViewState": "AgIAAMAAAAAAAAAAAAAQwIEAAAAIAAAAAAAAAA==",
              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
              "WhenOpened": "2024-11-11T03:36:32.34Z"
            },
            {
              "$type": "Document",
              "DocumentIndex": 75,
              "DocumentIndex": 88,
              "Title": "StackerCraneTaskCompletedEventArgs.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
@@ -1253,7 +1467,7 @@
            },
            {
              "$type": "Document",
              "DocumentIndex": 76,
              "DocumentIndex": 89,
              "Title": "QuartzJobCreateDataTabel.cs",
              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
@@ -200,6 +200,38 @@
                    case TypeCode.Char:
                        return plc.Write(address, Convert.ToChar(value));
                    default:
                        if (value is int[])
                        {
                            return plc.Write(address, value as int[]);
                        }
                        else if (value is uint[])
                        {
                            return plc.Write(address, value as uint[]);
                        }
                        else if (value is short[])
                        {
                            return plc.Write(address, value as short[]);
                        }
                        else if (value is ushort[])
                        {
                            return plc.Write(address, value as ushort[]);
                        }
                        else if (value is bool[])
                        {
                            return plc.Write(address, value as bool[]);
                        }
                        else if (value is float[])
                        {
                            return plc.Write(address, value as float[]);
                        }
                        else if (value is double[])
                        {
                            return plc.Write(address, value as double[]);
                        }
                        else if (value is byte[])
                        {
                            return plc.Write(address, value as byte[]);
                        }
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, type.Name, address), CommunicationErrorType.TypeError);
                }
            }
@@ -214,29 +246,54 @@
            }
        }
        private object Read(string address, TypeCode typeCode)
        private object Read(string address, TypeCode typeCode, ushort length = 1)
        {
            try
            {
                switch (typeCode)
                {
                    case TypeCode.Int32:
                        return (int)GetContent(plc.ReadInt32(address), address);
                        if (length > 1)
                            return (int[])GetContent(plc.ReadInt32(address, length), address);
                        else
                            return (int)GetContent(plc.ReadInt32(address), address);
                    case TypeCode.UInt32:
                        return (uint)GetContent(plc.ReadUInt32(address), address);
                        if (length > 1)
                            return (uint[])GetContent(plc.ReadUInt32(address, length), address);
                        else
                            return (uint)GetContent(plc.ReadUInt32(address), address);
                    case TypeCode.Int16:
                        return (short)GetContent(plc.ReadInt16(address), address);
                        if (length > 1)
                            return (short[])GetContent(plc.ReadInt16(address, length), address);
                        else
                            return (short)GetContent(plc.ReadInt16(address), address);
                    case TypeCode.UInt16:
                        return (ushort)GetContent(plc.ReadUInt16(address), address);
                        if (length > 1)
                            return (ushort[])GetContent(plc.ReadUInt16(address, length), address);
                        else
                            return (ushort)GetContent(plc.ReadUInt16(address), address);
                    case TypeCode.Single:
                        return (float)GetContent(plc.ReadFloat(address), address);
                        if (length > 1)
                            return (float[])GetContent(plc.ReadFloat(address, length), address);
                        else
                            return (float)GetContent(plc.ReadFloat(address), address);
                    case TypeCode.Boolean:
                        return (bool)GetContent(plc.ReadBool(address), address);
                        if (length > 1)
                            return (bool[])GetContent(plc.ReadBool(address, length), address);
                        else
                            return (bool)GetContent(plc.ReadBool(address), address);
                    case TypeCode.Byte:
                        if (length > 1)
                            return (byte)GetContent(plc.Read(address, length), address);
                        return (byte)GetContent(plc.ReadByte(address), address);
                    case TypeCode.String:
                        return (string)GetContent(plc.ReadString(address), address);
                        if (length > 1)
                            return (string)GetContent(plc.ReadString(address, length), address);
                        else
                            return (string)GetContent(plc.ReadString(address), address);
                    case TypeCode.Char:
                        if (length > 1)
                            return (char)GetContent(plc.Read(address, length), address);
                        return (char)GetContent(plc.ReadByte(address), address);
                    default:
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, typeCode.ToString(), address), CommunicationErrorType.TypeError);
@@ -348,6 +405,12 @@
            return (T)Read(address, Type.GetTypeCode(type));
        }
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        public override object ReadAsObj(string address, string dataType)
        {
            return Read(address, SiemensDBDataType.GetTypeCode(dataType));
@@ -429,6 +492,11 @@
            return GetResult(Write(address, value), address, value);
        }
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
            StringBuilder stringBuilder = new StringBuilder();
WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
@@ -21,7 +21,7 @@
namespace WIDESEAWCS_Communicator
{
    public abstract class BaseCommunicator: IDisposable
    public abstract class BaseCommunicator : IDisposable
    {
        /// <summary>
        /// 构造函数
@@ -76,6 +76,15 @@
        /// <summary>
        /// 从PLC读取数据。
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="length">读取的长度。</param>
        /// <returns></returns>
        public abstract T[] Read<T>(string address, ushort length);
        /// <summary>
        /// 从PLC读取数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="dataType">数据类型。</param>
        /// <returns>读取到的数据,如果读取失败则可能返回null或抛出异常。</returns>
@@ -92,13 +101,22 @@
        /// <summary>
        /// 向PLC写入数据。  
        /// </summary>
        /// <typeparam name="T">读取数据的类型泛型。</typeparam>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="value">要写入的数据。</param>
        /// <returns>如果写入成功则返回true,否则抛出异常。</returns>
        public abstract bool Write<T>(string address, T value) where T : notnull;
        /// <summary>
        /// 向PLC写入数据。
        /// </summary>
        /// <typeparam name="T">写入数据的类型泛型。</typeparam>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
        /// <param name="values">要写入的数据。</param>
        /// <returns></returns>
        public abstract bool Write<T>(string address, T[] values);
        /// <summary>
        /// 向PLC写入数据。
        /// </summary>
        /// <param name="address">源地址,具体格式取决于使用的工业协议。</param>
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
@@ -183,6 +183,38 @@
                    case TypeCode.Char:
                        return plc.Write(address, Convert.ToChar(value));
                    default:
                        if (value is int[])
                        {
                            return plc.Write(address, value as int[]);
                        }
                        else if (value is uint[])
                        {
                            return plc.Write(address, value as uint[]);
                        }
                        else if (value is short[])
                        {
                            return plc.Write(address, value as short[]);
                        }
                        else if (value is ushort[])
                        {
                            return plc.Write(address, value as ushort[]);
                        }
                        else if (value is bool[])
                        {
                            return plc.Write(address, value as bool[]);
                        }
                        else if (value is float[])
                        {
                            return plc.Write(address, value as float[]);
                        }
                        else if (value is double[])
                        {
                            return plc.Write(address, value as double[]);
                        }
                        else if (value is byte[])
                        {
                            return plc.Write(address, value as byte[]);
                        }
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, type.Name, address), CommunicationErrorType.TypeError);
                }
            }
@@ -197,29 +229,51 @@
            }
        }
        private object Read(string address, TypeCode typeCode)
        private object Read(string address, TypeCode typeCode, ushort length = 1)
        {
            try
            {
                switch (typeCode)
                {
                    case TypeCode.Int32:
                        return (int)GetContent(plc.ReadInt32(address), address);
                        if (length > 1)
                            return (int[])GetContent(plc.ReadInt32(address, length), address);
                        else
                            return (int)GetContent(plc.ReadInt32(address), address);
                    case TypeCode.UInt32:
                        return (uint)GetContent(plc.ReadUInt32(address), address);
                        if (length > 1)
                            return (uint[])GetContent(plc.ReadUInt32(address, length), address);
                        else
                            return (uint)GetContent(plc.ReadUInt32(address), address);
                    case TypeCode.Int16:
                        return (short)GetContent(plc.ReadInt16(address), address);
                        if (length > 1)
                            return (short[])GetContent(plc.ReadInt16(address, length), address);
                        else
                            return (short)GetContent(plc.ReadInt16(address), address);
                    case TypeCode.UInt16:
                        return (ushort)GetContent(plc.ReadUInt16(address), address);
                        if (length > 1)
                            return (ushort[])GetContent(plc.ReadUInt16(address, length), address);
                        else
                            return (ushort)GetContent(plc.ReadUInt16(address), address);
                    case TypeCode.Single:
                        return (float)GetContent(plc.ReadFloat(address), address);
                        if (length > 1)
                            return (float[])GetContent(plc.ReadFloat(address, length), address);
                        else
                            return (float)GetContent(plc.ReadFloat(address), address);
                    case TypeCode.Boolean:
                        return (bool)GetContent(plc.ReadBool(address), address);
                        if (length > 1)
                            return (bool[])GetContent(plc.ReadBool(address, length), address);
                        else
                            return (bool)GetContent(plc.ReadBool(address), address);
                    case TypeCode.Byte:
                        if (length > 1)
                            return (byte)GetContent(plc.Read(address, length), address);
                        return (byte)GetContent(plc.ReadByte(address), address);
                    case TypeCode.String:
                        return (string)GetContent(plc.ReadString(address, 1), address);
                        return (string)GetContent(plc.ReadString(address, length), address);
                    case TypeCode.Char:
                        if (length > 1)
                            return (char)GetContent(plc.Read(address, length), address);
                        return (char)GetContent(plc.ReadByte(address), address);
                    default:
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, typeCode.ToString(), address), CommunicationErrorType.TypeError);
@@ -278,7 +332,7 @@
                Ping();
                return operateResult.IsSuccess;
            }
            catch(Exception ex)
            catch (Exception ex)
            {
                LogNet.WriteException(Name, string.Format(CommunicationExceptionMessage.ConnectFaild, _ipAddress, _port, ex.Message), ex);
                //连接异常时抛出自定义异常类
@@ -325,6 +379,11 @@
        {
            Type type = typeof(T);
            return (T)Read(address, Type.GetTypeCode(type));
        }
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        public override object ReadAsObj(string address, string dataType)
@@ -409,6 +468,11 @@
            return GetResult(Write(address, value), address, value);
        }
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
@@ -183,6 +183,38 @@
                    case TypeCode.Char:
                        return plc.Write(address, Convert.ToChar(value));
                    default:
                        if (value is int[])
                        {
                            return plc.Write(address, value as int[]);
                        }
                        else if (value is uint[])
                        {
                            return plc.Write(address, value as uint[]);
                        }
                        else if (value is short[])
                        {
                            return plc.Write(address, value as short[]);
                        }
                        else if (value is ushort[])
                        {
                            return plc.Write(address, value as ushort[]);
                        }
                        else if (value is bool[])
                        {
                            return plc.Write(address, value as bool[]);
                        }
                        else if (value is float[])
                        {
                            return plc.Write(address, value as float[]);
                        }
                        else if (value is double[])
                        {
                            return plc.Write(address, value as double[]);
                        }
                        else if (value is byte[])
                        {
                            return plc.Write(address, value as byte[]);
                        }
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, type.Name, address), CommunicationErrorType.TypeError);
                }
            }
@@ -197,30 +229,48 @@
            }
        }
        private object Read(string address, TypeCode typeCode)
        private object Read(string address, TypeCode typeCode, ushort length = 1)
        {
            try
            {
                switch (typeCode)
                {
                    case TypeCode.Int32:
                        return (int)GetContent(plc.ReadInt32(address), address);
                        if (length > 1)
                            return (int[])GetContent(plc.ReadInt32(address, length), address);
                        else
                            return (int)GetContent(plc.ReadInt32(address), address);
                    case TypeCode.UInt32:
                        return (uint)GetContent(plc.ReadUInt32(address), address);
                        if (length > 1)
                            return (uint[])GetContent(plc.ReadUInt32(address, length), address);
                        else
                            return (uint)GetContent(plc.ReadUInt32(address), address);
                    case TypeCode.Int16:
                        return (short)GetContent(plc.ReadInt16(address), address);
                        if (length > 1)
                            return (short[])GetContent(plc.ReadInt16(address, length), address);
                        else
                            return (short)GetContent(plc.ReadInt16(address), address);
                    case TypeCode.UInt16:
                        return (ushort)GetContent(plc.ReadUInt16(address), address);
                        if (length > 1)
                            return (ushort[])GetContent(plc.ReadUInt16(address, length), address);
                        else
                            return (ushort)GetContent(plc.ReadUInt16(address), address);
                    case TypeCode.Single:
                        return (float)GetContent(plc.ReadFloat(address), address);
                        if (length > 1)
                            return (float[])GetContent(plc.ReadFloat(address, length), address);
                        else
                            return (float)GetContent(plc.ReadFloat(address), address);
                    case TypeCode.Boolean:
                        return (bool)GetContent(plc.ReadBool(address), address);
                        if (length > 1)
                            return (bool[])GetContent(plc.ReadBool(address, length), address);
                        else
                            return (bool)GetContent(plc.ReadBool(address), address);
                    case TypeCode.Byte:
                        return (byte)GetContent(plc.Read(address, 1), address);
                        return (byte[])GetContent(plc.Read(address, length), address);
                    case TypeCode.String:
                        return (string)GetContent(plc.ReadString(address, 1), address);
                        return (string)GetContent(plc.ReadString(address, length), address);
                    case TypeCode.Char:
                        return (char)GetContent(plc.Read(address, 1), address);
                        return (char[])GetContent(plc.Read(address, length), address);
                    default:
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, typeCode.ToString(), address), CommunicationErrorType.TypeError);
                }
@@ -324,6 +374,11 @@
            Type type = typeof(T);
            return (T)Read(address, Type.GetTypeCode(type));
        }
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        public override object ReadAsObj(string address, string dataType)
        {
@@ -406,6 +461,10 @@
        {
            return GetResult(Write(address, value), address, value);
        }
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
@@ -4,6 +4,7 @@
using HslCommunication.Profinet.Omron;
using HslCommunication.Profinet.Siemens;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -200,6 +201,38 @@
                    case TypeCode.Char:
                        return plc.Write(address, Convert.ToChar(value));
                    default:
                        if (value is int[])
                        {
                            return plc.Write(address, value as int[]);
                        }
                        else if (value is uint[])
                        {
                            return plc.Write(address, value as uint[]);
                        }
                        else if (value is short[])
                        {
                            return plc.Write(address, value as short[]);
                        }
                        else if (value is ushort[])
                        {
                            return plc.Write(address, value as ushort[]);
                        }
                        else if (value is bool[])
                        {
                            return plc.Write(address, value as bool[]);
                        }
                        else if (value is float[])
                        {
                            return plc.Write(address, value as float[]);
                        }
                        else if (value is double[])
                        {
                            return plc.Write(address, value as double[]);
                        }
                        else if (value is byte[])
                        {
                            return plc.Write(address, value as byte[]);
                        }
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, type.Name, address), CommunicationErrorType.TypeError);
                }
            }
@@ -214,29 +247,47 @@
            }
        }
        private object Read(string address, TypeCode typeCode)
        private object Read(string address, TypeCode typeCode, ushort length = 1)
        {
            try
            {
                switch (typeCode)
                {
                    case TypeCode.Int32:
                        if (length > 1)
                            return (int)GetContent(plc.ReadInt32(address, length), address);
                        return (int)GetContent(plc.ReadInt32(address), address);
                    case TypeCode.UInt32:
                        if (length > 1)
                            return (uint)GetContent(plc.ReadUInt32(address, length), address);
                        return (uint)GetContent(plc.ReadUInt32(address), address);
                    case TypeCode.Int16:
                        if (length > 1)
                            return (short)GetContent(plc.ReadInt16(address, length), address);
                        return (short)GetContent(plc.ReadInt16(address), address);
                    case TypeCode.UInt16:
                        if (length > 1)
                            return (ushort)GetContent(plc.ReadUInt16(address, length), address);
                        return (ushort)GetContent(plc.ReadUInt16(address), address);
                    case TypeCode.Single:
                        if (length > 1)
                            return (float)GetContent(plc.ReadFloat(address, length), address);
                        return (float)GetContent(plc.ReadFloat(address), address);
                    case TypeCode.Boolean:
                        if (length > 1)
                            return (bool)GetContent(plc.ReadBool(address, length), address);
                        return (bool)GetContent(plc.ReadBool(address), address);
                    case TypeCode.Byte:
                        if (length > 1)
                            return (byte)GetContent(plc.Read(address, length), address);
                        return (byte)GetContent(plc.ReadByte(address), address);
                    case TypeCode.String:
                        if (length > 1)
                            return (string)GetContent(plc.ReadString(address, length), address);
                        return (string)GetContent(plc.ReadString(address), address);
                    case TypeCode.Char:
                        if (length > 1)
                            return (char)GetContent(plc.Read(address, length), address);
                        return (char)GetContent(plc.ReadByte(address), address);
                    default:
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, typeCode.ToString(), address), CommunicationErrorType.TypeError);
@@ -347,6 +398,12 @@
            return (T)Read(address, Type.GetTypeCode(type));
        }
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        public override object ReadAsObj(string address, string dataType)
        {
            return Read(address, SiemensDBDataType.GetTypeCode(dataType));
@@ -428,6 +485,11 @@
            return GetResult(Write(address, value), address, value);
        }
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        public override bool WriteCustomer<T>(string address, [NotNull] T value)
        {
            StringBuilder stringBuilder = new StringBuilder();
WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
@@ -20,6 +20,7 @@
using HslCommunication.LogNet;
using HslCommunication.Profinet.Siemens;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
@@ -147,6 +148,10 @@
        /// <exception cref="CommunicationException"></exception>
        private bool GetResult<T>(OperateResult operateResult, string address, T value) where T : notnull
        {
            if (value is Array)
            {
                return operateResult.IsSuccess;
            }
            StringBuilder stringBuilder = new StringBuilder();
            try
            {
@@ -222,6 +227,38 @@
                    case TypeCode.Char:
                        return plc.Write(address, Convert.ToChar(value));
                    default:
                        if (value is int[])
                        {
                            return plc.Write(address, value as int[]);
                        }
                        else if (value is uint[])
                        {
                            return plc.Write(address, value as uint[]);
                        }
                        else if (value is short[])
                        {
                            return plc.Write(address, value as short[]);
                        }
                        else if (value is ushort[])
                        {
                            return plc.Write(address, value as ushort[]);
                        }
                        else if (value is bool[])
                        {
                            return plc.Write(address, value as bool[]);
                        }
                        else if (value is float[])
                        {
                            return plc.Write(address, value as float[]);
                        }
                        else if (value is double[])
                        {
                            return plc.Write(address, value as double[]);
                        }
                        else if (value is byte[])
                        {
                            return plc.Write(address, value as byte[]);
                        }
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, type.Name, address), CommunicationErrorType.TypeError);
                }
            }
@@ -236,29 +273,54 @@
            }
        }
        private object Read(string address, TypeCode typeCode)
        private object Read(string address, TypeCode typeCode, ushort length = 1)
        {
            try
            {
                switch (typeCode)
                {
                    case TypeCode.Int32:
                        return (int)GetContent(plc.ReadInt32(address), address);
                        if (length > 1)
                            return (int[])GetContent(plc.ReadInt32(address, length), address);
                        else
                            return (int)GetContent(plc.ReadInt32(address), address);
                    case TypeCode.UInt32:
                        return (uint)GetContent(plc.ReadUInt32(address), address);
                        if (length > 1)
                            return (uint[])GetContent(plc.ReadUInt32(address, length), address);
                        else
                            return (uint)GetContent(plc.ReadUInt32(address), address);
                    case TypeCode.Int16:
                        return (short)GetContent(plc.ReadInt16(address), address);
                        if (length > 1)
                            return (short[])GetContent(plc.ReadInt16(address, length), address);
                        else
                            return (short)GetContent(plc.ReadInt16(address), address);
                    case TypeCode.UInt16:
                        return (ushort)GetContent(plc.ReadUInt16(address), address);
                        if (length > 1)
                            return (ushort[])GetContent(plc.ReadUInt16(address, length), address);
                        else
                            return (ushort)GetContent(plc.ReadUInt16(address), address);
                    case TypeCode.Single:
                        return (float)GetContent(plc.ReadFloat(address), address);
                        if (length > 1)
                            return (float[])GetContent(plc.ReadFloat(address, length), address);
                        else
                            return (float)GetContent(plc.ReadFloat(address), address);
                    case TypeCode.Boolean:
                        return (bool)GetContent(plc.ReadBool(address), address);
                        if (length > 1)
                            return (bool[])GetContent(plc.ReadBool(address, length), address);
                        else
                            return (bool)GetContent(plc.ReadBool(address), address);
                    case TypeCode.Byte:
                        if (length > 1)
                            return (byte)GetContent(plc.Read(address, length), address);
                        return (byte)GetContent(plc.ReadByte(address), address);
                    case TypeCode.String:
                        return (string)GetContent(plc.ReadString(address), address);
                        if (length > 1)
                            return (string)GetContent(plc.ReadString(address, length), address);
                        else
                            return (string)GetContent(plc.ReadString(address), address);
                    case TypeCode.Char:
                        if (length > 1)
                            return (char)GetContent(plc.Read(address, length), address);
                        return (char)GetContent(plc.ReadByte(address), address);
                    default:
                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, typeCode.ToString(), address), CommunicationErrorType.TypeError);
@@ -386,6 +448,12 @@
            return (T)Read(address, Type.GetTypeCode(type));
        }
        public override T[] Read<T>(string address, ushort length)
        {
            Type type = typeof(T);
            return (T[])Read(address, Type.GetTypeCode(type), length);
        }
        /// <summary>
        /// 从PLC读取数据返回object。
        /// </summary>
@@ -442,6 +510,12 @@
            return GetResult(Write(address, value), address, value);
        }
        public override bool Write<T>(string address, T[] values)
        {
            return GetResult(Write(address, values), address, values);
        }
        /// <summary>
        /// 向PLC写入数据。
        /// </summary>
WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
@@ -4,8 +4,8 @@
        <TargetFramework>net6.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <Version>2.2.1</Version>
        <Description>新增罗克韦尔(AB)EtherNet/IP(CIP)通讯(WriteCustomer、ReadCustomer方法除西门子PLC之外仍不可用,使用时注意)</Description>
        <Version>2.2.2</Version>
        <Description>新增同类型数据读取/写入指定长度方法</Description>
    </PropertyGroup>
    <ItemGroup>
WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs
@@ -22,10 +22,6 @@
using WIDESEAWCS_Core.Caches;
using WIDESEAWCS_QuartzJob.DeviceEnum;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_Common.CommonEnum;
using WIDESEAWCS_Common.LocationEnum;
using WIDESEAWCS_Common.OrderEnum;
using WIDESEAWCS_Common.StockEnum;
namespace WIDESEAWCS_WCSServer.Controllers.System
{
@@ -354,216 +350,6 @@
                            foreach (var item in enums)
                            {
                                FieldInfo? fieldInfo = typeof(RouterInOutType).GetField(((RouterInOutType)item).ToString());
                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                if (description != null)
                                {
                                    data.Add(new { key = item.ToString(), value = description.Description });
                                }
                                else
                                {
                                    data.Add(new { key = item.ToString(), value = item.ToString() });
                                }
                                index++;
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "outboundStatusEnum":
                        {
                            List<object> data = new List<object>();
                            Type type = typeof(OutboundStatusEnum);
                            List<int> enums = Enum.GetValues(typeof(OutboundStatusEnum)).Cast<int>().ToList();
                            int index = 0;
                            foreach (var item in enums)
                            {
                                FieldInfo? fieldInfo = typeof(OutboundStatusEnum).GetField(((OutboundStatusEnum)item).ToString());
                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                if (description != null)
                                {
                                    data.Add(new { key = item.ToString(), value = description.Description });
                                }
                                else
                                {
                                    data.Add(new { key = item.ToString(), value = item.ToString() });
                                }
                                index++;
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "outOrderType":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(OutOrderTypeEnum);
                                List<int> enums = Enum.GetValues(typeof(OutOrderTypeEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(OutOrderTypeEnum).GetField(((OutOrderTypeEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "orderDetailStatusEnum":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(OrderDetailStatusEnum);
                                List<int> enums = Enum.GetValues(typeof(OrderDetailStatusEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(OrderDetailStatusEnum).GetField(((OrderDetailStatusEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "enableEnum":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(EnableEnum);
                                List<int> enums = Enum.GetValues(typeof(EnableEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(EnableEnum).GetField(((EnableEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "enableStatusEnum":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(EnableStatusEnum);
                                List<int> enums = Enum.GetValues(typeof(EnableStatusEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(EnableStatusEnum).GetField(((EnableStatusEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "locationStatusEnum":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(LocationStatusEnum);
                                List<int> enums = Enum.GetValues(typeof(LocationStatusEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(LocationStatusEnum).GetField(((LocationStatusEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "locationTypeEnum":
                        {
                            List<object> data = new List<object>();
                            {
                                Type type = typeof(LocationTypeEnum);
                                List<int> enums = Enum.GetValues(typeof(LocationTypeEnum)).Cast<int>().ToList();
                                int index = 0;
                                foreach (var item in enums)
                                {
                                    FieldInfo? fieldInfo = typeof(LocationTypeEnum).GetField(((LocationTypeEnum)item).ToString());
                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                    if (description != null)
                                    {
                                        data.Add(new { key = item.ToString(), value = description.Description });
                                    }
                                    else
                                    {
                                        data.Add(new { key = item.ToString(), value = item.ToString() });
                                    }
                                    index++;
                                }
                            }
                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                        }
                        break;
                    case "stockStatusEmun":
                        {
                            List<object> data = new List<object>();
                            Type type = typeof(StockStatusEmun);
                            List<int> enums = Enum.GetValues(typeof(StockStatusEmun)).Cast<int>().ToList();
                            int index = 0;
                            foreach (var item in enums)
                            {
                                FieldInfo? fieldInfo = typeof(StockStatusEmun).GetField(((StockStatusEmun)item).ToString());
                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
                                if (description != null)
                                {
WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -12,7 +12,7 @@
  "MainDB": "DB_WIDESEA", //当前项目的主库,所对应的连接字符串的Enabled必须为true
  //连接字符串
  //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWCS_GuoDian;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  //跨域
  "Cors": {
    "PolicyName": "CorsIpAccess", //策略名称
WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -36,7 +36,7 @@
namespace WIDESEAWCS_Tasks
{
    [DisallowConcurrentExecution]
    public class CommonConveyorLineJob : JobBase, IJob
    public class CommonConveyorLineJob : JobBase, IJob, IDisposable
    {
        private readonly ITaskService _taskService;
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
@@ -59,6 +59,8 @@
                CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
                if (conveyorLine != null)
                {
                    short[] values = conveyorLine.Communicator.Read<short>("DB2.0", 20);
                    //bool result = conveyorLine.Communicator.Write("DB1.0", "AAABBB");
                    //string testVal = conveyorLine.Communicator.Read<string>("DB1.0");
@@ -221,5 +223,10 @@
                Console.Out.WriteLine(content.Serialize());
            }
        }
        public void Dispose()
        {
            GC.SuppressFinalize(this);
        }
    }
}
WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -44,7 +44,7 @@
                if (commonStackerCrane != null)
                {
                    //short a = commonStackerCrane.Communicator.Read<short>("DB2.2.0");
                    Console.Out.WriteLine(DateTime.Now + ":" + commonStackerCrane.DeviceName);
                    Console.Out.WriteLine(DateTime.Now + ":" + ThreadPool.ThreadCount);
                    if (!commonStackerCrane.IsEventSubscribed)
                    {
                        commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订阅任务完成事件
@@ -288,5 +288,10 @@
            }
            return stackerCraneTaskCommand;
        }
        public void Dispose()
        {
            GC.SuppressFinalize(this);
        }
    }
}