我们现有的物联网平台使用 Azure 协议网关并且运行良好。我刚刚意识到 MS Azure 推出了一个新版本的协议网关,称为IoT Edge。我只是在寻找 IoT Edge 中可用的新功能,现在我完全混淆了这两个组件:
我知道答案可能是一个更广泛的讨论,但谁能提供一个简单的解释?
我正在寻找一种在Windows IOT上的Raspberry Pi 2.0上使用RFID"RC522"的方法.
它当然不是官方兼容......
官方的一个(OM5577演示板)在法国是昂贵的(我没有找到任何经销商出售它没有很多运费(总成本约80美元)).
RC522便宜(<10 $).它适用于Arduino和Linux上的Raspberry Pi 2.0.但不幸的是还没有Windows IOT.
我实际上是使用arduino作为桥梁......它不是最佳解决方案; 但工作良好,成本总是比OM5577低一半.
我找到了这个项目,并尝试将它们转换为带有Windows IOT SIP和IO的VS(Visual C++)项目......我悲惨地失败了......
在我的梦想中,我可以在C#中使用标准的Windows IOT"ProximityDevice"类.
你有什么想法吗?
提前致谢.
我正在开发一个基于音频输入控制LED灯条的winodws IoT项目.现在我有一些代码可以获取音频并使用AudioGraph API将其写入缓冲区,但我不知道如何将音频处理为一些有用的数据.
我的代码到目前为止:
private async void MainPage_Loaded(object sender, RoutedEventArgs eventArgs)
{
try
{
// Initialize the led strip
//await this.pixelStrip.Begin();
sampleAggregator.FftCalculated += new EventHandler<FftEventArgs>(FftCalculated);
sampleAggregator.PerformFFT = true;
// Create graph
AudioGraphSettings settings = new AudioGraphSettings(AudioRenderCategory.Media);
settings.DesiredSamplesPerQuantum = fftLength;
settings.DesiredRenderDeviceAudioProcessing = Windows.Media.AudioProcessing.Default;
settings.QuantumSizeSelectionMode = QuantumSizeSelectionMode.ClosestToDesired;
CreateAudioGraphResult result = await AudioGraph.CreateAsync(settings);
if (result.Status != AudioGraphCreationStatus.Success)
{
// Cannot create graph
return;
}
graph = result.Graph;
// Create a device input node using the default audio input device
CreateAudioDeviceInputNodeResult deviceInputNodeResult = await …Run Code Online (Sandbox Code Playgroud) 官方Raspberry Pi 7"触摸屏显示器(https://www.raspberrypi.org/products/raspberry-pi-touch-display/)与我的Raspberry Pi 2 B上运行的Windows 10 IoT Core非常配合,因为支持已添加回来在内幕预览中(显示和触摸功能正常).除了屏幕分辨率.它几乎是正确的,但屏幕上的所有内容都呈现水平略微拉伸,这使得应用UI具有便宜的感觉.最值得注意的是水平拉伸的圆形形状成椭圆形.
我已经搞乱了config.txt文件中的值,声称正在使用800x480,但没有任何更改似乎对屏幕有任何影响.有没有办法让分辨率800x480更好地适应屏幕的尺寸?以下是config.txt我正在使用的.请仔细看看; 我正在使用每个人都建议的自定义分辨率.我指的是屏幕上的轻微伸展,而不是完全不正确的分辨率.
# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details
# GPU Firmware SHA256 checksum: 7CE2EF13CDD77F1782FFFF98533572503DF4B46765966CC7E18F6C6455B9623A
# kernel.img SHA256 checksum: 8E86F0927DEC464C0D81BBD0B3E7C3FB852FE621853CD4F4E6D38786FAB573E4
# kernel.img git commit ID: 107b92c0ce491ba1e4d0d7068355cafa9da34920
#
# Boot
#
init_uart_clock=16000000 # Set UART clock to 16Mhz
kernel_old=1 # Load kernel.img at physical …Run Code Online (Sandbox Code Playgroud) 前段时间我在Raspberry Pi 3上构建了一个应用程序.其中,它使用步进电机驱动板控制步进电机.为了让电机向"步进"移动,我必须将输出引脚设置为高电平和低电平.电压的变化会导致电机进入下一个位置.我需要在电压变化之间有一个小的时间延迟才能正常工作.
我最初的研究表明,在UWP应用程序中获得时间延迟的最佳实践方法是使用异步Task.Delay()方法.我无法访问UWP中的Thread.Sleep方法,所以我试了一下.此外,由于该方法采用整数作为参数,因此1毫秒是我可以使用的最短延迟.
这是我第一次尝试的例子,制作了1600个连续的"步骤":
for (int i = 0; i < 1600; i++)
{
// (stepper driver board makes one step for every low-to-high transition)
StepperStepPin.Write(GpioPinValue.Low);
await Task.Delay(1); // wait 1 ms
StepperStepPin.Write(GpioPinValue.High);
await Task.Delay(1); // wait 1 ms
}
Run Code Online (Sandbox Code Playgroud)
理论上,在循环的每次迭代中延迟2ms,这应该花费大约3.2秒.实际上,它最终需要大约51秒.据我所知,调用此异步延迟方法的行为会增加大约15 ms的开销来启动异步线程.如果我只是偶尔使用更长的延迟,这将是不明显的.但是,当我不得不做成百次或数千次时,它会迅速增加.
经过多次挖掘,我发现了一个适合我的解决方案.我放弃了异步方法并使用System.Diagnostics.Stopwatch类进行同步方法,它也让我有亚毫秒延迟:
private readonly Stopwatch _sw = new System.Diagnostics.Stopwatch();
private void ShortDelay(double milliseconds) {
_sw.Start();
while ((_sw.Elapsed).TotalMilliseconds < milliseconds) { }
_sw.Reset();
}
//////////////////////////////////////////
for (int i = 0; i < 1600; i++)
{ …Run Code Online (Sandbox Code Playgroud) 我有一个在Raspberry Pi 2,Windows 10 IoT上运行的.NET Universal App的转储:
0:000> vertarget
Windows 10 Version 10240 MP (4 procs) Free ARM (NT) Thumb-2
Product: WinNt, suite: SingleUserTS
Built by: 10.0.10240.16384 (th1.150709-1700)
Run Code Online (Sandbox Code Playgroud)
我看到它coreclr像之前使用的Silverlight一样.
0:000> lm vm coreclr
start end module name
6e430000 6e7fd000 coreclr (export symbols) coreclr.dll
Loaded symbol image file: coreclr.dll
...
Timestamp: Thu Jul 16 21:37:39 2015 (55A88693)
...
File version: 4.6.23117.0
Product version: 4.0.23117.0
Run Code Online (Sandbox Code Playgroud)
执行a !analyze -v不会自动下载SOS.
加载我在PC上找到的SOS Silverlight版本表示版本错误:
0:000> .load C:\Program Files\Microsoft Silverlight\5.1.20513.0\sos.dll
0:000> !threads
The version …Run Code Online (Sandbox Code Playgroud) 重新连接到我的BLE设备时出现问题.
Senario工作 - BLE设备没有配对 - Pi启动我的应用程序,找到BLE设备,配对和连接,接收数据 - 启动Pi并启动我的应用程序,它不会配对已经配对,它连接正常和接收数据.
Senario无效 - BLE设备不是配对或无配对,无关紧要 - 如果我的BLE设备因断电或超出范围而断开连接并上电或返回范围,Pi将重新连接并抛出:'System.Exception 'in mscorlib.ni.dll指定的登录会话没有用户会话密钥.(HRESULT异常:0x80070572)
如果我尝试重新启动Pi,当我尝试执行时会抛出相同的消息:await _readCharacteristic.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify);
唯一有效的方法是每次断开连接时取消配对设备.
这个问题与这个人有同样的问题:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b98d77f2-bf5e-45fc-9495-1c444b54450e/uwpreconnecting-to-a-ble-csac-设备原因的异常?论坛= wpdevelop
也许这里有人见过同样的问题并解决了吗?
谢谢
如果我在UWP中创建一个应用程序,例如使用Template 10.我用C#
我希望GpioController在一个类或某个地方拥有逻辑来处理所有输入和输出业务,例如设置所有引脚和事件.
就像一个例子,当按下按钮时,它将向服务器发送POST请求,这必须在任何视图中工作.
如果我去看一个视图,我想得到一个图钉的状态显示"门是开着的"
另外,例如,如果传感器正在触发引脚为高电平,如果我改变视图,则它无法触发buttonPin_ValueChanged事件,或者由于任何原因将其设置为低电平,除非传感器为低电平.
即使引脚上电拉动是PullDown.
pin = gpio.OpenPin(12);
pin.SetDriveMode(GpioPinDriveMode.InputPullUp);
pin.Write(GpioPinValue.Low);
pin.ValueChanged += buttonPin_ValueChanged;
Run Code Online (Sandbox Code Playgroud) 我在不同的操作系统上测试.net内核,我想知道是否可以通过我的Raspberry PI3在Windows 10上安装dotnet/cli(.net Core).我的目标是进行简单的GPIO测试.
到目前为止我做了什么:
我错过了什么吗?这样做还为时过早?
PS:我在GitHub 中推出dotnet/cli问题.
2017-04-19:这个过程正在进行中,看看Raspberry Pi上的.NET Core
我试图在我的 Win 10 IoT UWP C# 应用程序中控制蓝牙 LE 设备的连接/断开,在 Raspberry Pi 3 SBC 上运行。Win 10 IoT 是 Windows Insiders Preview 版本 10.0.17035.1000。当我启动我的应用程序时,它识别广告 BLE 设备,成功连接并与之通信。然后我尝试通过应用推荐的程序断开此设备的连接:
device.Dispose();
设备 = 空;
GC.Collect();
甚至停止并重新启动 BluetoothLEAdvertisementWatcher。但是当这个设备再次开始广告时,它就无法识别了。据我了解,原因是该设备实际上并未断开连接(尽管它显示断开连接状态)或某些连接信息仍处于待处理状态,这会阻止它在新广告中被识别。
即使我不应用上述程序,也无法识别新设备广告(来自相同或其他 BLE 设备),在这两种情况下,唯一的方法是重新启动 Win 10 IoT 并重新启动应用程序以获取新广告从同一设备被识别。与设备的通信完成后,可以识别来自不同设备的同一类型的广告。但是当第二个设备完成通信时,不能再次识别来自它或第一个设备的新广告。在调试模式下没有报告异常或其他问题。这在应用程序生产版本中确实是不可接受的。
请告诉我如何解决这个问题。谢谢。