私は、シリアルから時刻に1バイトを読み込んでリストに格納するPythonコードに取り組んでいます。要素リストを整数に変換して右にシフト
次に、ペイロード長を取得するために2バイトを結合する必要があります。この目標を達成するには、長さのMSB(Most significative byte)とLSB(Least significative byte)を整数に変換してからMSBをシフトする必要があります。 ['H'、 '4'、 'K'、 'M'、 '0'、 '\ x10'、 '\ xff'、 '\ x10'、\ x00 '、' \ x00 ' '\ x02'、 '\ xff'、 '\ xff']。
MSBは'\ X02' ANS LSBがである '\ X00'(Iは、MSBとLSBの二つの変数でを保存し、私はint型で文字列からint型に変換しようとした
):
payloadLenMSB_h = int(packetHeader[offsetPayloadLenMSB])
payloadLenLSB_h = int(packetHeader[offsetPayloadLenLSB])
しかし、私はこのエラーが表示されます。
**ValueError: invalid literal for int() with base 10: ''**
どのようにして長さのMSBとLSBをintに変換できますか?
次は、MSBを8ビット右にシフトし、LSBでコンバインします。
提案がありますか?
これはシリアルからデータを読み込むための私のコードです:
print 'Available data on COM Port: ' + str(availableSerialByte)
if availableSerialByte > 0:
readByte = serialCOM.read(1)
print 'Read COM byte:' + str(readByte)
感謝!
ありがとうございました!それはうまくいく! payloadLenMSB_h = ORD(パケットヘッダ[offsetPayloadLenMSB]) payloadLenLSB_h = ORD(パケットヘッダ[offsetPayloadLenLSB]) は正しいですか? – Federico