问题描述
我有一个RaspBerry Pi 3 ModelB。我想从RaspBerry向笔记本电脑发送文件。我配置了xBee(Zigbee)设备,并且可以在XCTU上互相发送ASCII文本。
我想在没有XCTU的情况下传输文件(1 MB)。你能建议我这个来源吗?我该怎么办?
解决方法
您将需要为Pi提出某种协议,以告知笔记本电脑文件开始发送之前的大小。您可以非常简单地开始,然后在将文件内容写到串行端口之前,先发送一行并附带文件名,文件大小和换行符。在接收端,解析出文件名和大小,然后开始读取字节,直到到达末尾为止。
更复杂的协议将允许任一端中止传输。您不必担心纠错,因为您可能正在使用USB接口,该接口在FTDI控制器和XBee之间不会产生线路噪声,并且空中传输为您进行了纠错。>
请确保在两端都配置XBee模块以使用流控制,并期望传输花费很长时间。您要确保以能够处理的速率将字节发送到Pi上的XBee。笔记本电脑上的流量控制可能不太重要。将ATBD设置为7(115200 bps)或8(230400 bps),以最大程度地缩短每个设备与XBee模块之间的传输时间,但要准备以大约10KB / s的速度进行无线传输。 1MB / 10KB / s = 100秒。