mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-04-12 20:17:03 +00:00
Merge pull request #1343 from PepperDash/device-interface-system
device interface system
This commit is contained in:
commit
bf248fe33e
2 changed files with 38 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<Version>2.15.1-local</Version>
|
||||
<Version>2.18.2-local</Version>
|
||||
<InformationalVersion>$(Version)</InformationalVersion>
|
||||
<Authors>PepperDash Technology</Authors>
|
||||
<Company>PepperDash Technology</Company>
|
||||
|
|
|
|||
|
|
@ -2185,6 +2185,8 @@ namespace PepperDash.Essentials
|
|||
};
|
||||
|
||||
SendMessageObject(message);
|
||||
|
||||
SendDeviceInterfaces(clientId);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2196,7 +2198,10 @@ namespace PepperDash.Essentials
|
|||
ClientId = clientId,
|
||||
Content = roomKey
|
||||
};
|
||||
|
||||
SendMessageObject(message);
|
||||
|
||||
SendDeviceInterfaces(clientId);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2214,6 +2219,8 @@ namespace PepperDash.Essentials
|
|||
};
|
||||
|
||||
SendMessageObject(message);
|
||||
|
||||
SendDeviceInterfaces(clientId);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -2227,6 +2234,36 @@ namespace PepperDash.Essentials
|
|||
};
|
||||
|
||||
SendMessageObject(newMessage);
|
||||
|
||||
SendDeviceInterfaces(clientId);
|
||||
}
|
||||
|
||||
private void SendDeviceInterfaces(string clientId)
|
||||
{
|
||||
this.LogDebug("Sending Device interfaces");
|
||||
var devices = DeviceManager.GetDevices();
|
||||
Dictionary<string, DeviceInterfaceInfo> deviceInterfaces = new Dictionary<string, DeviceInterfaceInfo>();
|
||||
|
||||
foreach (var device in devices)
|
||||
{
|
||||
var interfaces = device?.GetType().GetInterfaces().Select((i) => i.Name).ToList() ?? new List<string>();
|
||||
|
||||
deviceInterfaces.Add(device.Key, new DeviceInterfaceInfo
|
||||
{
|
||||
Key = device.Key,
|
||||
Name = (device as IKeyName)?.Name ?? "",
|
||||
Interfaces = interfaces
|
||||
});
|
||||
}
|
||||
|
||||
var message = new MobileControlMessage
|
||||
{
|
||||
Type = "/system/deviceInterfaces",
|
||||
ClientId = clientId,
|
||||
Content = JToken.FromObject(new { deviceInterfaces })
|
||||
};
|
||||
|
||||
SendMessageObject(message);
|
||||
}
|
||||
|
||||
private void HandleUserCode(JToken content, Action<string, string> action = null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue