Gambas France BETA


Pas de compte ? Incription

While Wend et port parallele

Ce sujet est résolu.

12
AuteurMessages
PapyBasic#1 Posté le 31/3/2014 à 13:43:22
"Parfois l'obstination est une voie !"Bonjour à toutes et à tous,
je suis (toujours) en train de réaliser un sismographe amateur.
Je souhaite piloter un MAX 187 , et pour ce faire j'ai besoin d'utiliser deux lignes sortantes du PC, et pour cela il suffit d'utiliser D0 à D7 sur la sortie 25 points du port imprimante.


'Dans Gambas 2 , nous sommes Root.
'Dans Gambas Class File

' Les déclarations sont faites comme dans l'exemple de Pierre .
' d’après l'exemple de Lapenduledargent DESWYSEN Pierre dans le forum gambas
' la super anti sèche du port parallèle :
' moniteur_état_broche_parallèle
' nom du fichier : moniteur_etat_broche_parallele-1.0.tar.gz
' 103 K
' Simple et efficace ! Merci Pierre




hPort = OPEN devport FOR READ WRITE
SEEK #hPort, &H379
READ #hPort, TotalDesBroches379
Label1.Text = TotalDesBroches379






J'ai bidouillé une interface me permettant de simuler , très lentement, les changements d'états des lignes du port parallèle.
Et cela fonctionne !

Maintenant j'ai un soucis,
sous visual basic de la fenêtre d'en face de chez bill la terreur , le code est :

While inp(LecturePort) And 128 = 0

Wend

J'ai essayé un truc du genre :

hPort = OPEN devport FOR READ WRITE
SEEK #hPort, &H379
WHILE READ #hPort, TotalDesBroches379 AND 128 = 0





Ben ça marche pas !
Gros snif !
Goutte au nez et petite larme, une âme charitable pour me tirer une balle dans le genoux ?
Si vous n'avez pas d'arme à feu, une solution ?
Cordialement Papy :santa:
PapyBasic#2 Posté le 31/3/2014 à 14:01:25
"Parfois l'obstination est une voie !"Re Bonjour , pour completer mon premier message, sortir les signaux ne me pose pas de probleme, c'est plutôt cette forme d'attente en rentrant !
Le code original sous la grande F de B.G.

'*************************************************
'******** ATTENTION CODE EN VB 2 *****************
'*************************************************
'******* code pour piloter un max187 ************
'*************************************************
'REM déclaration général ]

Declare Function inp Lib "inpout.dll" (ByVal port%) As Integer

Declare Sub OUT Lib "inpout.dll" (ByVal port%, ByVal Value%)

'************************************************

'REM ici définition de l'adresse du port de communication

AdresseDeBase = &H3BC

LecturePort = AdresseDeBase + 1

'REM cs haut (9//)

OUT AdresseDeBase, 128

'REM début de conversion

OUT AdresseDeBase, 0

'REM attente fin de conversion

While inp(LecturePort) And 128 = 0

Wend

'REM 'forçage avant transmission des datas

'REM Forçage horloge haut

OUT AdresseDeBase, 1

'REM Forçage horloge bas

OUT AdresseDeBase, 0

'REM transmission des datas

signalsismo = 0

'REM 12 tops d'horloge

For Horloge = 11 To 0 Step -1

'REM top = niveau haut

OUT AdresseDeBase, 1

ValeurVraie% = (Not inp(LecturePort)) And 128

'REM inversion pour atteindre la valeur vraie

If ValeurVraie% <> 0 Then signalsismo = (2 ^ Horloge) + signalsismo

'REM tops bas horloge

OUT AdresseDeBase, 0

Next




Il est donc bien question de la fonction (inpout) .
Pour moi, lire l'état physique de la ligne n'est pas une difficulté, c'est la boucle While wend avec la condition !


While inp(LecturePort) And 128 = 0

Wend



si j'arrive à comprendre ce truc,
je suppose que je suis en capacité de m'occuper du reste !
D'avance merci.
Cordialement Papy :santa:


Reivillo#3 Posté le 31/3/2014 à 14:36:55
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »
While inp(LecturePort) And 128 = 0

Wend
Peut-être les Parenthèses manquantes,
pour lever toute ambiguïté, dans la Condition !
1
WHILE ( inp(LecturePort) AND 128 ) = 0
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
PapyBasic#4 Posté le 31/3/2014 à 15:35:52
"Parfois l'obstination est une voie !"Merci Reivillo, pour ta réponse rapide.

C'est affreux mais il faut dire la vérité, sous VB2 en WouinWouin 98SE ce programme fonctionne très bien! Et depuis des années.

