From 692f6b474db06bf7e8b713474531018faf69388d Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期六, 18 十月 2025 10:35:53 +0800
Subject: [PATCH] 1
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs | 129 ++++++++++++++++++++++++++++++++++++++++---
1 files changed, 120 insertions(+), 9 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs"
index 328e0b2..6437d86 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs"
@@ -20,10 +20,13 @@
using Newtonsoft.Json;
using SixLabors.ImageSharp.ColorSpaces;
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Linq;
+using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common.Log;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
@@ -73,6 +76,7 @@
public WebResponseContent StackerHandTask(HandTask stackerhand)
{
+ WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write(JsonConvert.SerializeObject(stackerhand), "鍫嗗灈鏈烘墜鍔ㄤ换鍔�");
WebResponseContent content = new WebResponseContent();
try
{
@@ -218,6 +222,7 @@
public WebResponseContent StackerReset(string DeviceCode)
{
+ WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write($"銆愬浣嶅懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "鍫嗗灈鏈烘墜鍔ㄤ换鍔�");
WebResponseContent content = new WebResponseContent();
try
{
@@ -227,7 +232,14 @@
{
CommonStackerCrane commonStackerCrane = (CommonStackerCrane)device;
- commonStackerCrane.SetValue(StackerCraneDBName.WorkType, Convert.ToSByte(2));
+ //commonStackerCrane.SetValue(StackerCraneDBName.WorkType, Convert.ToSByte(2));
+ DeviceProDTO? devicePro = commonStackerCrane.DeviceProDTOs.Where(x => x.DeviceChildCode == commonStackerCrane.DeviceCode && x.DeviceProParamName == "WorkType").FirstOrDefault();
+
+ byte valueToWrite = 2;
+
+ byte[] buffer = new byte[] { valueToWrite };
+
+ commonStackerCrane.Communicator.Write(devicePro.DeviceProAddress, buffer);
return content.OK();
}
else
@@ -243,6 +255,7 @@
public WebResponseContent StackerEmergencyStop(string DeviceCode)
{
+ WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write($"銆愭�ュ仠鍛戒护銆憑JsonConvert.SerializeObject(DeviceCode)}", "鍫嗗灈鏈烘墜鍔ㄤ换鍔�");
WebResponseContent content = new WebResponseContent();
try
{
@@ -252,7 +265,77 @@
{
CommonStackerCrane commonStackerCrane = (CommonStackerCrane)device;
- commonStackerCrane.SetValue(StackerCraneDBName.WorkType, Convert.ToSByte(2));
+ //commonStackerCrane.SetValue(StackerCraneDBName.WorkType, Convert.ToSByte(4));
+ DeviceProDTO? devicePro = commonStackerCrane.DeviceProDTOs.Where(x => x.DeviceChildCode == commonStackerCrane.DeviceCode && x.DeviceProParamName == "WorkType").FirstOrDefault();
+
+ byte valueToWrite = 4;
+
+ byte[] buffer = new byte[] { valueToWrite };
+
+ commonStackerCrane.Communicator.Write(devicePro.DeviceProAddress, buffer);
+ return content.OK();
+ }
+ else
+ {
+ return content.Error("鏈壘鍒拌澶囦俊鎭鑱旂郴IT");
+ }
+ }
+ catch (Exception ex)
+ {
+ return content.Error(ex.Message);
+ }
+ }
+ public WebResponseContent StackerDisconnected(string DeviceCode)
+ {
+ WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write($"銆愪腑鏂懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "鍫嗗灈鏈烘墜鍔ㄤ换鍔�");
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode);
+
+ if (device != null)
+ {
+ CommonStackerCrane commonStackerCrane = (CommonStackerCrane)device;
+ DeviceProDTO? devicePro = commonStackerCrane.DeviceProDTOs.Where(x => x.DeviceChildCode == commonStackerCrane.DeviceCode && x.DeviceProParamName == "WorkType").FirstOrDefault();
+
+ byte valueToWrite = 1;
+
+ byte[] buffer = new byte[] { valueToWrite };
+
+ commonStackerCrane.Communicator.Write(devicePro.DeviceProAddress, buffer);
+
+ return content.OK();
+ }
+ else
+ {
+ return content.Error("鏈壘鍒拌澶囦俊鎭鑱旂郴IT");
+ }
+ }
+ catch (Exception ex)
+ {
+ return content.Error(ex.Message);
+ }
+ }
+
+ public WebResponseContent StackerRecall(string DeviceCode)
+ {
+ WriteLog.GetLog("鍫嗗灈鏈烘墜鍔ㄤ换鍔�").Write($"銆愪腑鏂懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "鍫嗗灈鏈烘墜鍔ㄤ换鍔�");
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == DeviceCode);
+
+ if (device != null)
+ {
+ CommonStackerCrane commonStackerCrane = (CommonStackerCrane)device;
+ DeviceProDTO? devicePro = commonStackerCrane.DeviceProDTOs.Where(x => x.DeviceChildCode == commonStackerCrane.DeviceCode && x.DeviceProParamName == "WorkType").FirstOrDefault();
+
+ byte valueToWrite = 144;
+
+ byte[] buffer = new byte[] { valueToWrite };
+
+ commonStackerCrane.Communicator.Write(devicePro.DeviceProAddress, buffer);
+
return content.OK();
}
else
@@ -309,19 +392,19 @@
public int GetRowCode(int number)
{
- if (number == 1 || number == 15 || number == 11 || number == 19)
+ if (number == 1 || number == 15 || number == 11 || number == 18)
{
return 1;
}
- else if (number == 2 || number == 5 || number == 8 || number == 12 || number == 16 || number == 20)
+ else if (number == 2 || number == 5 || number == 8 || number == 12 || number == 16 || number == 19)
{
return 2;
}
- else if (number == 3 || number == 6 || number == 9 || number == 13 || number == 17 || number == 21)
+ else if (number == 3 || number == 6 || number == 9 || number == 13 || number == 17 || number == 20)
{
return 3;
}
- else if (number == 4 || number == 7 || number == 10 || number == 14 || number == 18 || number == 22)
+ else if (number == 4 || number == 7 || number == 10 || number == 14 || number == 21)
{
return 4;
}
@@ -527,7 +610,7 @@
{
InStock = structs[2] == true ? "鏈夎揣" : "绌洪棽",
TaskNum = ConveyorLineTaskNum.ToString(),
- Alarm = AlarmInfo(ConveyorLineAlarm)
+ Alarm = GetAlarm(ConveyorLineAlarm)
};
return content.OK(data:obj);
}
@@ -542,6 +625,7 @@
public WebResponseContent ConveyorLineHandTask(HandTask ConveyorLinehand)
{
+ WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write(JsonConvert.SerializeObject(ConveyorLinehand), "杈撻�佺嚎鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -598,6 +682,7 @@
public WebResponseContent ConveyorLineReset(string DeviceChildCode)
{
+ WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愬浣嶅懡浠ゃ�憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -622,6 +707,7 @@
public WebResponseContent ConveyorLineEmergencyStop(string DeviceChildCode)
{
+ WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愭�ュ仠鍛戒护銆憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -645,6 +731,7 @@
}
public WebResponseContent ConveyorLineReturn(string DeviceChildCode)
{
+ WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愰��鍥炲懡浠ゃ�憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -668,6 +755,7 @@
}
public WebResponseContent ConveyorLineCancel(string DeviceChildCode)
{
+ WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愬彇娑堝懡浠ゃ�憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -691,6 +779,7 @@
}
public WebResponseContent ConveyorLineInitialize(string DeviceChildCode)
{
+ WriteLog.GetLog("杈撻�佺嚎鎵嬪姩浠诲姟").Write($"銆愬垵濮嬪寲鍛戒护銆憑JsonConvert.SerializeObject(DeviceChildCode)}", "杈撻�佺嚎鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -713,7 +802,22 @@
}
}
- string AlarmInfo(uint Alarm) => Alarm switch
+ public string GetAlarm(uint value)
+ {
+ byte[] bytes = BitConverter.GetBytes(value);
+ BitArray bits = new BitArray(bytes);
+
+ for (int i = 0; i < bits.Length; i++)
+ {
+ if (bits[i])
+ {
+ return AlarmInfo(i);
+ }
+ }
+ return "";
+ }
+
+ string AlarmInfo(int Alarm) => Alarm switch
{
0 => "鎬ュ仠",
1 => "鍙橀鍣ㄦ姤璀�1",
@@ -731,6 +835,7 @@
13 => "棰勭暀4",
14 => "棰勭暀5",
15 => "棰勭暀6",
+ _ => $"鏈煡鎶ヨ({Alarm})"
};
public enum ConveyorLineDBName
@@ -758,6 +863,7 @@
#region RGV鎵嬪姩鍛戒护
public WebResponseContent RGVHandTask(HandTask RGVhand)
{
+ WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write(JsonConvert.SerializeObject(RGVhand), "RGV鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -1017,6 +1123,7 @@
public WebResponseContent RGVReset(string DeviceCode)
{
+ WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬浣嶅懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -1045,6 +1152,7 @@
public WebResponseContent RGVEmergencyStop(string DeviceCode)
{
+ WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愭�ュ仠鍛戒护銆憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -1072,6 +1180,7 @@
}
public WebResponseContent RGVCancel(string DeviceCode)
{
+ WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬彇娑堜换鍔″懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -1099,6 +1208,7 @@
}
public WebResponseContent RGVInitialize(string DeviceCode)
{
+ WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬垵濮嬪寲鍛戒护銆憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -1138,6 +1248,7 @@
public WebResponseContent RGVPause(string DeviceCode)
{
+ WriteLog.GetLog("RGV鎵嬪姩浠诲姟").Write($"銆愬仠姝㈠懡浠ゃ�憑JsonConvert.SerializeObject(DeviceCode)}", "RGV鎵嬪姩浠诲姟");
WebResponseContent content = new WebResponseContent();
try
{
@@ -1168,7 +1279,7 @@
public void SendCommandFirstFloor(CommonRGV_FirstFloor commonRGV, RGVTaskCommand? rgvTaskCommand)
{
- commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(1));
+ commonRGV.SetValue(RGVDBName.TaskNum, Convert.ToInt16(1));
Thread.Sleep(100);
commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, (byte)Convert.ToSByte(rgvTaskCommand.PutcargoLocation));
Thread.Sleep(100);
--
Gitblit v1.9.3