1
我使用蟒操作数据而显示为预期的格式的Python如何按预期格式
目前我使用的空数组追加基于所述数据类型的处理的数据(U8和U16)
显示结果对于U8的数据类型:Value = 255
我得到的结果是:request = 2F f4 0d ['ff', 0, 0, 0]
我期待的结果应该通过限制除字节是显示:request = 2F f4 0d ff
对于U16的数据类型:Value = 260
我得到的结果:request = 2F f4 0c ['04', '10', 0, 0]
我期待的结果应该通过限制除字节是显示:request = 2F f4 0d 04 10
的代码如下:
def EventOnBtnIOControl(event):
#Called the Force Numeric Item to open GUI
ForceNumericItem()
global Value
global CMD
top.wait_window(Subtop)
request = '2F'+ ' '+'f4'+' '+'0d'+' '+ str(CMD)
print request
return
我的图形用户界面功能:
def ForceNumericItem():
Subtop.bind('<Return>', EventForceValue)
return
点击进入
def EventForceValue(event):
global Value
Value = SubMenuTakeStrInt()
print SMIScale
fScaledAndOffset = ((Value - SMIOffset)/SMIScale)
print fScaledAndOffset
if (fScaledAndOffset >= 0.0):
iScaledAndOffset = math.trunc(fScaledAndOffset + 0.5)
else:
iScaledAndOffset = math.trunc(fScaledAndOffset - 0.5)
print iScaledAndOffset
global CMD
CMD = [0,0,0,0]
if(SMIType == 'u8' or SMIType == 's8'):
CMD[0] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
CMDlimit = 1
print CMD
elif (SMIType == 'u16' or SMIType == 's16'):
CMD[0] = hex((iScaledAndOffset >> 8) & 0xff)[2:].zfill(2)
CMD[1] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
CMDlimit = 2
print CMD
elif (SMIType == 'u24'):
CMD[0] = hex((iScaledAndOffset >> 16) & 0xff)[2:].zfill(2)
CMD[2] = hex((iScaledAndOffset >> 8) & 0xff)[2:].zfill(2)
CMD[3] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
print CMD
elif (SMIType == 'u32'):
CMD[0] = hex((iScaledAndOffset >> 24) & 0xff)[2:].zfill(2)
CMD[1] = hex((iScaledAndOffset >> 16) & 0xff)[2:].zfill(2)
CMD[2] = hex((iScaledAndOffset >> 8) & 0xff)[2:].zfill(2)
CMD[3] = hex(iScaledAndOffset & 0xff)[2:].zfill(2)
print CMD
else:
printf( "Invalid Numeric Data by ID Type", Red)
Subtop.destroy()
top.deiconify()
return