添加项目文件。
This commit is contained in:
83
CowainHmi/PlcDataTable/PlcTagColumn.cs
Normal file
83
CowainHmi/PlcDataTable/PlcTagColumn.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CowainHmi
|
||||
{
|
||||
public class PlcTagColumn : INotifyPropertyChanged
|
||||
{
|
||||
private string varValue = "";
|
||||
private string address = "DB1.0";
|
||||
|
||||
public PlcTagColumn()
|
||||
{
|
||||
}
|
||||
|
||||
public PlcTagColumn(string varName, string varDesc)
|
||||
{
|
||||
VarName = varName;
|
||||
VarDesc = varDesc;
|
||||
}
|
||||
public PlcTagColumn(string text)
|
||||
{
|
||||
string[] array = Regex.Split(text, "<,>", RegexOptions.IgnoreCase);
|
||||
if (array.Length == 8)
|
||||
{
|
||||
int val = 0;
|
||||
VarName = array[0];
|
||||
VarDesc = array[1];
|
||||
PLC = int.TryParse(array[2], out val) ? val : 0;
|
||||
Address = array[3];
|
||||
DatType = Enum.TryParse<字段.DatType>(array[4], out 字段.DatType datType) ? datType : 字段.DatType.INT16;
|
||||
DecimalPlaces = int.TryParse(array[5], out val) ? val : 0;
|
||||
StringLength = int.TryParse(array[6], out val) ? val : 0;
|
||||
IsReadOnly = bool.TryParse(array[7], out bool readOnly) ? readOnly : false;
|
||||
}
|
||||
}
|
||||
|
||||
public string VarName { get; set; }
|
||||
public string VarDesc { get; set; }
|
||||
public int PLC { get; set; } = 0;
|
||||
public string Address
|
||||
{
|
||||
get => address;
|
||||
set
|
||||
{
|
||||
if (address != value)
|
||||
{
|
||||
address = value;
|
||||
OnPropertyChanged(nameof(Address));
|
||||
}
|
||||
}
|
||||
}
|
||||
public 字段.DatType DatType { get; set; } = 字段.DatType.INT16;
|
||||
public int DecimalPlaces { get; set; } = 0;
|
||||
public int StringLength { get; set; } = 10;
|
||||
public bool IsReadOnly { get; set; }
|
||||
public string VarValue
|
||||
{
|
||||
get => varValue;
|
||||
set
|
||||
{
|
||||
if (varValue != value)
|
||||
{
|
||||
varValue = value;
|
||||
OnPropertyChanged(nameof(VarValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{VarName}<,>{VarDesc}<,>{PLC}<,>{Address}<,>{DatType.ToString()}<,>{DecimalPlaces}<,>{StringLength}<,>{IsReadOnly.ToString()}";
|
||||
}
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
protected virtual void OnPropertyChanged(string propertyName)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user