Sismographes sous Linux
en Gambas 2 ( et / ou 3).



Gambas2 ou sous sa dernière version plus évoluée, Gambas 3 sont des  éditeurs de programmes qui permettent de programmer en Basic dans les environnements linux.


 La celebre crevette
La célèbre crevette !

Gambas permet de réaliser des projets intérressants.
Gambas est  soutenu par un groupe de passionnés.
Voir aussi :
http://fr.wikipedia.org/wiki/Gambas

Pour commencer, chargez Gambas2  via la logithèque d'Ubuntu ou bien via :
http://gambas.sourceforge.net/en/main.html
http://doc.ubuntu-fr.org/gambas
Gambas est disponible sous forme de paquets RPM ou Deb pour de nombreuses distributions Linux, notamment Debian, Ubuntu, SuSE ou encore Mandriva.
Gambas c'est plus qu'une grosse crevette !


Les programmes présentés dans cette page tournent avec Ubuntu ( Lynx Lucid & Précise Pangolin ) , Xubuntu et Linux Mint Maya.
Si votre distribution accueille  Gambas, alors je suppose qu'il ne devrais pas y avoir de problème.

Sous Linux existe un esprit de libre échange des informations, le côté lumineux de la force !

Yoda tucs le coté lumineux de la force.


"Beaucoup, encore, il te reste à apprendre !" ( Maître Yoda )

Les programmes qui suivent sont des mélanges d'idées, sorte de mosaïque d'idées.
Vous pouvez donc utiliser, ré-écrire , modifier librement les lignes de programmation.


Gambas2 en mode "super-utilisateur"

Pour pouvoir utiliser ces programmes, vous devez être en mode "super-utilisateur" , sous linux  il faut dire "root".
Pour utiliser Gambas2 en "root" il faut :
Ouvrir un terminal ( ou une console), vous avez un truc qui ressemble à:
machin@machin-desktop:~$
tapez derriere le symbole $ :
sudo gambas2
la console  ( le terminal ) répond par :
[sudo] password for machin : 
là vous entrez le mot de passe du super utilisateur.
Et Gambas s'ouvre en mode super utilisateur !


Utilisation du MAX 186 de MAXIM en sismographe 8 voies [ GB 2 ]

interface 8 voies


Dans fmain.form, vous posez 12 labels , un slider, un timer.
A partir de la ligne 'Gambas class file , vous copiez toutes les lignes jusqu'à fin de programme, et vous collez en lieu et place dans l'éditeur de Gambas2.
Vous avez un soucis, inscrivez vous dans le forum d'entraide à :
http://www.gambasforge.org/
Posez votre question en n'omettant pas de vérifier si le sujet a déjà une réponse, et en précisant que vous travailler sur Gambas 2 en ajoutant à la fin de votre question  [GB2].


'**************************************************************************
' ici debut du programme
' Gambas class file


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

'
'
'  This program is free software; you can redistribute it and/or modify
'  it under the terms of the GNU General Public License as published by
'  the Free Software Foundation; either version 1, or (at your option)
'  any later version.
'
'  This program is free software; you can redistribute it and/or modify
'  it under the terms of the GNU General Public License= as published by
'  the Free Software Foundation; either version 1, or (at your option)
'  any later version.
'
'  This program is distributed in the hope that it will be useful,
'  but WITHOUT ANY WARRANTY; without even the implied warranty of
'  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
'  GNU General Public License for more details.
'
'  You should have received a copy of the GNU General Public License
'  along with this program; if not, write to the Free Software
'  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
'
'***************************************************************************
'AFFECTATION DES VARIABLES




PUBLIC LeA AS String
PUBLIC ouinon AS String
PUBLIC Tacoma AS String
PUBLIC LePointDat AS String
PUBLIC chemainMaison AS String
PUBLIC GroupeDateHeure AS String
PUBLIC hPort AS File
PUBLIC Compteur AS Float
PUBLIC devport AS String = "/dev/port"
PUBLIC courtCicuit AS Float
PUBLIC jefreineadeuxpieds AS Float
PUBLIC leBonJour AS Date
PUBLIC pourlejour AS String
PUBLIC SUB _new()

