|
|
|
@ -192,10 +192,7 @@ namespace FBeeService
|
|
|
|
|
if (device != null)
|
|
|
|
|
{
|
|
|
|
|
var address = device.Address;
|
|
|
|
|
var list = new List<byte>() { 0x16, 0x00 };
|
|
|
|
|
list.AddRange(sn.HexToBytes().Reverse());
|
|
|
|
|
list.Add(RequestType.xfe);
|
|
|
|
|
list.Add(RequestType.x82);
|
|
|
|
|
var list = new List<byte>();
|
|
|
|
|
list.Add(0x0d);
|
|
|
|
|
list.Add(0x02);
|
|
|
|
|
list.AddRange(address.HexToBytes());
|
|
|
|
@ -208,9 +205,6 @@ namespace FBeeService
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//0x83
|
|
|
|
|
//0x84
|
|
|
|
|
//0x85
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 0x07接收指定设备的开关状态
|
|
|
|
|
/// </summary>
|
|
|
|
@ -241,6 +235,55 @@ namespace FBeeService
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 0x83设置指定设备的亮度
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sn"></param>
|
|
|
|
|
/// <param name="ieee"></param>
|
|
|
|
|
/// <param name="value">0-255</param>
|
|
|
|
|
public void X83(string sn, string ieee, byte value)
|
|
|
|
|
{
|
|
|
|
|
using (var scope = _applicationServices.CreateScope())
|
|
|
|
|
{
|
|
|
|
|
var repo = scope.ServiceProvider.GetService<IRepository<FBeeDevice>>();
|
|
|
|
|
var device = repo.ReadOnlyTable().FirstOrDefault(o => o.Sn == sn && o.IEEE == ieee);
|
|
|
|
|
if (device != null)
|
|
|
|
|
{
|
|
|
|
|
var address = device.Address;
|
|
|
|
|
var list = new List<byte>();
|
|
|
|
|
list.AddRange(sn.HexToBytes().Reverse());
|
|
|
|
|
list.Add(RequestType.xfe);
|
|
|
|
|
list.Add(RequestType.x82);
|
|
|
|
|
list.Add(0x0d);
|
|
|
|
|
list.Add(0x02);
|
|
|
|
|
list.AddRange(address.HexToBytes());
|
|
|
|
|
list.AddRange(new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 });
|
|
|
|
|
list.Add(0x01);
|
|
|
|
|
list.AddRange(new byte[] { 0x00, 0x00 });
|
|
|
|
|
list.Add(value);
|
|
|
|
|
list.AddRange(new byte[] { 0x00, 0x00 });
|
|
|
|
|
this.Write(sn, RequestType.x82, list);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 0x29接收指定设备的亮度
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sn"></param>
|
|
|
|
|
/// <param name="data"></param>
|
|
|
|
|
private void X29(string sn, byte[] data)
|
|
|
|
|
{
|
|
|
|
|
using (var ms = new MemoryStream(data))
|
|
|
|
|
{
|
|
|
|
|
var responseType = ms.ReadByte();
|
|
|
|
|
var dataLength = ms.ReadByte();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//0x84
|
|
|
|
|
//0x85
|
|
|
|
|
|
|
|
|
|
//0x86
|
|
|
|
|
//0x87
|
|
|
|
|
//0x88
|
|
|
|
@ -592,33 +635,6 @@ namespace FBeeService
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private byte[] Command(byte[] data)
|
|
|
|
|
{
|
|
|
|
|
var command = new List<byte> { 0xfe, 0xa5, 0x00 };
|
|
|
|
|
command.Add((byte)data.Length);
|
|
|
|
|
command.AddRange(data);
|
|
|
|
|
command.Add((byte)command.Skip(2).Select(o => Convert.ToInt32(o)).Sum());
|
|
|
|
|
return command.ToArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private byte[] Data(byte[] data, bool crc16 = false)
|
|
|
|
|
{
|
|
|
|
|
var command = new List<byte> { 0xfe, 0xa5, 0x01 };
|
|
|
|
|
command.Add((byte)data.Length);
|
|
|
|
|
command.AddRange(data);
|
|
|
|
|
if (crc16)
|
|
|
|
|
{
|
|
|
|
|
var crc = Crc16.ComputeChecksum(data);
|
|
|
|
|
command.Add(crc[1]);
|
|
|
|
|
command.Add(crc[0]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
command.Add((byte)command.Skip(2).Select(o => Convert.ToInt32(o)).Sum());
|
|
|
|
|
}
|
|
|
|
|
return command.ToArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Write(string sn, byte commandType, List<byte> command)
|
|
|
|
|
{
|
|
|
|
|
this.Clients.TryGetValue(sn, out TcpClientWrapper client);
|
|
|
|
|