Le module KoutchiPrinter s'intègre dans ton HTML existant en 4 points :
1 · Inclure le module — avant la fermeture </body> :
<script src="KOUTCHI_ticket_printer.js"></script>
2 · Connecter l'imprimante au démarrage — dans startGame() :
function startGame(){
if(started) return; started=true;
initAudio();
// ── Imprimante ──
KoutchiPrinter.connect(); // popup Serial une seule fois
KoutchiPrinter.startSession();
// ... reste du code existant
}
3 · Enregistrer les stations — dans onStationChange() :
function onStationChange(ni){
prevStIdx=stIdx; stIdx=ni; visited.add(ni);
// ── Tracking ticket ──
KoutchiPrinter.recordStation(ni, STATIONS[ni]);
// ... reste du code existant
}
4 · Imprimer à la fin de session — deux options :
// Option A : Bouton physique (touche P ou bouton USB)
document.addEventListener('keydown', e => {
if(e.key === 'p' || e.key === 'P'){
KoutchiPrinter.printTicket();
}
});
// Option B : Auto-print après inactivité (reset auto)
let idleTimer = null;
function resetIdleTimer(){
clearTimeout(idleTimer);
idleTimer = setTimeout(async () => {
await KoutchiPrinter.printTicket();
// Reset session pour le prochain visiteur
location.reload();
}, 45000); // 45s d'inactivité
}
Matériel recommandé :
escpos npmEncodage caractères : Les imprimantes ESC/POS standard supportent UTF-8 pour le Tifinagh (ⴾⵓⵜⵛⵉ) et l'arabe. Sur les modèles très basiques, activer le mode UTF-8 avec ESC t 28 ou utiliser la page de codes CP1256 pour l'arabe.