END



PUBLIC SUB Form_Open()
DIM Monfichier AS File
' le timer 1 est actif
 timer1.enabled = TRUE
 ' la fréquence du timer est fixé à 10 KHz (théoriquement )
 ' d'autres taches ménagères vont fortement ralentir le processus
 Timer1.Delay = 1
 Label11.Caption = Timer1.Delay
   '*******************************************************************
  
   ' la variable LeBonjour prend la valeur du jour
   leBonJour = Now
    'la variable GroupeDateHeure prend la valeur de l'année, du mois, du jour, de l'heure et des minutes
    GroupeDateHeure = Format$(leBonJour, "yyyymmddhhnn")
    'La variable pourlejour prend la valeur de l'année, du mois, du jour
    pourlejour = Format$(leBonJour, "yyyymmdd")
    'chemainMaison est la position du répertoire d'enregistrement dans le disque dur
    chemainMaison = "/home/" & pourlejour & "/"
    'ouinon est une variable de comparaison , soit elle est égale à chemainMaison soit elle ne l'est pas !
    ' oui chemain devrait s'écrire chemin ! Mais je suis nul ! jplainé
    ouinon = Exist(chemainMaison)
              'si la variable chemainMaison est affectée de faux alors
              IF ouinon = FALSE THEN
              'creation chemainMaison
                  MKDIR chemainMaison
             END IF
            
 ' création du nom du fichier ou sera enregistré le signal sismique
 'création de la chaine identifiant le chemin
 'Tacoma est la chaine composée du chemin et du nom du fichier         
 'LePointDat est l'extention du nom du fichier "tec pour tectonique"
 LePointDat = ".tec"
 'La variable Tacoma identifie à la fois le chemin et le nom du fichier
 Tacoma = chemainMaison & GroupeDateHeure & LePointDat


 
 'Dans l'album Santiano - Le Port De Tacoma - Hugues Aufray
 ' TACOMA ?
      'PARE A VIRER LES GARS FAUDRAIT HALER
      'ON S ' REPOSERA
      'QUAND ON ARRIVERA
      'DANS LE PORT DE TACOMA
 'Tacoma est la destination finale CQFD
 'vérification de la présence du fichier Tacoma
 ' la variable ouinon est affectée de vraie ou faux
  OuiNon = Exist(Tacoma)
    'si la variable est affectée de faux alors
    IF ouinon = FALSE THEN
      'creation et ouverture de Tacoma
        Monfichier = OPEN Tacoma FOR CREATE
      'fermeture du fichier
       CLOSE #Monfichier
        'fin de condition
     END IF
'&H00FF8000& est une couleur
'background est la syntaxe pour modifier un fond , elle est précédée de la cible , ici l'etiquette
' tous les labels seront oranges à l'affichage
 Label1.background = &H00FF8000&
 Label2.background = &H00FF8000&
 Label3.background = &H00FF8000&
 Label4.background = &H00FF8000&
 Label5.background = &H00FF8000&
 Label6.background = &H00FF8000&
 Label7.background = &H00FF8000&
 Label8.background = &H00FF8000&

END
 
'Fonction pour ouvrir un le port entrees/sorties
PUBLIC FUNCTION OpenPort() AS File
  DIM hPortOpen AS File
  hPortOpen = OPEN devport FOR READ WRITE
  RETURN hPortOpen
END
 
'Fonction pour lire une valeur sur le port
PUBLIC FUNCTION LecturePort(hPortRead AS File, adr AS Integer) AS Integer
  DIM valeurLue AS Integer
  SEEK #hPortRead, adr
  READ #hPortRead, valeurLue
  RETURN valeurLue
 
