using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; namespace HDL_ON.Entity { public class Function { /* HDL统一协议格式:16bytes 厂商代号:2bytes 通讯方式:有线/无线/ZIGBEE等1bytes 产品识别码:以添加设备的年月日时分秒 + 随机数8bytes 功能类别:1bytes 数据表索引地址:2bytes 回路:2bytes 举例: 0001-00-201910120900002567-01-0001-0001 */ public Function() { } /// /// 当前设备类型 /// public FunctionType funcType = FunctionType.UnKown; /// /// 功能分类 /// public string funcClassification; /// /// 是否收藏 /// public bool collection = false; /// /// 功能ID /// public string sid; /// /// 备注 /// public string name; /// /// 保存数据时的文件名 /// public string savePath = ""; /// /// A协议数据格式 /// public string a_Protocol_Namespace = "HDL"; /// /// bus协议数据格式 /// public string bus_Data; /// /// 房间ID列表 /// 该功能添加到到房间列表 /// public List roomIdList = new List(); /// /// 最后控制的一次状态 /// public string lastState = ""; /// /// 获取A协议控制字符串 /// /// 控制命令:write,read /// public virtual JObject GetSendJObject(string command) { var sendJob = new JObject { { "Namespace", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" }, }; var data = new JObject { { "sid", sid } }; sendJob.Add("", data); return sendJob; } /// /// bus旧数据的子网ID /// public byte bus_SubnetId { get { var sss = JObject.Parse(bus_Data); var subnetId = Convert.ToByte(sss.GetValue("SubnetID").ToString()); return subnetId; } } /// /// bus旧数据的设备ID /// public byte bus_DeviceId { get { var sss = JObject.Parse(bus_Data); var deviceId = Convert.ToByte(sss.GetValue("DeviceID").ToString()); return deviceId; } } /// /// bus旧数据的回路ID /// public byte bus_LoopId { get { var sss = JObject.Parse(bus_Data); var loopId = Convert.ToByte(sss.GetValue("LoopID").ToString()); return loopId; } } public string bus_DeviceType = ""; public string GetBusId () { string busId = ""; if(!string.IsNullOrEmpty(bus_Data)) { var sss = JObject.Parse(bus_Data); var subnetId = sss.GetValue("SubnetID").ToString(); var deviceId = sss.GetValue("DeviceID").ToString(); var loopId = sss.GetValue("LoopID").ToString(); busId = subnetId + "_" + deviceId + "_" + loopId; } return busId; } } }