using System;
|
using System.Collections.Generic;
|
using Newtonsoft.Json.Linq;
|
namespace ZigBee.Device
|
{
|
public class DimmableLight : LightBase
|
{
|
public DimmableLight()
|
{
|
this.Type = DeviceType.DimmableLight;
|
}
|
/// <summary>
|
///亮度,整形,取值范围:0-254表示0%-100%
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int Level = 0;
|
|
/// <summary>
|
/// 读取亮度
|
/// </summary>
|
public void ReadLevel()
|
{
|
ReadAttri(Device.Cluster_ID.LevelControl, AttriButeId.LevelControl);
|
}
|
|
///<summary >
|
///设置设备亮度(Level)
|
///<para>value:亮度值取值范围:0-254</para>
|
///<para>command 0:Move to Level Command</para>
|
/// </summary>
|
public void SetLevel(int value)
|
{
|
var jObject = new JObject {
|
{ "DeviceAddr", DeviceAddr},
|
{ "Epoint", DeviceEpoint},
|
{ "Cluster_ID", 8 },
|
{ "Command", 4},
|
{ "SendMode", 2 }
|
};
|
var data = new JObject {
|
{ "Level", value },
|
{ "TransitionTime", 0 }
|
};
|
jObject.Add("Data", data);
|
Gateway?.Send("DeviceControl", jObject.ToString());
|
}
|
|
/////<summary >
|
/////调节亮度大小
|
/////<para>command 1 :Move Command; 5:Move to Level Command(with On/ Off)</para>
|
/////<para>moveMode:0: Up mode , Level 变大</para>
|
/////<para>moveMode 1:Down mode , Level变小</para>
|
///// </summary>
|
//public void MoveLevel(int moveMode, int command = 5)
|
//{
|
// var jobject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 8 }, { "Command", command }, { "SendMode", 2 } };
|
// var data = new JObject { { "MoveMode", moveMode }, { "Rate", 100 } };
|
// jobject.Add("Data", data);
|
// Gateway?.Send("DeviceControl", jobject.ToString());
|
//}
|
|
/////<summary >
|
/////Move Level Command
|
/////<para>command 2: Move Command;6:Move to Level Command(with On/ Off)</para>
|
// ///<para>StepMode:0 Up mode , Level 变大</para>
|
/////<para>StepMode:1 Down mode , Level变小</para>
|
///// </summary>
|
//public void StepLevel(int StepMode, int command = 6)
|
//{
|
//var jobject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 8 }, { "Command", command }, { "SendMode", 2 } };
|
//var data = new JObject { { "StepMode", StepMode }, { "StepSize", 50 }, { "TransitionTime", 0 } };
|
//jobject.Add("Data", data);
|
//Gateway?.Send("DeviceControl", jobject.ToString());
|
//}
|
|
///<summary >
|
///停止亮度调节
|
/// </summary>
|
//public void StopLevel()
|
//{
|
// var jobject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", DeviceEpoint }, { "Cluster_ID", 8 }, { "Command", 3 }, { "SendMode", 2 } };
|
// Gateway?.Send("DeviceControl", jobject.ToString());
|
//}
|
}
|
}
|