从 Xamarin 形式的 BLE 中的广告商读取数据的正确方法是什么?

问题描述

我正在尝试在 BLE 中读取大量数据。我正在从广告商处获取数据块。所以我通过通知获取数据。但是我收到的数据不正确,有时会重复或不完整。这是我在通知获取数据的代码

characteristicRead.ValueUpdated += (o,e) =>
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    //var readvalue2 = characteristics.Value;
                    var bytes = e.Characteristic.Value;
                    //var readvalue = await characteristics.ReadAsync();
                    BLEresultnew = System.Text.Encoding.UTF8.GetString(bytes);
                    
                    Console.WriteLine(BLEresultnew);
                    concat += BLEresultnew;
                    
                    
                });
            };

数据应该如何来自广告商

start{"command":"UnitConfig","enhancements":[{"name":"fruit","status":"Available"}],"flavors":[{"name":"Black Cherry","vegetable":[],"water":[{"name":"Still","status":"Available"}]}end

但有时数据会像

一样重复

start{"command":"UnitConfig" "UnitConfig","enhancements":[{"name":"fruit\"fruit","status":"Available""Available"}],"flavors": [{"name":"黑色 Cherry","status":"Available"}]}end

有时甚至连开头的数据都丢失了,比如

Config","status":"Available"}]}end

这是我在 BLE 中读取数据 错误的方式吗?如何解决 BLE 中的这些类型的读取问题?有什么建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)