public async Task <VersionCommandClassReport[]> GetSupportedCommandClasses()
{
// is this node the controller?
if (await Controller.GetNodeID() == NodeID)
{
// yes, so return an empty collection. GetSupportedCommandClasses is not supported by the controller
return(new VersionCommandClassReport[0]);
}
var version = GetCommandClass <CommandClasses.Version>();
var commandClassVersions = new Dictionary <CommandClass, VersionCommandClassReport>();
foreach (var commandClass in System.Enum.GetValues(typeof(CommandClass)).Cast <CommandClass>())
{
var report = await version.GetCommandClass(commandClass);
commandClassVersions[commandClass] = report;
}
_commandClassVersions = commandClassVersions;
lock (_commandClassVersions)
{
return(_commandClassVersions.Values.Where(r => r.Version > 0).ToArray());
}
}