END
 
'Fonction pour ecrire une valeur sur le port
PUBLIC FUNCTION EcrirePort(hPortWrite AS File, adr AS Integer, valeur AS Integer)
  SEEK #hPortWrite, adr
  WRITE #hPortWrite, valeur
END
 
'Fonction pour fermer le port
PUBLIC FUNCTION ClosePort(hPortClose AS File)
   CLOSE #hPortClose
END
 
PUBLIC SUB Timer1_Timer()
' le timer est une boucle, quand le timer est actif, les opérations se repetent
' mise en place des espaces réservés
   DIM Monfichier AS File
   DIM hPortTimer AS File
   DIM n AS Integer
   DIM SelectionCanal186 AS Integer
   DIM NiveauLogiqueAdrsCanal AS Integer
   DIM bit AS Integer
   DIM B AS Integer
   DIM PilotMax AS Integer
   DIM Sortie AS Integer
   DIM U AS Integer
   DIM MesureSismoHt AS Integer
   DIM MesureSismoSt AS Integer
   DIM MesureSismoSx AS Integer
   DIM MesureSismoCq AS Integer
   DIM MesureSismoQu AS Integer
   DIM MesureSismoTr AS Integer
   DIM MesureSismoDe AS Integer
   DIM MesureSismoUn AS Integer
   DIM C AS Integer
   DIM comparateur AS Integer
   DIM Monbooleen AS Boolean
   DIM Monboubouleen AS Boolean
   DIM LeTempsQuiPasse AS Integer
   DIM TempsUn AS Integer
   DIM MoinsLeTemps AS Integer
   DIM frequence AS Float
   DIM TempsDeux AS Float
  
      '****
      ' *** jefreineadeuxpieds *** la variable qui affecte la fonction wait
jefreineadeuxpieds = 0.00001
' **** ici on installe dans timer1 un temps d'arret  pour imposer une fréqence dans la boucle ****
WAIT jefreineadeuxpieds

' LeTempsQuiPasse va nous donner un nom pour chaque fichier au format ans mois jours heures minutes

LeTempsQuiPasse = Val(Format$(Now, "hhnnss"))
 
' compteur est un espion de boucle
' il permet de mettre un quadran  en rotation dans label9
' si la boucle n 'est pas statique, il doit tourner !

IF Compteur = 1 THEN Label9.caption = "^"
IF Compteur = 2 THEN Label9.caption = ">"
IF Compteur = 3 THEN Label9.caption = "v" ""
IF Compteur = 4 THEN Label9.caption = "<"
IF Compteur = 4 THEN Compteur = 0
' nous travaillons en communication avec le port parallèle
' mettre toutes les lignes de D0 à D7 à zéro
hPortTimer = OpenPort()
EcrirePort(hPortTimer, &H378, 0)
' le numéro de la voie qui sera lue dans le MAX
FOR n = 0 TO 7
  SelectionCanal186 = 7 - (n \ 2) - 4 * (n AND 1)

  NiveauLogiqueAdrsCanal = 128 + 16 * SelectionCanal186 + 8 + 4 + 2
 
 
  bit = 128
