0
我想通过50个字节的块发送图像。我能够通过两个xbees串行发送它。现在,我想读取前50个字节并将其附加到一个变量,然后在接下来的50个字节后面追加它,等等。但我根本找不到一个好的解决方案。任何帮助?如何逐步读取pyserial中的数据?
我现在正在收到错误f.write(data_stream [i:i + inc])。类型错误必须是字符串或缓冲区。 发送端的字节数量,图像长度为6330。但在接收方面,它是129.我现在不在任何地方。 ##发件人代码
import serial
from xbee import XBee
ser = serial.Serial('COM27',9600)
fn='cameraman.jpeg'
f = open(fn, 'rb')
data = f.read()
f.close()
bytes = len(data)
inc=50
for i in range(0, bytes+1, inc):
string=data[i:i+inc]
f.close()
ser.write(string)
## Reciever Side
import serial
ser = serial.Serial(port='COM28', baudrate=9600,timeout=20)
inc=50
fileNames=[]
data_stream = []
while True:
data_stream.append(ser.read(50))
l=len(data_stream)
print l
for i in range(0, l+1, inc):
fn1 = "image%s" % i
fileNames.append(fn1)
f = open(fn1, 'wb')
f.write(data_stream[i:i+inc])
print fn1
x.append(fn1)
f.close()
new_file = 'elmi666_image.jpg'
dataList = []
for fn in fileNames:
f = open(fn, 'rb')
dataList.append(f.read())
f.close()
f = open(new_file, 'wb')
for data in dataList:
f.write(data)
f.close()
你已经写了什么代码(你可以编辑你的问题在这里添加它)? – tomlogic
欢迎来到SO!请给出一个[SSCCE](http://sscce.org),并请提出一个真正的问题。 – zmo
@tomlogic我修改了我的问题。请帮帮我 。 – user3368375