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;
}
}
}