import serial import argparse # Définissez le port série et la vitesse de communication (baud rate) port = "/dev/ttyS4" baud_rate = 38400 # Créez un objet de port série ser = serial.Serial(port, baud_rate, timeout=1) parser = argparse.ArgumentParser(description="Un script d'impression d'etiquettes sur Zebra") # Définition des arguments parser.add_argument("--qtt", type=int, required=True, help="Nombre d'etiquettes") parser.add_argument("--salle", required=True, help="Le nom de la salle") parser.add_argument("--snum", type=int, required=True, help="Numero du pc ou de depart") parser.add_argument("--schar", required=False, default="" , help="Caractère supplementaire a ajouter") # Analyse des arguments de la ligne de commande args = parser.parse_args() # Conversion des informations numPC = int(args.snum) number = int(args.qtt) salle = str(args.salle) extra = str(args.schar) for num in range(int(numPC), number + int(numPC)): building_map = {'T': 'AT', 'L': 'LO', 'V': 'VA', 'G': 'GEO'} building_code = salle[0] building = building_map.get(building_code, 'N/A') # Vérifie si salle géometre car systeme de notation différent if building == 'GEO': etage = '2' else: etage = salle[1] label = building + '-' + etage + '-' + salle + '-' + str(num).zfill(2) + extra print (label) # labelCode = '^XA^FO4,24^BY1^BCN,140,N^FD' + label + '^FS^FO0,190^A0,32,22^FD' + label + '^FS^XZ' labelCode = '^XA^FO15,20^BY2^BCN,80,N^FD' + label + '^FS^FO25,130^A0,50,28^FD' + label + '^FS^FO270,105^XGE:logo100^XZ' # Chaîne de caractères à envoyer message = labelCode # Encodez la chaîne en bytes, car les données sur le port série sont transmises sous forme de bytes message_bytes = message.encode('utf-8') # Écrivez les données sur le port série ser.write(message_bytes) # Fermez le port série lorsque vous avez terminé ser.close()