'cadencement des signaux d'horloge pour pouvoir lire la réponse
           FOR B = 0 TO 7  '''' Deuze sous n
    
  'WAIT 0.1
              IF (NiveauLogiqueAdrsCanal AND bit) = bit THEN
                PilotMax = 2
                  ELSE
                    PilotMax = 0
              ENDIF
             
                EcrirePort(hPortTimer, &H378, PilotMax)
                'WAIT 0.001
                EcrirePort(hPortTimer, &H378, PilotMax + 4)
               
                'WAIT 0.001
                EcrirePort(hPortTimer, &H378, PilotMax)
                'WAIT 0.001
                bit = bit \ 2
               
          
           NEXT   ' fin deuze sous n
' lecture de la réponse du Max
bit = 2048
Sortie = 0
  FOR C = 1 TO 16 ''''trois sous n
        EcrirePort(hPortTimer, &H378, 4)
       ' WAIT 0.0001
        EcrirePort(hPortTimer, &H378, 0)
 
 ' conversion en décimale  leBonJour = Now
          IF (LecturePort(hPortTimer, &H379) AND 32) = 32 THEN Sortie = Sortie + bit
              
      
       
    '  IF ((LecturePort(hPortTimer, &H379) AND 32) = 32) THEN Sortie = Sortie + bit
      'IF ((LecturePort(hPortTimer, &H379) AND 32) = 32) THEN STOP
       bit = bit \ 2
  NEXT
  ' affectation des résultats et affichage
U = Sortie
IF n = 0 THEN MesureSismoHt = U
Label1.text = MesureSismoHt
IF n = 1 THEN MesureSismoSt = U
Label2.text = MesureSismoSt
IF n = 2 THEN MesureSismoSx = U
Label3.text = MesureSismoSx
IF n = 3 THEN MesureSismoCq = U
Label4.text = MesureSismoCq
IF n = 4 THEN MesureSismoQu = U
Label5.text = MesureSismoQu
IF n = 5 THEN MesureSismoTr = U
Label6.text = MesureSismoTr
IF n = 6 THEN MesureSismoDe = U
Label7.text = MesureSismoDe
IF n = 7 THEN MesureSismoUn = U
Label8.text = MesureSismoUn
'affichage du chemin d'enregistrement
        LeA = Format$(Now, "yyyymmddhhnnssuu")
        'affichage du chemin complet et du nom du fichier d'enregistrement
          Label10.caption = Tacoma
'*******************************************************************************
        ' enregistrement des datas sismiques (ou autre !)
        ' ou autre car ce programme enregistre les données brutes sortie du max 186 de MAXIM
       
' fin de condition "n"
 NEXT
 ' toutes les 900 secondes soit 15 minutes ou 1/4 d'heure nous créons un nouveau fichier
 ' cela permettra d'aller chercher plus vite pendant le traitement des courbes !
    
  IF LeTempsQuiPasse MOD 900 = 0 THEN
             leBonJour = Now
             GroupeDateHeure = Format$(leBonJour, "yyyymmddhhnn")
             pourlejour = Format$(leBonJour, "yyyymmdd")
             chemainMaison = "/home/" & pourlejour & "/"
             ouinon = Exist(chemainMaison)
                IF ouinon = FALSE THEN
                    'creation chemainMaison
                    MKDIR chemainMaison
                END IF
            
             LePointDat = ".tec"
             Tacoma = chemainMaison & GroupeDateHeure & LePointDat
            'creation et ouverture de Tacoma
             ouinon = Exist(Tacoma)
           
                IF ouinon = FALSE THEN
                  'creation et ouverture de Tacoma
                  Monfichier = OPEN Tacoma FOR CREATE
                  'fermeture du fichier
                  CLOSE #Monfichier
              'fin de condition
              END IF
           
       END IF
       'Compteur fait tourner notre petit curseur en haut de la fonction timer
       Compteur = Compteur + 1
 ' Ouverture du fichier pour le stockage des données
   Monfichier = OPEN Tacoma FOR APPEND
   PRINT #Monfichier, LeA, MesureSismoUn, MesureSismoDe, MesureSismoTr, MesureSismoQu, MesureSismoCq, MesureSismoSx, MesureSismoSt, MesureSismoHt
   CLOSE #Monfichier
 'fermeture du port // parallele
 ClosePort(hPortTimer)
' fin de la boucle timer1
END

 
 
PUBLIC SUB Label1_MouseDown()
 
 
 
END
 
PUBLIC SUB Label2_MouseDown()
 

 
END
 



PUBLIC SUB PictureBox1_MouseDown()

 

END

