在颤振飞镖中将列表合并到一个列表中

塔哈哈米斯

我有 100 个通过蓝牙以 Uint8List 形式连续来自微控制器的数据样本。数据来自蓝牙缓冲区,我正在使用颤振蓝牙串行包通过蓝牙接收数据。数据以这种形式到达:

[115, 43, 48, 46, 56, 54, 101, 0, 0, 115]
[43, 49, 46, 55, 49, 101, 0, 0, 115, 43]
[0, 0, 115, 43, 51, 46, 53, 57, 101, 0, 0, 115, 43, 51, 46] ... ect

(note that this is just an example of the result and the completed result is about 80 lists of Uint all coming to the same var which is data)

包含 Uint 的 List 的大小并不一致。所以我想将所有这些即将到来的数据合并到一个列表中。

这是我尝试使用的代码,由于数据未合并,因此无法正常工作。


connection!.input!.listen(_onDataReceived).onDone(() {
        if (isDisconnecting) {
          print('Disconnecting locally!');
        } else {
          print('Disconnected remotely!');
        }
        if (this.mounted) {
          setState(() {});
        }
      }


 Future<void> _onDataReceived(  Uint8List data ) async {

    List newLst =[];
    newLst.add(data);
    int i = 0;
    Queue stack = new Queue();
    stack.addAll(newLst);


    print(data);
    print(stack);



  }

如何将所有即将到来的数据组合在一个大列表中并将其存储以供以后操作。

拉克斯卡斯特罗

请注意,这只是结果的一个示例,完成的结果是大约 80 个 Uint 列表,它们都来自同一个 var,即数据

如果我没记错的话,connection!.input是一个Stream

如果是这样,那么您的问题似乎与您所说的列表无关,而与Streams.

由于您正在收听Stream

connection!.input!.listen(_onDataReceived).onDone(...);

如果您想要更改、修改或处理即将到来的数据,Stream那么您可能想要使用一些本机StreamAPI。

在这种特殊情况下,您希望减少所有即将发生的事件(列表Uint8List)并处理为单个输出(Uint8List包含所有数据的单个输出),然后您可以使用Stream<T>.reducewhich 返回 aFuture<T>在没有更多即将发生的事件时解析(Stream确实发出完成事件)。

您甚至不需要听,因为您只想处理单个输出而不是单独处理每个事件:

final Uint8List mergedData = await connection!.input!.reduce((previous, current) => Uint8List.fromList([...previous, ...current]));

查看这个 DartPad 代码片段查看完整示例。

要查看完整的 API,请查看 s 的官方Dart 文档Stream,它是完整且具有指导意义的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Groovy中将两个列表的内容交替合并到一个列表中

在Python中将多个变量结果合并到一个列表中

如何在熊猫中将多列合并到一个变量(列表)中

(飞镖/颤振)从混洗的列表中拉出一项而不重新生成列表

将对象合并到一个列表中

在Python中将两个列表合并到另一个列表

将输出合并到一个列表中(不合并列表列表)

如何在颤振/飞镖中获取 SteamApp 列表?

foreach:如何在多个迭代中将两个矩阵合并到一个列表中?

如何在C#中将IQueryable列表合并到另一个现有的IQueryable源中?

将多个列表列合并到R中的一个列表列中?

将不同列表中的选定项目合并到一个新列表中

Java-将多个列表数据合并到一个单独的列列表中

将多个列表合并到流中的一个对象列表?

将数组列表合并到一个数组列表中

如何将包含字典的Python列表合并到一个最终列表中

将R中的两个列表合并到一个数据框中

如何从多个表中获取一列以合并到一个列表中?

颤振获取列表值到另一个列表

比较字典列表并合并到一个python

将两个并行任务的结果合并到一个列表中

如何将2个列表合并到一个球拍中

如何将两个列表合并到一个交替元素中

使用 python 将多列中的值合并到每行中的一个列表中

将全局环境中的R对象合并到一个列表中

将输出合并到Prolog中的一个列表中

将熊猫数据框中的两列合并到一个列表中

如何将 Pandas DataFrame 中的数据与多索引合并到一个列表中

如何在一个查询列表数组中编写多个图像 URL。颤振火力基地