1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
using FLY.Thick.RemoteHistory;
using FObjBase;
using SQLite;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FLY.OBJComponents.Common
{
public class FlyData_WarningHistory : IFlyData,IDbBase
{
public Int64 ID { get; set; }
/// <summary>
/// 时间
/// </summary>
public DateTime Time { get; set; }
/// <summary>
/// 出错码
/// </summary>
public int ErrCode { get; set; }
/// <summary>
/// 出错状态
/// </summary>
public ERR_STATE State { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 附加信息, json格式
/// </summary>
public string Accessory { get; set; }
/// <summary>
/// 可以被复位
/// </summary>
public bool CanReset { get; set; } = true;
public FlyData_WarningHistory Clone()
{
return new FlyData_WarningHistory()
{
Time = Time,
ErrCode = ErrCode,
State = State,
Description = Description
};
}
public string GetHeader()
{
return "时间,出错码,状态,描述";
}
public bool TryParse(string header, string str)
{
string[] items = str.Split(new char[] { ',' });
if (items.Length < 4)
return false;
DateTime dt;
if (DateTime.TryParse(items[0], out dt))
Time = dt;
else
return false;
int b;
if (int.TryParse(items[1], out b))
ErrCode = b;
else
return false;
ERR_STATE state;
if (Enum.TryParse<ERR_STATE>(items[2], out state))
State = state;
else
return false;
Description = items[3];
return true;
}
public override string ToString()
{
string str;
str = Time.ToString();
str += "," + ErrCode.ToString();
str += "," + State.ToString();
str += "," + Description;
return str;
}
}
/// <summary>
/// 报警状态
/// </summary>
public enum ERR_STATE
{
/// <summary>
/// 报警中
/// </summary>
ON,
/// <summary>
/// 关闭
/// </summary>
OFF
}
/// <summary>
/// 出错类型
/// </summary>
public struct ERRNO
{
public UInt16 Code;
public string Descrption;
}
public class PlcErrNos
{
public static PlcErrNos Instance { get; } = new PlcErrNos();
/// <summary>
/// PLC连接断开
/// </summary>
public ERRNO ERRNO_PLC_DISCONNECTED = new ERRNO() { Code = 65535, Descrption = "PLC连接断开" };
}
}