This commit is contained in:
2024-09-25 15:44:59 +08:00
parent a76546ebe6
commit 6bf0d5d7ba
72 changed files with 21606 additions and 1608 deletions

View File

@@ -0,0 +1,101 @@
using HslCommunication;
using ImTools;
using NPOI.SS.Formula.Functions;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models.Tag
{
/// <summary>
/// 基础模型
/// </summary>
public abstract class BaseTag : BindableBase
{
/// <summary>
/// 实例化函数
/// </summary>
/// <param name="name"></param>
/// <param name="enName"></param>
/// <param name="tagType"></param>
public BaseTag(string name, string enName, string unit, TagType tagType)
{
TagTypeInfo = tagType;
Name = name;
Unit = unit;
EnName = enName;
}
/// <summary>
/// 名称 中文
/// </summary>
public string Name { get; set; }
/// <summary>
/// 名称 英文
/// </summary>
public string EnName { get; set; }
///// <summary>
///// 实时值
///// </summary>
public abstract IRegisterValue<T> RtValue { get; set; }
/////// <summary>
/////// 原始值实时值
/////// </summary>
//public abstract OperateResult<T> OperateResultSource { get; set; } //
/// <summary>
/// 标签类型信息
/// </summary>
public TagType TagTypeInfo { get; set; }
/// <summary>
/// 数据类型信息
/// </summary>
public abstract DataType DataTypeInfo { get; set; }
/// <summary>
/// 地址信息
/// </summary>
public string Address { get; set; }
/// <summary>
/// 地址信息 Index
/// </summary>
public string Index { get; set; }
/// <summary>
/// 最大值
/// </summary>
public double MaxValue { get; set; }
/// <summary>
/// 最小值
/// </summary>
public double MinValue { get; set; }
/// <summary>
/// 精度
/// 小数点
/// </summary>
public short Precision { get; set; }
/// <summary>
/// 单位
/// </summary>
public string? Unit { get; set; }
/// <summary>
/// 采样周期
/// </summary>
public int SamplingPeriod { get; set; }
}
}

View File

@@ -0,0 +1,77 @@
using HslCommunication;
using NPOI.SS.Formula.Functions;
using Prism.Mvvm;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models.Tag
{
/// <summary>
/// 字节变量模型
/// </summary>
public class ByteTag<T> /*: BaseTag*/
{
///// <summary>
///// 实例化函数
///// </summary>
///// <param name="name"></param>
///// <param name="enName"></param>
///// <param name="unit"></param>
///// <param name="tagType"></param>
//public ByteTag(string name, string enName, string unit, ComEnum.TagType tagType, T registerValue) : base(name, enName, unit, tagType)
//{
// //IRegisterValue<short> registerValue = new RegisterValue<short>();
// //RtValue = registerValue;
//}
public string Name { get; set; }
//T BaseTag.RtValue { get; set; }
//private IRegisterValue<T> _RtValue;
///// <summary>
///// 实时值
///// </summary>
//public override IRegisterValue<T> RtValue
//{
// get { return _RtValue; }
// set { _RtValue = value; RaisePropertyChanged(); }
//}
//public override IRegisterValue<T> RtValue { set => throw new NotImplementedException(); }
//private OperateResult<byte> _OperateResultSource;
///// <summary>
///// 原始值
///// </summary>
//public override OperateResult<byte> OperateResultSource
//{
// get { return _OperateResultSource; }
// set
// {
// if (value != _OperateResultSource)
// {
// RtValue = value.Content;
// }
// _OperateResultSource = value;
// }
//}
//private DataType _DataTypeInfo;
///// <summary>
///// 数据类型信息
///// </summary>
//public override DataType DataTypeInfo
//{
// get { return _DataTypeInfo; }
// set { _DataTypeInfo = value; RaisePropertyChanged(); }
//}
//public override IRegisterValue<T> RtValue { set => throw new NotImplementedException(); }
//public override IRegisterValue<T> RtValue => throw new NotImplementedException();
}
}

View File

@@ -0,0 +1,15 @@
using HslCommunication;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models.Tag
{
public interface IRegisterValue<T>
{
T Value { get; set; }
OperateResult<T> OperateResultSource { get; set; }
}
}

View File

