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

VB 6 et antérieur Discussion :

Reset sur carte à puce


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Reset sur carte à puce
    Salut tt le monde c'est mon premier post ici.

    Je voudrais faire un programme de dialogue avec une carte bancaire mais j'ai deja un soucis.
    J'utilise le controle mscomm pour dialoguer via le port com avec un programmateur/lecteur phoenix.

    Je n'arrive meme pas à faire un reset. Voici mon code :

    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
    Private Sub Form_Load()
    With MSComm1
    .CommPort = 1
    .Handshaking = 2
    .RThreshold = 1
    .RTSEnable = True
    .Settings = "9600,n,8,1"
    .SThreshold = 1
    .PortOpen = True
    End With
    End Sub
     
     
    Private Sub reset_Click()
    MSComm1.Output = "MCLR"
    End Sub

    L'input se fait dans une textbox.
    Quand je clique sur reset il me retourne MCLR.


    Merci d'avance

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour et bienvenue sur ce forum.

    J'espère pour toi qu'il y a, par ici, quelqu'un qui a déjà bidouillé avec des cartes à puce.

    Personnellement, jamais fait.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut Re: Reset sur carte à puce
    Citation Envoyé par stolken
    L'input se fait dans une textbox.
    Quand je clique sur reset il me retourne MCLR.
    ou ... ?

    je connais pas les programmateur Phoenix et leur protocole de dialogue... mais je suis pas sur que cela soit la chaîne de caractére "MCLR" qu'il attends pour un reset je pencherai plutôt pour un signal un peu plus "binaire.."

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Re: Reset sur carte à puce
    Merci de vos réponses.

    Il me retourne MCLR dans la textbox de reception que j'ai fait.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    J'ai trouver la commande ici :

    http://fribotte.free.fr/bdtech/cours..._cours19a.html


    Chapitre 19.4

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    D'après ce que je lis sur ton lien, "MCLR" est un des contacts de la carte.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    donc il faut voir le câblage de ta phoenix ... et voir sur quelle broche du port série et connecté la "Pin4"

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Je ne pense pas que ce soit si compliqué.

    Voici le code qui fait le reset avec le controle mscomm (dialogue port com) :




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MSComm1.PortOpen = True 'ouvrir le port com1
    '//reset de la carte --------_____-----
    For y = 0 To 300
    MSComm1.RTSEnable = True
    Next
    MSComm1.RTSEnable = False
    '//fin de reset

    Je ne sais pas d'ou sort la variable y, elle n'est déclaré nulle part dans la source et pourtant ca ne bug pas. En revanche en copiant le code dans mon programme, le debugger me dit que la variable y nest pas déclaré.
    Je comprend rien.

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    la variable "y" ne semble être la que pour simuler une pause... ou peu être une durée d'impulsion à true sur RTS ( RTS étant une des "pin" du port série et qui doit être donc relier à la fameuse pin 4..) ... c'est pas terrible comme code ... la durée de l'impulsion est vraiment aléatoire ( suivant pc, processeur ..) bon sinon tu peu essayer en déclarant ta variable en entier au début de ta procédure ...

    le code d'ou est extrait la procédure ne devait pas contenir l'option explicit qui oblige la déclaration des variables ( et évite bien des erreurs de syntaxes sur nom de variables..) , voir 1° ligne de ton code..

  10. #10
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par bbil

    le code d'ou est extrait la procédure ne devait pas contenir l'option explicit qui oblige la déclaration des variables ( et évite bien des erreurs de syntaxes sur nom de variables..) , voir 1° ligne de ton code..
    Exactement

  11. #11
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par bbil
    la variable "y" ne semble être la que pour simuler une pause... ou peu être une durée d'impulsion à true sur RTS ( RTS étant une des "pin" du port série et qui doit être donc relier à la fameuse pin 4..) ... c'est pas terrible comme code ... la durée de l'impulsion est vraiment aléatoire ( suivant pc, processeur ..)
    Donc vaut mieux mettre un timer ?

  12. #12
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Voici une réponse trouvé sur un autre forum :

    Salut, pour provoquer un Reset sur un lecteur de carte type 'phoenix' ou 'smartmouse',il suffit de monter et descendre la sortie RTS (ou le contraire sur smartmouse).

    voici un bout de code d'une fonction Reset

    strtemp = "1" si le reset est inversé (smartmouse)
    strtemp="0"pour phoenix
    CommOcx est ton Mscomm passé en paramètre
    Mysleep(X) est une fonction qui fait doevents pendant X millisecondes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    If strtemp = "1" Then
    CommOcx.RTSEnable = False
    MySleep (100)
    CommOcx.RTSEnable = True
    MySleep (400) 
    Else
    CommOcx.RTSEnable = True
    MySleep (100)
    CommOcx.RTSEnable = False
    MySleep (400)
    End If

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/03/2009, 21h36
  2. Programmation sur carte a puce: Questions
    Par kedare dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 07/09/2008, 14h37
  3. Réponses: 2
    Dernier message: 18/01/2007, 17h53
  4. [c/linux] Programmation sur carte à puce
    Par MonsieurAk dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 03/10/2006, 10h52
  5. Mot de passe sur une carte à puce!?
    Par Le_Che dans le forum C++Builder
    Réponses: 13
    Dernier message: 20/05/2005, 10h37

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