COMPOSANT TLPTPORT AVEC FONCTION OUT & INP + GESTION DE LA MÉMOIRE PHYSIQUE

cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012 - 25 avril 2003 à 09:15
xmen237t Messages postés 3 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 19 mai 2010 - 19 mai 2010 à 20:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12491-composant-tlptport-avec-fonction-out-inp-gestion-de-la-memoire-physique

xmen237t Messages postés 3 Date d'inscription mercredi 17 mars 2010 Statut Membre Dernière intervention 19 mai 2010
19 mai 2010 à 20:45
Bonjour à tous
source des logiciels d'application via le port LPT chat "avec Delphi
kle500 Messages postés 3 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 27 juin 2008
6 nov. 2006 à 09:17
bon travail a vous tous ,
j'utilise 3 pc d'ont 1 que j'utilise le w98 + delphi3 pour faire mes *.dll pour utiliser le port sur d'autre windows.
A+
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
8 mars 2006 à 01:17
merci JLEN100, en effet avant je n'avais pas XP, il m'était donc difficile d'inclure la gestion de cet OS sans pouvoir tester sur place, bon maintenant que chui passer sous XP c'est une autre histoire :o)
@+
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
7 mars 2006 à 14:49
salut shining;
mise à jour importante effectivement puisque les drivers Winio prennent en charge XP ce qui n'était pas le cas précédemment.
bonne mise à jour qui manquait

@+
jlen
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
12 juil. 2004 à 04:22
Salut grandvizir, en ce qui concerne SmLed il est dit plus Dans le Nota, en fait c'est seulement là démo qui utilise ce composant. quand au port 50 que tu as exploité en lecture j'ignore la spécification de ce port, mais il est évident qu'il ne faut pas tenter de lire où écrire dans les registres spéciaux qu'on ne maîtrise pas sous risque de.... pour ceux qui sont intérresser, une mise à jour, va corriger le porblème lier à WinXP, en version Composant, il permetra une plus grande facilité de la gestion du port LPT; exemple D0:=True va tout simplement mettre la Broche 2 à l'état Haut, ce composant va automatiquement installer le driver(ZlPortIO) dans le repertoire du soft, le charger , et le détruire lors de la fermeture du Programme. Donc Patience pour la Mise à Jour ;)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
6 juil. 2004 à 21:38
Ce code source est très simple à comprendre. Il manque certes SMLED.PAS, mais cela ne m'a pas empêché de le reproduire rapidement. Cependant, il y a un problème délicat. Par curiosité, j'ai fait des tests avec des ports autres que LPT1 et LPT2 (exemple: port=50) et je dois avouer que ça fait un plantage général (Win98SE) malgré que le code ne soit que de la lecture. C'est pareil parfois avec LPT1 et LPT2. Y'avait un timer réglé tel que dt=5 secondes.

Ces manifestations sont des messages illisibles lors d'un lancement avec mon Delphi 3. Si l'application est lancée à partir de Windows, on connait les messages: "Les canvas ne permettent pas de dessiner", "Paramètre"... tout cela avec des boîtes de dialogue rappellant étrangement un style 16 bits. Ca m'a bien gonflé... Ce test illustre qu'il faut aborder avec prudence de tels codes sources. Ceci dit, il est puissant.
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
3 mai 2003 à 10:08
< je fais un espèce d'exposé ou je dois commander un appareil électrqiue par un pc >.
on ne peut pas commander de moteur, genre pas a pas directement
car le courant délivré est très faible pour cela il est préférable de réaliser
un protecteur de port centronics, parut dans INTERFACE PC Hors Série N°04
Octobre 1999, tiens je te donne l'adresse, regarde les archives il ce peut qu'ils donne le schéma + Nomenclature
http://www.electroniquepratique.com/
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
3 mai 2003 à 09:35
arf SetPin(ActivePort,'0000,1000') aura la même fonction que SetPin(ActivePort,4) et non SetPin(ActivePort,1) qui lui met a 1 D0
bien sur ActivePort renvoi le port choisit dans le ComboBox on peut
écrire SetPin(0x378,4) ou bien SetPin(LPT1,4); puisque LPT1 a été initialisé tout au début par la valeur 0x378(a changer si vous avez LPT1 sur une autre adresse)
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
3 mai 2003 à 09:29
petit Rappel de la Table d'adressage
en electronique on lis les données binaires de la droite vers la gauche okay!!! d'ou .....

MSB LSB
D7| D6 | D5 | D4 | D3 | D2 | D1 | D0 |
128| 64 | 32 | 16 | 8 | 4 | 2 | 1 |

voila si l'on veut mettre le pin 4(D3) à 1 on écrira Out(LPT1,8);
puisque 8 DECIMAL vaut 0000 1000 en binaire ce qui nous donne

D7| D6 | D5 | D4 | D3 | D2 | D1 | D0 |
128| 64 | 32 | 16 | 8 | 4 | 2 | 1 |
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
alors c'est pour ca que j'ais créé la fonction SetPin, elle a deux fonction surcharger:
si on lui attribue une valeur décimale alors la fonction vas tout simplement mettre a 1 le pin voulu,

