RS485を介してAirbus(Modbusの変わった変種)コマンドをシリアルデバイスに送信する必要があります。私が送るコマンドは0x8181521500005315です。intをシリアル通信用のバイトに変換する
b'\x81\x81\x15\x21\x00\x00\x53\x15'
が、私は何とか同じ形式にint型の変数を変換したい:私は正常形式でリテラルとしてコマンドを送信することができますよ。
は、ここで私がこれまで持っているものです。
def advancedWriteR(param):
command = (0x818152*0x10000000000 + param*0x100000000 + genECC('r', param))
msg =command.to_bytes(8, byteorder='big')
ser.write(msg)
奇妙なことがMSGになるということである。
b'\x81\x81R\x15\x00\x00S\x15'
すべてのヘルプは大歓迎です!
あなたの 'param'値は何ですか?そして、 'genecC()'関数は何をしますか? – JohanL
"R"を "\ x52"と "S"を "\ x53"で置き換えた場合、b '\ x81 \ x81R \ x15 \ x00 \ x00S \ x15'はb '\ x81 \ x81 \ x52 \ x15 \ x00 \ x00 \ x53 \ x15'となります。それは何が起こっているのか理解するのに役立ちますか? –
param値とgenECC関数は、int変数を作成するための関数です。 – egemnay