PUBLIC SUB Slider1_Change()
 'Valeur minimal du slider = 1 , théoriquement nous devrions dans l'absolu monter à 1 kilo hertz
  Slider1.MinValue = 1
 'valeur maximal du slider = 2000 , nous ne pouvons pas ralentir au delà de 2 secondes !
  Slider1.MaxValue = 2000
  ' déplacement par petit pas , un par un !
  Slider1.Step = 1
  ' permet l'affichage de la valeur choisie , celà n'affiche pas la vitesse vraie (plus lente ! hélas !)
  Label11.Caption = Slider1.Value
  ' affectation effective du choix dans le timer par le biais de Delay
  timer1.Delay = Slider1.Value
 

END

PUBLIC SUB Label11_MouseDown()

 

END

' ici fin du programme
'******************************************************************************************
Vous testez, vous ajustez à votre gout, vous pouvez ensuite créer un executable.
Attention quand même pour utiliser l'executable, là aussi vous devez être "root"
Vérifiez le chemin de votre executable. Copiez le chemin
Ouvrir un lanceur et tapez dedans :
gksudo /home/la-ou-se-trouve-l-executable/sismo.gambas
Quand vous ouvrez, on vous demande le mot de passe et youpi, c'est parti !


frise



Utilisation du MAX 187 de MAXIM en sismographe  monovoie  [ GB 2 ]

Le protocole de communication avec le MAX 187 est plus simple.
Dans cette interface graphique, nous affichons la courbe, donc l'enregistrement est plus lent.
Le MAX 187 est stable, solide et robuste dans le temps.
C'est un bon composant pour débuter en sismologie amateur.

Dans fmain.form, vous posez 15 labels , un slider, un timer, un bouton, une dreaw aéra & 4 pictures box.
A partir de la ligne 'Gambas class file , vous copiez toutes les lignes jusqu'à fin de programme, et vous collez en lieu et place dans l'éditeur de Gambas2.
Vous avez un soucis, inscrivez vous dans le forum d'entraide à :
http://www.gambasforge.org/
Posez votre question en n'omettant pas de vérifier si le sujet a déjà une réponse, et en précisant que vous travailler sur Gambas 2 en ajoutant à la fin de votre question  [GB2].
( Mmmmmhhhhhhhhhh ! Ca sent le copié collé ! ...................)




'**************************************************************************
' Gambas class file


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

'
'
'  This program is free software; you can redistribute it and/or modify
'  it under the terms of the GNU General Public License as published by
'  the Free Software Foundation; either version 1, or (at your option)
'  any later version.
'
'  This program is free software; you can redistribute it and/or modify
'  it under the terms of the GNU General Public License as published by
'  the Free Software Foundation; either version 1, or (at your option)
'  any later version.
'
'  This program is distributed in the hope that it will be useful,
'  but WITHOUT ANY WARRANTY; without even the implied warranty of
'  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
'  GNU General Public License for more details.
'
'  You should have received a copy of the GNU General Public License
'  along with this program; if not, write to the Free Software
'  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
'
'***************************************************************************
'AFFECTATION DES VARIABLES


PUBLIC jajouteoujenleve AS Integer
PUBLIC X2p AS Integer
PUBLIC X1p AS Integer
PUBLIC canalA AS Integer
PUBLIC LeA AS String
PUBLIC ouinon AS String
PUBLIC Tacoma AS String
PUBLIC LePointDat AS String
PUBLIC chemainMaison AS String
PUBLIC CptBcl AS Float
PUBLIC AdditionDesPoids AS Integer
PUBLIC TotalSignSismo AS Integer
PUBLIC TotalBroche379bis AS Integer
PUBLIC GroupeDateHeure AS String
PUBLIC hPort AS File
PUBLIC devport AS String = "/dev/port"

PUBLIC SUB _new()

END



