using System;
|
using Newtonsoft.Json.Linq;
|
|
namespace HDL_ON.Entity
|
{
|
public class Curtain : Function
|
{
|
/*
|
窗帘属性列表:trait: [switch,openLevel,lock]
|
属性 描述
|
switch on/off/stop;
|
openLevel 0-100;
|
lock boolean (Lock锁定控制)
|
*/
|
public Curtain()
|
{
|
}
|
/// <summary>
|
/// 窗帘状态
|
/// 0停;1开;2关
|
/// </summary>
|
public byte state = 0;
|
|
|
/// <summary>
|
/// 获取功能类型
|
/// </summary>
|
/// <returns></returns>
|
protected override string GetFunctionType()
|
{
|
string type = "Curtain";
|
if (PropertyArray.Contains("curtaintype"))
|
{
|
type = "MotorCurtain";
|
if (PropertyArray.Contains("rollingshutter"))
|
{
|
type = "RollingShutter";
|
}
|
}
|
return type;
|
}
|
|
|
/// <summary>
|
/// 拼接、获取A协议操作数据
|
/// </summary>
|
public override JObject GetSendJObject(string command)
|
{
|
var sendJob = new JObject();
|
if (command == "write")
|
{
|
|
sendJob = new JObject { { "vendor_code", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" } };
|
JObject data = null;
|
switch (functionType)
|
{
|
case "Curtain"://窗帘模块控制
|
data = new JObject { { "switch", state }, { "sid", sid } };
|
break;
|
case "MotorCurtain":
|
case "RollingShutter":
|
data = new JObject { { "openLevel", dicPropert["openLevel"] }, { "sid", sid } };
|
break;
|
}
|
sendJob.Add("objects", data);
|
}
|
else if (command == "read")
|
{
|
sendJob = new JObject { { "vendor_code", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" } };
|
var data = new JObject { { "sid", sid } };
|
sendJob.Add("objects", data);
|
}
|
return sendJob;
|
}
|
|
|
}
|
}
|