Moi, je souhaite me débarrasser VB2, 3 , 4 , 5 , 6 , studmachin et autres !...
Gambas m'offrant l'opportunité de travailler longtemps , bien et de façon stable, me conviendrait bien, si je n'achoppais pas sur un cerveau lent ( le mien ) pour m'adapter à un outil performant.
Là particulièrement, la commande de Pierre ( Lapenduledargent) est fonctionnelle pour entrer et sortir sur le port parallèle.
Il y a juste cette boucle de condition du genre , tant que l'état de la ligne ne bascule pas alors attendre !
Pour travailler sous Gambas 2 (et je suppose 3) , la commande qui fonctionne pour interroger la ligne entrante du port parallèle est :



hPort = OPEN devport FOR READ WRITE
SEEK #hPort, &H379
READ #hPort, TotalDesBroches379



Mais comment "fusionner" la commande While et Wend avec ce code ?
Dans ton commentaire, la citation fonctionne avec VB2
Je cherche une commande ayant la même fonctionalité sous Gambas 2.

Merci à vous tous, cordialement Papy :santa:
Reivillo#5 Posté le 31/3/2014 à 16:11:19
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »À tester...
1
2
3
4
5
6
7
8
9
10
11
12
13
WHILE (LecturePort AND 128) = 0


WEND

PUBLIC FUNCTION LecturePort()AS INTEGER

hPort = OPEN devport FOR READ WRITE' A déplacer peut-être de préférence dans Form_Open, avec < hPort > déclaré < Public >
SEEK #hPort, &H379
READ #hPort, TotalDesBroches379
RETURN TotalDesBroches379

END
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
PapyBasic#6 Posté le 31/3/2014 à 17:20:21
"Parfois l'obstination est une voie !"Reivillo merci , dés que je suis à la maison, je teste l'idée !
Effectivement, je n'avais pas du tout pensé à cette solution.
Quel que soit le résultat je repose une réponse ce soir.
Cordialement Jean-Pierre
PapyBasic#7 Posté le 31/3/2014 à 19:57:40
"Parfois l'obstination est une voie !"Re bonsoir, il y a un ordre precis pour installer une :

PUBLIC FUNCTION LecturePort() AS INTEGER


J'ai un message du genre :
"Type mismatch : Wanted Number , got Function instead"
Et comme maîe anglische ise verri bade ! ...
Moi je pas comprendre !
En français, "l'usage de la langue anglaise me depassant quelque peux, cette combinaison de mots m'éblouie comme une luciole en plein brouillard à trois heure du matin ."
En dehors de mon humour Carambar, si Gambasien a une solution je suis preneur !
Cordialement Papy
PapyBasic#8 Posté le 31/3/2014 à 20:00:23
"Parfois l'obstination est une voie !"Re bonsoir, il y a un ordre precis pour installer une :

PUBLIC FUNCTION LecturePort() AS INTEGER


J'ai un message du genre :
"Type mismatch : Wanted Number , got Function instead"
Et comme maîe anglische ise verri bade ! ...
Moi je pas comprendre !
En français, "l'usage de la langue anglaise me depassant quelque peux, cette combinaison de mots m'éblouie comme une luciole en plein brouillard à trois heure du matin ."
En dehors de mon humour Carambar, si un Gambasien a une solution je suis preneur !
Cordialement Papy
Reivillo#9 Posté le 31/3/2014 à 20:14:35
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Ta variable < TotalDesBroches379 >, est de quel Type?
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Reivillo#10 Posté le 31/3/2014 à 20:25:04
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Essaye avec Byte:
1
PUBLIC FUNCTION LecturePort() AS BYTE
Pour l'Anglais, utilise le traducteur de Google ICI
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
PapyBasic#11 Posté le 31/3/2014 à 20:59:48
"Parfois l'obstination est une voie !"Merci Reivillo, je tente la manip !
Cordialement Papy
Reivillo#12 Posté le 31/3/2014 à 21:07:43
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Déclare < TotalDesBroches379 > en < String >, et:
1
PUBLIC FUNCTION LecturePort() AS STRING
Puis sûrement modifier la condition en: < WHILE (LecturePort AND 128) = "" >
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
PapyBasic#13 Posté le 31/3/2014 à 21:22:43
"Parfois l'obstination est une voie !"Même message d'erreur , même endroit.
La variable est de type Byte
Merci à tous por votre soutien
Cordialement Papy
Reivillo#14 Posté le 31/3/2014 à 21:28:15
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Je viens de modifier, mon dernier Message #12.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
PapyBasic#15 Posté le 31/3/2014 à 21:28:18
"Parfois l'obstination est une voie !"Haaaaaaaaaaaaaaa !
J'y retourne immédiatement.
Merci Papy
12