在我的 UWP 应用程序和我的 rfxtrx433e 之间进行通信

Communicate between my UWP app and my rfxtrx433e

我正在编写一个 UWP(通用 Windows 平台)应用程序来与我的 RFXTRX433e 通信。我能够连接到正确的串行设备,但无法写入任何内容。实际上,写入方法看起来可行(我没有得到任何异常),但似乎我的 USB 设备没有获取信息(发送数据包时灯没有打开)。

var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(aqsFilter, null);
            using (SerialDevice serialPort = await SerialDevice.FromIdAsync(myDevices.First(o => o.Name == "RFXtrx433").Id))
            {   
                //Get the reset package
                var reset = ProtocolManager.ResetPackage;                   
                using (DataWriter writer = new DataWriter(serialPort.OutputStream))
                {
                      writer.WriteBuffer(buffer.AsBuffer());
                }

有人知道这里发生了什么吗?

DataWriter 正在使用内部缓冲区来保留数据,直到您的数据包准备就绪。

只有在调用DataWriter.StoreAsync() method. You can also call DataWriter.FlushAsync()完成写入操作时才会将数据提交到流

这是最终的解决方案:

   using (DataWriter writer = new DataWriter(serialPort.OutputStream))
    {
         writer.WriteBuffer(reset.GetPacket().AsBuffer());
         await writer.StoreAsync();
         await writer.FlushAsync();
    }