Skip to Content

Connexion

Le dispositif Datamega TCC est atteint via un port série. Votre logiciel est l’initiateur : il ouvre le port, écrit une trame de commande, puis lit la trame de réponse.

Paramètres série

La spécification du protocole définit le cadrage et les commandes, pas les réglages physiques du lien (débit en bauds, bits de données, parité, bits de stop, ni le nom du port côté système d’exploitation). Obtenez ces valeurs auprès de votre dispositif ou de votre fournisseur et ouvrez le port en conséquence.

⚠️

Une configuration courante est 8 bits de données, sans parité, 1 bit de stop (8N1), mais confirmez le débit en bauds et le port avec votre dispositif avant la mise en production — ne supposez rien.

  • Windows : le port est un nom COMx (ex. COM3).
  • Linux/macOS : le port est un chemin de périphérique (ex. /dev/ttyUSB0, /dev/tty.usbserial-XXXX).

Définissez un délai d’attente en lecture (timeout) pour qu’une réponse absente ou lente lève une erreur plutôt que de bloquer indéfiniment (2 à 5 secondes est un défaut raisonnable ; le dispositif répond rapidement).

Ouvrir le port

Remplacez le nom du port et le débit par les valeurs de votre dispositif.

# Python (pyserial) import serial port = serial.Serial(port="COM3", baudrate=115200, bytesize=8, parity=serial.PARITY_NONE, stopbits=1, timeout=3)

Tester le lien avec C1h (Status)

Une fois le port ouvert, vérifiez que le dispositif répond bien avec la commande C1h (Status Query). Une réponse valide signifie que le port, le cadrage et le dispositif fonctionnent ; elle indique aussi si le terminal est activé et fournit l’URL de vérification des reçus (verify_url).

Commande C1hDATA : aucune. Réponse : {result} suivi des champs ci-dessous.

Champ de réponseSignification
result0 = échec, 1 = succès
niuNuméro d’identification unique du contribuable (NIU)
terminal_identifierIdentifiant du terminal
TAXTCompteur de taxe T
TAXRCompteur de taxe R
TAXECompteur d’exonération (Tax Exempt)
verify_urlURL de base de vérification des reçus (sert à construire le QR code)

Exemples de réponse (verbatim de la spécification) :

Succès : 1:P000001212112130,POINT-001,18,5,0,https://dev-pgsfec.akieni.tech/verify-invoice/ Échec : 0:No activation information

Dans la réponse de statut du dispositif, le result est suivi d’un deux-points :, puis les champs restants sont séparés par des virgules. (Les autres commandes séparent tous les champs, y compris result, par des virgules.)

Exemple — tester la connexion

import serial from datamega import send_command port = serial.Serial("COM3", 115200, timeout=3) # port + réglages de votre dispositif reply = send_command(port, 0xC1) # C1h if reply.startswith("1"): niu, terminal, taxt, taxr, taxe, verify_url = reply[2:].split(",") print("online:", terminal, "| verify_url:", verify_url) else: print("device not ready:", reply) # ex. 0:No activation information port.close()

Les fonctions send_command / SendCommand / sendCommand utilisées ici proviennent des utilitaires de cadrage présentés dans Format des trames.


Étape suivante → Format des trames