# Logiciel Pastèque/Desktop/Matériel/Imprimante ESC/POS

Pastèque peut se connecter directement à une imprimante sans nécessiter de pilote ou d'ajouter une imprimante dans le système d'exploitation. Dans ce mode, Pastèque envoie les séquences de commandes directement à l'imprimante. La plupart des imprimantes à tickets thermiques sont compatibles et ne nécessitent pas de drivers ou d'installation particulière. La configuration consiste à identifier les caractéristiques de l'imprimante et indiquer sur quel port elle est connectée.
Attention, l'impression directe ne fonctionne qu'en série ou USB. Les imprimantes en réseau (port ethernet) ne sont pas couvertes. Pour celles-ci utilisez l'impression via l'OS.

## Choix du protocole

Le choix du protocole correspond en général au nom du fabricant, pour simplifier. Le tableau ci-dessous répertorie quelques modèles testés, avec le nom du protocole associé.
Le protocole Epson (ESC/POS) est généralement compatible. Il peut y avoir quelques spécificités pour certains fabricants.
| Nom | Constructeur | Protocole | Caractères par ligne | Points par ligne |
| TM-T20 | Epson | Epson (ESC/POS) | 42 | 576 |
| HOP-H58 | Hoin | Epson (ESC/POS) | 32 | 384 |
| RP-320 | Partner | Epson (ESC/POS) | 42 | 512 |

### Windows

Utilisez le mode série et indiquez le nom du port sur lequel l'imprimante est branchée pour une connexion directe sur un port série (port COM). Pour un branchement en USB, un port série virtuel peut lui être associé.
La création d'un port série virtuel n'a pas encore été documentée ici.

### Debian/Ubuntu/Mint

Utilisez le mode fichier et indiquez le chemin du fichier représentant le port utilisé. Plusieurs opérations peuvent être nécessaires avant d'avoir une impression fonctionnelle.

#### Vérifier l'appartenance au groupe lp

L'utilisateur courant du système d'exploitation doit appartenir au groupe lp. Dans le cas contraire, l'impression pourra être refusée par le système. Ceci s'ajoute avec la commande adduser <user> lp (en root ou avec sudo).
Vous pouvez vérifier les utilisateurs du groupe lp avec la commande grep lp /etc/group, la liste des utilisateurs est indiquée après le 3e :.

#### Trouver le fichier associé à l'imprimante

Pour une imprimante USB, vous trouverez les ports utilisés lorsque l'imprimante est branchée avec ls /dev/usb. Le nom de fichier à indique correspond souvent à /dev/usb/lp#, recopiez ce nom dans le champ port.
Vous avez tout. La suite permet de corriger d'éventuels problèmes au redémarrage.

#### Fixer le fichier associé à l'imprimante

Sur certains systèmes l'imprimante peut être affectée à un fichier différent au démarrage. Par exemple parfois sur /dev/usb/lp0 et parfois /dev/usb/lp1. Si vous rencontrez ce problème, vous pouvez fixer le nom de fichier à l'aide d'une règle udev.
Pour une description détaillée du fonctionnement de udev : https://doc.ubuntu-fr.org/udev

##### Créer la règle udev

Pour cela créer un fichier .rules dans /etc/udev/rules.d. Par exemple /etc/udev/rules.d/10-tmt20.rules. Ce fichier contient la règle qui affecte le périphérique à un nom de fichier. Par exemple pour la TM-T20 II :
Lorsque le périphérique est branché et détecté, la commande udevadm info liste tous les attributs à différents niveau de précision.
Les résultats sont regroupés en plusieurs blocs, seuls les attributs d'un même bloc peuvent être utilisés. L'attribut ATTRS{idProduct} peut être suffisant s'il n'y a qu'un seul périphérique du même modèle.
Le nom de fichier à ajouter sera indiqué dans SYMLINK, ci-dessus /dev/usb/lp-tmt20 pourra être indiqué dans la configuration de Pastèque.

##### Tester les règles

Pour tester la nouvelle règle sans redémarrer, les règles peuvent être rechargées avec la commande udevadm control --reload.
udevadm test 'device' permet de vérifier que la règle sera bien appliquée pour le périphérique. Le 'device' est celui indiqué dans udevadm info pour lequel les attributs ont été récupérés.
udevadm trigger relance les règles sans avoir à redémarrer, il faudra peut être éteindre et rallumer l'imprimante pour que la règle soit appliquée correctement.