diff --git a/projects/IoT/IoTServices/FBeeService/Application/Domain/Entities/FBeeDevice.cs b/projects/IoT/IoTServices/FBeeService/Application/Domain/Entities/FBeeDevice.cs index bf499618..7ce7cce3 100644 --- a/projects/IoT/IoTServices/FBeeService/Application/Domain/Entities/FBeeDevice.cs +++ b/projects/IoT/IoTServices/FBeeService/Application/Domain/Entities/FBeeDevice.cs @@ -30,7 +30,6 @@ namespace Application.Domain.Entities public string Sn { get; set; } public string Name { get; set; } - public string Number { get; set; } public string Icon { get; set; } public int CategoryNumber { get; set; } public string CategoryName { get; set; } diff --git a/projects/IoT/IoTServices/FBeeService/Infrastructure/DeviceService.cs b/projects/IoT/IoTServices/FBeeService/Infrastructure/DeviceService.cs index a0599f01..0665f620 100644 --- a/projects/IoT/IoTServices/FBeeService/Infrastructure/DeviceService.cs +++ b/projects/IoT/IoTServices/FBeeService/Infrastructure/DeviceService.cs @@ -96,22 +96,30 @@ namespace FBeeService this.DeviceOnOff(id, 0); } - private void DeviceOnOff(string id, byte status) + private void DeviceOnOff(string ieee, byte status) { - var sn = id.Split('-')[0]; - var address = id.Split('-')[1]; - var list = new List() { 0x16, 0x00 }; - list.AddRange(sn.HexToBytes().Reverse()); - list.Add(0xfe); - list.Add(0x82); - 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(status); - this.Clients[sn].Client.GetStream().Write(list.ToArray()); + using (var scope = _applicationServices.CreateScope()) + { + var repo = scope.ServiceProvider.GetService>(); + var device = repo.ReadOnlyTable().FirstOrDefault(o => o.Online != 0 && o.IEEE == ieee); + if (device != null) + { + var sn = device.Sn; + var address = device.Address; + var list = new List() { 0x16, 0x00 }; + list.AddRange(sn.HexToBytes().Reverse()); + list.Add(0xfe); + list.Add(0x82); + 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(status); + this.Clients[sn].Client.GetStream().Write(list.ToArray()); + } + } } public void Switch2AllOn(string id) @@ -383,7 +391,6 @@ namespace FBeeService device = new FBeeDevice { Sn = sn, - Number = $"{sn}-{address}", Name = deviceType.Name, Icon = deviceType.Icon, CategoryNumber = deviceType.RawDeviceId, diff --git a/projects/IoT/IoTServices/FBeeService/Startup.cs b/projects/IoT/IoTServices/FBeeService/Startup.cs index e8bc35bd..e8ad37b9 100644 --- a/projects/IoT/IoTServices/FBeeService/Startup.cs +++ b/projects/IoT/IoTServices/FBeeService/Startup.cs @@ -32,7 +32,7 @@ namespace FBeeService { base.OnModelCreating(modelBuilder); modelBuilder.Entity().HasIndex(o => o.Sn).IsUnique(); - modelBuilder.Entity().HasIndex(o => new { o.Sn, o.Number }).IsUnique(); + modelBuilder.Entity().HasIndex(o => new { o.Sn, o.IEEE }).IsUnique(); } public override void Seed(DbContext dbContext, IServiceProvider serviceProvider, IConfiguration configuration) diff --git a/projects/IoT/IoTServices/FBeeService/Views/Home/Index.cshtml b/projects/IoT/IoTServices/FBeeService/Views/Home/Index.cshtml index 59cfc905..a059068e 100644 --- a/projects/IoT/IoTServices/FBeeService/Views/Home/Index.cshtml +++ b/projects/IoT/IoTServices/FBeeService/Views/Home/Index.cshtml @@ -1,7 +1,7 @@ @model List - + @@ -10,7 +10,7 @@ @foreach (var item in Model) { - +
编号IEEE Sn 地址 开关
@item.Number@item.IEEE @item.Sn @item.Address @item.Power