in BusTools/PwmTestTool/main.cpp [36:80]
void ListPwmControllers ()
{
using namespace Windows::Devices::Enumeration;
using namespace Platform::Collections;
std::wcout << L"Finding PwmControllers\n";
String^ friendlyNameProperty = L"System.Devices.SchematicName";
auto properties = ref new Vector<String^>();
properties->Append(friendlyNameProperty);
auto dis = concurrency::create_task(DeviceInformation::FindAllAsync(
PwmController::GetDeviceSelector(), properties)).get();
if (dis->Size < 1) {
std::wcout << L"There are no pwm controllers on this system.\n";
return;
}
std::wcout << L"Found " << dis->Size << L" PwmControllers\n";
std::wcout << L" SchematicName Id pincount minFrequency maxFrequency\n";
for (const auto& di : dis) {
String^ id = di->Id;
String^ friendlyName = L"<null>";
auto prop = di->Properties->Lookup(friendlyNameProperty);
if (prop != nullptr) {
friendlyName = prop->ToString();
}
std::wcout << L" " << friendlyName->Data() << L" " << id->Data() << L" ";
auto device = concurrency::create_task(PwmController::FromIdAsync(
id)).get();
if (!device) {
std::wostringstream msg;
std::wcout << L"Pwm controller " << id->Data() <<
L" is in use.\n";
continue;
}
std::wcout << device->PinCount << L" " << device->MinFrequency << L" " << device->MaxFrequency << L"\n";
}
}