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()
|
{
|
}
|
/// <summary>
|
/// 当前设备类型
|
/// </summary>
|
public FunctionType funcType = FunctionType.UnKown;
|
/// <summary>
|
/// 功能分类
|
/// </summary>
|
public string funcClassification;
|
/// <summary>
|
/// 是否收藏
|
/// </summary>
|
public bool collection = false;
|
/// <summary>
|
/// 功能ID
|
/// </summary>
|
public string sid;
|
/// <summary>
|
/// 备注
|
/// </summary>
|
public string name;
|
/// <summary>
|
/// 保存数据时的文件名
|
/// </summary>
|
public string savePath = "";
|
/// <summary>
|
/// A协议数据格式
|
/// </summary>
|
public string a_Protocol_Namespace = "HDL";
|
/// <summary>
|
/// bus协议数据格式
|
/// </summary>
|
public string bus_Data;
|
/// <summary>
|
/// 房间ID列表
|
/// 该功能添加到到房间列表
|
/// </summary>
|
public List<string> roomIdList = new List<string>();
|
/// <summary>
|
/// 最后控制的一次状态
|
/// </summary>
|
public string lastState = "";
|
|
|
|
|
/// <summary>
|
/// 获取A协议控制字符串
|
/// </summary>
|
/// <param name="command">控制命令:write,read</param>
|
/// <returns></returns>
|
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;
|
}
|
/// <summary>
|
/// bus旧数据的子网ID
|
/// </summary>
|
public byte bus_SubnetId
|
{
|
get
|
{
|
var sss = JObject.Parse(bus_Data);
|
var subnetId = Convert.ToByte(sss.GetValue("SubnetID").ToString());
|
return subnetId;
|
}
|
}
|
|
/// <summary>
|
/// bus旧数据的设备ID
|
/// </summary>
|
public byte bus_DeviceId
|
{
|
get
|
{
|
var sss = JObject.Parse(bus_Data);
|
var deviceId = Convert.ToByte(sss.GetValue("DeviceID").ToString());
|
return deviceId;
|
}
|
}
|
/// <summary>
|
/// bus旧数据的回路ID
|
/// </summary>
|
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;
|
}
|
}
|
}
|