67 lines
2.0 KiB
Python
67 lines
2.0 KiB
Python
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() |