Former-commit-id: 679a0f1b8c3a4a1b9dd8e08935a8c0c63793f54b
TangShanKaiPing
wanggang 6 years ago
parent bd1289876a
commit 62b01ed6aa

@ -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);

@ -11,7 +11,8 @@
<th>名称</th>
<th>分类</th>
<th>分类编号</th>
<th>电源</th>
<th>电源开关</th>
<th>在线</th>
<th>开关</th>
<th>删除</th>
</tr>
@ -24,7 +25,8 @@
<td>@item.Name</td>
<td>@item.CategoryName</td>
<td>@item.CategoryNumber</td>
<td>@item.Power</td>
<td><input type="checkbox" readonly disabled @Html.Raw(item.Power == 1 ? "checked" : "") /></td>
<td><input type="checkbox" readonly disabled @Html.Raw(item.Status == 1 ? "checked" : "") /></td>
<td>
<a class="btn btn-primary cmd" href="/api/x82?sn=@item.Sn&ieee=@item.IEEE&status=1">开</a>
<a class="btn btn-primary cmd" href="/api/x82?sn=@item.Sn&ieee=@item.IEEE&status=0">关</a>

Loading…
Cancel
Save