From 2f75b4c0a67ccc3a443e7cc4f2f0f909defd9a92 Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期五, 01 十一月 2024 09:49:23 +0800 Subject: [PATCH] 版本更新 --- WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs | 48 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs | 446 +++++++++++++++ WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/aaeb68d7-aa3b-415c-b4e2-315ac5c186d7.vsidx | 0 WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs | 2 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a3124894-1503-4e13-963c-18af5a16a2e6.vsidx | 0 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json | 760 ++++++++++++++++++------- WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs | 40 + WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin | 0 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs | 20 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 | 0 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs | 194 ++++++ WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs | 76 -- /dev/null | 0 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs | 55 + WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 | 0 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs | 15 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7701956d-90bd-47ab-b9b9-97acbc7d7918.vsidx | 0 WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin | 0 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs | 9 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs | 16 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs | 30 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs | 19 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs | 2 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ac605005-c203-4605-a5ef-2f13a90992a7.vsidx | 0 24 files changed, 1,307 insertions(+), 425 deletions(-) diff --git a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin index b7d5163..4338499 100644 --- a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin +++ b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin Binary files differ diff --git a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin index 20f038e..5706bf3 100644 --- a/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin +++ b/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 index 5452095..3e9c3c5 100644 --- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 +++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7701956d-90bd-47ab-b9b9-97acbc7d7918.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7701956d-90bd-47ab-b9b9-97acbc7d7918.vsidx new file mode 100644 index 0000000..04112bd --- /dev/null +++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/7701956d-90bd-47ab-b9b9-97acbc7d7918.vsidx Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/87d5782c-f2d2-4f5a-bfa4-a23fd505a64b.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/87d5782c-f2d2-4f5a-bfa4-a23fd505a64b.vsidx deleted file mode 100644 index 6a62868..0000000 --- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/87d5782c-f2d2-4f5a-bfa4-a23fd505a64b.vsidx +++ /dev/null Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a3124894-1503-4e13-963c-18af5a16a2e6.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a3124894-1503-4e13-963c-18af5a16a2e6.vsidx new file mode 100644 index 0000000..a46a5e2 --- /dev/null +++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/a3124894-1503-4e13-963c-18af5a16a2e6.vsidx Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/aaeb68d7-aa3b-415c-b4e2-315ac5c186d7.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/aaeb68d7-aa3b-415c-b4e2-315ac5c186d7.vsidx new file mode 100644 index 0000000..da9f908 --- /dev/null +++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/aaeb68d7-aa3b-415c-b4e2-315ac5c186d7.vsidx Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ac605005-c203-4605-a5ef-2f13a90992a7.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ac605005-c203-4605-a5ef-2f13a90992a7.vsidx new file mode 100644 index 0000000..11178bd --- /dev/null +++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ac605005-c203-4605-a5ef-2f13a90992a7.vsidx Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 index d20742c..8cf39ca 100644 --- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 +++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 Binary files differ diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json index 74ee4db..c6a9951 100644 --- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json +++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json @@ -3,24 +3,128 @@ "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\", "Documents": [ { - "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", - "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:{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:{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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\attributes\\sequenceattirbute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\sequenceattirbute.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}", + "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\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceinfoservice.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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\shuttlecar.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\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\istackercrane.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\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.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}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\iconveyorline.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}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\iotherdevice.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\\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\\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\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\jobsetup.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\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.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:{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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}", + "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}" + }, + { + "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_dto\\taskinfo\\wmstaskdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\taskinfo\\wmstaskdto.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\\attributes\\modelvalidateattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\modelvalidateattribute.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\\attributes\\cacheattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\cacheattribute.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\\attributes\\sequenceattirbute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\sequenceattirbute.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:{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:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.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\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\sqlsugaraop.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_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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.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\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\devicecommand.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\\helper\\appsettings.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", @@ -35,20 +139,12 @@ "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\md5helper.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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicebase.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\\helper\\objectextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\objectextension.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:{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}", @@ -67,14 +163,6 @@ "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\icacheservice.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\\attributes\\cacheattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\cacheattribute.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\\attributes\\modelvalidateattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\modelvalidateattribute.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\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, @@ -91,10 +179,6 @@ "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\apidoc\\bytehelper.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:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_communicator\\custommodel\\siemenscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\siemenscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" }, @@ -105,14 +189,6 @@ { "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\wideseawcs_communicator\\custommodel\\modbuscustommodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\custommodel\\modbuscustommodel.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\\conveyorlinetaskcommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinetaskcommand.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\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", - "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\devicecommand.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\\devicebase\\datalengthattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", @@ -130,8 +206,86 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 4, + "SelectedChildIndex": 18, "Children": [ + { + "$type": "Document", + "DocumentIndex": 5, + "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": "AQIAAAAAAAAAAAAAAAAAAGMCAAAIAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-01T01:23:20.224Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "Title": "IStackerCrane.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs", + "ViewState": "AQIAABIAAAAAAAAAAAAAAAAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-01T01:07:53.905Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "IConveyorLine.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs", + "ViewState": "AQIAABgAAAAAAAAAAAAAADcAAACCAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-01T01:03:35.371Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "SpeStackerCrane.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs", + "ViewState": "AQIAAGcAAAAAAAAAAAAqwH8AAAB+AAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-01T01:29:42.105Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "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": "AQIAAB0AAAAAAAAAAAAqwIIAAAAaAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-01T00:54:47.347Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "IOtherDevice.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAsAAAAFAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-01T00:53:40.762Z", + "EditorCaption": "" + }, { "$type": "Bookmark", "Name": "ST:12:0:{2456bd12-ecf7-4988-a4a6-67d49173f565}" @@ -150,131 +304,46 @@ }, { "$type": "Document", - "DocumentIndex": 0, - "Title": "WIDESEAWCS_Core", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj", - "RelativeToolTip": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj", - "ViewState": "AQIAAAAAAAAAAAAAAAAAAAcAAAAbAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", - "WhenOpened": "2024-10-31T06:32:58.295Z", + "DocumentIndex": 6, + "Title": "ShuttleCar.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAswC8AAAAIAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-11-01T00:43:46.189Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 1, - "Title": "DBSeed.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Seed\\DBSeed.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs", - "RelativeToolTip": "WIDESEAWCS_Core\\Seed\\DBSeed.cs", - "ViewState": "AQIAAGsAAAAAAAAAAAAmwHkAAAA0AAAA", + "DocumentIndex": 8, + "Title": "IShuttleCar.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs", + "ViewState": "AQIAAAEAAAAAAAAAAAAgwDIAAACCAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T06:21:27.437Z", - "EditorCaption": "" - }, - { - "$type": "Document", - "DocumentIndex": 2, - "Title": "SequenceAttirbute.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", - "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAABwAAAAFAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-31T06:20:11.238Z", + "WhenOpened": "2024-11-01T00:43:44.395Z", "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 3, - "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": "AQIAAAAAAAAAAAAAAAAAAC8AAAAjAAAA", + "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": "AQIAAAAAAAAAAAAAAAAAAE4BAAAIAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-30T03:12:41.805Z", + "WhenOpened": "2024-10-31T11:01:23.531Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 7, - "Title": "MD5Helper.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs", - "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAAGMAAAAFAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:32:56.232Z" - }, - { - "$type": "Document", - "DocumentIndex": 8, - "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": "AQIAAFoAAAAAAAAAAAAAAHYAAAAfAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:30:53.392Z" - }, - { - "$type": "Document", - "DocumentIndex": 10, - "Title": "ObjectExtension.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", - "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAABgAAAAMAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:27:01.38Z" - }, - { - "$type": "Document", - "DocumentIndex": 9, - "Title": "ServiceBase.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", - "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", - "ViewState": "AQIAAPEAAAAAAAAAAAAqwAQBAAAfAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:26:42.953Z" - }, - { - "$type": "Document", - "DocumentIndex": 12, - "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": "AQIAAB4AAAAAAAAAAAAewCoAAAAXAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:02:40.902Z" - }, - { - "$type": "Document", - "DocumentIndex": 5, - "Title": "AppSettings.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\AppSettings.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs", - "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\AppSettings.cs", - "ViewState": "AQIAADsAAAAAAAAAAAAYwAAAAAAAAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:35:41.197Z" - }, - { - "$type": "Document", - "DocumentIndex": 4, + "DocumentIndex": 2, "Title": "DeviceInfoService.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs", "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs", @@ -282,35 +351,200 @@ "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs", "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-30T03:12:38.009Z" + "WhenOpened": "2024-10-30T03:12:38.009Z", + "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 11, + "DocumentIndex": 1, + "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": "AQIAACkAAAAAAAAAAAAuwEMAAAAYAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-30T03:12:41.805Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, "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": "AQIAAC0AAAAAAAAAAADgvysAAABBAAAA", + "ViewState": "AQIAAGQAAAAAAAAAAAAAAG4AAAAmAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:01:59.572Z" + "WhenOpened": "2024-10-29T07:01:59.572Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 13, + "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": "AQIAAAAAAAAAAAAAAAAAACMAAAA5AAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:23:09.39Z", + "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 14, - "Title": "Sys_UserService.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", - "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", - "ViewState": "AQIAACoAAAAAAAAAAAArwEMAAAAXAAAA", + "Title": "JobSetup.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAACcAAABNAAAA", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T07:01:10.75Z" + "WhenOpened": "2024-10-31T11:23:38.365Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 15, + "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": "AQIAACsAAAAAAAAAAAAswDkAAAAMAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:28:49.243Z", + "EditorCaption": "" }, { "$type": "Document", "DocumentIndex": 16, + "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": "AQIAAB4AAAAAAAAAAAA+wCwAAABTAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:07:30.949Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 12, + "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": "AQIAAHYAAAAAAAAAAAAAAJEAAAAdAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:16:32.807Z", + "EditorCaption": "" + }, + { + "$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": "AQIAADIAAAAAAAAAAADwvwABAABZAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T02:59:00.959Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 25, + "Title": "DBSeed.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Seed\\DBSeed.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\Seed\\DBSeed.cs", + "ViewState": "AQIAAE0AAAAAAAAAAAAmwFMAAABAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T06:21:27.437Z" + }, + { + "$type": "Document", + "DocumentIndex": 27, + "Title": "SqlSugarAop.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs", + "ViewState": "AQIAABQAAAAAAAAAAAAAwAAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:17:24.097Z" + }, + { + "$type": "Document", + "DocumentIndex": 26, + "Title": "Dt_Task.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", + "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs", + "ViewState": "AQIAACMAAAAAAAAAAAAuwCwAAABDAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:17:49.628Z" + }, + { + "$type": "Document", + "DocumentIndex": 19, + "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": "AQIAAAAAAAAAAAAAAADwvxsAAAASAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|", + "WhenOpened": "2024-10-31T11:29:47.681Z" + }, + { + "$type": "Document", + "DocumentIndex": 20, + "Title": "WMSTaskDTO.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\TaskInfo\\WMSTaskDTO.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\TaskInfo\\WMSTaskDTO.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\TaskInfo\\WMSTaskDTO.cs", + "RelativeToolTip": "WIDESEAWCS_DTO\\TaskInfo\\WMSTaskDTO.cs", + "ViewState": "AQIAABcAAAAAAAAAAAA0wAAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:26:44.217Z" + }, + { + "$type": "Document", + "DocumentIndex": 18, + "Title": "JobBase.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\JobBase.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\JobBase.cs", + "ViewState": "AQIAADgAAAAAAAAAAAAQwFEAAAAwAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:28:40.732Z" + }, + { + "$type": "Document", + "DocumentIndex": 23, + "Title": "SequenceAttirbute.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\SequenceAttirbute.cs", + "ViewState": "AQIAAAMAAAAAAAAAAAAAABcAAABAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T06:20:11.238Z" + }, + { + "$type": "Document", + "DocumentIndex": 22, "Title": "CacheAttribute.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs", @@ -322,7 +556,139 @@ }, { "$type": "Document", - "DocumentIndex": 6, + "DocumentIndex": 21, + "Title": "ModelValidateAttribute.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", + "ViewState": "AQIAAAMAAAAAAAAAAAAAAC8AAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T05:49:32.594Z" + }, + { + "$type": "Document", + "DocumentIndex": 28, + "Title": "Dt_DeviceProtocol.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs", + "ViewState": "AQIAAE4AAAAAAAAAAAAYwF0AAAAHAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-31T11:10:25.526Z" + }, + { + "$type": "Document", + "DocumentIndex": 31, + "Title": "AppSettings.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\AppSettings.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\AppSettings.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\AppSettings.cs", + "ViewState": "AQIAADsAAAAAAAAAAAAYwAAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T07:35:41.197Z" + }, + { + "$type": "Document", + "DocumentIndex": 36, + "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": "AQIAAB4AAAAAAAAAAAAewCoAAAAXAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T07:02:40.902Z" + }, + { + "$type": "Document", + "DocumentIndex": 24, + "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": "AQIAACcAAAAAAAAAAAAAAEEAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T07:30:53.392Z" + }, + { + "$type": "Document", + "DocumentIndex": 34, + "Title": "ServiceBase.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs", + "ViewState": "AQIAAPEAAAAAAAAAAAAqwAQBAAAfAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T07:26:42.953Z" + }, + { + "$type": "Document", + "DocumentIndex": 35, + "Title": "ObjectExtension.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\ObjectExtension.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAABgAAAAMAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T07:27:01.38Z" + }, + { + "$type": "Document", + "DocumentIndex": 38, + "Title": "Sys_UserService.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs", + "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs", + "ViewState": "AQIAACoAAAAAAAAAAAArwEMAAAAXAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T07:01:10.75Z" + }, + { + "$type": "Document", + "DocumentIndex": 30, + "Title": "DeviceCommand.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", + "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", + "ViewState": "AQIAAC0AAAAAAAAAAAAowEgAAABPAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T03:05:32.353Z" + }, + { + "$type": "Document", + "DocumentIndex": 29, + "Title": "ConveyorLineTaskCommand.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", + "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", + "ViewState": "AQIAABEAAAAAAAAAAAAuwCEAAAAZAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T03:05:29.571Z" + }, + { + "$type": "Document", + "DocumentIndex": 33, + "Title": "MD5Helper.cs", + "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs", + "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs", + "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs", + "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAGMAAAAFAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2024-10-29T07:32:56.232Z" + }, + { + "$type": "Document", + "DocumentIndex": 32, "Title": "CacheAOP.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\CacheAOP.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\CacheAOP.cs", @@ -334,7 +700,7 @@ }, { "$type": "Document", - "DocumentIndex": 15, + "DocumentIndex": 39, "Title": "ICacheService.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\ICacheService.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\ICacheService.cs", @@ -346,7 +712,7 @@ }, { "$type": "Document", - "DocumentIndex": 13, + "DocumentIndex": 37, "Title": "MemoryCacheService.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs", @@ -358,7 +724,7 @@ }, { "$type": "Document", - "DocumentIndex": 19, + "DocumentIndex": 41, "Title": "ModelValidate.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\ModelValidate.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Utilities\\ModelValidate.cs", @@ -370,19 +736,7 @@ }, { "$type": "Document", - "DocumentIndex": 17, - "Title": "ModelValidateAttribute.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", - "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\ModelValidateAttribute.cs", - "ViewState": "AQIAAAIAAAAAAAAAAAAiwBMAAAA5AAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T05:49:32.594Z" - }, - { - "$type": "Document", - "DocumentIndex": 20, + "DocumentIndex": 42, "Title": "HtmlHelper.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\ApiDoc\\HtmlHelper.cs", @@ -394,7 +748,7 @@ }, { "$type": "Document", - "DocumentIndex": 21, + "DocumentIndex": 43, "Title": "ByteHelper.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\ApiDoc\\ByteHelper.cs", @@ -406,7 +760,7 @@ }, { "$type": "Document", - "DocumentIndex": 18, + "DocumentIndex": 40, "Title": "LogAOP.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\LogAOP.cs", @@ -418,7 +772,7 @@ }, { "$type": "Document", - "DocumentIndex": 28, + "DocumentIndex": 47, "Title": "DataLengthAttribute.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs", "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs", @@ -430,31 +784,7 @@ }, { "$type": "Document", - "DocumentIndex": 27, - "Title": "DeviceCommand.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", - "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs", - "ViewState": "AQIAAK4AAAAAAAAAAAAYwPcAAAAaAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T03:05:32.353Z" - }, - { - "$type": "Document", - "DocumentIndex": 26, - "Title": "ConveyorLineTaskCommand.cs", - "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", - "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", - "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", - "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineTaskCommand.cs", - "ViewState": "AQIAAAAAAAAAAAAAAAAAABoAAAA4AAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T03:05:29.571Z" - }, - { - "$type": "Document", - "DocumentIndex": 25, + "DocumentIndex": 46, "Title": "ModbusCustomModel.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\ModbusCustomModel.cs", @@ -466,7 +796,7 @@ }, { "$type": "Document", - "DocumentIndex": 24, + "DocumentIndex": 45, "Title": "MelsecCustomModel.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\MelsecCustomModel.cs", @@ -478,7 +808,7 @@ }, { "$type": "Document", - "DocumentIndex": 23, + "DocumentIndex": 44, "Title": "SiemensCustomModel.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs", "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CustomModel\\SiemensCustomModel.cs", @@ -490,19 +820,7 @@ }, { "$type": "Document", - "DocumentIndex": 22, - "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": "AQIAADMAAAAAAAAAAAAUwE0CAAAAAAAA", - "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", - "WhenOpened": "2024-10-29T02:59:00.959Z" - }, - { - "$type": "Document", - "DocumentIndex": 29, + "DocumentIndex": 48, "Title": "TaskExecuteDetailService.cs", "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs", "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs", diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs index 324bd0a..3d2a1b4 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs @@ -1,7 +1,9 @@ 锘縰sing HslCommunication; +using HslCommunication.Core; using HslCommunication.LogNet; using HslCommunication.Profinet.Omron; using HslCommunication.Profinet.Siemens; +using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; @@ -9,6 +11,7 @@ using System.Linq; using System.Net; using System.Net.NetworkInformation; +using System.Reflection; using System.Text; using System.Threading.Tasks; @@ -86,6 +89,171 @@ #endregion #region Private Method + /// <summary> + /// 浠嶰perateResult瀵硅薄涓幏鍙栬鍙栫殑鏁版嵁銆� + /// </summary> + /// <typeparam name="T">璇诲彇鐨勬暟鎹被鍨嬨��</typeparam> + /// <param name="operateResult">HSLCommunication璇诲彇鐨凮perateResult<T>瀵硅薄</param> + /// <returns>濡傛灉璇诲彇鎴愬姛锛岃繑鍥炶鍙栫粨鏋滐紝璇诲彇澶辫触锛屾姏鍑鸿嚜瀹氫箟閫氳寮傚父</returns> + /// <exception cref="CommunicationException">鑷畾涔夐�氳寮傚父绫�</exception> + private object GetContent<T>(OperateResult<T> operateResult, string address) + { + try + { + if (!operateResult.IsSuccess) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.ReadFailedException, typeof(T).Name, address, operateResult.Message), CommunicationErrorType.ReadFailed); + } + return operateResult.Content ?? throw new CommunicationException(string.Format(CommunicationExceptionMessage.ReadDataIsNull, address), CommunicationErrorType.ReadFailed); + } + catch (Exception ex) + { + LogNet.WriteException(Name, ex.Message, ex); + throw new CommunicationException(ex.Message, CommunicationErrorType.ReadFailed, innerException: ex); + } + } + + /// <summary> + /// + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="operateResult"></param> + /// <param name="address"></param> + /// <param name="value"></param> + /// <returns></returns> + /// <exception cref="CommunicationException"></exception> + private bool GetResult<T>(OperateResult operateResult, string address, T value) where T : notnull + { + StringBuilder stringBuilder = new StringBuilder(); + try + { + stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteData, address, value)); + if (!operateResult.IsSuccess) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteFailedException, typeof(T).Name, address, value, operateResult.Message), CommunicationErrorType.WriteFailed); + } + else + { + object? obj = null; + for (int i = 0; i < 5; i++) + { + T readValue = Read<T>(address); + stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value)); + obj = readValue; + if (readValue.Equals(value)) + { + stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue)); + return true; + } + else if (i < 4) + { + Write(address, value); + } + } + stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj)); + throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed); + } + } + catch (Exception ex) + { + LogNet.WriteException(Name, ex.Message, ex); + throw new CommunicationException(ex.Message, CommunicationErrorType.WriteFailed, innerException: ex); + } + finally + { + LogNet.WriteInfo(Name, stringBuilder.ToString()); + } + + } + + /// <summary> + /// 鍐欏叆鏁版嵁 + /// </summary> + /// <param name="address"></param> + /// <param name="value"></param> + /// <returns></returns> + /// <exception cref="CommunicationException"></exception> + private OperateResult Write(string address, object value) + { + try + { + Type type = value.GetType(); + + switch (Type.GetTypeCode(type)) + { + case TypeCode.Int32: + return plc.Write(address, Convert.ToInt32(value)); + case TypeCode.UInt32: + return plc.Write(address, Convert.ToUInt32(value)); + case TypeCode.Int16: + return plc.Write(address, Convert.ToInt16(value)); + case TypeCode.UInt16: + return plc.Write(address, Convert.ToUInt16(value)); + case TypeCode.Single: + return plc.Write(address, Convert.ToSingle(value)); + case TypeCode.Boolean: + return plc.Write(address, Convert.ToBoolean(value)); + case TypeCode.Byte: + return plc.Write(address, Convert.ToByte(value)); + case TypeCode.String: + return plc.Write(address, Convert.ToString(value)); + case TypeCode.Char: + return plc.Write(address, Convert.ToChar(value)); + default: + throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, type.Name, address), CommunicationErrorType.TypeError); + } + } + catch (CommunicationException ex) + { + throw new CommunicationException(ex.Message, ex.ErrorType); + } + catch (Exception ex) + { + //璇诲彇寮傚父鏃舵姏鍑鸿嚜瀹氫箟閫氳寮傚父绫� + throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, address, value), CommunicationErrorType.TypeError, innerException: ex); + } + } + + private object Read(string address, TypeCode typeCode) + { + try + { + switch (typeCode) + { + case TypeCode.Int32: + return (int)GetContent(plc.ReadInt32(address), address); + case TypeCode.UInt32: + return (uint)GetContent(plc.ReadUInt32(address), address); + case TypeCode.Int16: + return (short)GetContent(plc.ReadInt16(address), address); + case TypeCode.UInt16: + return (ushort)GetContent(plc.ReadUInt16(address), address); + case TypeCode.Single: + return (float)GetContent(plc.ReadFloat(address), address); + case TypeCode.Boolean: + return (bool)GetContent(plc.ReadBool(address), address); + case TypeCode.Byte: + return (byte)GetContent(plc.ReadByte(address), address); + case TypeCode.String: + return (string)GetContent(plc.ReadString(address), address); + case TypeCode.Char: + return (char)GetContent(plc.ReadByte(address), address); + default: + throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, typeCode.ToString(), address), CommunicationErrorType.TypeError); + } + } + catch (CommunicationException ex) + { + //璇诲彇寮傚父鏃舵姏鍑鸿嚜瀹氫箟閫氳寮傚父绫� + throw new CommunicationException(ex.Message, ex.ErrorType); + } + catch (Exception ex) + { + //璇诲彇寮傚父鏃舵姏鍑鸿嚜瀹氫箟閫氳寮傚父绫� + throw new CommunicationException($"璇诲彇鏁版嵁寮傚父,閿欒淇℃伅:{ex.Message}", CommunicationErrorType.ReadException, innerException: ex); + } + } + private void Ping() { Task.Run(() => @@ -141,57 +309,313 @@ public override bool Disconnect() { - throw new NotImplementedException(); + try + { + if (plc != null) + { + OperateResult operateResult = plc.ConnectClose();//鏂紑涓嶱LC鐨勮繛鎺� + return operateResult.IsSuccess; + } + return false; + } + catch (Exception ex) + { + return false; + } + finally + { + _connected = false; + } } public override void Dispose() { - throw new NotImplementedException(); + _isPing = false; + Disconnect(); + plc.Dispose(); + GC.SuppressFinalize(this); } public override byte[] Read(string address, int length) { - throw new NotImplementedException(); + return (byte[])GetContent(plc.Read(address, (ushort)length), address); } public override T Read<T>(string address) { - throw new NotImplementedException(); + Type type = typeof(T); + return (T)Read(address, Type.GetTypeCode(type)); } public override object ReadAsObj(string address, string dataType) { - throw new NotImplementedException(); + return Read(address, SiemensDBDataType.GetTypeCode(dataType)); } public override T ReadCustomer<T>(string address) { - throw new NotImplementedException(); + try + { + return plc.ReadCustomer<T>(address).Content; + } + catch (Exception ex) + { + LogNet.WriteException(Name, $"銆恵Name}銆慞LC璇诲彇寮傚父锛屽湴鍧�锛氥�恵address}銆戯紝閿欒淇℃伅锛氥�恵ex.Message}銆�", ex); + throw new CommunicationException(ex.Message, CommunicationErrorType.ReadException, innerException: ex); + } } public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value) { - throw new NotImplementedException(); + TypeCode typeCode = Type.GetTypeCode(typeof(T)); + switch (typeCode) + { + case TypeCode.Byte: + DateTime start = DateTime.Now; + while (true) + { + OperateResult<byte> read = plc.ReadByte(address); + if (!read.IsSuccess) return OperateResult.CreateFailedResult<TimeSpan>(read); + + if (read.Content == Convert.ToByte(value)) return OperateResult.CreateSuccessResult(DateTime.Now - start); + if (waitTimeout > 0 && (DateTime.Now - start).TotalMilliseconds > waitTimeout) + { + return new OperateResult<TimeSpan>(StringResources.Language.CheckDataTimeout + waitTimeout); + } + HslHelper.ThreadSleep(readInterval); + } + case TypeCode.Int16: + OperateResult<TimeSpan> operateResultShort = plc.Wait(address, Convert.ToInt16(value), readInterval, waitTimeout); + return operateResultShort; + case TypeCode.Int32: + OperateResult<TimeSpan> operateResultInt = plc.Wait(address, Convert.ToInt16(value), readInterval, waitTimeout); + return operateResultInt; + case TypeCode.UInt16: + OperateResult<TimeSpan> operateResultUShort = plc.Wait(address, Convert.ToInt16(value), readInterval, waitTimeout); + return operateResultUShort; + case TypeCode.UInt32: + OperateResult<TimeSpan> operateResultUInt = plc.Wait(address, Convert.ToInt16(value), readInterval, waitTimeout); + return operateResultUInt; + default: + throw new NotSupportedException(); + } } public override bool Write(string address, byte[] data) { - throw new NotImplementedException(); + try + { + OperateResult result = plc.Write(address, data); + if (result.IsSuccess) + { + return result.IsSuccess; + } + else + { + //todo 鍐欏叆澶辫触 + return false; + } + } + catch (Exception ex) + { + //鍐欏叆寮傚父鏃舵姏鍑鸿嚜瀹氫箟閫氳寮傚父绫� + throw new CommunicationException($"鍐欏叆鏁版嵁寮傚父,鍦板潃:銆恵address}銆�,閿欒淇℃伅: {ex.Message}", CommunicationErrorType.ReadFailed, innerException: ex); + } } public override bool Write<T>(string address, T value) { - throw new NotImplementedException(); + return GetResult(Write(address, value), address, value); } public override bool WriteCustomer<T>(string address, [NotNull] T value) { - throw new NotImplementedException(); + StringBuilder stringBuilder = new StringBuilder(); + try + { + OperateResult operateResult = plc.WriteCustomer(address, value); + stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteData, address, JsonConvert.SerializeObject(value))); + if (operateResult.IsSuccess) + { + object? obj = null; + for (int i = 0; i < 5; i++) + { + T readValue = ReadCustomer<T>(address); + stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue))); + obj = readValue; + PropertyInfo[] propertyInfos = typeof(T).GetProperties(); + for (int j = 0; j < propertyInfos.Length; j++) + { + object? writeValueItem = propertyInfos[j].GetValue(value); + object? readValueItem = propertyInfos[j].GetValue(readValue); + if (writeValueItem.Equals(readValueItem)) + { + stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue))); + } + else + { + break; + } + if (j == propertyInfos.Length - 1) + return true; + } + + plc.WriteCustomer(address, value); + } + stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj))); + throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed); + } + else + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteFailedException, typeof(T).Name, address, JsonConvert.SerializeObject(value), operateResult.Message), CommunicationErrorType.WriteFailed); + } + } + catch (Exception ex) + { + LogNet.WriteException(Name, ex.Message, ex); + throw new CommunicationException(ex.Message, CommunicationErrorType.WriteFailed, innerException: ex); + } + finally + { + LogNet.WriteInfo(Name, stringBuilder.ToString()); + } } public override bool WriteObj(string address, string dataType, object value) { - throw new NotImplementedException(); + bool obj = false; + switch (dataType.ToLower()) + { + case SiemensDBDataType.DataType_DInt: + { + int writeVal; + try + { + writeVal = Convert.ToInt32(value); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + break; + case SiemensDBDataType.DataType_DW: + { + uint writeVal; + try + { + writeVal = Convert.ToUInt32(value); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + break; + case SiemensDBDataType.DataType_Int: + { + short writeVal; + try + { + writeVal = Convert.ToInt16(value); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + break; + case SiemensDBDataType.DataType_W: + { + ushort writeVal; + try + { + writeVal = Convert.ToUInt16(value); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + break; + case SiemensDBDataType.DataType_Float: + { + float writeVal; + try + { + writeVal = Convert.ToSingle(value); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + break; + case SiemensDBDataType.DataType_Bool: + { + bool writeVal; + try + { + writeVal = Convert.ToBoolean(value); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + break; + case SiemensDBDataType.DataType_Byte: + { + byte writeVal; + try + { + writeVal = Convert.ToByte(value); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + break; + case SiemensDBDataType.DataType_String: + { + string writeVal; + try + { + writeVal = value.ToString(); + } + catch (Exception ex) + { + throw new CommunicationException(string.Format(CommunicationExceptionMessage.TypeConvertError, dataType, address, value, ex.Message), CommunicationErrorType.TypeError, innerException: ex); + } + obj = GetResult(Write(address, writeVal), address, writeVal); + } + + break; + case SiemensDBDataType.DataType_Char: + + break; + default: + throw new CommunicationException(string.Format(CommunicationExceptionMessage.DataTypeErrorException, dataType, address), CommunicationErrorType.TypeError); + } + return obj; + } + #endregion + + #region Destruction Function + /// <summary> + /// 鏋愭瀯鍑芥暟锛岀‘淇濆湪涓嶅啀闇�瑕佹椂鍏抽棴杩炴帴 + /// </summary> + ~OmronEtherNetCommunicator() + { + Dispose(); } #endregion } diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs index e04765b..de6f6db 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs @@ -591,7 +591,6 @@ LogNet.WriteException(Name, $"銆恵Name}銆慞LC璇诲彇寮傚父锛屽湴鍧�锛氥�恵address}銆戯紝閿欒淇℃伅锛氥�恵ex.Message}銆�", ex); throw new CommunicationException(ex.Message, CommunicationErrorType.ReadException, innerException: ex); } - } #endregion @@ -647,7 +646,6 @@ { LogNet.WriteInfo(Name, stringBuilder.ToString()); } - } #endregion diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs index b2b90aa..28b40e2 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs @@ -91,19 +91,10 @@ public string DeviceName => _deviceName; /// <summary> - /// 鏄惁鏈夋晠闅� - /// </summary> - public bool IsFault => false; - - /// <summary> /// 閫氳鏄惁宸茶繛鎺� /// </summary> public bool IsConnected => Communicator.IsConnected && _isConnected; - /// <summary> - /// 璁惧鐘舵�� - /// </summary> - public DeviceStatus Status => DeviceStatus.Offline; #endregion #region Constructor Function diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs index 81c0f3e..ebef8a3 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs @@ -30,21 +30,6 @@ public interface IConveyorLine : IDevice { /// <summary> - /// 杈撻�佺嚎閫氳瀵硅薄 - /// </summary> - BaseCommunicator Communicator { get; } - - /// <summary> - /// 杈撻�佺嚎鍗忚淇℃伅 - /// </summary> - List<DeviceProDTO> DeviceProDTOs { get; } - - /// <summary> - /// 杈撻�佺嚎鍗忚鏄庣粏淇℃伅 - /// </summary> - List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; } - - /// <summary> /// 涓庤澶囩殑蹇冭烦 /// </summary> void Heartbeat(); diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs index 18c0de4..d9cd23e 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs @@ -21,6 +21,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using WIDESEAWCS_Communicator; +using WIDESEAWCS_QuartzJob.DTO; namespace WIDESEAWCS_QuartzJob.DeviceBase { @@ -29,6 +31,23 @@ /// </summary> public interface IDevice : IDisposable { + + /// <summary> + /// 閫氳瀵硅薄 + /// </summary> + BaseCommunicator Communicator { get; } + + /// <summary> + /// 閫氳鍗忚淇℃伅 + /// </summary> + List<DeviceProDTO> DeviceProDTOs { get; } + + /// <summary> + /// 閫氳鍗忚鏄庣粏淇℃伅 + /// </summary> + List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; } + + /// <summary> /// 璁惧缂栧彿 /// </summary> @@ -40,19 +59,8 @@ string DeviceName { get; } /// <summary> - /// 璁惧鏄惁鏈夋晠闅� - /// </summary> - bool IsFault { get; } - - /// <summary> /// 璁惧鏄惁宸茶繛鎺� /// </summary> bool IsConnected { get; } - - /// <summary> - /// 璁惧鐘舵��(绌洪棽/杩愯涓�...) - /// </summary> - DeviceStatus Status { get; } - } } diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs new file mode 100644 index 0000000..6871115 --- /dev/null +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs @@ -0,0 +1,55 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEAWCS_QuartzJob.DeviceBase; +using WIDESEAWCS_QuartzJob.DTO; + +namespace WIDESEAWCS_QuartzJob +{ + public interface IOtherDevice : IDevice + { + /// <summary> + /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹� + /// </summary> + /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam> + /// <typeparam name="TRsult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam> + /// <param name="value">鏋氫妇鍊�</param> + /// <returns>璇诲彇鍒扮殑鏁版嵁</returns> + TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum; + + + /// <summary> + /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹� + /// </summary> + /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam> + /// <typeparam name="TRsult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam> + /// <param name="value">鏋氫妇鍊�</param> + /// <param name="deviceChildCode">璁惧瀛愮紪鍙�</param> + /// <returns>璇诲彇鍒扮殑鏁版嵁</returns> + TRsult GetValue<TEnum, TRsult>(TEnum value, string deviceChildCode) where TEnum : Enum; + + /// <summary> + /// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆� + /// </summary> + /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> + /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam> + /// <param name="enum">鍙傛暟鍚嶇О銆�</param> + /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param> + /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns> + /// <exception cref="Exception"></exception> + bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) where TEnum : Enum where TValue : notnull; + + /// <summary> + /// 鏍规嵁鍙傛暟鍚嶇О銆佽澶囧瓙缂栧彿鍐欏叆瀵瑰簲鐨勬暟鎹�� + /// </summary> + /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> + /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam> + /// <param name="enum">鍙傛暟鍚嶇О銆�</param> + /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param> + /// <param name="deviceChildCode">璁惧瀛愮紪鍙峰啓</param> + /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns> + bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode) where TEnum : Enum where TValue : notnull; + } +} diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs new file mode 100644 index 0000000..1daea08 --- /dev/null +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs @@ -0,0 +1,194 @@ +锘縰sing HslCommunication; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEAWCS_Communicator; +using WIDESEAWCS_QuartzJob.DeviceBase; +using WIDESEAWCS_QuartzJob.DTO; + +namespace WIDESEAWCS_QuartzJob +{ + public class OtherDevice : IOtherDevice + { + #region Private Member + /// <summary> + /// 鍫嗗灈鏈洪�氳瀵硅薄 + /// </summary> + private BaseCommunicator _communicator; + /// <summary> + /// 鍫嗗灈鏈哄崗璁俊鎭� + /// </summary> + private readonly List<DeviceProDTO> _deviceProDTOs; + /// <summary> + /// 鍫嗗灈鏈哄崗璁槑缁嗕俊鎭� + /// </summary> + private readonly List<DeviceProtocolDetailDTO> _deviceProtocolDetailDTOs; + /// <summary> + /// 璁惧缂栧彿 + /// </summary> + public readonly string _deviceCode; + /// <summary> + /// 璁惧鍚嶇О + /// </summary> + public readonly string _deviceName; + + private bool _isChecked = false; + + private bool _heartStatr = true; + + private bool _isConnected = true; + #endregion Private Member + + #region Public Member + public BaseCommunicator Communicator => _communicator; + + public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs; + + public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs; + + public string DeviceCode => _deviceCode; + + public string DeviceName => _deviceName; + + public bool IsConnected => Communicator.IsConnected && _isConnected; + #endregion + + #region Constructor Function + /// <summary> + /// 鏋勯�犲嚱鏁� + /// </summary> + /// <param name="communicator">鍫嗗灈鏈洪�氳瀵硅薄</param> + /// <param name="deviceProDTOs">鍫嗗灈鏈哄崗璁俊鎭�</param> + /// <param name="deviceProtocolDetailDTOs">鍫嗗灈鏈哄崗璁槑缁嗕俊鎭�</param> + /// <param name="deviceCode">璁惧缂栧彿</param> + /// <param name="deviceName">璁惧鍚嶇О</param> + public OtherDevice(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName) + { + _communicator = communicator; + _deviceProDTOs = deviceProDTOs; + _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs; + _deviceCode = deviceCode; + _deviceName = deviceName; + CheckConnect(); + } + #endregion + + #region Private Method + private object GetStatus(string protocolParamType) + { + if (Communicator.IsConnected) + { + List<DeviceProDTO> devicePros = _deviceProDTOs.Where(x => x.DeviceProParamType == protocolParamType).ToList(); + if (devicePros.Count == 0) + { + throw new Exception("鏈幏鍙栧埌鍗忚淇℃伅"); + } + for (int i = 0; i < devicePros.Count; i++) + { + object readStatus = Communicator.ReadAsObj(devicePros[i].DeviceProAddress, devicePros[i].DeviceDataType); + //todo 鍗忚鏄庣粏淇℃伅鏈幏鍙栧埌鏃舵姏鍑哄紓甯� + DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamName) ?? throw new Exception(); + deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamType && x.ProtocalDetailValue.Equals(readStatus.ToString())); + if (deviceProtocolDetail != null) + { + return Convert.ToInt32(readStatus); + } + return -1; + } + } + //todo 閫氳鏈繛鎺ユ椂鎶涘嚭寮傚父 + return -1; + } + + private void CheckConnect() + { + Task.Run(() => + { + while (_heartStatr) + { + try + { + DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(); + if (devicePro == null) + _isConnected = false; + else + Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + _isConnected = true; + } + catch (Exception ex) + { + _isConnected = false; + } + Thread.Sleep(500); + } + }); + } + #endregion + + #region Public Method + public T GetStatus<T>() + where T : notnull, Enum + { + return (T)GetStatus(typeof(T).Name); + } + + public void Dispose() + { + _heartStatr = false; + _communicator.Dispose(); + GC.SuppressFinalize(this); + } + + public TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum + { + if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); + DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString()); + return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + } + + /// <summary> + /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹� + /// </summary> + /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam> + /// <typeparam name="TRsult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam> + /// <param name="value">鏋氫妇鍊�</param> + /// <param name="deviceChildCode">璁惧瀛愮紪鍙�</param> + /// <returns>璇诲彇鍒扮殑鏁版嵁</returns> + public TRsult GetValue<TEnum, TRsult>(TEnum value, string deviceChildCode) where TEnum : Enum + { + if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); + DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString() && x.DeviceChildCode == deviceChildCode); + return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + } + + public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) + where TEnum : Enum + where TValue : notnull + { + if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); + DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString()); + return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value); + } + + /// <summary> + /// 鏍规嵁鍙傛暟鍚嶇О銆佽澶囧瓙缂栧彿鍐欏叆瀵瑰簲鐨勬暟鎹�� + /// </summary> + /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> + /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam> + /// <param name="enum">鍙傛暟鍚嶇О銆�</param> + /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param> + /// <param name="deviceChildCode">璁惧瀛愮紪鍙峰啓</param> + /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns> + public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode) + where TEnum : Enum + where TValue : notnull + { + if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); + DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString() && x.DeviceChildCode == deviceChildCode); + return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value); + } + #endregion + } +} diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs index 5c694aa..673bbda 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs @@ -66,25 +66,6 @@ DeviceType = b.DeviceType, Enable = (b.DeviceStatus) ?? (((int)DeviceStatusEnum.Enable).ToString()) }).ToList(); - - //return Db.Queryable<Dt_DispatchInfo, Dt_DeviceInfo>((a, b) => a.JobGroup == b.DeviceType && b.DeviceStatus == ((int)DeviceStatusEnum.Enable).ToString()).Select((a, b) => new DispatchInfoDTO - //{ - // JobGroup = a.JobGroup, - // AssemblyName = a.AssemblyName, - // BeginTime = a.BeginTime, - // ClassName = a.ClassName, - // CreateDate = a.CreateDate, - // Creater = a.Creater, - // CycleHasRunTimes = 0, - // EndTime = a.EndTime, - // Id = b.Id, - // IntervalSecond = a.IntervalSecond, - // Modifier = a.Modifier, - // ModifyDate = a.ModifyDate, - // Name = a.Name, - // Remark = a.Remark, - // DeviceType = b.DeviceType - //}).ToList(); } } } diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs index 46f5c17..78e9906 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs @@ -9,5 +9,45 @@ { public interface IShuttleCar : IDevice { + /// <summary> + /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹� + /// </summary> + /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam> + /// <typeparam name="TRsult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam> + /// <param name="value">鏋氫妇鍊�</param> + /// <returns>璇诲彇鍒扮殑鏁版嵁</returns> + TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum; + + /// <summary> + /// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆� + /// </summary> + /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> + /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam> + /// <param name="enum">鍙傛暟鍚嶇О銆�</param> + /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param> + /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns> + /// <exception cref="Exception"></exception> + bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) where TEnum : Enum where TValue : notnull; + + /// <summary> + /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹� + /// </summary> + /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam> + /// <typeparam name="TRsult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam> + /// <param name="value">鏋氫妇鍊�</param> + /// <param name="deviceChildCode">璁惧瀛愮紪鍙�</param> + /// <returns>璇诲彇鍒扮殑鏁版嵁</returns> + TRsult GetValue<TEnum, TRsult>(TEnum value, string deviceChildCode) where TEnum : Enum; + + /// <summary> + /// 鏍规嵁鍙傛暟鍚嶇О銆佽澶囧瓙缂栧彿鍐欏叆瀵瑰簲鐨勬暟鎹�� + /// </summary> + /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> + /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam> + /// <param name="enum">鍙傛暟鍚嶇О銆�</param> + /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param> + /// <param name="deviceChildCode">璁惧瀛愮紪鍙峰啓</param> + /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns> + bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode) where TEnum : Enum where TValue : notnull; } } diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs index 2a6e09e..b9c30a1 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs @@ -65,11 +65,7 @@ public string DeviceName => _deviceName; - public bool IsFault => false; - public bool IsConnected => Communicator.IsConnected && _isConnected; - - public DeviceStatus Status => DeviceStatus.Offline; #endregion #region Constructor Function @@ -111,6 +107,14 @@ #endregion #region Public Method + + public TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum + { + if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); + DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString()); + return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + } + /// <summary> /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹� /// </summary> @@ -131,7 +135,6 @@ /// </summary> public void Heartbeat() { - throw new NotImplementedException(); } /// <summary> @@ -165,28 +168,6 @@ } /// <summary> - /// 璇诲彇PLC鏁版嵁锛岃繑鍥炶嚜瀹氫箟瀵硅薄 - /// </summary> - /// <typeparam name="T">娉涘瀷</typeparam> - /// <param name="deviceChildCode">瀛愯澶囩紪鍙�</param> - /// <returns>杩斿洖鑷畾涔夊璞℃垨鎶涘嚭寮傚父</returns> - /// <exception cref="Exception"></exception> - public T ReadCustomer<T>(string deviceChildCode) where T : IDataTransfer, new() - { - if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); - DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "ReadDeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); - - if (devicePro == null) - { - throw new Exception("鏈壘鍒板崗璁俊鎭�"); - } - else - { - return Communicator.ReadCustomer<T>(devicePro.DeviceProAddress); - } - } - - /// <summary> /// 鏍规嵁鍙傛暟鍚嶇О銆佽澶囧瓙缂栧彿鍐欏叆瀵瑰簲鐨勬暟鎹�� /// </summary> /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam> @@ -204,9 +185,20 @@ return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value); } + public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) + where TEnum : Enum + where TValue : notnull + { + if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); + DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString()); + return devicePro == null ? throw new Exception() : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value); + } + public void Dispose() { - throw new NotImplementedException(); + _heartStatr = false; + _communicator.Dispose(); + GC.SuppressFinalize(this); } #endregion } diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs index 55dde71..d6e577e 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs @@ -225,7 +225,7 @@ private int GetCurrentTaskNum() { DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CurrentTaskNum)); - return devicePro == null ? throw new Exception() : (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + return devicePro == null ? throw new Exception($"璇诲彇褰撳墠浠诲姟鍙烽敊璇�,鏈幏鍙栧埌鍗忚淇℃伅,璇锋鏌ラ厤缃弬鏁板悕绉版槸鍚﹂厤缃�,涓旈厤缃负涓簕nameof(CurrentTaskNum)}") : (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); } /// <summary> @@ -294,7 +294,6 @@ for (int i = 0; i < devicePros.Count; i++) { object readStatus = Communicator.ReadAsObj(devicePros[i].DeviceProAddress, devicePros[i].DeviceDataType); - //todo 鍗忚鏄庣粏淇℃伅鏈幏鍙栧埌鏃舵姏鍑哄紓甯� DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamName) ?? throw new Exception(); deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePros[i].DeviceProParamType && x.ProtocalDetailValue.Equals(readStatus.ToString())); if (deviceProtocolDetail != null) @@ -306,17 +305,6 @@ } //todo 閫氳鏈繛鎺ユ椂鎶涘嚭寮傚父 return StackerCraneStatus.Unkonw.ToString(); - } - - /// <summary> - /// 姣旇緝涓や釜鍊兼槸鍚︾浉绛夈�� - /// </summary> - /// <param name="value">绗竴涓�笺��</param> - /// <param name="paramValue">绗簩涓�笺��</param> - /// <returns>杩斿洖姣旇緝缁撴灉銆�</returns> - private bool Compare(object value, object paramValue) - { - return value.Equals(paramValue); } private void CheckConnect() @@ -352,7 +340,7 @@ /// <returns></returns> public bool SendCommand<T>(T command) where T : IDataTransfer, new() { - if(Communicator is SiemensS7) + if (Communicator is SiemensS7) { if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�"); DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand)).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs index 2a805f8..73c98c3 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs @@ -35,21 +35,6 @@ public interface IStackerCrane : IDevice { /// <summary> - /// 鍫嗗灈鏈洪�氳瀵硅薄 - /// </summary> - BaseCommunicator Communicator { get; } - - /// <summary> - /// 鍫嗗灈鏈哄崗璁俊鎭� - /// </summary> - List<DeviceProDTO> DeviceProDTOs { get; } - - /// <summary> - /// 鍫嗗灈鏈哄崗璁槑缁嗕俊鎭� - /// </summary> - List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; } - - /// <summary> /// 涓婁竴娆℃墽琛岀殑浠诲姟 /// </summary> int LastTaskNum { get; } @@ -75,11 +60,6 @@ /// <param name="command">浠诲姟鍛戒护</param> /// <returns></returns> bool SendCommand<T>(T command) where T : IDataTransfer, new(); - - /// <summary> - /// 鍫嗗灈鏈轰换鍔″畬鎴愪簨浠� - /// </summary> - event EventHandler<StackerCraneTaskCompletedEventArgs> StackerCraneTaskCompletedEventHandler; /// <summary> /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹� diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs index 6038eca..49abede 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs @@ -70,16 +70,7 @@ public string DeviceName => _deviceName; - public bool IsFault => throw new NotImplementedException(); - public bool IsConnected => Communicator.IsConnected && _isConnected; - - public DeviceStatus Status => throw new NotImplementedException(); - - /// <summary> - /// 鏃犵敤 - /// </summary> - public event EventHandler<StackerCraneTaskCompletedEventArgs> StackerCraneTaskCompletedEventHandler; public object StackerCraneTaskCommand { get; set; } #endregion @@ -134,7 +125,7 @@ private int GetCurrentTaskNum() { DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CurrentTaskNum)); - return devicePro == null ? throw new Exception() : (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); + return devicePro == null ? throw new Exception($"璇诲彇褰撳墠浠诲姟鍙烽敊璇�,鏈幏鍙栧埌鍗忚淇℃伅,璇锋鏌ラ厤缃弬鏁板悕绉版槸鍚﹂厤缃�,涓旈厤缃负涓簕nameof(CurrentTaskNum)}") : (int)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType); } private void CheckConnect() @@ -210,71 +201,6 @@ { throw new Exception("鏆備笉鏀寔闄よタ闂ㄥ瓙涔嬪鐨凱LC"); } - } - - /// <summary> - /// 鐩戞祴鍫嗗灈鏈轰换鍔℃槸鍚﹀畬鎴�(闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽畾涔夋墜鍔ㄨЕ鍙戝姛鑳�) - /// </summary> - void CheckStackerCraneTaskCompleted() - { - if (_isChecked) - return; - - Task.Run(() => - { - _isChecked = true; - try - { - DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(StackerCraneWorkStatus)); - if (devicePro != null) - { - DeviceProtocolDetailDTO? deviceProtocolDetail = _deviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == devicePro.DeviceProParamName && x.ProtocolDetailType == StackerCraneWorkStatus.WorkCompleted.ToString()); - if (deviceProtocolDetail != null) - { - OperateResult<TimeSpan> operateResult = new OperateResult<TimeSpan>(); - TypeCode typeCode = SiemensDBDataType.GetTypeCode(devicePro.DeviceDataType); - switch (typeCode) - { - case TypeCode.Boolean: - operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToBoolean(deviceProtocolDetail.ProtocalDetailValue)); - break; - case TypeCode.Byte: - operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToByte(deviceProtocolDetail.ProtocalDetailValue)); - break; - case TypeCode.Int16: - operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToInt16(deviceProtocolDetail.ProtocalDetailValue)); - break; - case TypeCode.Int32: - operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToInt32(deviceProtocolDetail.ProtocalDetailValue)); - break; - case TypeCode.UInt16: - operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToUInt16(deviceProtocolDetail.ProtocalDetailValue)); - break; - case TypeCode.UInt32: - operateResult = Communicator.Wait(devicePro.DeviceProAddress, 500, 10 * 6000, Convert.ToUInt32(deviceProtocolDetail.ProtocalDetailValue)); - break; - default: - break; - } - int taskNum = CurrentTaskNum; - if (operateResult.IsSuccess /*&& LastTaskNum != taskNum*/) - { - StackerCraneTaskCompletedEventArgs args = new(taskNum); - StackerCraneTaskCompletedEventHandler?.Invoke(this, args); - _lastTaskNum = taskNum; - } - } - } - } - catch (Exception ex) - { - - } - finally - { - _isChecked = false; - } - }); } public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs index dde082a..db7dab4 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs @@ -127,6 +127,8 @@ } } + data.Add(new { key = "", value = "鏃�" }); + result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; } break; -- Gitblit v1.9.3