Before | After |
---|---|
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="//schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="//schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="//schemas.microsoft.com/appx/manifest/uap/windows10"
IgnorableNamespaces="uap mp">
:
:
:
<Capabilities>
<Capability Name="internetClient" />
</Capabilities>
</Package>
|
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="//schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="//schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="//schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:iot="//schemas.microsoft.com/appx/manifest/iot/windows10"
IgnorableNamespaces="uap mp iot">
:
:
:
<Capabilities>
<Capability Name="internetClient" />
<iot:Capability Name="lowLevelDevices" />
<DeviceCapability Name="109b86ad-f53d-4b76-aa5f-821e2ddf2141"/>
</Capabilities>
</Package>
|
if (LightningProvider.IsLightningEnabled)
{
LowLevelDevicesController.DefaultProvider = LightningProvider.GetAggregateProvider();
}
private const long timeoutMicros = 5000000;
private const long waitMicros = 1000000;
private long micros()
{
return (long)(sw.Elapsed.TotalMilliseconds * 1000.0);
}
private bool waitChange(GpioPinValue status, bool began)
{
long waitStartMicros = micros();
long waits = (began == true) ? timeoutMicros : waitMicros;
while (irpin_in.Read() == status) {
if (micros() - waitStartMicros > waits) return true;
}
return false;
}
private void OnClickReceive(object sender, RoutedEventArgs e)
{
SetButtonEnable(false);
Task.Run(async () => {
GpioPinValue moduleStatus;
long now, lastMicros;
sw.Restart();
now = micros();
lastMicros = micros();
bool began = false;
int stcount = 0;
moduleStatus = irpin_in.Read();
while (stcount < ST_MAX) {
bool waitStatus = waitChange(moduleStatus, began);
if (waitStatus == true) {
if (began == true) {
break;
} else {
continue;
}
} else {
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
txtSignal.Text = "Analyzing...";
});
began = true;
}
now = micros();
signalTimes[stcount++] = (int)((now - lastMicros) / 10);
lastMicros = now;
moduleStatus = (moduleStatus == GpioPinValue.High) ? GpioPinValue.Low : GpioPinValue.High;
}
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < stcount; i++) {
sb.AppendFormat("{0},", signalTimes[i]);
}
txtSignal.Text = sb.ToString();
SetButtonEnable(true);
});
});
}