我正在开发一个程序,该程序从通过 WiFi 发送的 Android 应用程序接收字符串,该程序最初是为 Python 2.7 编写的,但在添加了一些附加功能后,我将其更改为 Python 3.7。然而,在做出这种改变之后,我的数据前面多了一个字母,我终究无法弄清楚为什么会这样。
这是我的代码片段,这是一个非常简单的 if 语句,用于查看从 Android 应用程序发送了哪个命令并使用该命令控制 Raspberry Pi (4) cam (v.2)。
这部分设置连接并等待查看我发送的命令。
isoCmd = ['auto','100','200','300','400','500','640','800']
HOST = ''
PORT = 21567
BUFSIZE = 1024
ADDR = (HOST,PORT)
brightness = 50
timelapse = 0
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
while True:
print ('Waiting for connection')
tcpCliSock,addr = tcpSerSock.accept()
try:
while True:
data = ''
brightness = ' '
data = tcpCliSock.recv(BUFSIZE)
dataStr = str(data[1:])
print ("Here's data ",dataStr)
if not data:
break
if data in isoCmd:
if data == "auto":
camera.iso = 0
print ('ISO: Auto')
else:
camera.iso = int(data)
print ('ISO: '), data
当我启动程序时,这就是我所看到的:
Waiting for connection
#If I send command '300'
Here's data b'300'
Here's data b''
Waiting for connection
我不确定为什么会有多余的东西b''来自。我通过在数组中的每个项目的开头添加“b”来测试代码,它适用于我定义的任何命令,而不适用于任何控制 Pi 相机的命令,因为开头没有额外的 b。(这有意义吗?)我的意思是,我知道我可以毫无问题地发送命令,只是不确定如何去掉多余的字母。如果有人能给我一些建议,那就太好了。感谢您的帮助。
一只萌萌小番薯
森栏
相关分类