using HH.WCS.NongFuChaYuan.DeviceService;
using HH.WCS.NongFuChaYuan.DispatchService;
using HH.WCS.NongFuChaYuan.OtherService;
using HH.WCS.NongFuChaYuan.WmsService;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Timers;
using static System.Runtime.CompilerServices.RuntimeHelpers;
namespace HH.WCS.NongFuChaYuan.TaskController
{
///
/// 设备信号处理--特殊设备处理需增加项目名配置
///
internal class DeviceProcess
{
private static ModbusHelper modbusHelper = new ModbusHelper();
private static Dictionary LineState = new Dictionary();
public class statemodel
{
public string status { get; set; }
public DateTime modify { get; set; }
public int error { get; set; }
}
internal static void Analysis(string data, string ip)
{
if (data.Length >= 6)
{
//去掉消息头3F 00
data = data.Substring(4);
////Console.WriteLine($"{ip}-{data}");
var plc = Settings.GetDeviceInfoList().Where(a => a.address == ip && a.enable == 1).FirstOrDefault();
//if (data.Length == 6)
//{
// if (data.Substring(4, 2) == "32")
// {
// //输送线第二个口
// plc = Settings.GetDeviceInfoList().Where(a => a.address == ip && a.location.Contains("") && a.enable == 1).FirstOrDefault();
// }
// else if(data.Substring(0,2)=="12")
// {
// //输送线第一个口
// plc = Settings.GetDeviceInfoList().Where(a => a.address == ip && a.location.Contains("") && a.enable == 1).FirstOrDefault();
// }
//}
if (plc != null)
{
alysisDeviceChange(data, plc);
}
//else { }//Console.WriteLine($"TCP信号处理:未查询到IP为{ip}的数据,请检查deviceInfo配置中心是否存在该IP的数据!");
}
}
private static void alysisDeviceChange(string data, Settings.deviceInfo plc)
{
if (plc.deviceType == 1) AnalysisDoor(data, plc);//自动门处理
else if (plc.deviceType == 2) DaMingShanAnalysisBottleCapmolding(data, plc);//注塑机处理
else if (plc.deviceType == 3) DaMingShanAnalysisBottleCapTipper(data, plc);//瓶盖翻斗机处理
else if (plc.deviceType == 6) DaMingShanAnalysisBottleCapmoldTipper(data, plc);//瓶坯翻斗机处理
else if (plc.deviceType == 4) DaMingShanAnalysisBottleCap(data, plc);//瓶盖机处理
else if (plc.deviceType == 5) DaMingShanAnalysisProductLine(data, plc);//输送线处理
else if (plc.deviceType == 7) Roboticarm(data, plc);//机械臂处理
}
private static void Roboticarm(string data, Settings.deviceInfo plc)
{
LogHelper.Info($"{plc.deviceName}--IP={plc.address}--msg={data}");
if (data.Length == 4)
{
if (data.Substring(0, 2) == "12")
{
//空框下线
RoboticarmEmpty(plc, plc.location[0]);
}
if (data.Substring(2, 2) == "21")
{
//满框上线
RoboticarmFull(plc, plc.location[0]);
}
}
}
private static void RoboticarmEmpty(Settings.deviceInfo plc, string location)
{
var result = false;
try
{
var db = new SqlHelper