IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Probleme lenteur ouverture tiroir caisse [WD18]


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut Probleme lenteur ouverture tiroir caisse
    Bonjour à tous !

    J'ai un problème sur l'ouverture d'un tiroir caisse, le tiroir caisse est raccordé à une imprimante EPSON TM-L90.
    Pour ouvrir celle-ci j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    iEscape(ESC+"p022")
    iImprime()
    iFinImprime()
    Le soucis, c'est que le tiroir doit mettre environ 10s à s'ouvrir, je suppose donc que cela doit venir de l'échange entre la fonction iFinimprime() et le traitement de l'imprimante.
    J'ai vu qu'il y avait sur l'écran tactile un port Drawer cash, je souhaiterai l'utiliser car je pense que traitement sera beaucoup plus efficace mais cependant je ne sais pas comment faire.

    Pourriez-vous m'aider ?

    En attendant, je vous remercie d'avance.

    Jb_One73

  2. #2
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Le iImprime ne semble pas être nécessaire dans ce cas. Peut être est ce la cause de la création d'un document vide qui est envoyé à l'imprimante et du coup bouffe du temps de communication.


    L'autre solution est d'envoyer directement la séquence escape sur le port de l'imprimante, sans passer par la fonction iEscape. Un exemple est dans la documentation : http://doc.pcsoft.fr/fr-FR/?3046054
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    Juin 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : Juin 2009
    Messages : 221
    Points : 371
    Points
    371
    Par défaut
    il y a autre chose qui peut agir : la communication se fait plus vite via un port série car avec le port usb n'est qu'une interface supplémentaire connectée au port série. J'ai remarqué que c'était plus long en USB. L'idéal est d'avoir des ports séries sur le pc et une imprimante série.
    La connaissance s'accroît quand on la partage.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut
    Merci à tous pour vos réponses !

    J'ai quand même cette question qui me turlupine et dont je trouve aucune info sur le net.
    Il y a un port "Cash Drawer" qui permet de raccorder directement le tiroir caisse sur l'écran tactile, ce qui veut dire que normalement il peut ouvrir celui-ci.

    Comment puis-je faire ? J'aurai besoin de faire ce test car je dois utiliser 2 caisses :
    - 1 avec une EPSON dont je vais essayer de faire ce que tu m'as dit DelphiManiac, ôter la fonction Iimprime().
    - 1 juste avec le tiroir caisse de connecter, la fiche ressemble à une RJ11 et impossible savoir comment lui envoyer une requête.

    Merci d'avance pour vos réponses

  5. #5
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Je viens de faire une réponse parlant de sujet par ailleurs. Concernant les périphériques EPSON, du devrais jeter un œil à cette page : https://download.epson-biz.com/index...pos&ml_lang=fr

    C'est une API que fourni EPSON pour l'accès au périphériques POS de la marque.

    Pour le tiroir caisse, quand il est connecté par le biais d'un autre périphérique, il me semble que l'on continue à lui envoyer des commandes par les séquences escape. Par contre, la connexion série est utilisé comme un bus, il me semble, c'est à dire que dans la commande escape, on précise d'abord le périphérique avec qui on dialogue et après, la commande qu'on lui envoi.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut
    Ok ! Merci pour ta réponse DelphiManiac, concernant la commande Iescape() j'avour que je sèche complétement.
    Je ne sais pas comment communiquer avec ce maudit port RJ11 (Cash Drawer), quand je cherche dans les périphérique système, impossible de trouver quelque chose qui pourrait ressembler à se port RJ11.

    J'ai cherché sur des forums en anglais et français (je vais peut être me lancer dans le chinois) et je n'ai rien trouvé, à croire que je sois le seul sur terre à vouloir utiliser le port RJ11 (Cash Drawer) du PC qui est bien présent sur la machine et sans carte d'extension !!!

    Si tu as des infos, des sources ou autres je suis preneur car si ça continu, je vais brancher un bouton poussoir avec une alim 24V pour ouvrir ce maudit tiroir.

    Merci d'avance pour ton aide.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    Juin 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : Juin 2009
    Messages : 221
    Points : 371
    Points
    371
    Par défaut
    Essayes ca pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    iConfigure(ImprimanteTicket)
     
    //	//ouverture du tiroir caisse
    chTiroir est une chaîne
    chTiroir=ESC+"p0"+ESC+"5"+ESC+"5"
    iEscape(chTiroir)
    iFinImprime()
    La connaissance s'accroît quand on la partage.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut
    Merci leonidas34 !

    J'ai essayé avec l'imprimante mais ça ne fonctionne pas et chose étonnante ... J'ai toujours la fenêtre d'impression qui s'affiche.
    Est-ce que tu aurais la même chose pour un accès direct du tiroir caisse avec l'écran tactile qui contient la connectique RJ11 ("Cash Drawer") ?

    Merci d'avance.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Freelance
    Inscrit en
    Juin 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Freelance

    Informations forums :
    Inscription : Juin 2009
    Messages : 221
    Points : 371
    Points
    371
    Par défaut
    Si ca ne marche pas, il ne reste, à mon avis que l'utilisation d'un activeX fourni par Epson. Je ne peux pas tester ce cas là et je ne l'ai jamais rencontré à vrai dire.
    La connaissance s'accroît quand on la partage.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 256
    Points : 85
    Points
    85
    Par défaut
    Bonsoir Leonidas34 !

    Je vais poster la solution à mon problème qui est maintenant résolu mais avec beaucoup de galère !

    Pour utiliser le port Cash Drawer de l'écran tactile il faut procéder de la façon suivante (cela fonctionne pour tous les OS de windows (xp, vista, 7 et 8) :

    1) Télécharger la dll nommée "Inpout32.dll" àl'emplacement suivant : http://www.highrez.co.uk/scripts/dow...t32_dll_source(au jour d'aujourd'hui le lien est OK).

    2) Insérer le code suivant (pour les OS en 32bits "inpout32.dll" et 64bits "inpoutx64.dll")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    // Gestion du Tiroir Caisse
    hInst est un entier
    hInst = ChargeDLL("Inpout32.dll")
     
    SI hInst = 0 ALORS
    	Erreur(ErreurInfo())
    SINON
    	nPortAdresse est un entier sans signe
    	nDataTiroir est un entier système = 0
     
    	// Ouverture du tiroir caisse
    	nPortAdresse = HexaVersEntier("48C")         		// N° du port Cash Drawer de l'écran tactile (c'est le même pour tous les écrans)
    	API("inpout32.dll", "Out32",nPortAdresse,nPortAdresse)		// La valeur convertit = 1164, on pourrait donc mettre cette valeur directement
     
    	// Il faut marquer un temps d'arrêt pour que le locket libère correctement le tiroir
    	// Si cette règle n'est pas respectée aucune action ne sera faite
    	ThreadPause(200)
     
    	// Pour arrêter l'alimentation électrique du locket il faut mettre la valeur 0 en 2ème paramètre (le 1er étant le port)
    	API("inpout32.dll", "Out32",nPortAdresse,nDataTiroir)
     
    FIN
    DéchargeDLL(hInst)
    Pour moi ça fonctionne très bien et je m'empresse de poster mon message pour éviter au prochain de galérer au temps que moi.

    En tout cas je te remercie de ton aide précieuse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD14] Ouverture tiroir caisse
    Par riomab dans le forum WinDev
    Réponses: 3
    Dernier message: 22/05/2012, 09h09
  2. Réponses: 12
    Dernier message: 11/07/2011, 13h27
  3. commande ouverture tiroir caisse par port USB
    Par Pascal88pm dans le forum 4D
    Réponses: 1
    Dernier message: 31/08/2010, 11h41
  4. probleme d'ouverture et de lenteur
    Par oops1980 dans le forum Sécurité
    Réponses: 19
    Dernier message: 29/05/2007, 14h31
  5. ouverture d'un tiroir-caisse
    Par 2nis dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/06/2006, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo