|
|
|
@ -55,6 +55,27 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
return base.StartAsync(cancellationToken);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void UpdateButtons(string number, string buttons)
|
|
|
|
|
{
|
|
|
|
|
using (var scope = _applicationServices.CreateScope())
|
|
|
|
|
{
|
|
|
|
|
var deviceRepo = scope.ServiceProvider.GetService<IRepository<Device>>();
|
|
|
|
|
var device = deviceRepo.Table().Include(o => o.Data).FirstOrDefault(o => o.Number == number);
|
|
|
|
|
if (device != null)
|
|
|
|
|
{
|
|
|
|
|
var data = device.Data.FirstOrDefault(o => o.Key == Keys.Buttons);
|
|
|
|
|
if (data != null)
|
|
|
|
|
{
|
|
|
|
|
data.Value = buttons.FromJson<List<KeyValuePair<string, int>>>().ToJson();
|
|
|
|
|
if (deviceRepo.SaveChanges() > 0)
|
|
|
|
|
{
|
|
|
|
|
this.SendDataToServer(data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void Execute()
|
|
|
|
|
{
|
|
|
|
|
var ips = NetworkInterface.GetAllNetworkInterfaces()
|
|
|
|
@ -480,6 +501,7 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
|
|
|
|
|
var deviceRepo = scope.ServiceProvider.GetService<IRepository<Device>>();
|
|
|
|
|
var device = this.GetDevice(deviceRepo, sn, ieee);
|
|
|
|
|
var online = isOnline != 0x00;
|
|
|
|
|
if (device == null)
|
|
|
|
|
{
|
|
|
|
|
device = new Device
|
|
|
|
@ -493,9 +515,19 @@ namespace IoTNode.DeviceServices.FBee
|
|
|
|
|
NodeId = node.Id
|
|
|
|
|
};
|
|
|
|
|
deviceRepo.Add(device);
|
|
|
|
|
device.IsOnline = online;
|
|
|
|
|
this.UpdateDevice(deviceRepo, device);
|
|
|
|
|
if (device.Name == "红外转发器")
|
|
|
|
|
{
|
|
|
|
|
var buttons = new List<KeyValuePair<string, int>>() { new KeyValuePair<string, int>("测试", 603) }.ToJson();
|
|
|
|
|
this.UpdateData(deviceRepo, device, device.CreateData(Keys.Buttons, buttons, DeviceDataType.String, "指令", timestamp: timestamp));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
device.IsOnline = online;
|
|
|
|
|
this.UpdateDevice(deviceRepo, device);
|
|
|
|
|
}
|
|
|
|
|
device.IsOnline = isOnline != 0x00;
|
|
|
|
|
this.UpdateDevice(deviceRepo, device);
|
|
|
|
|
this.UpdateData(deviceRepo, device, device.CreateData(Keys.DeviceId, deviceId, DeviceDataType.Int, Keys.DeviceId, hidden: true, timestamp: timestamp));
|
|
|
|
|
this.UpdateData(deviceRepo, device, device.CreateData(Keys.Address, address, DeviceDataType.String, Keys.Address, hidden: true, timestamp: timestamp));
|
|
|
|
|
this.UpdateData(deviceRepo, device, device.CreateData(Keys.EndPoint, endpoint, DeviceDataType.Int, Keys.EndPoint, hidden: true, timestamp: timestamp));
|
|
|
|
|