using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HDL_ON.DAL;
using HDL_ON.DAL.Net;
using HDL_ON.Entity;
using HDL_ON.Entity.Enumerative;
using HDL_ON.UI;
using Newtonsoft.Json.Linq;
namespace HDL_ON
{
public partial class Control
{
public static byte[] Send(JObject commandString, Function function, int sendCount)
{
if (string.IsNullOrEmpty(function.A_Protocol))
{
try
{
var subnetID = Convert.ToByte(JObject.FromObject(function.Bus_Protocol).GetValue("SubnetID"));
var deviceID = Convert.ToByte(JObject.FromObject(function.Bus_Protocol).GetValue("DeviceID"));
byte[] bytes = DataConversion_Bus(commandString);
var sss = ControlBytesSendHasReturn(Command.SetSingleLight, subnetID, deviceID, bytes, sendCount);
return sss;
}
catch (Exception ex)
{
MainPage.Log($"发送数据异常: {ex.Message}");
}
}
else
{
var jObject = new JObject {
{ "DeviceAddr", 11},
{ "Epoint", 22},
{ "Cluster_ID", 8 },
{ "Command", 33},
{ "SendMode", 2 }
};
var data = new JObject {
{ "Level", 1 },
{ "TransitionTime", 0 }
};
jObject.Add("Data", data);
return null;
}
return null;
}
///
/// 将A协议控制数据转换程bus协议的控制数据
///
///
///
static byte[] DataConversion_Bus(JObject commandString)
{
//反馈:
//{
//"Namespace": "HDL", "Command": "writeRespone",
//“Type”:”device”, "objects": [{
//"sid": "0001002019101209000025670100010001”, "statue": "success”
//}] }
byte[] sendBytes;
switch (commandString.GetValue("Command").ToString())
{
case "write":
var jobj = JObject.FromObject(commandString.GetValue("objects"));
var functionType = jobj.GetValue("sid").ToString().Substring(24, 2);
switch ((FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(functionType)))
{
case FunctionType.Light:
if (jobj.ContainsKey("Switch"))//继电器
{
if (jobj.ContainsKey("Dimmer"))
{//调光器
}
else//继电器
{
}
}
break;
}
break;
}
return null;
}
}
}