using System;
|
using System.Collections.Generic;
|
using Newtonsoft.Json.Linq;
|
|
namespace HDL_ON.Entity
|
{
|
public class Curtain : Function
|
{
|
/*
|
窗帘属性列表:trait: [switch,openLevel,lock]
|
属性 描述
|
on_off on/off/stop;
|
openLevel 0-100;
|
lock boolean (Lock锁定控制)
|
*/
|
public Curtain()
|
{
|
}
|
[Newtonsoft.Json.JsonIgnore]
|
public Trait trait_openLevel;
|
/// <summary>
|
/// 开关百分比
|
/// 0-100
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int openLevel
|
{
|
get
|
{
|
try
|
{
|
if(trait_openLevel==null)
|
{
|
trait_openLevel = function.Find((obj) => obj.attri == "openLevel");
|
if (trait_openLevel == null)
|
{
|
trait_openLevel = new Trait()
|
{
|
attri = "openLevel",
|
value = new List<string> { "up", "down" },
|
max = 100,
|
min = 0,
|
};
|
}
|
trait_openLevel.curValues = trait_openLevel.min;
|
}
|
return Convert.ToInt32( trait_openLevel.curValues);
|
}
|
catch
|
{
|
MainPage.Log("openLevel 数据获取失败.");
|
return 0;
|
}
|
}
|
set
|
{
|
try
|
{
|
trait_openLevel.curValues = value;
|
}
|
catch
|
{
|
MainPage.Log("openLevel 数据刷新失败.");
|
}
|
}
|
}
|
|
/// <summary>
|
/// 拼接、获取A协议操作数据
|
/// </summary>
|
public override JObject GetSendJObject(CommandType_A command)
|
{
|
var sendJob = new JObject();
|
if (command == CommandType_A.write)
|
{
|
sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
|
JObject data = null;
|
switch (functionType)
|
{
|
case FunctionType.Curtain:
|
data = new JObject { { "on_off", on_off }, { "sid", sid } };
|
break;
|
case FunctionType.MotorCurtain:
|
case FunctionType.RollingShutter:
|
data = new JObject { { "openLevel", openLevel}, { "sid", sid } };
|
break;
|
}
|
sendJob.Add("objects", data);
|
}
|
else if (command == CommandType_A.read)
|
{
|
sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
|
var data = new JObject { { "sid", sid } };
|
sendJob.Add("objects", data);
|
}
|
return sendJob;
|
}
|
|
|
}
|
}
|