Velleman k8090 リレー ボードを使用して、データを読み取ろうとしています。ボードに書き込むことはできますが、読み取ったデータを出力するたびに、ひし形や逆さまのクエスチョン マークなどの奇妙な文字が表示されます。ここに私のコードの一部があります:
import serial
COM_PORT = 'COM4'
class Velleman8090:
def __init__(self, port=COM_PORT):
self.port = port
self.baud_rate = 19200
self.data_bits = 8
self.parity = 'N'
self.stop_bits = 1
self.flow_control = 'N'
def open_device(self):
self.talk = serial.Serial(self.port, self.baud_rate, self.data_bits, self.parity, self.stop_bits)
def firmware_version(self):
data = packet(0x71, 0x00, 0x00, 0x00)
self.talk.write(data)
print self.talk.read()
def close_device(self):
self.talk.close()
def chksum(cmd,msk,p1,p2):
return (((~(0x04 + cmd + msk + p1 + p2)) + 0x01) & 0xff)
def packet(cmd,msk,p1,p2):
return str(bytearray([0x04, cmd, msk, p1, p2, chksum(cmd, msk, p1, p2), 0x0f]))
def main():
vm8090 = Velleman8090()
vm8090.open_device()
vm8090.firmware_version()
vm8090.close_device()
奇妙な文字が表示されるのはなぜですか? ドキュメントには、年と週を返す必要があると記載されています。
編集: いくつかの検索とトラブルシューティングの後、ハードウェアではなく、Python コードまたはデータ型に関係があると確信しています。 このフォーラムには、ボードから読み取る C の例が含まれています。その例をボードから適切に読み取ることができたので、ハードウェア自体ではなく、Python コードに関係があると確信しています。