From 4ff827cc3884644be53b768259f8ee014f617944 Mon Sep 17 00:00:00 2001 From: wenjy Date: Sat, 14 Sep 2024 08:49:42 +0800 Subject: [PATCH] change - Init --- SlnMesnac.Generate/GenerateCode.cs | 113 ---- SlnMesnac.Generate/SlnMesnac.Generate.csproj | 16 - .../Templates/Service/IServiceCreate.cs | 78 --- .../Templates/Service/IServices.vm | 13 - .../Templates/Service/Impl/ServiceCreate.cs | 75 --- .../Templates/Service/Impl/Services.vm | 14 - SlnMesnac.Plc/Factory/InovanceFactory.cs | 346 ------------- SlnMesnac.Plc/Factory/MelsecBinaryFactory.cs | 287 ----------- SlnMesnac.Plc/Factory/OmronNJFactory.cs | 290 ----------- SlnMesnac.Plc/Factory/SiemensFactory.cs | 287 ----------- SlnMesnac.Plc/PlcAbsractFactory.cs | 109 ---- SlnMesnac.Plc/SlnMesnac.Plc.csproj | 19 - SlnMesnac.Redis/RedisHandler.cs | 92 ---- SlnMesnac.Redis/SlnMesnac.Redis.csproj | 16 - SlnMesnac.Rfid/Dto/MessagePack.cs | 31 -- SlnMesnac.Rfid/Enum/RecvState.cs | 43 -- SlnMesnac.Rfid/Factory/RflyFactory.cs | 483 ------------------ SlnMesnac.Rfid/RfidAbsractFactory.cs | 52 -- SlnMesnac.Rfid/SlnMesnac.Rfid.csproj | 14 - .../Controllers/BaseMaterialInfoController.cs | 90 ---- SlnMesnac/Controllers/BaseUserController.cs | 81 --- SlnMesnac/Controllers/JobController.cs | 61 --- SlnMesnac/Program.cs | 32 -- SlnMesnac/Properties/launchSettings.json | 30 -- SlnMesnac/SlnMesnac.csproj | 24 - SlnMesnac/Startup.cs | 121 ----- SlnMesnac/appsettings.Development.json | 8 - SlnMesnac/appsettings.json | 15 - 28 files changed, 2840 deletions(-) delete mode 100644 SlnMesnac.Generate/GenerateCode.cs delete mode 100644 SlnMesnac.Generate/SlnMesnac.Generate.csproj delete mode 100644 SlnMesnac.Generate/Templates/Service/IServiceCreate.cs delete mode 100644 SlnMesnac.Generate/Templates/Service/IServices.vm delete mode 100644 SlnMesnac.Generate/Templates/Service/Impl/ServiceCreate.cs delete mode 100644 SlnMesnac.Generate/Templates/Service/Impl/Services.vm delete mode 100644 SlnMesnac.Plc/Factory/InovanceFactory.cs delete mode 100644 SlnMesnac.Plc/Factory/MelsecBinaryFactory.cs delete mode 100644 SlnMesnac.Plc/Factory/OmronNJFactory.cs delete mode 100644 SlnMesnac.Plc/Factory/SiemensFactory.cs delete mode 100644 SlnMesnac.Plc/PlcAbsractFactory.cs delete mode 100644 SlnMesnac.Plc/SlnMesnac.Plc.csproj delete mode 100644 SlnMesnac.Redis/RedisHandler.cs delete mode 100644 SlnMesnac.Redis/SlnMesnac.Redis.csproj delete mode 100644 SlnMesnac.Rfid/Dto/MessagePack.cs delete mode 100644 SlnMesnac.Rfid/Enum/RecvState.cs delete mode 100644 SlnMesnac.Rfid/Factory/RflyFactory.cs delete mode 100644 SlnMesnac.Rfid/RfidAbsractFactory.cs delete mode 100644 SlnMesnac.Rfid/SlnMesnac.Rfid.csproj delete mode 100644 SlnMesnac/Controllers/BaseMaterialInfoController.cs delete mode 100644 SlnMesnac/Controllers/BaseUserController.cs delete mode 100644 SlnMesnac/Controllers/JobController.cs delete mode 100644 SlnMesnac/Program.cs delete mode 100644 SlnMesnac/Properties/launchSettings.json delete mode 100644 SlnMesnac/SlnMesnac.csproj delete mode 100644 SlnMesnac/Startup.cs delete mode 100644 SlnMesnac/appsettings.Development.json delete mode 100644 SlnMesnac/appsettings.json diff --git a/SlnMesnac.Generate/GenerateCode.cs b/SlnMesnac.Generate/GenerateCode.cs deleted file mode 100644 index 812b0f9..0000000 --- a/SlnMesnac.Generate/GenerateCode.cs +++ /dev/null @@ -1,113 +0,0 @@ -using SlnMesnac.Generate.Templates.Service; -using SlnMesnac.Generate.Templates.Service.Impl; -using SqlSugar; -using System; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Generate -* 唯一标识:78595105-fab6-40f0-97b4-1272dc3e0e86 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-04-11 13:35:01 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Generate -{ - /// - /// 生成代码 - /// - public class GenerateCode - { - private readonly ISqlSugarClient _sqlSugarClient; - - public GenerateCode(ISqlSugarClient sqlSugarClient) - { - _sqlSugarClient = sqlSugarClient; - } - - public bool CreateCode(string configId,string tableName,string savePath,string nameSpace) - { - if (string.IsNullOrEmpty(configId)) - { - throw new ArgumentNullException($"代码生成异常:configId参数为空"); - } - - if (string.IsNullOrEmpty(tableName)) - { - throw new ArgumentNullException($"代码生成异常:表格名称参数为空"); - } - - if (string.IsNullOrEmpty(savePath)) - { - throw new ArgumentNullException($"代码生成异常:文件存储路径参数为空"); - } - - if (string.IsNullOrEmpty(nameSpace)) - { - throw new ArgumentNullException($"代码生成异常:命名空间参数为空"); - } - - try - { - savePath += $"\\{tableName}"; - - var scope = _sqlSugarClient.AsTenant().GetConnectionScope(configId); - - scope.DbFirst.IsCreateAttribute() - .FormatPropertyName(it=> ToCamelCase(it)).Where(p => p == tableName).CreateClassFile($"{savePath}\\Entity", nameSpace); - - var isc = new IServiceCreate(); - bool iscRes = isc.Create(tableName, nameSpace, savePath); - if (!iscRes) - { - throw new InvalidOperationException($"Service接口生成失败"); - } - - var sc = new ServiceCreate(); - var scRes = sc.Create(tableName, nameSpace, savePath); - - if (!scRes) - { - throw new InvalidOperationException($"Service实现类生成失败"); - } - - return true; - }catch (Exception ex) - { - throw new InvalidOperationException($"代码生成异常:{ex.Message}"); - } - } - - private static string ToCamelCase(string input) - { - // 将字符串转换为驼峰格式,但保持每个单词的首字母大写 - string[] words = input.Split('_'); - for (int i = 0; i < words.Length; i++) - { - if (i > 0) - { - words[i] = char.ToUpper(words[i][0]) + words[i].Substring(1).ToLower(); - } - else - { - words[i] = words[i].ToLower(); - } - } - return string.Join("", words); - } - } -} diff --git a/SlnMesnac.Generate/SlnMesnac.Generate.csproj b/SlnMesnac.Generate/SlnMesnac.Generate.csproj deleted file mode 100644 index 7e094ef..0000000 --- a/SlnMesnac.Generate/SlnMesnac.Generate.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - netstandard2.1 - enable - - - - - - - - - - - diff --git a/SlnMesnac.Generate/Templates/Service/IServiceCreate.cs b/SlnMesnac.Generate/Templates/Service/IServiceCreate.cs deleted file mode 100644 index 272c376..0000000 --- a/SlnMesnac.Generate/Templates/Service/IServiceCreate.cs +++ /dev/null @@ -1,78 +0,0 @@ -using Commons.Collections; -using NVelocity.App; -using NVelocity.Runtime; -using NVelocity; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Generate.Templates -* 唯一标识:4dbafd45-d689-4d1a-b54d-b936dae7d17c -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-04-11 13:28:04 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Generate.Templates.Service -{ - public class IServiceCreate - { - private static readonly string templateDir = @"E:\桌面\SlnMesnac\SlnMesnac.Generate\Templates\Service\"; - - public bool Create(string tableName, string NameSpace, string outdir) - { - - try - { - VelocityEngine velocityEngine = new VelocityEngine(); - ExtendedProperties props = new ExtendedProperties(); - props.AddProperty(RuntimeConstants.RESOURCE_LOADER, @"file"); - props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, templateDir); - props.AddProperty(RuntimeConstants.INPUT_ENCODING, "utf-8"); - props.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8"); - //模板的缓存设置 - props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, true); //是否缓存 - props.AddProperty("file.resource.loader.modificationCheckInterval", (Int64)30); //缓存时间(秒) - velocityEngine.Init(props); - //为模板变量赋值 - VelocityContext context = new VelocityContext(); - context.Put("tableName", tableName); - context.Put("NameSpace", NameSpace); - context.Put("outdir", outdir); - //从文件中读取模板 - Template template = velocityEngine.GetTemplate(@"\IServices.vm"); - if (!Directory.Exists(outdir + "\\IServices")) - { - Directory.CreateDirectory(outdir + "\\IServices"); - } - //合并模板 - using (StreamWriter writer = new StreamWriter(outdir + $"\\IServices\\I{tableName.Substring(0, 1).ToUpper()}{tableName.Substring(1)}Service.cs", false)) - { - template.Merge(context, writer); - } - return true; - }catch(Exception ex) - { - throw new InvalidOperationException($"Service接口模板创建异常:{ex.Message}"); - } - } - - - } -} diff --git a/SlnMesnac.Generate/Templates/Service/IServices.vm b/SlnMesnac.Generate/Templates/Service/IServices.vm deleted file mode 100644 index a5b8992..0000000 --- a/SlnMesnac.Generate/Templates/Service/IServices.vm +++ /dev/null @@ -1,13 +0,0 @@ -using SlnMesnac.Model.domain; -using SlnMesnac.Repository.service.@base; -using System; -using System.Collections.Generic; -using System.Text; - -namespace ${NameSpace}.service -{ - public interface I${tableName}Services: IBaseService<${tableName}> - { - - } -} \ No newline at end of file diff --git a/SlnMesnac.Generate/Templates/Service/Impl/ServiceCreate.cs b/SlnMesnac.Generate/Templates/Service/Impl/ServiceCreate.cs deleted file mode 100644 index 14830ea..0000000 --- a/SlnMesnac.Generate/Templates/Service/Impl/ServiceCreate.cs +++ /dev/null @@ -1,75 +0,0 @@ -using Commons.Collections; -using NVelocity.App; -using NVelocity.Runtime; -using NVelocity; -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Generate.Templates -* 唯一标识:4acc596a-6223-4156-b16c-952c225eff25 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-04-11 13:27:33 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Generate.Templates.Service.Impl -{ - public class ServiceCreate - { - private static readonly string templateDir = @"E:\桌面\SlnMesnac\SlnMesnac.Generate\Templates\Service\Impl\"; - - public bool Create(string tableName, string NameSpace, string outdir) - { - try - { - VelocityEngine velocityEngine = new VelocityEngine(); - ExtendedProperties props = new ExtendedProperties(); - props.AddProperty(RuntimeConstants.RESOURCE_LOADER, @"file"); - props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, templateDir); - props.AddProperty(RuntimeConstants.INPUT_ENCODING, "utf-8"); - props.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "utf-8"); - //模板的缓存设置 - props.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_CACHE, true); //是否缓存 - props.AddProperty("file.resource.loader.modificationCheckInterval", (Int64)30); //缓存时间(秒) - velocityEngine.Init(props); - //为模板变量赋值 - VelocityContext context = new VelocityContext(); - context.Put("tableName", tableName); - context.Put("NameSpace", NameSpace); - context.Put("outdir", outdir); - //从文件中读取模板 - Template template = velocityEngine.GetTemplate(@"\Services.vm"); - if (!Directory.Exists(outdir + "\\Services")) - { - Directory.CreateDirectory(outdir + "\\Services"); - } - //合并模板 - using (StreamWriter writer = new StreamWriter(outdir + $"\\Services\\{tableName.Substring(0, 1).ToUpper()}{tableName.Substring(1)}ServiceImpl.cs", false)) - { - template.Merge(context, writer); - } - return true; - }catch(Exception ex) - { - throw new InvalidOperationException($"Service实现类模板创建异常:{ex.Message}"); - } - } - } -} diff --git a/SlnMesnac.Generate/Templates/Service/Impl/Services.vm b/SlnMesnac.Generate/Templates/Service/Impl/Services.vm deleted file mode 100644 index bcf9a49..0000000 --- a/SlnMesnac.Generate/Templates/Service/Impl/Services.vm +++ /dev/null @@ -1,14 +0,0 @@ -using SlnMesnac.Model.domain; -using SlnMesnac.Repository.service.@base; -using System; -using System.Collections.Generic; - -namespace ${NameSpace}.service.Impl -{ - public class ${tableName}ServiceImpl : BaseServiceImpl<${tableName}>, I${tableName}Service - { - public ${tableName}ServiceImpl(Repository<${tableName}> repository):base(repository) - { - } - } -} \ No newline at end of file diff --git a/SlnMesnac.Plc/Factory/InovanceFactory.cs b/SlnMesnac.Plc/Factory/InovanceFactory.cs deleted file mode 100644 index d9eebc1..0000000 --- a/SlnMesnac.Plc/Factory/InovanceFactory.cs +++ /dev/null @@ -1,346 +0,0 @@ -using System; -using HslCommunication; -using HslCommunication.Profinet.Inovance; -using SlnMesnac.Common; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Plc.Factory -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Plc.Factory -{ - public class InovanceFactory:PlcAbsractFactory - { - private StringChange _stringChange; - - private InovanceTcpNet inovanceTcp = null; - - public InovanceFactory(StringChange stringChange) - { - _stringChange = stringChange; - - this.inovanceTcp = new InovanceTcpNet(); - this.inovanceTcp.ConnectTimeOut = 2000; - } - - public override bool IsConnected { get; set; } - - /// - /// 建立连接 - /// - /// - /// - /// - /// - public override bool Connect(string ip, int port) - { - try - { - inovanceTcp?.ConnectClose(); - if (inovanceTcp != null) - { - inovanceTcp.IpAddress = ip; - inovanceTcp.Port = port; - inovanceTcp.DataFormat = HslCommunication.Core.DataFormat.CDAB; - - OperateResult connect = inovanceTcp.ConnectServer(); - this.IsConnected = connect.IsSuccess; - if (!connect.IsSuccess) - { - throw new InvalidOperationException($"汇川PLC连接失败:{connect.Message}"); - } - - return connect.IsSuccess; - } - else - { - throw new ArgumentException($"汇川PLC实例inovanceTcp为null"); - } - } - catch (Exception ex) - { - throw new InvalidOperationException($"汇川PLC连接异常:{ex.Message}"); - } - } - - /// - /// 断开连接 - /// - /// - /// - public override bool DisConnect() - { - try - { - OperateResult disConnect = inovanceTcp.ConnectClose(); - this.IsConnected = false; - if (!disConnect.IsSuccess) - { - throw new InvalidOperationException($"汇川PLC断开连接失败:{disConnect.Message}"); - } - return disConnect.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"汇川PLC断开连接异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取指定长度数据 - /// - /// - /// - /// - /// - public override byte[] readValueByAddress(string address, int len) - { - try - { - OperateResult read = inovanceTcp.Read(address, (ushort)(len)); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据失败:{read.Message}"); - } - return _stringChange.ConvertFloatToINt(read.Content); - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取int16数据 - /// - /// - /// - /// - public override int readInt16ByAddress(string address) - { - try - { - OperateResult read = inovanceTcp.ReadInt16(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址写入int16数据 - /// - /// - /// - /// - /// - public override bool writeInt16ByAddress(string address, int value) - { - try - { - OperateResult operateResult = new OperateResult(); - int s = 0; - string[] strArry = address.Split('.'); - - //先读取整个块的内容 - var info = inovanceTcp.ReadInt16(strArry[0]); - if (info.Content == 0) - { - int length = _stringChange.ParseToInt(strArry[1]) + 1; - string[] array = new string[length]; - for (int i = 0; i < length; i++) - { - if (i == _stringChange.ParseToInt(strArry[1])) - { - array[i] = value.ToString(); - } - else - { - array[i] = "0"; - } - } - //反转 - Array.Reverse(array); - byte[] buffer = new byte[array.Length]; - string result = ""; - for (int i = 0; i < array.Length; i++) - { - result += (byte)Convert.ToInt32(array[i], 16); - } - s = Convert.ToInt32(result.Trim(), 2); - operateResult = inovanceTcp.Write(strArry[0], (ushort)s); - } - else - { - var inf2 = Convert.ToString(info.Content, 2); - string[] infoArray = new string[inf2.Length]; - for (int i = 0; i < inf2.Length; i++) - { - infoArray[i] = inf2.Substring(i, 1); - } - Array.Reverse(infoArray); - infoArray[_stringChange.ParseToInt(strArry[1])] = value.ToString(); - string result = ""; - foreach (var item in infoArray) - { - result = result + item; - } - s = Convert.ToInt32(result.Trim(), 10); - operateResult = inovanceTcp.Write(strArry[0], s); - } - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取string类型数据 - /// - /// - /// - /// - /// - public override string readStringByAddress(string address, ushort length) - { - try - { - OperateResult read = inovanceTcp.ReadString(address, length); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入String类型数据 - /// - /// - /// - /// - /// - public override bool writeStringByAddress(string address, string value) - { - try - { - OperateResult operateResult = inovanceTcp.Write(address, value); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取Bool类型数据 - /// - /// - /// - /// - public override bool readBoolByAddress(string address) - { - try - { - OperateResult read = inovanceTcp.ReadBool(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Bool类型数据 - /// - /// - /// - /// - /// - public override bool writeBoolByAddress(string address, bool value) - { - try - { - OperateResult operateResult = inovanceTcp.Write(address, short.Parse(_stringChange.ParseToInt(value ? "1" : "0").ToString())); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Double类型数据 - /// - /// - /// - /// - /// - public override bool writeDoubleByAddress(string address, int value) - { - try - { - OperateResult operateResult = inovanceTcp.Write(address, Convert.ToDouble(value)); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据异常:{ex.Message}"); - } - } - } -} \ No newline at end of file diff --git a/SlnMesnac.Plc/Factory/MelsecBinaryFactory.cs b/SlnMesnac.Plc/Factory/MelsecBinaryFactory.cs deleted file mode 100644 index 28b9a8e..0000000 --- a/SlnMesnac.Plc/Factory/MelsecBinaryFactory.cs +++ /dev/null @@ -1,287 +0,0 @@ -using System; -using HslCommunication; -using HslCommunication.Profinet.Melsec; -using SlnMesnac.Common; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Plc.Factory -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Plc.Factory -{ - public class MelsecBinaryFactory:PlcAbsractFactory - { - private StringChange _stringChange; - - private MelsecMcNet melsec_net = null; - - public MelsecBinaryFactory(StringChange stringChange) - { - _stringChange = stringChange; - - this.melsec_net = new MelsecMcNet(); - this.melsec_net.ConnectTimeOut = 2000; - } - - public override bool IsConnected { get; set; } - - /// - /// 建立连接 - /// - /// - /// - /// - /// - public override bool Connect(string iP, int port) - { - try - { - melsec_net.IpAddress = iP; - melsec_net.Port = port; - OperateResult connect = melsec_net.ConnectServer(); - this.IsConnected = connect.IsSuccess; - if (!connect.IsSuccess) - { - throw new InvalidOperationException($"三菱PLC连接失败:{connect.Message}"); - } - - return connect.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"三菱PLC连接异常:{ex.Message}"); - } - } - - /// - /// 断开连接 - /// - /// - /// - public override bool DisConnect() - { - try - { - OperateResult disConnect = melsec_net.ConnectClose(); - this.IsConnected = false; - if (!disConnect.IsSuccess) - { - throw new InvalidOperationException($"三菱PLC断开连接失败:{disConnect.Message}"); - } - return disConnect.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"三菱PLC断开连接异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取指定长度数据 - /// - /// - /// - /// - /// - public override byte[] readValueByAddress(string address, int len) - { - try - { - OperateResult read = melsec_net.Read(address, (ushort)(len)); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据失败:{read.Message}"); - } - return _stringChange.ConvertFloatToINt(read.Content); - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取int16数据 - /// - /// - /// - /// - public override int readInt16ByAddress(string address) - { - try - { - OperateResult read = melsec_net.ReadInt16(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址写入int16数据 - /// - /// - /// - /// - /// - public override bool writeInt16ByAddress(string address, int value) - { - try - { - OperateResult operateResult = melsec_net.Write(address, Convert.ToInt16(value)); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取string类型数据 - /// - /// - /// - /// - /// - public override string readStringByAddress(string address, ushort length) - { - try - { - OperateResult read = melsec_net.ReadString(address, length); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入String类型数据 - /// - /// - /// - /// - /// - public override bool writeStringByAddress(string address, string value) - { - try - { - OperateResult operateResult = melsec_net.Write(address, value); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取Bool类型数据 - /// - /// - /// - /// - public override bool readBoolByAddress(string address) - { - try - { - OperateResult read = melsec_net.ReadBool(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Bool类型数据 - /// - /// - /// - /// - /// - public override bool writeBoolByAddress(string address, bool value) - { - try - { - OperateResult operateResult = melsec_net.Write(address, short.Parse(_stringChange.ParseToInt(value ? "1" : "0").ToString())); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Double类型数据 - /// - /// - /// - /// - /// - public override bool writeDoubleByAddress(string address, int value) - { - try - { - OperateResult operateResult = melsec_net.Write(address, Convert.ToDouble(value)); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据异常:{ex.Message}"); - } - } - } -} \ No newline at end of file diff --git a/SlnMesnac.Plc/Factory/OmronNJFactory.cs b/SlnMesnac.Plc/Factory/OmronNJFactory.cs deleted file mode 100644 index a3812e9..0000000 --- a/SlnMesnac.Plc/Factory/OmronNJFactory.cs +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using HslCommunication; -using HslCommunication.Profinet.Omron; -using SlnMesnac.Common; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Plc.Factory -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Plc.Factory -{ - public class OmronNJFactory:PlcAbsractFactory - { - private StringChange _stringChange; - - private OmronFinsNet omronFinsNet = null; - - public OmronNJFactory(StringChange stringChange) - { - _stringChange = stringChange; - - this.omronFinsNet = new OmronFinsNet(); - this.omronFinsNet.ConnectTimeOut = 2000; - } - - public override bool IsConnected { get; set; } - - /// - /// 建立连接 - /// - /// - /// - /// - /// - public override bool Connect(string iP, int port) - { - try - { - omronFinsNet.IpAddress = iP; - omronFinsNet.Port = 9600; - omronFinsNet.SA1 = (byte)192; - omronFinsNet.DA1 = (byte)239; - omronFinsNet.DA2 = (byte)0; - OperateResult connect = omronFinsNet.ConnectServer(); - this.IsConnected = connect.IsSuccess; - if (!connect.IsSuccess) - { - throw new InvalidOperationException($"欧姆龙PLC连接失败:{connect.Message}"); - } - - return connect.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"欧姆龙PLC连接异常:{ex.Message}"); - } - } - - /// - /// 断开连接 - /// - /// - /// - public override bool DisConnect() - { - try - { - OperateResult disConnect = omronFinsNet.ConnectClose(); - this.IsConnected = false; - if (!disConnect.IsSuccess) - { - throw new InvalidOperationException($"欧姆龙PLC断开连接失败:{disConnect.Message}"); - } - return disConnect.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"欧姆龙PLC断开连接异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取指定长度数据 - /// - /// - /// - /// - /// - public override byte[] readValueByAddress(string address, int len) - { - try - { - OperateResult read = omronFinsNet.Read(address, (ushort)(len)); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据失败:{read.Message}"); - } - return _stringChange.ConvertFloatToINt(read.Content); - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取int16数据 - /// - /// - /// - /// - public override int readInt16ByAddress(string address) - { - try - { - OperateResult read = omronFinsNet.ReadInt16(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址写入int16数据 - /// - /// - /// - /// - /// - public override bool writeInt16ByAddress(string address, int value) - { - try - { - OperateResult operateResult = omronFinsNet.Write(address, Convert.ToInt16(value)); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取string类型数据 - /// - /// - /// - /// - /// - public override string readStringByAddress(string address, ushort length) - { - try - { - OperateResult read = omronFinsNet.ReadString(address, length); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入String类型数据 - /// - /// - /// - /// - /// - public override bool writeStringByAddress(string address, string value) - { - try - { - OperateResult operateResult = omronFinsNet.Write(address, value); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取Bool类型数据 - /// - /// - /// - /// - public override bool readBoolByAddress(string address) - { - try - { - OperateResult read = omronFinsNet.ReadBool(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Bool类型数据 - /// - /// - /// - /// - /// - public override bool writeBoolByAddress(string address, bool value) - { - try - { - OperateResult operateResult = omronFinsNet.Write(address, short.Parse(_stringChange.ParseToInt(value ? "1" : "0").ToString())); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Double类型数据 - /// - /// - /// - /// - /// - public override bool writeDoubleByAddress(string address, int value) - { - try - { - OperateResult operateResult = omronFinsNet.Write(address, Convert.ToDouble(value)); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据异常:{ex.Message}"); - } - } - } -} \ No newline at end of file diff --git a/SlnMesnac.Plc/Factory/SiemensFactory.cs b/SlnMesnac.Plc/Factory/SiemensFactory.cs deleted file mode 100644 index 2e0ed6d..0000000 --- a/SlnMesnac.Plc/Factory/SiemensFactory.cs +++ /dev/null @@ -1,287 +0,0 @@ -using System; -using HslCommunication; -using HslCommunication.Profinet.Siemens; -using SlnMesnac.Common; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Plc.Factory -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Plc.Factory -{ - public class SiemensFactory:PlcAbsractFactory - { - - private StringChange _stringChange; - - private const SiemensPLCS type = SiemensPLCS.S200Smart; - - private SiemensS7Net s7 = new SiemensS7Net(type); - - public SiemensFactory(StringChange stringChange) - { - _stringChange = stringChange; - } - - public override bool IsConnected { get; set; } - - /// - /// 建立连接 - /// - /// - /// - /// - /// - public override bool Connect(string iP, int port) - { - try - { - s7.IpAddress = iP; - s7.Port = 102; - OperateResult connect = s7.ConnectServer(); - this.IsConnected = connect.IsSuccess; - if (!connect.IsSuccess) - { - throw new InvalidOperationException($"西门子S系列PLC连接失败:{connect.Message}"); - } - - return connect.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"西门子S系列PLC连接异常:{ex.Message}"); - } - } - - /// - /// 断开连接 - /// - /// - /// - public override bool DisConnect() - { - try - { - OperateResult disConnect = s7.ConnectClose(); - this.IsConnected = false; - if (!disConnect.IsSuccess) - { - throw new InvalidOperationException($"西门子S系列PLC断开连接失败:{disConnect.Message}"); - } - return disConnect.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"西门子S系列PLC断开连接异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取指定长度数据 - /// - /// - /// - /// - /// - public override byte[] readValueByAddress(string address, int len) - { - try - { - OperateResult read = s7.Read(address, (ushort)(len)); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据失败:{read.Message}"); - } - return _stringChange.ConvertFloatToINt(read.Content); - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取指定长度数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址读取int16数据 - /// - /// - /// - /// - public override int readInt16ByAddress(string address) - { - try - { - OperateResult read = s7.ReadInt16(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取int16数据异常:{ex.Message}"); - } - } - - /// - /// 根据地址写入int16数据 - /// - /// - /// - /// - /// - public override bool writeInt16ByAddress(string address, int value) - { - try - { - OperateResult operateResult = s7.Write(address, Convert.ToInt16(value)); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入int16数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取string类型数据 - /// - /// - /// - /// - /// - public override string readStringByAddress(string address, ushort length) - { - try - { - OperateResult read = s7.ReadString(address, length); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入String类型数据 - /// - /// - /// - /// - /// - public override bool writeStringByAddress(string address, string value) - { - try - { - OperateResult operateResult = s7.Write(address, value); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入string数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址读取Bool类型数据 - /// - /// - /// - /// - public override bool readBoolByAddress(string address) - { - try - { - OperateResult read = s7.ReadBool(address); - if (!read.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据失败:{read.Content}"); - } - return read.Content; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};读取bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Bool类型数据 - /// - /// - /// - /// - /// - public override bool writeBoolByAddress(string address, bool value) - { - try - { - OperateResult operateResult = s7.Write(address, short.Parse(_stringChange.ParseToInt(value ? "1" : "0").ToString())); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入bool数据异常:{ex.Message}"); - } - } - - /// - /// 通过PLC地址写入Double类型数据 - /// - /// - /// - /// - /// - public override bool writeDoubleByAddress(string address, int value) - { - try - { - OperateResult operateResult = s7.Write(address, Convert.ToDouble(value)); - if (!operateResult.IsSuccess) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据失败:{operateResult.Message}"); - } - return operateResult.IsSuccess; - } - catch (Exception ex) - { - throw new InvalidOperationException($"根据地址:{address};写入double数据异常:{ex.Message}"); - } - } - } -} \ No newline at end of file diff --git a/SlnMesnac.Plc/PlcAbsractFactory.cs b/SlnMesnac.Plc/PlcAbsractFactory.cs deleted file mode 100644 index 049cf0a..0000000 --- a/SlnMesnac.Plc/PlcAbsractFactory.cs +++ /dev/null @@ -1,109 +0,0 @@ -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Plc -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Plc -{ - public abstract class PlcAbsractFactory - { - - public string ConfigKey { get;set; } - - /// - /// 是否连接 - /// - public abstract bool IsConnected { get; set; } - - /// - /// 建立连接 - /// - /// - /// - /// - public abstract bool Connect(string ip, int port); - - /// - /// 断开连接 - /// - /// - public abstract bool DisConnect(); - - /// - /// 根据地址读取指定长度数据 - /// - /// - /// - /// - public abstract byte[] readValueByAddress(string address,int len); - - /// - /// 通过PLC地址读取int16类型数据 - /// - /// - /// - public abstract int readInt16ByAddress(string address); - - /// - /// 通过PLC地址写入int16类型数据 - /// - /// - /// - /// - public abstract bool writeInt16ByAddress(string address,int value); - - /// - /// 通过PLC地址读取string类型数据 - /// - /// - /// - public abstract string readStringByAddress(string address, ushort length); - - /// - /// 通过PLC地址写入String类型数据 - /// - /// - /// - /// - public abstract bool writeStringByAddress(string address, string value); - - /// - /// 通过PLC地址读取Bool类型数据 - /// - /// - /// - public abstract bool readBoolByAddress(string address); - - /// - /// 通过PLC地址写入Bool类型数据 - /// - /// - /// - public abstract bool writeBoolByAddress(string address, bool value); - - /// - /// 通过PLC地址写入Double类型数据 - /// - /// - /// - /// - public abstract bool writeDoubleByAddress(string address, int value); - } -} \ No newline at end of file diff --git a/SlnMesnac.Plc/SlnMesnac.Plc.csproj b/SlnMesnac.Plc/SlnMesnac.Plc.csproj deleted file mode 100644 index 4074e53..0000000 --- a/SlnMesnac.Plc/SlnMesnac.Plc.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - netstandard2.1 - enable - - - - - - - - - - - - - - diff --git a/SlnMesnac.Redis/RedisHandler.cs b/SlnMesnac.Redis/RedisHandler.cs deleted file mode 100644 index 4b0331c..0000000 --- a/SlnMesnac.Redis/RedisHandler.cs +++ /dev/null @@ -1,92 +0,0 @@ -using Microsoft.Extensions.Logging; -using SlnMesnac.Config; -using StackExchange.Redis; -using System; -using System.Collections.Generic; -using System.Text; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Redis -* 唯一标识:00418016-53c9-4f87-a13f-daa19d656bba -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-04-12 15:15:25 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Redis -{ - public class RedisHandler - { - private ILogger _logger; - - private readonly AppConfig _appConfig; - - private readonly ISubscriber _subscriber; - - private readonly ConnectionMultiplexer redis; - - public RedisHandler(AppConfig appConfig, ILogger logger) - { - _appConfig = appConfig; - - redis = ConnectionMultiplexer.Connect(_appConfig.redisConfig); - _subscriber = redis.GetSubscriber(); - _logger = logger; - } - - - - /// - /// 推送消息 - /// - /// - /// - public void PublishMessage(string channel, string message) - { - long res = _subscriber.Publish(channel, message); - - _logger.LogInformation($"向主题:{channel};推送消息:{message};结果:{res}"); - } - - /// - /// 订阅消息 - /// - /// - /// - public void SubscribeToChannel(string channel, Action onMessageReceived) - { - _subscriber.Subscribe(channel, (ch, message) => - { - onMessageReceived(ch, message); - _logger.LogInformation($"订阅主题:{channel};收到主题:{ch};推送的消息:{message}"); - }); - } - - public void CleanExpiredMessages(string channel) - { - var redis = _subscriber.Multiplexer.GetDatabase(); - redis.KeyDelete(channel); - } - - public void SetValue(string key, string message) - { - IDatabase db = redis.GetDatabase(0); - TimeSpan expiry = TimeSpan.FromSeconds(10); - db.StringSet(key, message, expiry); - } - } -} diff --git a/SlnMesnac.Redis/SlnMesnac.Redis.csproj b/SlnMesnac.Redis/SlnMesnac.Redis.csproj deleted file mode 100644 index 96001b0..0000000 --- a/SlnMesnac.Redis/SlnMesnac.Redis.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - netstandard2.1 - enable - - - - - - - - - - - diff --git a/SlnMesnac.Rfid/Dto/MessagePack.cs b/SlnMesnac.Rfid/Dto/MessagePack.cs deleted file mode 100644 index 284d42f..0000000 --- a/SlnMesnac.Rfid/Dto/MessagePack.cs +++ /dev/null @@ -1,31 +0,0 @@ -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Rfid.Dto -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Rfid.Dto -{ - public class MessagePack - { - //public byte m_beginChar1 = 0xBB; //开始包 - public byte[] m_pData = null; //发送数据 - //public byte m_EndChar1 = 0x0D; //结束包 - } -} \ No newline at end of file diff --git a/SlnMesnac.Rfid/Enum/RecvState.cs b/SlnMesnac.Rfid/Enum/RecvState.cs deleted file mode 100644 index f9f1708..0000000 --- a/SlnMesnac.Rfid/Enum/RecvState.cs +++ /dev/null @@ -1,43 +0,0 @@ -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Rfid.Enum -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Rfid.Enum -{ - public enum RecvState - { - //RFly-I160 返回数据 BB DD 00 01 40 41 0D - WaitingBeginChar1_State = 1, //等待接收帧同步字符1 0xBB - WaitingBeginChar2_State = 2, //等待接收帧同步字符2 0xDD - WaitingForBarcodeLength_State = 3, //等待条码长度不固定 - WaitingForCode_State = 4, //等待指令编号Code 0x02 - WaitingForStus_State = 5, //等待接受状态码 0x00 - WaitingForTagCount_State = 6, //等待接受标签组数不固定 - WaitingForCount_State = 7, //等待接收第一组标签读取次数 0x01 - WaitingForRSSI_State = 8, //等待接收读取信号强度 0xCB - WaitingForAnt_State = 9, //等待接收天线端口 0x01 - WaitingForPC1_State = 10, //等待接收EPC区域 0x00 - WaitingForPC2_State = 11, //等待接收EPC区域 0x00 - WaitingForData_State = 12, //等待接收数据字符 - WaitingForXor_State = 13, //等待比对校验位 - WaitingForEndChar_State = 14, //等待接收尾字符 0x0D - } -} \ No newline at end of file diff --git a/SlnMesnac.Rfid/Factory/RflyFactory.cs b/SlnMesnac.Rfid/Factory/RflyFactory.cs deleted file mode 100644 index 27f015a..0000000 --- a/SlnMesnac.Rfid/Factory/RflyFactory.cs +++ /dev/null @@ -1,483 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Text; -using System.Threading; -using Microsoft.AspNetCore.Http; -using Microsoft.Extensions.Logging; -using SlnMesnac.Common; -using SlnMesnac.Model.dto; -using SlnMesnac.Rfid.Dto; -using SlnMesnac.Rfid.Enum; -using TouchSocket.Core; -using TouchSocket.Sockets; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Rfid.Factory -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Rfid.Factory -{ - public class RflyFactory:RfidAbsractFactory - { - private ILogger _logger; - private readonly TcpClient _tcpClient = new TcpClient(); - private readonly StringChange _stringChange; - - public RflyFactory(ILogger logger,StringChange stringChange) - { - _logger = logger; - _stringChange = stringChange; - } - - /// - /// 建立连接 - /// - /// - /// - /// - /// - public override bool Connect(string ip, int port) - { - try - { - _tcpClient.Setup(new TouchSocketConfig().SetRemoteIPHost($"{ip}:{port}")); - _tcpClient.Connect(); - return true; - } - catch (Exception e) - { - throw new InvalidOperationException($"设备连接异常:{e.Message}"); - } - } - - /// - /// 按时间段盘点 - /// - /// - /// - /// - public override List TimePeriodRead(int timeout = 5000) - { - byte[] u16byte = new byte[2]; - byte[] bCRC = new byte[4]; - try - { - #region 指令封装 - MessagePack pMessagePack = new MessagePack(); - pMessagePack.m_pData = new byte[8]; - pMessagePack.m_pData[0] = 0xAA; - pMessagePack.m_pData[1] = 0x55; - pMessagePack.m_pData[2] = 0x02; - pMessagePack.m_pData[3] = 0x02; - u16byte = BitConverter.GetBytes(timeout); //超时时间 - u16byte = _stringChange.Swap16Bytes(u16byte); //协议里为大端在前 - Array.Copy(u16byte, 0, pMessagePack.m_pData, 4, 2); - Array.Copy(pMessagePack.m_pData, 2, bCRC, 0, 4); - pMessagePack.m_pData[6] = _stringChange.CalculateVerify(bCRC, bCRC.Length); - pMessagePack.m_pData[7] = 0x0D; - #endregion - - var waitClient = _tcpClient.CreateWaitingClient(new WaitingOptions() - { - FilterFunc = response => - { - return true; - } - }); - - byte[] reciveBuffer = waitClient.SendThenReturn(pMessagePack.m_pData, timeout); - - _logger.LogInformation($"接收原始报文:{_stringChange.bytesToHexStr(reciveBuffer,reciveBuffer.Length)}"); - - byte[] resultBuffer = PareReceiveBufferData(reciveBuffer,reciveBuffer.Length); - - List tagInfoList = Device_DealTagInfoList(resultBuffer); - - return tagInfoList; - } - catch (Exception e) - { - throw new InvalidOperationException($"按时间段盘点异常:{e.Message}"); - } - } - - #region 标签解析 - - /// - /// 状态机函数 - /// - /// - /// - /// - /// - private byte[] PareReceiveBufferData(byte[] buffer, int iLen) - { - RecvState enumRecvState = RecvState.WaitingBeginChar1_State; - int m_iPosition = 0; - UInt16 m_iFullMessageLength = 0; - int iBarcodeLength = 0;//条码长度 - ArrayList m_FrecvData = new ArrayList(); - byte m_iVerify = 0; - try - { - var bufferStr = _stringChange.bytesToHexStr(buffer, iLen); - byte[] m_szFullMessage = new byte[iLen]; - for (int i = 0; i < iLen; i++) - { - switch (enumRecvState) - { - case RecvState.WaitingBeginChar1_State: //开始接受数据帧1 0xBB - Array.Clear(m_szFullMessage, 0, iLen);//清空为0 - if (buffer[i] == 0xBB) - { - m_szFullMessage[m_iPosition] = buffer[i]; - m_iPosition++; - enumRecvState = RecvState.WaitingBeginChar2_State; - } - else - { - m_iFullMessageLength = 0; - m_iPosition = 0; - enumRecvState = RecvState.WaitingBeginChar1_State; - } - break; - case RecvState.WaitingBeginChar2_State: //开始接受数据帧1 0xDD - if (buffer[i] == 0xDD) - { - m_szFullMessage[m_iPosition] = buffer[i]; - m_iPosition++; - enumRecvState = RecvState.WaitingForBarcodeLength_State; - } - else - { - m_iFullMessageLength = 0; - m_iPosition = 0; - enumRecvState = RecvState.WaitingBeginChar1_State; - } - break; - case RecvState.WaitingForBarcodeLength_State: //开始接受数据长度(TagCount - EPC) - m_szFullMessage[m_iPosition] = buffer[i]; - iBarcodeLength = buffer[i]; //单组标签:18;两组标签:35 - m_iPosition++; - enumRecvState = RecvState.WaitingForCode_State; - break; - - case RecvState.WaitingForCode_State: //开始接受指令编号 - if (buffer[i] == 0x02) - { - m_szFullMessage[m_iPosition] = buffer[i]; - m_iPosition++; - enumRecvState = RecvState.WaitingForStus_State; - } - else if (buffer[i] == 0x90) // 如果是心跳BB DD 01 90 00 1F 8E 0D - { - m_szFullMessage[m_iPosition] = buffer[i]; - m_iPosition++; - enumRecvState = RecvState.WaitingForEndChar_State; - } - else if (buffer[i] == 0xBF) // 如果是心跳BB DD 04 BF 00 00 00 F9 0B 49 0D - { - m_szFullMessage[m_iPosition] = buffer[i]; - m_iPosition++; - enumRecvState = RecvState.WaitingForEndChar_State; - } - else - { - m_iFullMessageLength = 0; - m_iPosition = 0; - enumRecvState = RecvState.WaitingBeginChar1_State; - } - break; - case RecvState.WaitingForStus_State: //开始接受状态码 - if (buffer[i] == 0x00) - { - m_szFullMessage[m_iPosition] = buffer[i]; - m_iPosition++; - enumRecvState = RecvState.WaitingForTagCount_State; - } - else if (buffer[i] == 0x40) - { - m_szFullMessage[m_iPosition] = buffer[i]; - //LogService.Instance.Debug("RFU620等待接受WaitingForEndChar_State:Noread"); - lock (m_FrecvData) - { - m_FrecvData.Add(m_szFullMessage); - } - m_iPosition = 0; - i = iLen; - enumRecvState = RecvState.WaitingBeginChar1_State; - //LogService.Instance.Debug("RFly-I160状态机结束。"); - } - break; - case RecvState.WaitingForTagCount_State: //开始接受标签组数 - Array.Copy(buffer, i, m_szFullMessage, m_iPosition, iBarcodeLength);//m_iPosition = 5 - byte[] tempData = new byte[iBarcodeLength]; - Array.Clear(tempData, 0, iBarcodeLength); - Array.Copy(buffer, i, tempData, 0, iBarcodeLength); - m_iPosition = m_iPosition + iBarcodeLength; //m_iPosition = 39 - i = i + iBarcodeLength - 1; //i = 39 - enumRecvState = RecvState.WaitingForXor_State; - break; - case RecvState.WaitingForXor_State: //开始比对校验位 Rfly160 - byte[] m_CRCVerify = new byte[1024]; //此数组用于校验位计算 - Array.Clear(m_CRCVerify, 0, m_CRCVerify.Length); - Array.Copy(m_szFullMessage, 2, m_CRCVerify, 0, iBarcodeLength + 3); //校验位计算是从Length - EPC 结束 - m_szFullMessage[m_iPosition] = buffer[i]; - m_iVerify = m_szFullMessage[m_iPosition]; - if (m_iVerify == _stringChange.CalculateVerify(m_CRCVerify, m_CRCVerify.Length)) - { - m_iPosition++; - enumRecvState = RecvState.WaitingForEndChar_State; - } - else //如果校验不成功 - { - m_iFullMessageLength = 0; - m_iPosition = 0; - enumRecvState = RecvState.WaitingBeginChar1_State; - } - break; - case RecvState.WaitingForEndChar_State: - if (buffer[0] == 0xBB && buffer[1] == 0xDD && buffer[2] == 0x00 && buffer[3] != 0x90) //此处为Noread数据显示 - { - m_szFullMessage[0] = 0xBB; - m_szFullMessage[1] = 0xDD; - m_szFullMessage[2] = 0x00; - lock (m_FrecvData) - { - m_FrecvData.Add(m_szFullMessage); - } - m_iPosition = 0; - i = iLen; - enumRecvState = RecvState.WaitingBeginChar1_State; - } - else if (buffer[0] == 0xBB && buffer[1] == 0xDD && buffer[2] == 0x04 && buffer[3] == 0xBF) - { - Array.Copy(buffer, 0, m_szFullMessage, 0, 11); - i = 11; - lock (m_FrecvData) - { - m_FrecvData.Add(m_szFullMessage); - } - i = iLen; - } - else if (buffer[i] == 0x00) //获取温度 - { - Array.Copy(buffer, 0, m_szFullMessage, 0, 8); - i = 8; - lock (m_FrecvData) - { - m_FrecvData.Add(m_szFullMessage); - } - i = iLen; - } - else if (buffer[i] == 0x11) - { - Array.Copy(buffer, 0, m_szFullMessage, 0, 7); - i = 7; - lock (m_FrecvData) - { - m_FrecvData.Add(m_szFullMessage); - } - } - else if (buffer[i] == 0x01) - { - Array.Copy(buffer, 0, m_szFullMessage, 0, 8); - i = 8; - lock (m_FrecvData) - { - m_FrecvData.Add(m_szFullMessage); - } - } - else - { - m_szFullMessage[m_iPosition] = buffer[i]; - m_iPosition++; - if (buffer[i] == 0x0D) - { - lock (m_FrecvData) - { - m_FrecvData.Add(m_szFullMessage); - } - } - } - m_iPosition = 0; - enumRecvState = RecvState.WaitingBeginChar1_State; - break; - } - } - - return m_szFullMessage; - } - catch (Exception e) - { - throw new InvalidOperationException($"状态机逻辑处理异常:{e.Message}"); - } - } - - private Mutex mutauto = new Mutex(); - /// - /// 解析函数 - /// - /// - /// - /// - public List Device_DealTagInfoList(byte[] AutoDealReportData) - { - List tagInfoList = new List(); - byte[] bResultEPC_Data = new byte[14]; - byte[] m_AutoReadEPC = null; - int m_readEPCDataLen = 0; - try - { - mutauto.WaitOne(); - int iFirstCountPos = 6; //第一次读取标签次数位置 - int iFirstRSSIPos = 7; //第一次读取标签强度位置 - int iFirstAnt = 8; - int iFirstPC = 9; //第一次读取标签天线位置 - int iFirstLeftBarcketPos = 11;//EPC数据起始位置 - UInt16 tempDataCount = 0; - int tempDataRSSI = 0; - UInt16 tempDataANT = 0; - int iBarcodeGroupCount = Convert.ToInt32(AutoDealReportData[5].ToString()); //标签组数 - int iBarcodeLength = 16; //标签长度 - int iCommonSecondFlag = 0; - for (int j = 0; j < iBarcodeGroupCount; j++) - { - TagInfo tag = new TagInfo(); - byte[] tempPCByte = new byte[2]; //取出PC - Array.Clear(tempPCByte, 0, 2); - Array.Copy(AutoDealReportData, iFirstPC, tempPCByte, 0, 2); - - int pc = Convert.ToInt32(tempPCByte[0].ToString("X")); - int epcLength = EPCLengthByPC(pc); - iBarcodeLength = epcLength; - - byte[] tempDataByte = new byte[epcLength]; - Array.Clear(tempDataByte, 0, iBarcodeLength); - Array.Copy(AutoDealReportData, iFirstLeftBarcketPos, tempDataByte, 0, iBarcodeLength); - - byte[] tempCountByte = new byte[1]; //取出标签次数 - Array.Clear(tempCountByte, 0, 1); - Array.Copy(AutoDealReportData, iFirstCountPos, tempCountByte, 0, 1); - tempDataCount = tempCountByte[0]; - - byte[] tempRSSIByte = new byte[1]; //取出标签强度 - Array.Clear(tempRSSIByte, 0, 1); - Array.Copy(AutoDealReportData, iFirstRSSIPos, tempRSSIByte, 0, 1); - - tempDataRSSI = _stringChange.HexStringToNegative(_stringChange.bytesToHexStr(tempRSSIByte, 1)); - - #region add by wenjy 20220829 取出天线号 - byte[] tempAntByte = new byte[1]; //取出天线号 - Array.Clear(tempAntByte, 0, 1); - Array.Copy(AutoDealReportData, iFirstAnt, tempAntByte, 0, 1); - tempDataANT = tempAntByte[0]; - #endregion - - tag.Count = tempDataCount; - tag.RSSI = tempDataRSSI; - tag.EPC = tempDataByte; - - if (pc == 24) - { - tag.EPCstring = _stringChange.bytesToHexStr(tempDataByte, tempDataByte.Length).Substring(0, 7); - } - else - { - tag.EPCstring = Encoding.ASCII.GetString(tempDataByte); - } - - tag.PC = tempPCByte; - tag.Antana = tempDataANT; - tagInfoList.Add(tag); - int iBarcodeListLen = tagInfoList.Count; //特别注意,必须这样,要不然会多一条数据 - - iFirstCountPos = iFirstCountPos + iBarcodeLength + 5; //次数 - iFirstRSSIPos = iFirstCountPos + 1; //强度 - iFirstAnt = iFirstRSSIPos + 1; //天线 - iFirstPC = iFirstAnt + 1; - iFirstLeftBarcketPos = iFirstLeftBarcketPos + iBarcodeLength + 5; - - _logger.LogInformation("----函数调用:Device_DealTagInfoList 第[" + (iCommonSecondFlag + 1) + "]次数据解析为:" + tag.EPCstring + ",读取标签次数:[" + tempDataCount + "],标签信号强度:[" + tempDataRSSI + "],天线号:[" + tempDataANT + "]"); - iCommonSecondFlag++; - if (iCommonSecondFlag == iBarcodeGroupCount) - { - mutauto.ReleaseMutex(); - _logger.LogInformation("《《《返回标签数据!"); - return tagInfoList; - } - } - return tagInfoList; - } - catch (Exception ex) - { - mutauto.ReleaseMutex(); - throw new InvalidOperationException($"Device_AutoDealContent 自动处理函数异常:{ex.Message}"); - } - } - - /// - /// 根据PC获取EPC长度 - /// - /// - /// - private int EPCLengthByPC(int pcValue) - { - int epcLength = 0; - if (pcValue >= 10 && pcValue < 20) - { - epcLength = 4; - } - else if (pcValue >= 20 && pcValue < 30) - { - epcLength = 8; - } - else if (pcValue >= 30 && pcValue < 40) - { - epcLength = 12; - } - else if (pcValue >= 40 && pcValue < 50) - { - epcLength = 16; - } - else if (pcValue >= 50 && pcValue < 60) - { - epcLength = 20; - } - else if (pcValue >= 60 && pcValue < 70) - { - epcLength = 24; - } - else if (pcValue >= 70 && pcValue < 80) - { - epcLength = 28; - } - else if (pcValue >= 80 && pcValue < 90) - { - epcLength = 30; - } - return epcLength; - } - - #endregion - } -} \ No newline at end of file diff --git a/SlnMesnac.Rfid/RfidAbsractFactory.cs b/SlnMesnac.Rfid/RfidAbsractFactory.cs deleted file mode 100644 index 2a2c1b7..0000000 --- a/SlnMesnac.Rfid/RfidAbsractFactory.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Collections.Generic; -using SlnMesnac.Model.dto; - -#region << 版 本 注 释 >> -/*-------------------------------------------------------------------- -* 版权所有 (c) 2024 WenJY 保留所有权利。 -* CLR版本:4.0.30319.42000 -* 机器名称:LAPTOP-E0N2L34V -* 命名空间:SlnMesnac.Rfid -* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82 -* -* 创建者:WenJY -* 电子邮箱:wenjy@mesnac.com -* 创建时间:2024-03-27 21:58:35 -* 版本:V1.0.0 -* 描述: -* -*-------------------------------------------------------------------- -* 修改人: -* 时间: -* 修改说明: -* -* 版本:V1.0.0 -*--------------------------------------------------------------------*/ -#endregion << 版 本 注 释 >> -namespace SlnMesnac.Rfid -{ - /// - /// RFID抽象工厂 - /// - public abstract class RfidAbsractFactory - { - - public string ConfigKey { get; set; } - - /// - /// 建立连接 - /// - /// - /// - /// - public abstract bool Connect(string ip, int port); - - /// - /// 按时间段盘点 - /// - /// - /// - public abstract List TimePeriodRead(int timeout = 5000); - } -} \ No newline at end of file diff --git a/SlnMesnac.Rfid/SlnMesnac.Rfid.csproj b/SlnMesnac.Rfid/SlnMesnac.Rfid.csproj deleted file mode 100644 index ac2b62d..0000000 --- a/SlnMesnac.Rfid/SlnMesnac.Rfid.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - netstandard2.1 - enable - - - - - - - - - diff --git a/SlnMesnac/Controllers/BaseMaterialInfoController.cs b/SlnMesnac/Controllers/BaseMaterialInfoController.cs deleted file mode 100644 index 57d541b..0000000 --- a/SlnMesnac/Controllers/BaseMaterialInfoController.cs +++ /dev/null @@ -1,90 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using SlnMesnac.Model.domain; -using SlnMesnac.Repository.service; - -namespace SlnMesnac.Controllers -{ - /// - /// 物料信息 - /// - [Route("api/[controller]")] - [ApiController] - public class BaseMaterialInfoController - { - private ILogger _logger; - - private IBaseMaterialService _service; - - /// - /// - /// - /// - /// - public BaseMaterialInfoController(ILogger logger, IBaseMaterialService service) - { - _logger = logger; - _service = service; - } - - /// - /// 获取物料信息 - /// - /// - [HttpGet] - public IEnumerable Get() - { - IEnumerable materialInfos = null; - try - { - materialInfos = _service.GetMaterialInfos(); - } - catch (Exception ex) - { - _logger.LogError($"获取物料信息接口调用异常:{ex.Message}"); - } - return materialInfos; - } - - /// - /// 根据物料编号获取物料信息 - /// - /// 物料编号 - /// - [HttpGet("Get/{materialCode}")] - public BaseMaterialInfo GetMaterialInfoByMaterialCode(string materialCode) - { - BaseMaterialInfo materialInfo = null; - try - { - materialInfo = _service.GetMaterialInfoByMaterialCode(materialCode); - } - catch (Exception ex) - { - _logger.LogError($"根据物料编号获取物料信息接口调用异常:{ex.Message}"); - } - return materialInfo; - } - - /// - /// 通过物料类别获取物料信息 - /// - /// 物料大类 - /// 物料细类 - /// - [HttpGet("Get/{majorTypeId}/{minorTypeId}")] - public IEnumerable GetMaterialInfosByMaterialType(int majorTypeId, string minorTypeId) - { - IEnumerable materialInfos = null; - try - { - materialInfos = _service.GetMaterialInfosByMaterialType(majorTypeId, minorTypeId); - } - catch (Exception ex) - { - _logger.LogError($"通过物料类别获取物料信息接口调用异常:{ex.Message}"); - } - return materialInfos; - } - } -} diff --git a/SlnMesnac/Controllers/BaseUserController.cs b/SlnMesnac/Controllers/BaseUserController.cs deleted file mode 100644 index 3cdd7e0..0000000 --- a/SlnMesnac/Controllers/BaseUserController.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using SlnMesnac.Model.domain; -using SlnMesnac.Plc; -using SlnMesnac.Repository.service; - -namespace SlnMesnac.Controllers -{ - /// - /// 人员基础信息 - /// - [Route("api/[controller]")] - [ApiController] - public class BaseUserController : ControllerBase - { - private readonly ILogger _logger; - - private readonly IBaseUserService _service; - - /// - /// - /// - /// - /// - public BaseUserController(ILogger logger, IBaseUserService service) - { - _logger = logger; - _service = service; - } - - /// - /// 获取人员基础信息 - /// - /// - [HttpGet] - public IEnumerable Get() - { - IEnumerable users = null; - try - { - users = _service.GetUsers(); - } - catch (Exception ex) - { - _logger.LogError($"获取用户信息接口调用异常:{ex.Message}"); - } - return users; - } - - /// - /// 通过用户名称获取指定用户信息 - /// - /// 用户名称 - /// - [HttpGet("Gets/{userName}")] - public IEnumerable GetUserByUserName(string userName) - { - IEnumerable users = null; - try - { - users = _service.GetUsers(); - } - catch (Exception ex) - { - _logger.LogError($"获取用户信息接口调用异常:{ex.Message}"); - } - return users; - } - - /// - /// 添加用户信息 - /// - /// 用户列表 - /// - [HttpPut] - public bool InsertUserInfo(List users) - { - return _service.InsertUsers(users); - } - } -} diff --git a/SlnMesnac/Controllers/JobController.cs b/SlnMesnac/Controllers/JobController.cs deleted file mode 100644 index e0be503..0000000 --- a/SlnMesnac/Controllers/JobController.cs +++ /dev/null @@ -1,61 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; -using Quartz; - -namespace SlnMesnac.Controllers -{ - /// - /// 任务调度 - /// - [ApiController] - [Route("api/[controller]")] - public class JobController - { - private readonly IScheduler _scheduler; - - /// - /// - /// - /// - public JobController(IScheduler scheduler) - { - _scheduler = scheduler; - } - - /// - /// 启动任务 - /// - /// 任务名称 - /// 任务分组 - /// - [HttpPost("start")] - public async Task StartJob(string jobName, string groupName) - { - // 检查调度器是否已经启动 - if (!_scheduler.IsStarted) - { - await _scheduler.Start(); - } - - var myJobKey = new JobKey(jobName, groupName); - await _scheduler.ResumeJob(myJobKey); - - return "Job started successfully."; - } - - /// - /// 停止任务 - /// - /// 任务名称 - /// 任务分组 - /// - [HttpPost("stop")] - public async Task StopJob(string jobName, string groupName) - { - var myJobKey = new JobKey(jobName, groupName); - await _scheduler.PauseJob(myJobKey); - - return "Job stopped successfully."; - } - } -} \ No newline at end of file diff --git a/SlnMesnac/Program.cs b/SlnMesnac/Program.cs deleted file mode 100644 index b76cbf2..0000000 --- a/SlnMesnac/Program.cs +++ /dev/null @@ -1,32 +0,0 @@ -using Serilog; - -namespace SlnMesnac -{ - /// - /// - /// - public class Program - { - /// - /// Main - /// - /// - public static void Main(string[] args) - { - CreateHostBuilder(args).Build().Run(); - } - - /// - /// CreateHostBuilder - /// - /// - /// - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .UseSerilog() - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - }); - } -} \ No newline at end of file diff --git a/SlnMesnac/Properties/launchSettings.json b/SlnMesnac/Properties/launchSettings.json deleted file mode 100644 index 3f9dcb9..0000000 --- a/SlnMesnac/Properties/launchSettings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:32147", - "sslPort": 44302 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - //"launchUrl": "swagger", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "SlnMesnac": { - "commandName": "Project", - "launchBrowser": true, - //"launchUrl": "swagger", - "applicationUrl": "http://localhost:5000", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} diff --git a/SlnMesnac/SlnMesnac.csproj b/SlnMesnac/SlnMesnac.csproj deleted file mode 100644 index 191e4dc..0000000 --- a/SlnMesnac/SlnMesnac.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - net6.0 - enable - enable - True - - - - - - - - - - - - - - - - - diff --git a/SlnMesnac/Startup.cs b/SlnMesnac/Startup.cs deleted file mode 100644 index 14525f4..0000000 --- a/SlnMesnac/Startup.cs +++ /dev/null @@ -1,121 +0,0 @@ -using Microsoft.OpenApi.Models; -using SlnMesnac.Config; -using SlnMesnac.Quartz; -using SlnMesnac.Serilog; -using SlnMesnac.Extensions; -using System.Runtime.Serialization; - -namespace SlnMesnac -{ - /// - /// - /// - public class Startup - { - /// - /// - /// - /// - public Startup(IConfiguration configuration) - { - Configuration = configuration; - } - - /// - /// - /// - public IConfiguration Configuration { get; } - - /// - /// This method gets called by the runtime. Use this method to add services to the container. - /// - /// - [Obsolete] - public void ConfigureServices(IServiceCollection services) - { - services.AddControllers(); - - //配置Swagger - services.AddSwaggerGen(swagger => - { - //自定义接口信息 - swagger.SwaggerDoc("V1.0", new OpenApiInfo - { - Title = "MES Web Api", - Version = "V1.0", - Description = $"API版本V1.0", - Contact = new OpenApiContact - { - Name = "MES Web Api", - Email = "wenjy@mesnac.com" - } - }); - - //自定义实体别名 - swagger.CustomSchemaIds(type => type.GetCustomAttributes(typeof(DataContractAttribute), true) - .Cast() - .FirstOrDefault()?.Name); - - //配置Action名称 - var path = Path.Combine(AppContext.BaseDirectory, "SlnMesnac.xml"); - swagger.IncludeXmlComments(path, true); // true : 显示控制器层注释 - swagger.OrderActionsBy(o => o.RelativePath); // 对action的名称进行排序,如果有多个,就可以看见效果了。 - }); - - //注册配置类 - services.AddSingleton(provider => - { - var configuration = provider.GetService(); - return configuration.GetSection("AppConfig").Get(); - - }); - - - //注册SqlSugar - services.AddSqlSugarSetup(); - - //注册服务 - //services.AddServices(); - - //注册任务调度 - services.AddQuartzSetUp(); - - } - - /// - /// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - /// - /// - /// - public void Configure(IApplicationBuilder app, IWebHostEnvironment env) - { - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - - //启用Swagger中间件 - app.UseSwagger(); - app.UseSwaggerUI(c => - { - c.SwaggerEndpoint("/swagger/V1.0/swagger.json", "MES Web Api V1.0"); - c.RoutePrefix = ""; - }); - - //启用Serilog中间件 - app.UseSerilogExtensions(); - - //app.UseHttpsRedirection(); - - app.UseRouting(); - - app.UseAuthorization(); - - app.UseEndpoints(endpoints => - { - endpoints.MapControllers(); - }); - - } - } -} diff --git a/SlnMesnac/appsettings.Development.json b/SlnMesnac/appsettings.Development.json deleted file mode 100644 index 0c208ae..0000000 --- a/SlnMesnac/appsettings.Development.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" - } - } -} diff --git a/SlnMesnac/appsettings.json b/SlnMesnac/appsettings.json deleted file mode 100644 index d05c71e..0000000 --- a/SlnMesnac/appsettings.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - "AppConfig": { - "logPath": "E:\\桌面\\日常代码\\SlnMesnac\\SlnMesnac\\bin\\Debug\\net6.0", - "mesConnStr": "server=.;uid=sa;pwd=123456;database=JiangYinMENS", - "mcsConnStr": "Data Source=175.27.215.92/helowin;User ID=aucma_scada;Password=aucma" - } -}