@@ -0,0 +1,17 @@
using NPOI.SS.Formula.Functions;
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models.Tag
{
public interface ITag
{
string Name { get; set; }
T RtValue { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using HslCommunication;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models.Tag
{
public class RegisterValue : IRegisterValue<byte>
{
public byte Value { get; set; }
public OperateResult<byte>? OperateResultSource { get; set; }
}
}

View File

@@ -0,0 +1,59 @@
using HslCommunication;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models.Tag
{
/// <summary>
/// 实时数据模型
/// </summary>
public class RtDataModel : TagInfo
{
/// <summary>
/// 实例化函数
/// </summary>
/// <param name="name"></param>
/// <param name="enName"></param>
/// <param name="unit"></param>
/// <param name="tagType"></param>
public RtDataModel(string name, string enName, string unit, TagType tagType, bool IsChart) : base(name, enName, unit, tagType)
{
IsChartShow = IsChart;
}
/// <summary>
/// 分类信息
/// </summary>
public string Category { get; set; }
/// <summary>
/// 通信结果 实时值
/// </summary>
private OperateResult<Int16> _OperateResultRtValue;
public OperateResult<Int16> OperateResultRtValue
{
get { return _OperateResultRtValue; }
set { _OperateResultRtValue = value; }
}
private double _RtValue;
/// <summary>
/// 实时值
/// </summary>
public double RtValue
{
get { return _RtValue; }
set { _RtValue = value; RaisePropertyChanged(); }
}
/// <summary>
/// 实时值的地址
/// </summary>
public string RtValueAddress { get; set; }
/// <summary>
/// 是否曲线显示
/// </summary>
public bool IsChartShow { get; set; }
}
}

View File

@@ -0,0 +1,55 @@
using HslCommunication;
using NPOI.SS.Formula.Functions;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models.Tag
{
///// <summary>
///// 字变量模型
///// </summary>
//public class ShortTag: BaseTag
//{
// public ShortTag(string name, string enName, string unit, ComEnum.TagType tagType) : base(name, enName, unit, tagType)
// {
// }
// private short _RtValue;
// /// <summary>
// /// 实时值
// /// </summary>
// public override short RtValue
// {
// get { return _RtValue; }
// set { _RtValue = value; RaisePropertyChanged(); }
// }
// private OperateResult<short> _OperateResultSource;
// /// <summary>
// /// 原始值
// /// </summary>
// public override OperateResult<short> OperateResultSource
// {
// get { return _OperateResultSource; }
// set
// {
// if (value != _OperateResultSource)
// {
// RtValue= value.Content;
// }
// _OperateResultSource = value;
// }
// }
// private DataType _DataTypeInfo;
// /// <summary>
// /// 数据类型信息
// /// </summary>
// public override DataType DataTypeInfo
// {
// get { return _DataTypeInfo; }
// set { _DataTypeInfo = value; RaisePropertyChanged(); }
// }
//}
}

View File

@@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models.Tag
{
/// <summary>
/// 标签帮助类
/// </summary>
public class TagHelper
{
private void ParseData(List<TagInfo> tagInfos)
{
//分组数据
var GroupData = tagInfos.GroupBy(x => x.DataTypeInfo).ToList();
foreach (var group in GroupData)
{
var key = group.Key;
var TagListData = group.ToList();
switch (group.Key)
{
case ComEnum.DataType.Short:
break;
case ComEnum.DataType.Double:
break;
case ComEnum.DataType.String:
break;
case ComEnum.DataType.Byte:
break;
default:
break;
}
}
}
}
}

View File

@@ -0,0 +1,93 @@
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models.Tag
{
/// <summary>
/// 标签的信息
/// </summary>
public abstract class TagInfo : BindableBase
{
/// <summary>
/// 实例化函数
/// </summary>
/// <param name="name"></param>
/// <param name="enName"></param>
/// <param name="tagType"></param>
public TagInfo(string name,string enName, string unit,TagType tagType)
{
TagTypeInfo = tagType;
Name = name;
Unit = unit;
EnName = enName;
//ListRtDataModel=new List<RtDataModel>();
}
//public List<RtDataModel> ListRtDataModel { get; set; }
/// <summary>
/// 名称 中文
/// </summary>
public string Name { get; set; }
/// <summary>
/// 名称 英文
/// </summary>
public string EnName { get; set; }
/// <summary>
/// 标签类型信息
/// </summary>
public TagType TagTypeInfo { get; set; }
/// <summary>
/// 数据类型信息
/// </summary>
public DataType DataTypeInfo { get; set; }
/// <summary>
/// 地址信息
/// </summary>
public string Address { get; set; }
/// <summary>
/// 地址信息 Index
/// </summary>
public string Index { get; set; }
/// <summary>
/// 最大值
/// </summary>
public double MaxValue { get; set; }
/// <summary>
/// 最小值
/// </summary>
public double MinValue { get; set; }
/// <summary>
/// 精度
/// 小数点
/// </summary>
public short Precision { get; set; }
/// <summary>
/// 单位
/// </summary>
public string? Unit { get; set; }
/// <summary>
/// 采样周期
/// </summary>
public int SamplingPeriod { get; set; }
}
}

View File

@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models.Tag
{
/// <summary>
/// 标签管理中心
/// </summary>
public class TagManager
{
public TagManager()
{
}
/// <summary>
/// 标签集合数据
/// </summary>
public List<BaseTag> ListTag = new List<BaseTag>();
///// <summary>
///// 增加标签
///// </summary>
//public void AddTag(BaseTag baseTag)
//{
// ListTag.Add(baseTag);
//}
///// <summary>
///// 增加集合标签
///// </summary>
///// <param name="baseTags"></param>
//public void AddRange(List<BaseTag<object>> baseTags)
//{
// ListTag.AddRange(baseTags);
//}
}
}

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static CapMachine.Wpf.Models.ComEnum;
namespace CapMachine.Wpf.Models.Tag
{
///// <summary>
///// 一般的处理方法
///// </summary>
///// <typeparam name="T"></typeparam>
//public class VarTag<T> : BaseTag
//{
// public VarTag(string name, string enName, string unit, ComEnum.TagType tagType) : base(name, enName, unit, tagType)
// {
// }
// private object _RtValue;
// /// <summary>
// /// 实时值
// /// </summary>
// public override object RtValue
// {
// get { return _RtValue; }
// set { _RtValue = (T)Convert.ChangeType(value, typeof(T)); RaisePropertyChanged(); }
// }
// private DataType _DataTypeInfo;
// /// <summary>
// /// 数据类型信息
// /// </summary>
// public override DataType DataTypeInfo
// {
// get { return _DataTypeInfo; }
// set { _DataTypeInfo = value; RaisePropertyChanged(); }
// }
//}
}