using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DataVAPI.Tool.IOT { /// /// IOT Model /// public class IotModel { public string id { get; set; } = Guid.NewGuid().ToString(); public string version { get; set; } = "1.0"; public T @params { get; set; } public string method { get; set; } = "thing.event.property.post"; } /// /// IOT 接收数据Model /// public class ReceiveModel { /// /// 设备详细信息 /// public DevBase deviceContext { get; set; } /// /// 设备属性 /// public ReceiveSXModel props { get; set; } /// /// 设备上下线状态 /// public Vls status { get; set; } } /// /// 接收数据Model /// public class ReceiveSXModel { /// /// 告警消息 /// public Vls GJXX { get; set; } /// /// 扩展属性 /// public Vls KZSX { get; set; } /// /// 基本属性 /// public Vls JBSX { get; set; } /// /// 节点状态 /// public Vls NodeStatus { get; set; } /// /// 日志消息 /// public Vls SZXX { get; set; } } /// /// IOT 设备属性 Model /// public class IOTDevSXModel { /// /// 硬件状态 /// public string HardwareStatus { get; set; } /// /// 扩展属性 /// public string KZSX { get; set; } /// /// 基本属性 /// public string JBSX { get; set; } /// /// 节点状态 /// public string NodeStatus { get; set; } /// /// Model /// public IOTDevSXModel() { } /// /// 序列化为JSON /// /// public string Tojson() { try { IotModel iotModel = new IotModel { @params = this }; string json = Tools.JsonConvertTools(iotModel); return json; } catch (Exception ex) { return string.Empty; } } /// /// 设置基本属性 /// /// /// public void SetJBSX(DevSX devSX) { try { JBSX = Tools.JsonConvertTools(devSX); } catch (Exception ex) { JBSX = string.Empty; } } /// /// 设置基本属性状态 /// /// /// public void SetJBSXStatus(DevSXBase sXBase, bool Status) { try { if (sXBase == null) return; DevSX dev = Tools.JsonToObjectTools(JBSX); dev.data?.ForEach(x => { if (x.SXMC == sXBase.SXMC && x.SXLX == sXBase.SXLX) { x.SXStatus = Status; } }); JBSX = Tools.JsonConvertTools(dev); } catch (Exception ex) { JBSX = string.Empty; } } /// /// 设置扩展属性 /// /// public void SetKZSX(DevSX devSX) { try { KZSX = Tools.JsonConvertTools(devSX); } catch (Exception ex) { KZSX = string.Empty; } } /// /// 设置扩展属性状态 /// /// /// public void SetKZSXStatus(DevSXBase sXBase, bool Status) { try { if (sXBase == null) return; DevSX dev = Tools.JsonToObjectTools(KZSX); dev.data?.ForEach(x => { if (x.SXMC == sXBase.SXMC && x.SXLX == sXBase.SXLX) { x.SXStatus = Status; } }); KZSX = Tools.JsonConvertTools(dev); } catch (Exception ex) { KZSX = string.Empty; } } } /// /// 告警消息 /// public class AlarmMessage { public List data { get; set; } } /// /// 告警Model /// public class AlarmModel : DeviceBase { /// /// 告警程度:提示 一般 严重 /// public string AlarmCD { get { return _AlarmCD; } set { _AlarmCD = value; if (_AlarmCD == "提示") DeviceColor = new ALYColor { r = 13, g = 254, b = 73, a = 1 }; else if (_AlarmCD == "一般") DeviceColor = new ALYColor { r = 245, g = 216, b = 13, a = 1 }; else if (_AlarmCD == "严重") DeviceColor = new ALYColor { r = 245, g = 13, b = 13, a = 1 }; } } private string _AlarmCD { get; set; } /// /// 颜色 /// public ALYColor DeviceColor { get; set; } } /// /// 设备上报属性 /// public class DevSX { public List data { get; set; } } /// /// 设备基本属性Model /// public class DevSXBase { /// /// 属性名称 /// public string SXMC { get; set; } /// /// 属性类型 /// public string SXLX { get; set; } /// /// 属性状态 /// private bool _SXStatus { get; set; } public bool SXStatus { get { return _SXStatus; } set { _SXStatus = value; if (_SXStatus) { SXZT = "正常"; } else { SXZT = "异常"; } } } private string _SXZT { get; set; } /// /// 属性状态:正常 异常 /// public string SXZT { get { return _SXZT; } set { _SXZT = value; if (_SXZT == "正常") { SXYC = new ALYColor { r = 13, g = 254, b = 73, a = 1 };//绿色 SXYCMS = ""; YCZT = ""; ButtonText = ""; ButtonYC = new ALYColor { r = 0, g = 0, b = 0, a = 0 }; } else if (_SXZT == "异常") { SXYC = new ALYColor { r = 245, g = 13, b = 13, a = 1 };//红色 ButtonText = "详情"; ButtonYC = new ALYColor { r = 48, g = 109, b = 201, a = 0.18 }; } } } /// /// 属性异常描述 /// public string SXYCMS { get; set; } public string YCZT { get; set; } /// /// 属性颜色 /// public ALYColor SXYC { get; set; } /// /// 按钮文字 /// public string ButtonText { get; set; } /// /// 按钮颜色 /// public ALYColor ButtonYC { get; set; } public DevSXBase() { SXZT = ""; SXYC = new ALYColor { r = 13, g = 254, b = 73, a = 1 };//绿色 SXYCMS = ""; YCZT = ""; ButtonText = ""; ButtonYC = new ALYColor { r = 0, g = 0, b = 0, a = 0 }; } } /// /// 设备颜色 /// public class ALYColor { public int r { get; set; } public int g { get; set; } public int b { get; set; } public double a { get; set; } } /// /// 变量 /// public class Vls { public long time { get; set; } public string value { get; set; } } }