Ariduino入门笔记——10. Arduino 默认函数(串流处理)

柔情只为你懂 2022-10-11 13:45 422阅读 0赞

文章目录

  • 关于串流处理类——Stream
    • 获取可读取的字节数——available()
    • 读取字节——read()
    • 等待输出结束——flush()
    • 查找指定的字节或字节串——find()
    • 查找指定的字节或字节串,直到终止符——findUntil()
    • 查找第一个有效字节——peek()
    • 读取字节串——readBytes()
    • 读取字节数据,直到终止符——readBytesUntil()
    • 读取字符数据——readString()
    • 读取字符数据,直到终止符——readStringUntil()
    • 解析浮点数——parseFloat()
    • 解析整型数——parseInt()
    • 超时管理——setTimeout()
  • 后记

这一部分在Arduino官方中,名为Stream,为了避免跟视频的流处理混淆。我想到了数据串,以及数据串的流处理,合在一起让后取了一个简单的名字:串流处理。
可能不是很准确,不过在业界没有最终确定名字以前,就先这么叫着吧。

关于串流处理类——Stream

这是一个很基础的类,基本上Arduino的Serial、Wire、Ethernet,SD这些包都基于Stream进行了二次封装。大多数的情况下,你不需要使用这个类,你仅仅需要使用它的封装类,也就是继承类。不过这里还是提供给用户,以便于一些比较特殊的场景,尽管我认为一点用都没有。

获取可读取的字节数——available()

当接收到数据,这些数据都会以字节的形式存储在Serial的缓存中。而这个函数的作用,就时告诉用户或者程序,当前可以读取的字节数有多少。

读取字节——read()

读取数据,一次返回一个字节。

等待输出结束——flush()

数据开始发送后,可以使用这个函数,等待所有数据全部发送完毕。数据量少的时候,可以不使用这个函数。

查找指定的字节或字节串——find()

如果你的数据长度很大,比方说你要把一张图片编码成BASE64,然后通过发送给Arduino,让它显示在某个LED或者LCD显示屏上,那么你可能需要使用这个指令。

它的作用是在接收到的字节缓存中,从第一位开始逐个查找指定的字节或字节组合(例如特定的字符串),所以你可以用它来检测自定义的数据包头或者包尾。找到则返回True,超时或者没有找到则返回False。

查找指定的字节或字节串,直到终止符——findUntil()

find函数很相似,只不过多了一个同时查找终止符的功能,相当在缓存中查找指定字符,直到找到终止符,找到则返回True,超时或者没有找到则返回False。

查找第一个有效字节——peek()

它的主要作用是帮你在Serial的缓存中找到下一个正确的字节(开始的第一个字节)。连续的调用都将得到第一个字节的位子。如果使用read函数,则会返回下一个字节。

读取字节串——readBytes()

readBytes比read稍微多了一点功能,就是一次性可以取出一块数据。比一个一个读取字节要快不少,当然也可能比较容易出错。

读取字节数据,直到终止符——readBytesUntil()

从缓存读取指定长度的字符到数组buffer,遇到终止字符character后停止。

读取字符数据——readString()

从缓存区读取全部数据到一个字符串型变量。

读取字符数据,直到终止符——readStringUntil()

从缓存区读取字符到一个字符串型变量,直至读完或遇到某终止字符。

解析浮点数——parseFloat()

从接收到的数据中,逐个进行解析,直到找到第一个合法的浮点数,并返回给用户。

解析整型数——parseInt()

和上一个函数的作用十分相似,也是返回第一个合法的整型数据。但无论parseFloat还是parseInt都有个等待时间,超时后任务中止,会直接进入到下个环节。

超时管理——setTimeout()

所有的IO通信都存在着超时处理,自然Stream也提供了超时处理。默认的超时时间是1s,即1000 milliseconds.

后记

你看,如果你查阅过Serial的相关手册,就会发现有很多设置和函数名是一模一样的,由于Arduino跟其他设备的通信,主要通过I2C以及串口,及普通电平针脚。所以你其实更应该花点时间熟悉和使用具体的类函数,Stream相当于一个基类,所以我们了解一下其中的一些基础功能就足够了。

发表评论

表情:
评论列表 (有 0 条评论,422人围观)

还没有评论,来说两句吧...

相关阅读