Keypad pour configurer un mot de passe?

Forum de support pour les locuteurs de la langue française qui souhaitent écrire dans leur langue maternelle.

Moderator: Benj

Post Reply
tech
Posts: 353
Joined: Tue Sep 23, 2008 9:39 am
Been thanked: 9 times
Contact:

Keypad pour configurer un mot de passe?

Post by tech »

Bonjour,

Je voudrais savoir comment je dois procéder sous flowcode 4 pour que je puisse programmer un mot de passe à partir d'un Keypad a 12 chiffre et ensuite entre ce mot passe pour désactiver ou activer??

Merci :?:

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: Keypad pour configurer un mot de passe?

Post by Benj »

Bonjour,

Ce poste par Medelec35 devrait contribuer à vous aider à démarrer.
http://www.matrixmultimedia.com/mmforum ... 26&t=10565

Hello,

This post by Medelec35 should help to get you started.
http://www.matrixmultimedia.com/mmforum ... 26&t=10565

User avatar
Enamul
Posts: 1772
Joined: Mon Mar 05, 2012 11:34 pm
Location: Nottingham, UK
Has thanked: 271 times
Been thanked: 814 times
Contact:

Re: Keypad pour configurer un mot de passe?

Post by Enamul »

Salut,
J'ai joint ici un FC pour la vérification de mot de passe en utilisant LCD et du clavier en V4.
J'espère que cela aidera.
Enamul
Attachments
Password_v4.fcf
(13.5 KiB) Downloaded 293 times
Enamul
University of Nottingham
enamul4mm@gmail.com

tech
Posts: 353
Joined: Tue Sep 23, 2008 9:39 am
Been thanked: 9 times
Contact:

Re: Keypad pour configurer un mot de passe?

Post by tech »

Bonjour Ben,

Dans le poste par Medelec35 le Door Lock v2B 16f883, Serait-il possible d'avoir plus d'informations sur les variables, je voudrais bien comprendre leurs fonctions ??

Merci :?

Christian

Spanish_dude
Posts: 594
Joined: Thu Sep 17, 2009 7:52 am
Location: Belgium
Has thanked: 63 times
Been thanked: 102 times
Contact:

Re: Keypad pour configurer un mot de passe?

Post by Spanish_dude »

Cela ne doit pas être trop compliqué à faire.

Si tu n'as pas d'expérience avec les keypad essaye ça :
- D'abord, essaye d'afficher le chiffre sur lequel tu appuies.
- Une fois que t'as ça, essaye de faire en sorte que tu puisses entrer un nombre entre 0 et 999 et terminer par # par exemple.

Si tu arrive à faire tout ça, la seul chose qui te reste à faire c'est d'avoir une variable 'mot de passe', une variable 'lire keypad' et de voir avec un if(...) s'ils sont égaux.

-----------

Pour le programme de Medelec, j'ai pas vérifié tout le code. Je te dis se que je pense que les variables font et se que j'ai trouvé en regardant vite fait le code.

- CursorPos_x : pos x du curseur du LCD
- degcal[4] : 'enregistre' le chiffre dont la touche keypad a été appuyé.
- digcount : compte le nombres de touches que l'utilisateur a entré
- key : contient la valuer de la touche keypad appuyé.
- Master_Code : Mot de passe de secours ou mot de passe permettant de changer le Pass_Code (?)
- Pass_Code : Mot de passe (2 bytes long)
- Pass_Code_High_Byte : Octet suppérieur du mot de passe sauvegardé dans l'EEPROM (probablement)
- Pass_Code_Low_Byte : Octet inférieur du mot de passe sauvegardé dans l'EEPROM (probablement)
- place : pas utilisé dans le code
- Result : contient le résultat des 4 chiffres enregistrer dans degcalc[4]
- Seconds : utiliser pour un delay de 5s
- Status : variable statut qui lui permet d'executer son code étape par étape
- Temp1 : Variable temporaire, il vérifie, après un read de l'EEPROM, s'il est égal à 34. Probablement pour vérifier si c'est la première fois que le programme a été lancé ou non. (?)
- Temp2 : Idem temp1 sauf qu'ici la variable vaut 5.
- Wrong_Tries : nombres d'erreurs

Nicolas

tech
Posts: 353
Joined: Tue Sep 23, 2008 9:39 am
Been thanked: 9 times
Contact:

Re: Keypad pour configurer un mot de passe?

Post by tech »

Bonjour Nicolas,

Jusqu'à maintenant je suis capable d'afficher le chiffre sur lequel j’appuie de 0 à 9999, mon problème sais que je ne saisis pas très bien la manière que Low_Byte et High_Byte soit calculer et ensuite stocker dans le EEPROM?

Ma compréhension de Low_Byte ce sont les deux premier chiffre et Hight_Byte les deux dernier, mais pour que les deux premier ainsi que les deux autres chiffre sois calculé et stocker dans le EEPROM aucune idée

Merci de ton aide

Christian

Spanish_dude
Posts: 594
Joined: Thu Sep 17, 2009 7:52 am
Location: Belgium
Has thanked: 63 times
Been thanked: 102 times
Contact:

Re: Keypad pour configurer un mot de passe?

Post by Spanish_dude »

Salut,

Ton chiffre de 0 à 9999 est stocké dans un int.
Un int utilise 2 bytes de mémoire. L'EEPROM ne pouvant stocker qu'un byte à la fois, il faut que tu 'découpes' l'integer en 2 bytes séparé.
Donc le low_byte et high_byte ne représentent pas les deux premier et dernier chiffres, mais bien la valeur du premier et second byte utilisé par l'integer.

Rien de compliqué :

low_byte = code & 0x00FF;

La variable 'code' contient ton code et pour récupérer le byte inférieur tu le 'and' avec 0x00FF. Le 'and' va "effacer" les 8 bytes supérieur et comme ça il ne te reste plus que le byte inférieur.

high_byte = (code & 0xFF00) >> 8;
high_byte = (code >> 8 ) & 0x00FF;

Pour récupérer le byte supérieur t'as deux solutions quasiment identique.
Soit tu effaces le byte inférieur et tu shift le résultat de 8 places vers la droite, soit tu shift la valeur 'code' de 8 places vers la droite et tu le 'and' avec 0x00FF pour être sur que le résultat a une taille de 1 byte. (perso je préfère le second)

Au cas ou tu ne sais pas comment fonctionne le shift left/right:
0110 >> 1 = 0011
0110 << 1 = 1100

Nicolas

Post Reply