public static async Task GetDefault()

in sensors/Tools/SensorExplorer/Sensor.cs [525:1084]


        public static async Task<bool> GetDefault(bool getPLD)
        {
            InitializeLists();
            InitializeVariables();

            DeviceInformationCollection deviceInfoCollection;

            // Enumerate the Sensor class
            try
            {
                Guid sensorGuid = new Guid("{5175d334-c371-4806-b3ba-71fd53c9258d}");
                SensorClassDevice = await DeviceInformation.FindAllAsync(CustomDevice.GetDeviceSelector(sensorGuid));
                NumFailedEnumerations = SensorClassDevice.Count;
            }
            catch
            {
                OtherSensorFailed = true;
            }
            try
            {
                //GUIDSensorType_Accelerometer3D = {C2FB0F5F-E2D2-4C78-BCD0-352A9582819D}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Accelerometer.GetDeviceSelector(AccelerometerReadingType.Standard), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Accelerometer accelerometer = await Accelerometer.FromIdAsync(deviceInfo.Id);
                    AccelerometerStandardList.Add(accelerometer);
                    AccelerometerStandardDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if(pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            AccelerometerStandardPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            AccelerometerStandardPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                AccelerometerStandardFailed = true;
            }
            try
            {
                //GUIDSensorType_GravityVector = {03B52C73-BB76-463F-9524-38DE76EB700B}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Accelerometer.GetDeviceSelector(AccelerometerReadingType.Gravity), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Accelerometer accelerometer = await Accelerometer.FromIdAsync(deviceInfo.Id);
                    AccelerometerGravityList.Add(accelerometer);
                    AccelerometerGravityDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            AccelerometerGravityPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            AccelerometerGravityPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                AccelerometerGravityFailed = false;
            }
            try
            {
                //GUIDSensorType_LinearAccelerometer = {038B0283-97B4-41C8-BC24-5FF1AA48FEC7}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Accelerometer.GetDeviceSelector(AccelerometerReadingType.Linear), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Accelerometer accelerometer = await Accelerometer.FromIdAsync(deviceInfo.Id);
                    AccelerometerLinearList.Add(accelerometer);
                    AccelerometerLinearDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            AccelerometerLinearPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            AccelerometerLinearPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                AccelerometerLinearFailed = false;
            }
            try
            {
                //GUIDSensorType_ActivityDetection = {9D9E0118-1807-4F2E-96E4-2CE57142E196}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(ActivitySensor.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    ActivitySensor activitySensor = await ActivitySensor.FromIdAsync(deviceInfo.Id);
                    ActivitySensorList.Add(activitySensor);
                    ActivitySensorDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            ActivitySensorPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            ActivitySensorPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                ActivitySensorFailed = false;
            }
            try
            {
                Altimeter = Altimeter.GetDefault();

                if (Altimeter != null)
                {
                    AltimeterDeviceInfo = await DeviceInformation.CreateFromIdAsync(Altimeter.DeviceId);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(AltimeterDeviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = AltimeterDeviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            AltimeterPLD = await GetPLDInformation(deviceInstanceId);
                        }
                        else
                        {
                            AltimeterPLD = pldInfo;
                        }
                    }
                }
            }
            catch
            {
                AltimeterFailed = false;
            }
            try
            {
                //GUIDSensorType_Barometer = {0E903829-FF8A-4A93-97DF-3DCBDE402288}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Barometer.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Barometer barometer = await Barometer.FromIdAsync(deviceInfo.Id);
                    BarometerList.Add(barometer);
                    BarometerDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            BarometerPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            BarometerPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                BarometerFailed = false;
            }
            try
            {
                //GUIDSensorType_Orientation = {CDB5D8F7-3CFD-41C8-8542-CCE622CF5D6E}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Compass.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Compass compass = await Compass.FromIdAsync(deviceInfo.Id);
                    CompassList.Add(compass);
                    CompassDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            CompassPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            CompassPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                CompassFailed = false;
            }
            try
            {
                //GUIDSensorType_Custom = {E83AF229-8640-4D18-A213-E22675EBB2C3}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(CustomSensor.GetDeviceSelector(new Guid("E83AF229-8640-4D18-A213-E22675EBB2C3")), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    CustomSensor customSensor = await CustomSensor.FromIdAsync(deviceInfo.Id);
                    CustomSensorList.Add(customSensor);
                    CustomSensorDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            CustomSensorPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            CustomSensorPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                CustomSensorFailed = false;
            }
            try
            {
                //GUIDSensorType_Gyrometer3D = {09485F5A-759E-42C2-BD4B-A349B75C8643}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Gyrometer.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Gyrometer gyrometer = await Gyrometer.FromIdAsync(deviceInfo.Id);
                    GyrometerList.Add(gyrometer);
                    GyrometerDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            GyrometerPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            GyrometerPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                GyrometerFailed = false;
            }
            try
            {
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Inclinometer.GetDeviceSelector(SensorReadingType.Absolute), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Inclinometer inclinometer = await Inclinometer.FromIdAsync(deviceInfo.Id);
                    InclinometerList.Add(inclinometer);
                    InclinometerDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            InclinometerPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            InclinometerPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                InclinometerFailed = false;
            }
            try
            {
                //GUIDSensorType_AmbientLight = {97F115C8-599A-4153-8894-D2D12899918A}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(LightSensor.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    LightSensor lightSensor = await LightSensor.FromIdAsync(deviceInfo.Id);
                    LightSensorList.Add(lightSensor);
                    LightSensorDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            LightSensorPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            LightSensorPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                LightSensorFailed = false;
            }
            try
            {
                //GUIDSensorType_Magnetometer3D = {55E5EFFB-15C7-40df-8698-A84B7C863C53}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Magnetometer.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Magnetometer magnetometer = await Magnetometer.FromIdAsync(deviceInfo.Id);
                    MagnetometerList.Add(magnetometer);
                    MagnetometerDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            MagnetometerPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            MagnetometerPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                MagnetometerFailed = false;
            }
            try
            {
                //GUIDSensorType_Orientation = {CDB5D8F7-3CFD-41C8-8542-CCE622CF5D6E}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(OrientationSensor.GetDeviceSelector(SensorReadingType.Absolute), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    OrientationSensor orientationSensor = await OrientationSensor.FromIdAsync(deviceInfo.Id);
                    OrientationAbsoluteList.Add(orientationSensor);
                    OrientationAbsoluteDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            OrientationAbsolutePLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            OrientationAbsolutePLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                OrientationAbsoluteFailed = false;
            }
            try
            {
                //GUIDSensorType_Orientation = {CDB5D8F7-3CFD-41C8-8542-CCE622CF5D6E}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(OrientationSensor.GetDeviceSelector(SensorReadingType.Absolute, SensorOptimizationGoal.PowerEfficiency), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    OrientationSensor orientationSensor = await OrientationSensor.FromIdAsync(deviceInfo.Id);
                    OrientationGeomagneticList.Add(orientationSensor);
                    OrientationGeomagneticDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            OrientationGeomagneticPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            OrientationGeomagneticPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                OrientationGeomagneticFailed = false;
            }
            try
            {
                //GUIDSensorType_RelativeOrientation = {40993B51-4706-44DC-98D5-C920C037FFAB}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(OrientationSensor.GetDeviceSelector(SensorReadingType.Relative), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    OrientationSensor orientationSensor = await OrientationSensor.FromIdAsync(deviceInfo.Id);
                    OrientationRelativeList.Add(orientationSensor);
                    OrientationRelativeDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            OrientationRelativePLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            OrientationRelativePLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                OrientationRelativeFailed = false;
            }
            try
            {
                //GUIDSensorType_Pedometer = {B19F89AF-E3EB-444B-8DEA-202575A71599}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(Pedometer.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    Pedometer pedometer = await Pedometer.FromIdAsync(deviceInfo.Id);
                    PedometerList.Add(pedometer);
                    PedometerDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            PedometerPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            PedometerPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                PedometerFailed = false;
            }
            try
            {
                //GUIDSensorType_Proximity = {5220DAE9-3179-4430-9F90-06266D2A34DE}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(ProximitySensor.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    ProximitySensor proximitySensor = ProximitySensor.FromId(deviceInfo.Id);
                    ProximitySensorList.Add(proximitySensor);
                    ProximitySensorDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);

                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            ProximitySensorPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            ProximitySensorPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                ProximitySensorFailed = false;
            }
            try
            {
                //GUIDSensorTypeSimpleDeviceOrientation = {86A19291-0482-402C-BF4C-ADDAC52B1C39}
                deviceInfoCollection = await DeviceInformation.FindAllAsync(SimpleOrientationSensor.GetDeviceSelector(), Constants.RequestedProperties);
                foreach (DeviceInformation deviceInfo in deviceInfoCollection)
                {
                    SimpleOrientationSensor simpleOrientationSensor = await SimpleOrientationSensor.FromIdAsync(deviceInfo.Id);
                    SimpleOrientationSensorList.Add(simpleOrientationSensor);
                    SimpleOrientationSensorDeviceInfo.Add(deviceInfo);

                    if (getPLD)
                    {
                        var pldInfo = await GetPLDInformation(deviceInfo.Id, DeviceInformationKind.DeviceInterface);



                        if (pldInfo == null)
                        {
                            string deviceInstanceId = deviceInfo.Properties[Constants.Properties["DEVPKEY_Device_InstanceId"]].ToString();
                            SimpleOrientationSensorPLD.Add(await GetPLDInformation(deviceInstanceId));
                        }
                        else
                        {
                            SimpleOrientationSensorPLD.Add(pldInfo);
                        }
                    }
                }
            }
            catch
            {
                SimpleOrientationSensorFailed = false;
            }

            return true;
        }