exemple:
SetPin(ActivePort,1) vas mettre a 1 la sortie D0(broche 2), en revanche si on lui attribue une valeur chaine, la fonction vas mettre a 1 tout les pins mis a 1 dans la chaine de type binaire c'est a dire SetPin(ActivePort,'0000,1000') aura la même fonction que SetPin(ActivePort,1) sauf que avec les chaines on peut geré plus de sortie, autre Exemple
SetPin(ActivePort,'0,1,0,1,0,0,1,0') vas mettre a 1 D6,D4,D1 et a zéro D0,D2,D3,D5,D7 okay??? faut juste ce rappelé qu'on part de la droite vers la guauche, il est donc inutile de créé la fonction OutPort puisque les commentaires que j'avais mis était pour le début de mon post, car il n'y avait pas les fonctions SetPin ect....
donc utilisez la fonction SetPin car elle vas facilité la gestion des sorties puisque elle fait le calcul d'adressage des sorties ;)
et il ne faut surtout pas croire que LPT1=0x378 car tout dépend de la configuration du Bios ect....., et LPT1 peut avoir la valeur 0x378 ou 0x3BC c'est le cas pour WinXP qui gère 3 ports LPT.

attention le composant TSmLed a subit quelque améliorations
et certaine propriété on changer de nom
par exemple Activate a été remplacer par Active, donc il suffit de faire la modife sinon je vais recompiler le projet avec pour ceux qui auront des problèmes(newbies oblige).
cs_kanon Messages postés 1 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 2 mai 2003
2 mai 2003 à 22:49
Salut!
je suis nouveau et je n'y connais pas grand chose en prog
mais je fais un espèce d'exposé ou je dois commander un appareil électrqiue par un pc.
on a déjà la fonction outport, le pilote, mais je ne sais pas comment commander pin par pin:

une commande du type ouport(0x378,2) met le pin 1 à 1, donc met la broche 2 ok?
bon, je suis pas niais non plus, mais c juste pour savoir si ca marchera car je ne compte pas griller le pc de mon pote

rappel : 0x378: adresse du port parallèle
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
26 avril 2003 à 09:23
Voila j'avais fais ca très vite, et de tête sans créé de Projet et...
maitenant j'ais remodifié ma source et la fonction INP fonctionne a présent, de plus la Table d'Adressage était incorrecte, j'ais donc rectifié les erreurs,ya la démo dans le Zip .... faut placé le Composant TSmartLed dans le même repertoire. En ce qui Concerne WinXP je pense qu'il bloque l'ecriture
des fichiers, genre Com1 ect.. tandis que la on travail directement avec le BIOS, donc c'est a tester sur XP, ca marche Impec sous Win98SE, dans les Carte T2G il reste toujours pas mal d'octet de libre qu'ont peut manipuler mais evidemment on ne peut plus inversé le Processus :). voila que dire de plus bah l'exemple lis etat du registre 888, j'ais desactivé la fonction qui ajoute+1 dans INP, car Base+1=Registre d'état
donc pour lire les états de Busy il faut faire INP(ActivePort+1) And 128;
0nE Messages postés 3 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 26 avril 2003
26 avril 2003 à 04:50
de l'asm tt ce k'ya de plus simple.pas la peine de chercher à faire autrement sous 95/98 puisque c la soluce la + directe.

bon alors juste un truc : sous 2000 ou sous xp ca marche pas parce ke l'os interdit l'acces direct au materiel.il faut utiliser un pilote genre tdlportio (http://diskdude.cjb.net/) pour ke ca marche.Ou c port95nt je c plus... (il est tard lol).

concernant le lecteur à t2g,sans etre totalement sur, fo surtout pas lire la carte entierement pour la comparer puisque certains bits changent (c une des protection de la t2g et c pour ca ke c pas possible de faire un emulateur de carte telephonique avec un pic,par ex).et si mes souvenir sont bon y a ke 4 ou 8 bits ki changent a chaque lecture et a l epoque ou je m etais interesse au prob l'algo de protection n'avait tjrs pas été découvert.

concernant l ecriture sur ta carte,excuse la kestion ms ca fait 2 ans ke g pas fait d'elec ms je crois me souvenir ke la carte ne pouvait etre écrite k'une fois (on met les bit à 0 ou à 1 je c plus).

en tt cas c sympa parce ke ce bout de code c absolument obligatoire pour des gens ki font de l'elec et ki utilisent leur pc avec leur montage.
cs_shining Messages postés 304 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 10 mars 2012
25 avril 2003 à 09:15
Avec ces fonctions on peut déja faire pas mal de choses, tel qu'un lecteur/encodeur de Carte T2G (carte téléphonique de nouvel generation), bien que cette derniere ne permet pas une grande protection contre la relecture(je fait allusion aux applications a base de serrure codé, dont la clé n'est autre qu'une carte T2G ect...) mais ceci dit c'est pas bien compliqué de faire un soft de ce genre.
Rejoignez-nous