向外部设备发送命令后,在python中显示完全返回

2024-05-16 03:49:38 发布

您现在位置:Python中文网/ 问答频道 /正文

环境:Windows操作系统中的pythonv2.x。你知道吗

问:我正在用COM4与机器人通信。我注意到,当我向robot发送“getver(ion)”cmd时,在Python代码中无法获得完整的返回。你知道吗

具体来说,我现在的代码是:

########## open COM4 
ser = serial.Serial(3)
########## send cmd 'getver' 

ser.write ("testmode on \n")
ser.write ("getver \n")
print ser.read()

########### return

Component,Major,Minor,Build,Aux

APPassword,956FC721

BaseID,1.2,1.0,18000,2000,

BatteryType,4,LIION_4CELL_SMART,

Beehive URL, beehive.cloud.com

BlowerType,1,BLOWER_ORIG,

Bootloader Version,27828,,

BrushMotorType,1,BRUSH_MOTOR_ORIG,

BrushSpeed,1400,,

BrushSpeedEco,800,,

ChassisRev,1,,

Cloud Selector, 2

然而,正确的回报是:

Component,Major,Minor,Build,Aux

APPassword,956FC721

BaseID,1.2,1.0,18000,2000,

BatteryType,4,LIION_4CELL_SMART,

Beehive URL, beehive.cloud.com

BlowerType,1,BLOWER_ORIG,

Bootloader Version,27828,,

BrushMotorType,1,BRUSH_MOTOR_ORIG,

BrushSpeed,1400,,

BrushSpeedEco,800,,

ChassisRev,1,,

Cloud Selector, 2

DropSensorType,1,DROP_SENSOR_ORIG,

LCD Panel,137,240,124,

LDS CPU,F2802x/c001,,

LDS Serial,KSH13315AA-0000153,,

LDS Software,V2.6.15295,0000000001,

LDSMotorType,2,LDS_MOTOR_MABUCHI,

Locale,1,LOCALE_USA,

MagSensorType,1,MAG_SENSOR_ORIG,

MainBoard Serial Number,OPS13115,544a1696de32,

MainBoard Version,1,,

Model,BotVacConnected,905-0143,

QAState,QA_STATE_APPROVED

Serial Number,KSH13715,544a1696de32,P

SideBrushPower,1500,,

SideBrushType,2,SIDE_BRUSH_VORWERK_REV1,

SmartBatt Data Version,2048

SmartBatt Device Chemistry,LION

SmartBatt Device Name,F164A1028

SmartBatt Manufacturer Name,Panasonic

SmartBatt Mfg Year/Month/Day,2095,10,6

SmartBatt Serial Number,14592

SmartBatt Software Version,1280

Software,2,0,0,46,28146

UI Board Hardware,0,0,

UI Board Software,1,3,

UI Name,Davinci

UI Version,1.0.0

VacuumPwr,80,,

VacuumPwrEco,65,,

WallSensorType,1,WALL_SENSOR_ORIG,

WheelPodType,1,WHEEL_POD_ORIG,

如您所见,python的返回还没有完成,那么如何显示完整的信息呢?提前谢谢。你知道吗


Tags: nameuinumberversionserialsoftwaresensorser
1条回答
网友
1楼 · 发布于 2024-05-16 03:49:38

我知道一些电子和机器人技术,但我无法预测具体会发生什么,所以我有一些想法要检查;)

1)我想知道当你再次接到电话时得到了什么。我想这会有帮助的。你知道吗

2)在read()方法中设置要接收的精确字节。 它被描述为here

TL;DR如下:

While True:
    bytesToRead = ser.inWaiting()
    ser.read(bytesToRead)

3)尝试用timeout=None初始化串行对象-可能只是等待,或者默认值太小;)

我会编辑,当你检查,某物不工作,如果我会有新的想法。你知道吗

为我的英语致以问候和歉意。你知道吗

相关问题 更多 >