diff --git a/Data/Entities/DbDevice.cs b/Data/Entities/DbDevice.cs
index b0cff74..03e5865 100644
--- a/Data/Entities/DbDevice.cs
+++ b/Data/Entities/DbDevice.cs
@@ -5,28 +5,60 @@ using ProtocolType = PMSWPF.Enums.ProtocolType;
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的设备实体。
+///
[SugarTable("Device")]
public class DbDevice
{
- [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
- public int Id { get; set; }
-
- public string Name { get; set; }
-
+ ///
+ /// 设备的描述信息。
+ ///
[SugarColumn(IsNullable = true)]
public string? Description { get; set; }
- public string Ip { get; set; }
- public bool IsActive { get; set; }
- public bool IsRuning { get; set; }
-
+ ///
+ /// 设备的类型。
+ ///
[SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
public DeviceType DeviceType { get; set; }
+ ///
+ /// 设备的唯一标识符。
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
+ public int Id { get; set; }
+
+ ///
+ /// 设备的IP地址。
+ ///
+ public string Ip { get; set; }
+
+ ///
+ /// 表示设备是否处于活动状态。
+ ///
+ public bool IsActive { get; set; }
+
+ ///
+ /// 表示设备是否正在运行。
+ ///
+ public bool IsRuning { get; set; }
+
+ ///
+ /// 设备的名称。
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 设备的通信协议类型。
+ ///
+ [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
+ public ProtocolType ProtocolType { get; set; }
+
+ ///
+ /// 设备关联的变量表列表。
+ ///
[Navigate(NavigateType.OneToMany, nameof(DbVariableTable.DeviceId))]
[SugarColumn(IsNullable = true)]
public List? VariableTables { get; set; }
-
- [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public ProtocolType ProtocolType { get; set; }
}
\ No newline at end of file
diff --git a/Data/Entities/DbMenu.cs b/Data/Entities/DbMenu.cs
index 3091cd7..1567e29 100644
--- a/Data/Entities/DbMenu.cs
+++ b/Data/Entities/DbMenu.cs
@@ -4,22 +4,53 @@ using SqlSugar.DbConvert;
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的菜单实体。
+///
[SugarTable("Menu")]
public class DbMenu
{
- [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
- public int Id { get; set; }
- public string Icon { get; set; }
- public string Name { get; set; }
- public int ParentId { get; set; }
- [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public MenuType Type { get; set; }
-
- public int DataId { get; set; }
+ ///
+ /// 菜单项关联的数据。
+ ///
[SugarColumn(IsIgnore = true)]
- public Object? Data { get; set; }
-
+ public object? Data { get; set; }
+
+ ///
+ /// 菜单项关联的数据ID。
+ ///
+ public int DataId { get; set; }
+
+ ///
+ /// 菜单项的图标。
+ ///
+ public string Icon { get; set; }
+
+ ///
+ /// 菜单项的唯一标识符。
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 子菜单项列表。
+ ///
[SugarColumn(IsIgnore = true)]
public List Items { get; set; }
+ ///
+ /// 菜单项的名称。
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 父菜单项的ID。
+ ///
+ public int ParentId { get; set; }
+
+ ///
+ /// 菜单项的类型。
+ ///
+ [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
+ public MenuType Type { get; set; }
}
\ No newline at end of file
diff --git a/Data/Entities/DbMqtt.cs b/Data/Entities/DbMqtt.cs
index f115a6e..7a6aefe 100644
--- a/Data/Entities/DbMqtt.cs
+++ b/Data/Entities/DbMqtt.cs
@@ -4,76 +4,81 @@ using SqlSugar.DbConvert;
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的MQTT配置实体。
+///
[SugarTable("Mqtt")]
public class DbMqtt
{
- [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
- public int Id { get; set; }
+ ///
+ /// MQTT客户端ID。
+ ///
+ public string ClientID { get; set; } = String.Empty;
///
- /// MQTT主机
+ /// 创建时间。
+ ///
+ public DateTime CreateTime { get; set; } = DateTime.Now;
+
+ ///
+ /// MQTT主机。
///
public string Host { get; set; }
///
- /// MQTT主机端口
+ /// MQTT配置的唯一标识符。
///
- public int Port { get; set; }
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
+ public int Id { get; set; }
///
- /// 是否启用
+ /// 是否启用此MQTT配置。
///
public bool IsActive { get; set; }
///
- /// Mqtt平台
- ///
- [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public MqttPlatform Platform { get; set; }
-
-
- ///
- /// MQTT客户端名字
- ///
- public string Name { get; set; }
-
- ///
- /// MQTT客户端登录用户名
- ///
- public string UserName { get; set; } = String.Empty;
-
- ///
- /// MQTT客户端登录密码
- ///
- public string PassWord { get; set; } = String.Empty;
-
- ///
- /// MQTT客户端ID
- ///
- public string ClientID { get; set; }= String.Empty;
-
- ///
- /// MQTT发布主题
- ///
- public string PublishTopic { get; set; } = String.Empty;
-
- ///
- /// MQTT订阅主题
- ///
- public string SubTopics { get; set; }= String.Empty;
-
- ///
- /// 是否设置为默认MQTT客户端
+ /// 是否设置为默认MQTT客户端。
///
public int IsDefault { get; set; }
///
- /// 创建时间
+ /// MQTT客户端名字。
///
- public DateTime CreateTime { get; set; }= DateTime.Now;
+ public string Name { get; set; }
///
- /// MQTT备注
+ /// MQTT客户端登录密码。
+ ///
+ public string PassWord { get; set; } = String.Empty;
+
+ ///
+ /// Mqtt平台类型。
+ ///
+ [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
+ public MqttPlatform Platform { get; set; }
+
+ ///
+ /// MQTT主机端口。
+ ///
+ public int Port { get; set; }
+
+ ///
+ /// MQTT发布主题。
+ ///
+ public string PublishTopic { get; set; } = String.Empty;
+
+ ///
+ /// MQTT备注。
///
public string Remark { get; set; } = String.Empty;
+
+ ///
+ /// MQTT订阅主题。
+ ///
+ public string SubTopics { get; set; } = String.Empty;
+
+ ///
+ /// MQTT客户端登录用户名。
+ ///
+ public string UserName { get; set; } = String.Empty;
}
\ No newline at end of file
diff --git a/Data/Entities/DbNlog.cs b/Data/Entities/DbNlog.cs
index 9771f03..e296a74 100644
--- a/Data/Entities/DbNlog.cs
+++ b/Data/Entities/DbNlog.cs
@@ -2,30 +2,62 @@ using SqlSugar;
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的NLog日志实体。
+///
[SugarTable("nlog")]
public class DbNlog
{
- // INSERT INTO [dbo].[NLog] (
- // [Application], [Logged], [Level], [ThreadID],[Message],
- // [Logger], [Callsite], [Exception], [Url], [Action], [User]
- // ) VALUES (
- // @Application, @Logged, @Level,@ThreadID, @Message,
- // @Logger, @Callsite, @Exception, @Url, @Action, @User
- // )
+ ///
+ /// 日志调用位置。
+ ///
+ public string Callsite { get; set; }
+
+ ///
+ /// 日志调用行号。
+ ///
+ public int CallsiteLineNumber { get; set; }
+
+ ///
+ /// 异常信息。
+ ///
+ [SugarColumn(IsNullable = true, ColumnDataType = "text")]
+ public string Exception { get; set; }
+
+ ///
+ /// 日志的唯一标识符。
+ ///
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
public int Id { get; set; }
- public DateTime LogTime { get; set; }
+ ///
+ /// 日志级别。
+ ///
public string Level { get; set; }
- public int ThreadID { get; set; }
-
- [SugarColumn(IsNullable = true)] public string ThreadName { get; set; }
+ ///
+ /// 日志记录器名称。
+ ///
public string Logger { get; set; }
- public string Callsite { get; set; }
- public int CallsiteLineNumber { get; set; }
+
+ ///
+ /// 日志时间。
+ ///
+ public DateTime LogTime { get; set; }
+
+ ///
+ /// 日志消息内容。
+ ///
public string Message { get; set; }
- [SugarColumn(IsNullable = true, ColumnDataType = "text")]
- public string Exception { get; set; }
+ ///
+ /// 线程ID。
+ ///
+ public int ThreadID { get; set; }
+
+ ///
+ /// 线程名称。
+ ///
+ [SugarColumn(IsNullable = true)]
+ public string ThreadName { get; set; }
}
\ No newline at end of file
diff --git a/Data/Entities/DbUser.cs b/Data/Entities/DbUser.cs
index e312267..47a35b7 100644
--- a/Data/Entities/DbUser.cs
+++ b/Data/Entities/DbUser.cs
@@ -2,9 +2,15 @@
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的用户实体。
+///
[SugarTable("User")]
public class DbUser
{
+ ///
+ /// 用户的唯一标识符。
+ ///
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
public int Id { get; set; }
}
\ No newline at end of file
diff --git a/Data/Entities/DbVariableData.cs b/Data/Entities/DbVariableData.cs
index d3a7e3b..e91b2ff 100644
--- a/Data/Entities/DbVariableData.cs
+++ b/Data/Entities/DbVariableData.cs
@@ -4,123 +4,126 @@ using SqlSugar.DbConvert;
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的变量数据实体。
+///
[SugarTable("VarData")]
public class DbVariableData
{
///
- /// 变量唯一标识符
+ /// 报警的最大值阈值。
///
- [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
- public int Id { get; set; }
+ public double AlarmMax { get; set; }
///
- /// 关联的变量表ID
+ /// 报警的最小值阈值。
///
- public int VariableTableId { get; set; }
+ public double AlarmMin { get; set; }
///
- /// 关联的变量表实体
+ /// 数据转换规则或表达式。
///
- [Navigate(NavigateType.ManyToOne, nameof(VariableTableId))]
- public DbVariableTable? VariableTable { get; set; }
+ public string Converstion { get; set; } = String.Empty;
///
- /// 变量名称
+ /// 数据类型,例如Int、Float、String等。
///
- public string Name { get; set; }
+ public string DataType { get; set; } = String.Empty;
///
- /// 变量描述
+ /// 变量当前原始数据值。
+ ///
+ public string DataValue { get; set; } = String.Empty;
+
+ ///
+ /// 变量描述。
///
[SugarColumn(IsNullable = true)]
public string? Description { get; set; }
///
- /// 节点ID,用于标识变量在设备或系统中的唯一路径
- ///
- public string NodeId { get; set; } = String.Empty;
-
- ///
- /// 协议类型,例如Modbus、OPC UA等
- ///
- [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public ProtocolType ProtocolType { get; set; }
-
- ///
- /// 数据类型,例如Int、Float、String等
- ///
- public string DataType { get; set; }=String.Empty;
-
- ///
- /// 信号类型,例如模拟量、数字量等
- ///
- [SugarColumn(ColumnDataType = "varchar(20)", IsNullable = true, SqlParameterDbType = typeof(EnumToStringConvert))]
- public SignalType SignalType { get; set; }
-
- ///
- /// 变量当前原始数据值
- ///
- public string DataValue { get; set; } = String.Empty;
-
- ///
- /// 变量经过转换或格式化后的显示值
+ /// 变量经过转换或格式化后的显示值。
///
public string DisplayValue { get; set; } = String.Empty;
///
- /// 变量数据最后更新时间
+ /// 变量唯一标识符。
///
- public DateTime UpdateTime { get; set; } = DateTime.Now;
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
+ public int Id { get; set; }
///
- /// 最后更新变量数据的用户
+ /// 指示是否需要对变量进行报警监测。
///
- [SugarColumn(IsNullable = true)]
- public DbUser? UpdateUser { get; set; }
+ public bool IsAlarm { get; set; }
///
- /// 关联的MQTT配置列表
+ /// 指示变量是否处于激活状态。
+ ///
+ public bool IsActive { get; set; }
+
+ ///
+ /// 指示变量是否已被逻辑删除。
+ ///
+ public bool IsDeleted { get; set; }
+
+ ///
+ /// 指示是否需要保存变量数据。
+ ///
+ public bool IsSave { get; set; }
+
+ ///
+ /// 关联的MQTT配置列表。
///
[SugarColumn(IsNullable = true)]
public List? Mqtts { get; set; }
///
- /// 数据转换规则或表达式
+ /// 变量名称。
///
- public string Converstion { get; set; } = String.Empty;
+ public string Name { get; set; }
///
- /// 指示变量是否处于激活状态
+ /// 节点ID,用于标识变量在设备或系统中的唯一路径。
///
- public bool IsActive { get; set; }
+ public string NodeId { get; set; } = String.Empty;
///
- /// 指示是否需要保存变量数据
+ /// 协议类型,例如Modbus、OPC UA等。
///
- public bool IsSave { get; set; }
+ [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
+ public ProtocolType ProtocolType { get; set; }
///
- /// 数据保存的范围或阈值
+ /// 数据保存的范围或阈值。
///
public double SaveRange { get; set; }
///
- /// 指示是否需要对变量进行报警监测
+ /// 信号类型,例如模拟量、数字量等。
///
- public bool IsAlarm { get; set; }
+ [SugarColumn(ColumnDataType = "varchar(20)", IsNullable = true, SqlParameterDbType = typeof(EnumToStringConvert))]
+ public SignalType SignalType { get; set; }
///
- /// 报警的最小值阈值
+ /// 变量数据最后更新时间。
///
- public double AlarmMin { get; set; }
+ public DateTime UpdateTime { get; set; } = DateTime.Now;
///
- /// 报警的最大值阈值
+ /// 最后更新变量数据的用户。
///
- public double AlarmMax { get; set; }
+ [SugarColumn(IsNullable = true)]
+ public DbUser? UpdateUser { get; set; }
///
- /// 指示变量是否已被逻辑删除
+ /// 关联的变量表实体。
///
- public bool IsDeleted { get; set; }
+ [Navigate(NavigateType.ManyToOne, nameof(VariableTableId))]
+ public DbVariableTable? VariableTable { get; set; }
+
+ ///
+ /// 关联的变量表ID。
+ ///
+ public int VariableTableId { get; set; }
}
\ No newline at end of file
diff --git a/Data/Entities/DbVariableS7Data.cs b/Data/Entities/DbVariableS7Data.cs
index 8f254ac..d6687f3 100644
--- a/Data/Entities/DbVariableS7Data.cs
+++ b/Data/Entities/DbVariableS7Data.cs
@@ -2,6 +2,9 @@
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的S7变量数据实体,继承自DbVariableData。
+///
[SugarTable("S7DataVariable")]
public class DbVariableS7Data : DbVariableData
{
diff --git a/Data/Entities/DbVariableTable.cs b/Data/Entities/DbVariableTable.cs
index 0f3f48a..88dca82 100644
--- a/Data/Entities/DbVariableTable.cs
+++ b/Data/Entities/DbVariableTable.cs
@@ -4,25 +4,55 @@ using SqlSugar.DbConvert;
namespace PMSWPF.Data.Entities;
+///
+/// 表示数据库中的变量表实体。
+///
[SugarTable("VariableTable")]
public class DbVariableTable
{
- [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
- public int Id { get; set; }
-
- public string Name { get; set; }
-
- public bool IsActive { get; set; }
- [SugarColumn(IsNullable = true)] public string? Description { get; set; }
-
- [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
- public ProtocolType ProtocolType { get; set; }
-
+ ///
+ /// 变量表中包含的数据变量列表。
+ ///
[Navigate(NavigateType.OneToMany, nameof(DbVariableData.VariableTableId))]
public List? DataVariables { get; set; }
- [SugarColumn(IsNullable = true)] public int? DeviceId { get; set; }
-
+ ///
+ /// 变量表关联的设备。
+ ///
[Navigate(NavigateType.ManyToOne, nameof(DeviceId))]
public DbDevice? Device { get; set; }
+
+ ///
+ /// 变量表关联的设备ID。
+ ///
+ [SugarColumn(IsNullable = true)]
+ public int? DeviceId { get; set; }
+
+ ///
+ /// 变量表描述。
+ ///
+ [SugarColumn(IsNullable = true)]
+ public string? Description { get; set; }
+
+ ///
+ /// 变量表的唯一标识符。
+ ///
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增
+ public int Id { get; set; }
+
+ ///
+ /// 表示变量表是否处于活动状态。
+ ///
+ public bool IsActive { get; set; }
+
+ ///
+ /// 变量表名称。
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 变量表使用的协议类型。
+ ///
+ [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
+ public ProtocolType ProtocolType { get; set; }
}
\ No newline at end of file
diff --git a/Models/Device.cs b/Models/Device.cs
index d94cf0c..3dd8ff6 100644
--- a/Models/Device.cs
+++ b/Models/Device.cs
@@ -5,27 +5,66 @@ using SqlSugar.DbConvert;
namespace PMSWPF.Models;
+///
+/// 表示设备信息。
+///
public partial class Device : ObservableObject
{
- [ObservableProperty]private string description;
-
- [ObservableProperty] private int id;
-
- [ObservableProperty] private string ip;
-
- [ObservableProperty] private bool isActive = true;
-
- [ObservableProperty] private bool isAddDefVarTable = true;
-
- [ObservableProperty] private bool isRuning;
-
- [ObservableProperty] private string name;
-
+ ///
+ /// 设备的描述信息。
+ ///
+ [ObservableProperty]
+ private string description;
+
+ ///
+ /// 设备的类型。
+ ///
[SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))]
public DeviceType DeviceType { get; set; }
-
- public List? VariableTables { get; set; }
+
+ ///
+ /// 设备的唯一标识符。
+ ///
+ [ObservableProperty]
+ private int id;
+
+ ///
+ /// 设备的IP地址。
+ ///
+ [ObservableProperty]
+ private string ip;
+
+ ///
+ /// 表示设备是否处于活动状态。
+ ///
+ [ObservableProperty]
+ private bool isActive = true;
+
+ ///
+ /// 表示是否添加默认变量表。
+ ///
+ [ObservableProperty]
+ private bool isAddDefVarTable = true;
+
+ ///
+ /// 表示设备是否正在运行。
+ ///
+ [ObservableProperty]
+ private bool isRuning;
+
+ ///
+ /// 设备的名称。
+ ///
+ [ObservableProperty]
+ private string name;
+
+ ///
+ /// 设备的通信协议类型。
+ ///
public ProtocolType ProtocolType { get; set; }
-
-
+
+ ///
+ /// 设备关联的变量表列表。
+ ///
+ public List? VariableTables { get; set; }
}
\ No newline at end of file
diff --git a/Models/MenuBean.cs b/Models/MenuBean.cs
index 1c6b43a..ff3dad7 100644
--- a/Models/MenuBean.cs
+++ b/Models/MenuBean.cs
@@ -4,20 +4,58 @@ using PMSWPF.ViewModels;
namespace PMSWPF.Models;
+///
+/// 表示菜单项。
+///
public class MenuBean
{
-
- public int Id { get; set; }
- public string Icon { get; set; }
-
- public string Name { get; set; }
- public int ParentId { get; set; }
+ ///
+ /// 菜单项关联的数据。
+ ///
+ public object? Data { get; set; }
+
+ ///
+ /// 菜单项关联的数据ID。
+ ///
public int DataId { get; set; }
- public MenuType Type { get; set; }
-
- public ViewModelBase ViewModel { get; set; }
- public Object? Data { get; set; }
+
+ ///
+ /// 菜单项的图标。
+ ///
+ public string Icon { get; set; }
+
+ ///
+ /// 菜单项的唯一标识符。
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 子菜单项列表。
+ ///
public List Items { get; set; }
-
+
+ ///
+ /// 菜单项的名称。
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 父菜单项。
+ ///
public MenuBean Parent { get; set; }
+
+ ///
+ /// 父菜单项的ID。
+ ///
+ public int ParentId { get; set; }
+
+ ///
+ /// 菜单项的类型。
+ ///
+ public MenuType Type { get; set; }
+
+ ///
+ /// 菜单项关联的ViewModel。
+ ///
+ public ViewModelBase ViewModel { get; set; }
}
\ No newline at end of file
diff --git a/Models/Mqtt.cs b/Models/Mqtt.cs
index 54b05b7..e77d8a7 100644
--- a/Models/Mqtt.cs
+++ b/Models/Mqtt.cs
@@ -2,73 +2,78 @@
namespace PMSWPF.Models;
+///
+/// 表示MQTT配置信息。
+///
public class Mqtt
{
- public int Id { get; set; }
-
///
- /// MQTT主机
- ///
- public string Host { get; set; }
-
- ///
- /// MQTT主机端口
- ///
- public int Port { get; set; }
-
- ///
- /// 是否启用
- ///
- public bool IsActive { get; set; }
-
- ///
- /// Mqtt平台
- ///
- public MqttPlatform Platform { get; set; }
-
-
- ///
- /// MQTT客户端名字
- ///
- public string Name { get; set; }
-
- ///
- /// MQTT客户端登录用户名
- ///
- public string UserName { get; set; }
-
- ///
- /// MQTT客户端登录密码
- ///
- public string PassWord { get; set; } //变量状态
-
- ///
- /// MQTT客户端ID
+ /// MQTT客户端ID。
///
public string ClientID { get; set; }
///
- /// MQTT发布主题
- ///
- public string PublishTopic { get; set; }
-
- ///
- /// MQTT订阅主题
- ///
- public string SubTopics { get; set; }
-
- ///
- /// 是否设置为默认MQTT客户端
- ///
- public int IsDefault { get; set; }
-
- ///
- /// 连接时间
+ /// 连接时间。
///
public DateTime ConnTime { get; set; }
///
- /// MQTT备注
+ /// MQTT主机。
+ ///
+ public string Host { get; set; }
+
+ ///
+ /// MQTT配置的唯一标识符。
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 是否启用此MQTT配置。
+ ///
+ public bool IsActive { get; set; }
+
+ ///
+ /// 是否设置为默认MQTT客户端。
+ ///
+ public int IsDefault { get; set; }
+
+ ///
+ /// MQTT客户端名字。
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// MQTT客户端登录密码。
+ ///
+ public string PassWord { get; set; }
+
+ ///
+ /// Mqtt平台类型。
+ ///
+ public MqttPlatform Platform { get; set; }
+
+ ///
+ /// MQTT主机端口。
+ ///
+ public int Port { get; set; }
+
+ ///
+ /// MQTT发布主题。
+ ///
+ public string PublishTopic { get; set; }
+
+ ///
+ /// MQTT备注。
///
public string Remark { get; set; } = String.Empty;
+
+ ///
+ /// MQTT订阅主题。
+ ///
+ public string SubTopics { get; set; }
+
+ ///
+ /// MQTT客户端登录用户名。
+ ///
+ public string UserName { get; set; }
}
\ No newline at end of file
diff --git a/Models/Notification.cs b/Models/Notification.cs
index 2bb069a..bd9ff4a 100644
--- a/Models/Notification.cs
+++ b/Models/Notification.cs
@@ -2,9 +2,23 @@
namespace PMSWPF.Models;
+///
+/// 表示通知信息。
+///
public class Notification
{
- public string Message { get; set; }
- public NotificationType Type { get; set; }
+ ///
+ /// 通知是否为全局通知。
+ ///
public bool IsGlobal { get; set; }
+
+ ///
+ /// 通知消息内容。
+ ///
+ public string Message { get; set; }
+
+ ///
+ /// 通知类型。
+ ///
+ public NotificationType Type { get; set; }
}
\ No newline at end of file
diff --git a/Models/VariableData.cs b/Models/VariableData.cs
index c057651..257a2e9 100644
--- a/Models/VariableData.cs
+++ b/Models/VariableData.cs
@@ -2,110 +2,113 @@
namespace PMSWPF.Models;
+///
+/// 表示变量数据信息。
+///
public class VariableData
{
///
- /// 变量唯一标识符
- ///
- public int Id { get; set; }
- ///
- /// 关联的变量表ID
- ///
- public int VariableTableId { get; set; }
-
-
- ///
- /// 变量名称
- ///
- public string Name { get; set; }
-
- ///
- /// 变量描述
- ///
- public string Description { get; set; }=String.Empty;
-
- ///
- /// 节点ID,用于标识变量在设备或系统中的唯一路径
- ///
- public string NodeId { get; set; }
-
- ///
- /// 协议类型,例如Modbus、OPC UA等
- ///
- public ProtocolType ProtocolType { get; set; }
-
- ///
- /// 数据类型,例如Int、Float、String等
- ///
- public string DataType { get; set; }
-
- ///
- /// 信号类型,例如模拟量、数字量等
- ///
- public SignalType SignalType { get; set; }
-
- ///
- /// 变量当前原始数据值
- ///
- public string DataValue { get; set; }=String.Empty;
-
- ///
- /// 变量经过转换或格式化后的显示值
- ///
- public string DisplayValue { get; set; }=String.Empty;
-
- ///
- /// 变量数据最后更新时间
- ///
- public DateTime UpdateTime { get; set; }=DateTime.Now;
-
- ///
- /// 最后更新变量数据的用户
- ///
- public User UpdateUser { get; set; }
-
- ///
- /// 关联的MQTT配置列表
- ///
- public List Mqtts { get; set; }
-
- ///
- /// 数据转换规则或表达式
- ///
- public string Converstion { get; set; }=String.Empty;
-
- ///
- /// 指示变量是否处于激活状态
- ///
- public bool IsActive { get; set; }
-
- ///
- /// 指示是否需要保存变量数据
- ///
- public bool IsSave { get; set; }
-
- ///
- /// 数据保存的范围或阈值
- ///
- public double SaveRange { get; set; }
-
- ///
- /// 指示是否需要对变量进行报警监测
- ///
- public bool IsAlarm { get; set; }
-
- ///
- /// 报警的最小值阈值
- ///
- public double AlarmMin { get; set; }
-
- ///
- /// 报警的最大值阈值
+ /// 报警的最大值阈值。
///
public double AlarmMax { get; set; }
///
- /// 指示变量是否已被逻辑删除
+ /// 报警的最小值阈值。
+ ///
+ public double AlarmMin { get; set; }
+
+ ///
+ /// 数据转换规则或表达式。
+ ///
+ public string Converstion { get; set; } = String.Empty;
+
+ ///
+ /// 数据类型,例如Int、Float、String等。
+ ///
+ public string DataType { get; set; }
+
+ ///
+ /// 变量当前原始数据值。
+ ///
+ public string DataValue { get; set; } = String.Empty;
+
+ ///
+ /// 变量描述。
+ ///
+ public string Description { get; set; } = String.Empty;
+
+ ///
+ /// 变量经过转换或格式化后的显示值。
+ ///
+ public string DisplayValue { get; set; } = String.Empty;
+
+ ///
+ /// 变量唯一标识符。
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 指示是否需要对变量进行报警监测。
+ ///
+ public bool IsAlarm { get; set; }
+
+ ///
+ /// 指示变量是否处于激活状态。
+ ///
+ public bool IsActive { get; set; }
+
+ ///
+ /// 指示变量是否已被逻辑删除。
///
public bool IsDeleted { get; set; }
+
+ ///
+ /// 指示是否需要保存变量数据。
+ ///
+ public bool IsSave { get; set; }
+
+ ///
+ /// 关联的MQTT配置列表。
+ ///
+ public List Mqtts { get; set; }
+
+ ///
+ /// 变量名称。
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 节点ID,用于标识变量在设备或系统中的唯一路径。
+ ///
+ public string NodeId { get; set; }
+
+ ///
+ /// 协议类型,例如Modbus、OPC UA等。
+ ///
+ public ProtocolType ProtocolType { get; set; }
+
+ ///
+ /// 数据保存的范围或阈值。
+ ///
+ public double SaveRange { get; set; }
+
+ ///
+ /// 信号类型,例如模拟量、数字量等。
+ ///
+ public SignalType SignalType { get; set; }
+
+ ///
+ /// 变量数据最后更新时间。
+ ///
+ public DateTime UpdateTime { get; set; } = DateTime.Now;
+
+ ///
+ /// 最后更新变量数据的用户。
+ ///
+ public User UpdateUser { get; set; }
+
+ ///
+ /// 关联的变量表ID。
+ ///
+ public int VariableTableId { get; set; }
}
\ No newline at end of file
diff --git a/Models/VariableTable.cs b/Models/VariableTable.cs
index 29dccc9..29e12d1 100644
--- a/Models/VariableTable.cs
+++ b/Models/VariableTable.cs
@@ -3,16 +3,51 @@ using PMSWPF.Enums;
namespace PMSWPF.Models;
-public partial class VariableTable:ObservableObject
+///
+/// 表示变量表信息。
+///
+public partial class VariableTable : ObservableObject
{
- public int Id { get; set; }
- [ObservableProperty] private string name;
- [ObservableProperty] private string description;
-
- public ProtocolType ProtocolType { get; set; }
+ ///
+ /// 变量表关联的设备。
+ ///
+ public Device? Device { get; set; }
+
+ ///
+ /// 变量表关联的设备ID。
+ ///
+ public int? DeviceId { get; set; }
+
+ ///
+ /// 变量表描述。
+ ///
+ [ObservableProperty]
+ private string description;
+
+ ///
+ /// 变量表中包含的数据变量列表。
+ ///
public List DataVariables { get; set; }
+
+ ///
+ /// 变量表的唯一标识符。
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 表示变量表是否处于活动状态。
+ ///
[ObservableProperty]
private bool isActive;
- public int? DeviceId { get; set; }
- public Device? Device { get; set; }
+
+ ///
+ /// 变量表名称。
+ ///
+ [ObservableProperty]
+ private string name;
+
+ ///
+ /// 变量表使用的协议类型。
+ ///
+ public ProtocolType ProtocolType { get; set; }
}
\ No newline at end of file
diff --git a/ViewModels/DevicesViewModel.cs b/ViewModels/DevicesViewModel.cs
index 84caba7..1feb379 100644
--- a/ViewModels/DevicesViewModel.cs
+++ b/ViewModels/DevicesViewModel.cs
@@ -11,19 +11,36 @@ using PMSWPF.Services;
namespace PMSWPF.ViewModels;
+///
+/// 设备管理视图模型,负责设备的增删改查操作。
+///
public partial class DevicesViewModel : ViewModelBase
{
+ private readonly DataServices _dataServices;
+ private readonly IDialogService _dialogService;
private readonly DeviceRepository _deviceRepository;
private readonly ILogger _logger;
- private readonly IDialogService _dialogService;
- private readonly DataServices _dataServices;
-
-
- [ObservableProperty] private ObservableCollection _devices;
- [ObservableProperty] private Device _selectedDevice;
private readonly MenuRepository _menuRepository;
private readonly VarTableRepository _varTableRepository;
+ ///
+ /// 设备列表。
+ ///
+ [ObservableProperty]
+ private ObservableCollection _devices;
+
+ ///
+ /// 当前选中的设备。
+ ///
+ [ObservableProperty]
+ private Device _selectedDevice;
+
+ ///
+ /// 初始化 类的新实例。
+ ///
+ /// 日志记录器。
+ /// 对话框服务。
+ /// 数据服务。
public DevicesViewModel(
ILogger logger, IDialogService dialogService, DataServices dataServices
)
@@ -39,10 +56,8 @@ public partial class DevicesViewModel : ViewModelBase
_dataServices.OnDeviceListChanged += (devices) => { Devices = new ObservableCollection(devices); };
}
-
-
///
- /// 添加设备
+ /// 添加设备命令。
///
[RelayCommand]
public async void AddDevice()
@@ -55,44 +70,13 @@ public partial class DevicesViewModel : ViewModelBase
_logger.LogInformation("用户取消了添加设备操作。");
return;
}
+
await _deviceRepository.AddDeviceAndMenu(device);
}
-
///
- /// 编辑设备
+ /// 删除设备命令。
///
- [RelayCommand]
- public async void EditDevice()
- {
- try
- {
- if (SelectedDevice == null)
- {
- NotificationHelper.ShowMessage("你没有选择任何设备,请选择设备后再点击编辑设备", NotificationType.Error);
- return;
- }
-
- var editDievce = await _dialogService.ShowEditDeviceDialog(SelectedDevice);
- if (editDievce != null)
- {
- // 更新菜单
- var res = await _deviceRepository.Edit(editDievce);
- var menu = DataServicesHelper.FindMenusForDevice(editDievce, _dataServices.MenuTrees);
- if (menu != null)
- await _menuRepository.Edit(menu);
-
- MessageHelper.SendLoadMessage(LoadTypes.Menu);
- MessageHelper.SendLoadMessage(LoadTypes.Devices);
- }
- }
- catch (Exception e)
- {
- NotificationHelper.ShowMessage($"编辑设备的过程中发生错误:{e.Message}", NotificationType.Error);
- _logger.LogError($"编辑设备的过程中发生错误:{e}");
- }
- }
-
[RelayCommand]
public async void DeleteDevice()
{
@@ -126,4 +110,38 @@ public partial class DevicesViewModel : ViewModelBase
_logger.LogError($"删除设备的过程中发生错误:{e}");
}
}
+
+ ///
+ /// 编辑设备命令。
+ ///
+ [RelayCommand]
+ public async void EditDevice()
+ {
+ try
+ {
+ if (SelectedDevice == null)
+ {
+ NotificationHelper.ShowMessage("你没有选择任何设备,请选择设备后再点击编辑设备", NotificationType.Error);
+ return;
+ }
+
+ var editDievce = await _dialogService.ShowEditDeviceDialog(SelectedDevice);
+ if (editDievce != null)
+ {
+ // 更新菜单
+ var res = await _deviceRepository.Edit(editDievce);
+ var menu = DataServicesHelper.FindMenusForDevice(editDievce, _dataServices.MenuTrees);
+ if (menu != null)
+ await _menuRepository.Edit(menu);
+
+ MessageHelper.SendLoadMessage(LoadTypes.Menu);
+ MessageHelper.SendLoadMessage(LoadTypes.Devices);
+ }
+ }
+ catch (Exception e)
+ {
+ NotificationHelper.ShowMessage($"编辑设备的过程中发生错误:{e.Message}", NotificationType.Error);
+ _logger.LogError($"编辑设备的过程中发生错误:{e}");
+ }
+ }
}
\ No newline at end of file