Ich möchte durch das Senden einige Paketkommunikation zwischen Laptop und UART über Python-Datei erstellen: Mein Paket enthält =wie apacket von Python-Datei an meine Uart senden?
2 bytes for Star of frames+
2 bytes for command types+
1 byte for the size of my data+
16 bytes for my data+
1 byte for my CRC.
Ich habe eine datei.txt Datei, die ein Beispiel von Daten enthält, die ich senden möchten:
0xccddeeff0x8899aabb0x445566770x00112233
Durch meine python-Datei ich möchte Daten von datei.txt lesen (was ich bereits getan haben), dann will ich in den ganzen Rest des Feldes hinzufügen, um alle das Paket für die uart zu senden.
import string
import serial
import time
from array import array
#Plaintxt.txt File
with open('C:\\Users\\user\\Win_My_Scripts\\test.txt') as f:
content = f.readlines()
#serial port
ser = serial.Serial(
port='COM4',\
baudrate=230400,\
parity=serial.PARITY_NONE,\
stopbits=serial.STOPBITS_ONE,\
bytesize=serial.EIGHTBITS,\
timeout=0)
#enter inputs plaintext & key
print ('Plaintext=')
SOF= '0x124'
ENCRYPT_PLAINTEXT= '0x7772'
SEND_CYPHERTEXT ='0x7773'
SIZE_OF_FRAME= '0x10'
CRC8= '0x00'
for a in range (0,4):
line_array=content[a]
plaintxt_16b=line_array[0:16]
input_plaintext= SOF+ENCRYPT_PLAINTEXT+SIZE_OF_FRAME+plaintxt_16b+CRC8
print(plaintxt_16b)
ser.write (input_plaintext.encode())
time.sleep(0.4)
#closing the serial port
ser.close()
Also meine Fragen sind: 1/Wie diese Variablen, um verketten solches Paket zu haben?
0x1240x77720x100xccddeeff0x8899aabb0x445566770x001122330x00
2/My UART dann wird dieses Paket von cmd.exe lesen, tun thik Sie, dass die beste Lösung ist, Daten von Python senden an UART? Ich wäre Ihnen sehr dankbar, wenn Sie einen anderen Vorschlag hätten?
Vielen Dank im Voraus.
See struct.pack. –
IS Struct Pack nur für die Verkettung verwendet, das ist es? – tssmokey46