This commit is contained in:
chi
2025-04-24 11:51:55 +09:00
parent 0a93a54a6f
commit f71b963851
62 changed files with 1748 additions and 4105 deletions

View File

@@ -135,10 +135,7 @@ namespace COMM
public enum eVarTime
{
LastConnTry_PLC,
LastConn_PLC,
LastRecv_PLC,
LastConnTry_XBE,
LastConn_XBE,
LastRecv_XBE,

View File

@@ -1,340 +1,340 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
//using System;
//using System.Collections.Generic;
//using System.ComponentModel;
//using System.Linq;
//using System.Text;
namespace COMM
{
public abstract class VarData<T> : INotifyPropertyChanged
{
protected T[] _values;
protected T defaultvalue;
protected string[] _code;
protected string[] _desc;
//namespace COMM
//{
// public abstract class VarData<T> : INotifyPropertyChanged
// {
// protected T[] _values;
// protected T defaultvalue;
// protected string[] _code;
// protected string[] _desc;
public event PropertyChangedEventHandler PropertyChanged;
// public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
// protected void OnPropertyChanged(string name)
// {
// PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
// }
public T this[int idx]
{
get { return Get(idx); }
set { Set(idx, value); }
}
// public T this[int idx]
// {
// get { return Get(idx); }
// set { Set(idx, value); }
// }
public string StrType
{
get
{
return typeof(T).ToString();
}
}
public VarData(int capa, T defvalue = default(T))
{
_values = new T[capa];
_code = new string[capa];
_desc = new string[capa];
// public string StrType
// {
// get
// {
// return typeof(T).ToString();
// }
// }
// public VarData(int capa, T defvalue = default(T))
// {
// _values = new T[capa];
// _code = new string[capa];
// _desc = new string[capa];
defaultvalue = defvalue;
Clear();
// defaultvalue = defvalue;
// Clear();
if (typeof(T) == typeof(UInt16)) SupportAdd = true;
else if (typeof(T) == typeof(UInt32)) SupportAdd = true;
else if (typeof(T) == typeof(Int16)) SupportAdd = true;
else if (typeof(T) == typeof(Int32)) SupportAdd = true;
else if (typeof(T) == typeof(Int64)) SupportAdd = true;
else if (typeof(T) == typeof(UInt64)) SupportAdd = true;
else if (typeof(T) == typeof(byte)) SupportAdd = true;
else if (typeof(T) == typeof(double)) SupportAdd = true;
else if (typeof(T) == typeof(Single)) SupportAdd = true;
else if (typeof(T) == typeof(string)) SupportAdd = false;
else if (typeof(T) == typeof(bool)) SupportAdd = false;
else if (typeof(T) == typeof(DateTime)) SupportAdd = false;
else throw new Exception($"Support Data Type : {typeof(T)}");
}
// if (typeof(T) == typeof(UInt16)) SupportAdd = true;
// else if (typeof(T) == typeof(UInt32)) SupportAdd = true;
// else if (typeof(T) == typeof(Int16)) SupportAdd = true;
// else if (typeof(T) == typeof(Int32)) SupportAdd = true;
// else if (typeof(T) == typeof(Int64)) SupportAdd = true;
// else if (typeof(T) == typeof(UInt64)) SupportAdd = true;
// else if (typeof(T) == typeof(byte)) SupportAdd = true;
// else if (typeof(T) == typeof(double)) SupportAdd = true;
// else if (typeof(T) == typeof(Single)) SupportAdd = true;
// else if (typeof(T) == typeof(string)) SupportAdd = false;
// else if (typeof(T) == typeof(bool)) SupportAdd = false;
// else if (typeof(T) == typeof(DateTime)) SupportAdd = false;
// else throw new Exception($"Support Data Type : {typeof(T)}");
// }
public virtual void Set(int idx, T value)
{
var changed = _values[idx].Equals(value);
_values[idx] = value;
if (changed) OnPropertyChanged($"{idx}|{value}"); //idx값을 알림한다
}
public virtual T Get(int idx)
{
return _values[idx];
}
// public virtual void Set(int idx, T value)
// {
// var changed = _values[idx].Equals(value);
// _values[idx] = value;
// if (changed) OnPropertyChanged($"{idx}|{value}"); //idx값을 알림한다
// }
// public virtual T Get(int idx)
// {
// return _values[idx];
// }
public virtual void Clear(T value)
{
for (int i = 0; i < _values.Length; i++)
_values[i] = value;
}
public virtual void Clear()
{
Clear(defaultvalue);
}
public void Clear(int idx)
{
_values[idx] = defaultvalue;
}
public Tuple<string, string> GetCodeDesc(int idx)
{
return new Tuple<string, string>(_code[idx], _desc[idx]);
}
public virtual bool SupportAdd { get; private set; }
}
// public virtual void Clear(T value)
// {
// for (int i = 0; i < _values.Length; i++)
// _values[i] = value;
// }
// public virtual void Clear()
// {
// Clear(defaultvalue);
// }
// public void Clear(int idx)
// {
// _values[idx] = defaultvalue;
// }
// public Tuple<string, string> GetCodeDesc(int idx)
// {
// return new Tuple<string, string>(_code[idx], _desc[idx]);
// }
// public virtual bool SupportAdd { get; private set; }
// }
public abstract class VarDataNumber<T> : VarData<T>
{
public VarDataNumber(int capa) : base(capa) { }
// public abstract class VarDataNumber<T> : VarData<T>
// {
// public VarDataNumber(int capa) : base(capa) { }
public abstract void Add(T value);
public abstract void Add(int idx, T value);
}
// public abstract void Add(T value);
// public abstract void Add(int idx, T value);
// }
public class VarDataI32 : VarDataNumber<Int32>
{
public VarDataI32(int capa) : base(capa) { }
// public class VarDataI32 : VarDataNumber<Int32>
// {
// public VarDataI32(int capa) : base(capa) { }
public override void Add(Int32 value)
{
for (int i = 0; i < _values.Length; i++)
_values[i] += value;
}
// public override void Add(Int32 value)
// {
// for (int i = 0; i < _values.Length; i++)
// _values[i] += value;
// }
public override void Add(int idx, Int32 value)
{
_values[idx] += value;
}
public void Add(eVarInt32 idx, Int32 value = 1)
{
Add((int)idx, value);
}
public void Clear(eVarInt32 idx)
{
Clear((int)idx);
}
public Int32 this[eVarInt32 idx]
{
get { return Get((int)idx); }
set { Set((int)idx, value); }
}
// public override void Add(int idx, Int32 value)
// {
// _values[idx] += value;
// }
// public void Add(eVarInt32 idx, Int32 value = 1)
// {
// Add((int)idx, value);
// }
// public void Clear(eVarInt32 idx)
// {
// Clear((int)idx);
// }
// public Int32 this[eVarInt32 idx]
// {
// get { return Get((int)idx); }
// set { Set((int)idx, value); }
// }
}
public class VarDataDBL : VarDataNumber<double>
{
public VarDataDBL(int capa) : base(capa) { }
// }
// public class VarDataDBL : VarDataNumber<double>
// {
// public VarDataDBL(int capa) : base(capa) { }
public override void Add(double value)
{
for (int i = 0; i < _values.Length; i++)
_values[i] += value;
}
// public override void Add(double value)
// {
// for (int i = 0; i < _values.Length; i++)
// _values[i] += value;
// }
public override void Add(int idx, double value)
{
_values[idx] += value;
}
public void Add(eVarDBL idx, double value = 1)
{
Add((int)idx, value);
}
public void Clear(eVarDBL idx)
{
Clear((int)idx);
}
public double this[eVarDBL idx]
{
get { return Get((int)idx); }
set { Set((int)idx, value); }
}
}
public class VarDataUI32 : VarDataNumber<UInt32>
{
public VarDataUI32(int capa) : base(capa) { }
// public override void Add(int idx, double value)
// {
// _values[idx] += value;
// }
// public void Add(eVarDBL idx, double value = 1)
// {
// Add((int)idx, value);
// }
// public void Clear(eVarDBL idx)
// {
// Clear((int)idx);
// }
// public double this[eVarDBL idx]
// {
// get { return Get((int)idx); }
// set { Set((int)idx, value); }
// }
// }
// public class VarDataUI32 : VarDataNumber<UInt32>
// {
// public VarDataUI32(int capa) : base(capa) { }
public override void Add(UInt32 value)
{
for (int i = 0; i < _values.Length; i++)
_values[i] += value;
}
// public override void Add(UInt32 value)
// {
// for (int i = 0; i < _values.Length; i++)
// _values[i] += value;
// }
public override void Add(int idx, UInt32 value)
{
_values[idx] += value;
}
public void Add(eVarUInt32 idx, UInt32 value = 1)
{
Add((int)idx, value);
}
public void Clear(eVarUInt32 idx)
{
Clear((int)idx);
}
public UInt32 this[eVarUInt32 idx]
{
get { return Get((int)idx); }
set { Set((int)idx, value); }
}
}
// public override void Add(int idx, UInt32 value)
// {
// _values[idx] += value;
// }
// public void Add(eVarUInt32 idx, UInt32 value = 1)
// {
// Add((int)idx, value);
// }
// public void Clear(eVarUInt32 idx)
// {
// Clear((int)idx);
// }
// public UInt32 this[eVarUInt32 idx]
// {
// get { return Get((int)idx); }
// set { Set((int)idx, value); }
// }
// }
public class VarDataByte : VarDataNumber<byte>
{
public VarDataByte(int capa) : base(capa) { }
// public class VarDataByte : VarDataNumber<byte>
// {
// public VarDataByte(int capa) : base(capa) { }
public override void Add(byte value)
{
for (int i = 0; i < _values.Length; i++)
_values[i] += value;
}
public override void Add(int idx, byte value)
{
_values[idx] += value;
}
public void Add(eVarByte idx, byte value)
{
Add((int)idx, value);
}
public byte this[eVarByte idx]
{
get
{
return Get((int)idx);
}
set
{
Set((int)idx, value);
}
}
}
// public override void Add(byte value)
// {
// for (int i = 0; i < _values.Length; i++)
// _values[i] += value;
// }
// public override void Add(int idx, byte value)
// {
// _values[idx] += value;
// }
// public void Add(eVarByte idx, byte value)
// {
// Add((int)idx, value);
// }
// public byte this[eVarByte idx]
// {
// get
// {
// return Get((int)idx);
// }
// set
// {
// Set((int)idx, value);
// }
// }
// }
public class VarDataBool : VarData<bool>
{
public VarDataBool(int capa) : base(capa) { }
// public class VarDataBool : VarData<bool>
// {
// public VarDataBool(int capa) : base(capa) { }
public bool this[eVarBool idx]
{
get
{
return Get(idx);
}
set
{
Set(idx, value);
}
}
public bool Get(eVarBool idx)
{
return Get((int)idx);
}
public void Set(eVarBool idx, bool value)
{
Set((int)idx, value);
}
}
// public bool this[eVarBool idx]
// {
// get
// {
// return Get(idx);
// }
// set
// {
// Set(idx, value);
// }
// }
// public bool Get(eVarBool idx)
// {
// return Get((int)idx);
// }
// public void Set(eVarBool idx, bool value)
// {
// Set((int)idx, value);
// }
// }
public class VarDataStr : VarData<string>
{
public VarDataStr(int capa) : base(capa, string.Empty) { }
public string Get(eVarString idx)
{
return Get((int)idx);
}
public void Set(eVarString idx, string value)
{
Set((int)idx, value);
}
public string this[eVarString idx]
{
get { return Get(idx); }
set { Set(idx, value); }
}
}
public class VarDataDateTime : VarData<DateTime>
{
public VarDataDateTime(int capa) : base(capa, new DateTime(1982, 11, 23)) { }
// public class VarDataStr : VarData<string>
// {
// public VarDataStr(int capa) : base(capa, string.Empty) { }
// public string Get(eVarString idx)
// {
// return Get((int)idx);
// }
// public void Set(eVarString idx, string value)
// {
// Set((int)idx, value);
// }
// public string this[eVarString idx]
// {
// get { return Get(idx); }
// set { Set(idx, value); }
// }
// }
// public class VarDataDateTime : VarData<DateTime>
// {
// public VarDataDateTime(int capa) : base(capa, new DateTime(1982, 11, 23)) { }
public DateTime this[eVarTime idx]
{
get
{
return Get((int)idx);
}
set
{
Set(idx, value);
}
}
// public DateTime this[eVarTime idx]
// {
// get
// {
// return Get((int)idx);
// }
// set
// {
// Set(idx, value);
// }
// }
public TimeSpan RUN(int idx)
{
return DateTime.Now - _values[idx];
}
public TimeSpan RUN(eVarTime idx)
{
return RUN((int)idx);
}
[Browsable(false)]
public void Add(int idx, TimeSpan value)
{
_values[idx] += value;
}
// public TimeSpan RUN(int idx)
// {
// return DateTime.Now - _values[idx];
// }
// public TimeSpan RUN(eVarTime idx)
// {
// return RUN((int)idx);
// }
// [Browsable(false)]
// public void Add(int idx, TimeSpan value)
// {
// _values[idx] += value;
// }
public void Add(eVarTime idx, TimeSpan value)
{
Add((int)idx, value);
}
/// <summary>
/// 지정된 시간으로 업데이트 합니다
/// </summary>
/// <param name="idx"></param>
/// <param name="value"></param>
public void Set(eVarTime idx, DateTime value)
{
Set((int)idx, value);
}
/// <summary>
/// 현재시간으로 업데이트 합니다
/// </summary>
/// <param name="idx"></param>
public void Set(eVarTime idx)
{
Set(idx, DateTime.Now);
}
public bool IsSet(eVarTime idx)
{
return this[idx].Year != 1982;
}
}
//공용변수(시간)
public static class VAR
{
public static VarDataBool BOOL;
public static VarDataByte BYTE;
public static VarDataStr STR;
public static VarDataDateTime TIME;
public static VarDataI32 I32;
public static VarDataUI32 U32;
public static VarDataDBL DBL;
// public void Add(eVarTime idx, TimeSpan value)
// {
// Add((int)idx, value);
// }
// /// <summary>
// /// 지정된 시간으로 업데이트 합니다
// /// </summary>
// /// <param name="idx"></param>
// /// <param name="value"></param>
// public void Set(eVarTime idx, DateTime value)
// {
// Set((int)idx, value);
// }
// /// <summary>
// /// 현재시간으로 업데이트 합니다
// /// </summary>
// /// <param name="idx"></param>
// public void Set(eVarTime idx)
// {
// Set(idx, DateTime.Now);
// }
// public bool IsSet(eVarTime idx)
// {
// return this[idx].Year != 1982;
// }
// }
// //공용변수(시간)
// public static class VAR
// {
// public static VarDataBool BOOL;
// public static VarDataByte BYTE;
// public static VarDataStr STR;
// public static VarDataDateTime TIME;
// public static VarDataI32 I32;
// public static VarDataUI32 U32;
// public static VarDataDBL DBL;
public static bool isInit { get; private set; } = false;
// public static bool isInit { get; private set; } = false;
public static void Init(int varlen)
{
if (isInit) return; //already init
//가변 데이트타임변수
BOOL = new VarDataBool(varlen);
BYTE = new VarDataByte(varlen);
STR = new VarDataStr(varlen);
TIME = new VarDataDateTime(varlen);
I32 = new VarDataI32(varlen);
U32 = new VarDataUI32(varlen);
DBL = new VarDataDBL(varlen);
isInit = true;
}
}
}
// public static void Init(int varlen)
// {
// if (isInit) return; //already init
// //가변 데이트타임변수
// BOOL = new VarDataBool(varlen);
// BYTE = new VarDataByte(varlen);
// STR = new VarDataStr(varlen);
// TIME = new VarDataDateTime(varlen);
// I32 = new VarDataI32(varlen);
// U32 = new VarDataUI32(varlen);
// DBL = new VarDataDBL(varlen);
// isInit = true;
// }
// }
//}