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/
Version imprimable
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/
Ok alors dans unit1.pas j'ai trouve ceci
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?Code:
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;
Et aussi pour WinProcs il ne le trouve pas non plus!!
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.
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+
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
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
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...
:arrow: http://sub0.developpez.com/delphi/ZLTest.zip
Est-ce-que ça fonctionne chez toi?
Merci bocoup ca marche compilation sans auncune erreure!!! Mais aurait tu un autre compilateur a ma proposer qui marcherai sans prob?
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?
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...)Citation:
Envoyé par cerede2000
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é:Sous WinXP/2000/NT, ce code ne fonctionnera plus.Code:
1
2
3
4
5 program port; begin Port[$378]:=$01; end.
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...
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...Citation:
Envoyé par cerede2000
Bonne chance pour la suite du développement ;)
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! ;)
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
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!
:arrow: Sources complètes du projet
Extraire tous les fichiers pour tester la démo.
-> Ecriture puis lecture directes sur le port :à+Code:
1
2 portwriteb($378,123); Writeln(portreadb($378));
Ce petit programme fonctionne à merveille sous Windows XP et compilé en BP7
Maintenant je pense à solutionner mon petit problème de controle domotique en utilisant le port LPT1 au lieu du game port.Code:
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.
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.