PUBLIC SUB Form_Open()
DIM Monfichier AS File
 timer1.enabled = TRUE
    Timer1.Delay = 0.1
  AdditionDesPoids = 0
  TotalBroche379bis = 0
   '*******************************************************************
' création du nom du fichier ou sera enregistré le signal sismique
  GroupeDateHeure = Format$(Now, "yyyymmddhhnnss")
'création de la chaine identifiant le chemin
  chemainMaison = "/home/"
  LePointDat = ".dat"
  'Tacoma est la chaine composée du chemin et du nom du fichier
  Tacoma = chemainMaison & GroupeDateHeure & LePointDat
  '*****************************************************************
  ' le delay du timer demarre à 100 ms
 
  Timer1.Delay = 30
 
  Label5.Caption = Timer1.Delay
  '*****************************************************************
 
 'vérification de la présence du fichier Tacoma
 ' la variable ouinon est affectée de vraie ou faux
  ouinon = Exist(Tacoma)
'si la variable est affectée de faux alors
 IF ouinon = FALSE THEN
 'creation et ouverture de Tacoma
    Monfichier = OPEN Tacoma FOR CREATE
 'fermeture du fichier

    CLOSE #Monfichier
 'fin de condition
 END IF

END
 
'Fonction pour ouvrir un le port entrees/sorties
PUBLIC FUNCTION OpenPort() AS File
  DIM hPortOpen AS File
  
  hPortOpen = OPEN devport FOR READ WRITE
  RETURN hPortOpen
END
 
'Fonction pour lire une valeur sur le port
PUBLIC FUNCTION LecturePort(hPortRead AS File, adr AS Integer) AS Integer
  DIM valeurLue AS Integer
  
  SEEK #hPortRead, adr
  READ #hPortRead, valeurLue
  RETURN valeurLue
END
 
'Fonction pour ecrire une valeur sur le port
PUBLIC FUNCTION EcrirePort(hPortWrite AS File, adr AS Integer, valeur AS Integer)
 
  SEEK #hPortWrite, adr
  WRITE #hPortWrite, valeur
END
 
'Fonction pour fermer le port
PUBLIC FUNCTION ClosePort(hPortClose AS File)
  
   CLOSE #hPortClose
END
 
PUBLIC SUB Timer1_Timer()
   DIM Monfichier AS File
   DIM Horloge AS Integer
   DIM hPortTimer AS File
   DIM MarqueA AS String
   DIM MarqueB AS String
   jajouteoujenleve = -1830 '-1550
  
    IF X1p > 1000 THEN
          X1p = 0
          X2p = 0
          DrawingArea1.Clear
    END IF
   X1p = X1p + 1
 
   hPortTimer = OpenPort()
' toutes les lignes de d0 à d7 sont à 0
   EcrirePort(hPortTimer, &H378, 0)
      WAIT 0.001
'ici debut de la mesure dans la boucle du timer
' cs haut broche 9 du port // activée à 1
  EcrirePort(hPortTimer, &H378, 128)
      WAIT 0.001
' la bascule de cs à 0 va provoquer la demande de conversion du max 187
  EcrirePort(hPortTimer, &H378, 0)
      WAIT 0.001
      '************************************************************************************************************
'quand max 187 est ok pour sortir la valeur , il bascule. Attente du start du max 187
' A T T E N T I O N    A    N E     P A S    M E T T R E    DE    W A I T   E N T R E  W H I L E    E T   W E N D
' Si non le programme bloque !
'******************************************************************************************************************
  WHILE ((LecturePort(hPortTimer, &H379) AND 128) = 128)
   
  WEND
 
  ' extraction des signaux
 
 
  EcrirePort(hPortTimer, &H378, 1)
 
  WAIT 0.001
  
  EcrirePort(hPortTimer, &H378, 0)
 
  TotalSignSismo = 0
 
  FOR Horloge = 11 TO 0 STEP -1
 
    EcrirePort(hPortTimer, &H378, 1)
    AdditionDesPoids = (NOT (LecturePort(hPortTimer, &H379))) AND 128
    IF AdditionDesPoids > 0 THEN TotalSignSismo = (2 ^ Horloge) + TotalSignSismo
    EcrirePort(hPortTimer, &H378, 0)

  NEXT
 
