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

Turbo Pascal Discussion :

[TP] Port parallèle [Archives]


Sujet :

Turbo Pascal

  1. #21
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    non, rien à voir avec les messages internet du style telnet!
    D'ailleurs il n'ya aucun rapport avec le port parrallèle...
    Voici une introduction aux messages windows (API):

    http://alphomega.developpez.com/EchangeVal/
    De retour parmis vous après 10 ans!!

  2. #22
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ok alors dans unit1.pas j'ai trouve ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PROCEDURE TForm1.ButtonWriteClick(Sender: TObject);
    VAR Value:Byte;
    BEGIN
     TRY
      Value:=max(min(StrToInt(EditWrite.Text),255),0);
      PostMessage(StrToInt(EditHandle.Text),ZL_ECRITURE,$378,Value);
     EXCEPT ShowMessage('Valeur incorrecte!');END;
    END;
    C'est donc ceci qui permet l'envoi d'un message c'est bien ca? Et c'est la routine PostMessage qui permet l'envoi avec l'utilisation du pilote c'est bien ca?
    Et aussi pour WinProcs il ne le trouve pas non plus!!
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #23
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    oui, c'est ce code qui permet d'écrire sur le port. Via les messages, on appelle les fonctions du programme Init_ZL que l'on pourrait comparer à un service (programme résident). Init_ZL est compatible 32bits, c'est donc lui qui est chargé d'accèder aux ports et te renvoit les résultats... Les messages permettent simplement de communiquer avec ce programme windows.
    De retour parmis vous après 10 ans!!

  4. #24
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Le couple d'unités WinTypes, WinProcs est une parade trouvée par Borland pour ses compilateurs 16 bits face à la taille conséquente des librairies Windows.
    Mais comme tu utilises Dev-Pascal, qui est un compilateur 32 bits, il y a de fortes chances que tu disposes de l'unité Windows qui rassemble les deux...

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  5. #25
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Si tu disposes de l'unité Windows, tu devrais peut-être réessayer de compiler ZLPortIO:

    Voici l'unité qu'il te manquait: http://sub0.developpez.com/delphi/WinSvc.pas

    ZLPortIO: http://sub0.developpez.com/delphi/LPT_1d.zip
    De retour parmis vous après 10 ans!!

  6. #26
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Merci deja pour ca! Mais maintenan j'ai plein d'erreur a la compilation dans le fichier winsvc.pas!!!! 31 en tout repartie dans tout le fichier!! C'est assez embetant
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  7. #27
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Tu as de la chance... Je suis arrivé à compiler ZLPortIO avec Dev-Pascal!
    Et en plus, ça fonctionne! Néanmoins, j'ai été obligé de "bricoler" le code des unités, donc ce n'est pas très propre sur quelques points. Le compilateur signale quelques erreurs à la compilation, mais ça ne l'empêche pas de fonctionner. Je ne pense pas que ça posera problème pour ton projet... Le programme de test écrit le byte 123 sur le port parrallèle ($378h), puis lit le port. Le résultat de la lecture est ce que l'on vient d'écrire. Cela confirme donc que l'on a bien écrit sur le port...

    http://sub0.developpez.com/delphi/ZLTest.zip

    Est-ce-que ça fonctionne chez toi?
    De retour parmis vous après 10 ans!!

  8. #28
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Merci bocoup ca marche compilation sans auncune erreure!!! Mais aurait tu un autre compilateur a ma proposer qui marcherai sans prob?
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  9. #29
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je n'ai pas compris ta question... Tu programmes bien avec Dev-Pascal n'est-ce-pas?
    Pourquoi voudrais-tu utiliser un autre compilateur? Et lequel?
    :
    1 • Quel est exactement l'objectif de ton projet?
    2 • Que dois-tu faire avec le port parrallèle?
    3 • Avec quel(s) système(s) d'exploitation comptes-tu utiliser ce programme?
    4 • Combien de temps disposes-tu pour développer ce programme?
    De retour parmis vous après 10 ans!!

  10. #30
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Citation Envoyé par cerede2000
    Mais aurait tu un autre compilateur a ma proposer qui marcherai sans prob?
    TP7 sous Win9x.... Pourquoi se faire ch***, alors que tu obtiendras strictement le même résultat (et peut-être même que tu obtiendras mieux...)
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  11. #31
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    wormful_sickfoot a raison!
    Avec TP7 sous Win95/98, les problèmes d'accès ne se posent plus.
    Le code suivant (16bits) fonctionnera sans difficulté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    program port; 
     
    begin 
      Port[$378]:=$01; 
    end.
    Sous WinXP/2000/NT, ce code ne fonctionnera plus.
    Il faudra alors passer par un pilote 32 bits pour pour accéder aux ports.
    Et pour pouvoir utiliser un pilote 32bits, il vaut mieux un compilateur 32bits...
    De retour parmis vous après 10 ans!!

  12. #32
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Donc sous xp pas d'autre choix que ce que je fait actuellement c'est bien ca?
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  13. #33
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Citation Envoyé par cerede2000
    Donc sous xp pas d'autre choix que ce que je fait actuellement c'est bien ca?
    Euh oui, tu es obligé de passer par une interface, tu ne pourras pas attaquer le port directement...

    Bonne chance pour la suite du développement
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  14. #34
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Le fichier ZLPORTIO.SYS est un service qui gère les droits d'accès aux ports dans un système d'exploitation multi-tâches... Sous ces systèmes, tous le matériel est géré avec des droits d'utilisateurs donnés aux programmes. Cela doit permettre d'éviter les conflits lorsque plusieurs programmes fonctionnent en simultanné et utilisent le même matériel (la mémoire ou le disque dur par exemple). Le matériel ne peut pas faire plusieurs choses à la fois. C'est pour ça qu'il faut utiliser des services qui se chargent de "distribuer" les ressources matérielles aux programmes. J'espère que tu as tout compris maintenant!
    De retour parmis vous après 10 ans!!

  15. #35
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ouai je croit que j'ai comprit un grand merci a vous tous!!!! Ce forum est geniale!!!! Une derniere question destine surtout a Sub0 pourquoi lors de la compilation il yas pour les fichier inclus le message "11 / 1 cours.pas
    Hint: unit WINSVC can't be smart linked, switching to static linking" par exemple et pour chaque fichier? Merci
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  16. #36
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Ce sont des messages d'avertissement propres à Dev-Pascal...
    Je n'en ai pas tenu compte pour la mise au point (tant que ça marche ).
    Je ne sais pas d'où ça vient mais ça ne perturbe en rien le fonctionnement!

    Sources complètes du projet

    Extraire tous les fichiers pour tester la démo.
    -> Ecriture puis lecture directes sur le port :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    portwriteb($378,123);
    Writeln(portreadb($378));
    à+
    De retour parmis vous après 10 ans!!

  17. #37
    Membre régulier Avatar de Transgarp
    Profil pro
    Inscrit en
    Février 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 99
    Points : 76
    Points
    76
    Par défaut
    Ce petit programme fonctionne à merveille sous Windows XP et compilé en BP7

    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
     
    Program lpt1_output;
     
    Uses Dos;
     
    Var
       addr:word;
       data:byte;
       e:integer;
     
    Begin
       addr:=MemW[$0040:$0008]; { Port LPT1 }
    {   Val(ParamStr(1),data,e);}
       data:=2;
       Port[addr]:=123;
       Writeln(addr,' ',port[addr1]);
    End.
    Maintenant je pense à solutionner mon petit problème de controle domotique en utilisant le port LPT1 au lieu du game port.

  18. #38
    Membre régulier Avatar de Transgarp
    Profil pro
    Inscrit en
    Février 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2008
    Messages : 99
    Points : 76
    Points
    76
    Par défaut
    Ah, j'oubliais.

    Sous XP il faut absolument débarrer le port parallèle LPT1 ou LPT2 à l'aide d'utilitaire comme DirectIO, sinon il ne se passe rien.

    Ca m'aide pas plus pour mon système domotique, car j'ai besoin des 8 premiers bits du port Data et Control de l'ordi. DiretcIO n'ouvre pas $300 à $303

    Dans le cas du $378, DirectIO ne libère que les bits D0 à D5

    Il y a t il quelqu'un qui connait une carte I/O digitale programmable par Pascal et fonctionnant sous XP ?

    Je me casserais moins les neurones.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/06/2010, 08h08
  2. port serie 232
    Par amrou dans le forum Développement
    Réponses: 1
    Dernier message: 07/01/2010, 23h40
  3. Port RS-232, activer en lecture - écriture
    Par snoopy69 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 09/07/2008, 08h51
  4. Réponses: 6
    Dernier message: 05/06/2008, 23h04
  5. Sortie TX à 1 ou 0 sur port RS-232
    Par tibo7 dans le forum C++
    Réponses: 0
    Dernier message: 02/06/2008, 14h39

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