Label1.text = TotalSignSismo
 '******************************************************************************************************
 '**************                                    ****************************************************
 '**************        greffe affichage courbe     ****************************************************
 '**************                                    ****************************************************
 '******************************************************************************************************
     ' autorise l'affichage dans drawingaera1
      Draw.Begin(DrawingArea1)
      ' rem la couleur du pinceau
    
 
'************************************************************************

'Lea est le groupe date heure au milieme
        LeA = Format$(Now, "yyyymmddhhnnssuu")
        Label4.Caption = Tacoma

 'Ouverture pour écriture du fichier toto en mode txt
        Monfichier = OPEN Tacoma FOR APPEND
  'ecriture ligne par ligne du groupe date heure et du compteur
        PRINT #Monfichier, LeA, TotalSignSismo
'CLOSE #Monfichier

'*****************************************************************************
     
    
      
        'couleur de la courbe, verte
      Draw.ForeColor = Color.green
      ' aspect du trait (garder 1 si non pointillés exotiques !)
      Draw.LineStyle = 1
      'epaisseur du trait(garder 1 si non epaisseur gros boudin !)
      Draw.LineWidth = 1
      'trace un trait entre x1 y1 et x2 y2
      Draw.Line(X1p, TotalSignSismo + jajouteoujenleve, X2p, canalA + jajouteoujenleve)
      ' trace le marqueur de droite
       'Draw.Line(720, canalA + jajouteoujenleve, 720, TotalSignSismo + jajouteoujenleve)
      
        ' selection de la couleur du trait en rouge
      Draw.ForeColor = Color.red
     
      ' trace la barre rouge du bas de l'ecran
      Draw.Line(X1p, 300, X2p, 300)
 
      ' decalage des x et y avant rebouclage du timer
        X2p = X1p
        CanalA = TotalSignSismo
    ' fin du traçage
      Draw.End

 '**************************************************************************************************************
 '**********            fin de greffe               ************************************************************
 '*************************************************************************************************************

 

  ClosePort(hPortTimer)
END

 
 
PUBLIC SUB Label1_MouseDown()
 
 
 
END
 
PUBLIC SUB Label2_MouseDown()
 

 
END
 

PUBLIC SUB DrawingArea1_Draw()

 

END

PUBLIC SUB PictureBox1_MouseDown()

 

END

PUBLIC SUB Slider1_Change()

  Slider1.MinValue = 30
  Slider1.MaxValue = 2000
  Slider1.Step = 5
  Label5.Caption = Slider1.Value
  timer1.Delay = Slider1.Value
END

PUBLIC SUB Label5_MouseDown()

 

END

PUBLIC SUB Label3_MouseDown()

 

END

PUBLIC SUB Label11_MouseDown()

 

END

PUBLIC SUB Button1_Click()

  QUIT
Voilà !
Un grand merci à tous les poteaux de la liste de Gambas Forge,  merci au Tigre, merci à tous ceux qui me soutiennent dans ma folie de sismologue amateur depuis plus de 20 ans maintenant !
Merci
END

PUBLIC SUB PictureBox3_MouseDown()

 

END

PUBLIC SUB PictureBox2_MouseDown()

 

END

PUBLIC SUB PictureBox4_MouseDown()

 

END
' fin du programme


frise


Voilà !
Un grand merci à tous les poteaux de la liste de Gambas Forge,  merci au Tigre, merci à tous ceux qui me soutiennent dans ma folie de sismologue amateur depuis plus de 20 ans maintenant !
Merci !


gambas basicminttux

Dans le libre le 27 décembre 2014.