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

Python Discussion :

Paramétres fonction def


Sujet :

Python

  1. #1
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 87
    Points : 43
    Points
    43
    Par défaut Paramétres fonction def
    Bonjour,

    Dans mon programme je fais l'importation du module Adafuit_ADS1x15, j'utilise la fonction adc.read_adc()

    Lien de la bibliothéque: https://pypi.python.org/pypi/Adafruit-ADS1x15/1.0.1.

    Dans la fonction il est indiqué que l'on peut modifier le mode, ci-dessous une partie du code du module pour read-adc:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    def _read(self, mux, gain, data_rate, mode):
            """Perform an ADC read with the provided mux, gain, data_rate, and mode
            values.  Returns the signed integer result of the read.
            """
            config = ADS1x15_CONFIG_OS_SINGLE  # Go out of power-down mode for conversion.
            # Specify mux value.
            config |= (mux & 0x07) << ADS1x15_CONFIG_MUX_OFFSET
            # Validate the passed in gain and then set it in the config.
            if gain not in ADS1x15_CONFIG_GAIN:
                raise ValueError('Gain must be one of: 2/3, 1, 2, 4, 8, 16')
            config |= ADS1x15_CONFIG_GAIN[gain]
            # Set the mode (continuous or single shot).
            config |= mode
            # Get the default data rate if none is specified (default differs between
            # ADS1015 and ADS1115).
            if data_rate is None:
                data_rate = self._data_rate_default()
            # Set the data rate (this is controlled by the subclass as it differs
            # between ADS1015 and ADS1115).
            config |= self._data_rate_config(data_rate)
            config |= ADS1x15_CONFIG_COMP_QUE_DISABLE  # Disble comparator mode.
            # Send the config value to start the ADC conversion.
            # Explicitly break the 16-bit value down to a big endian pair of bytes.
            self._device.writeList(ADS1x15_POINTER_CONFIG, [(config >> 8) & 0xFF, config & 0xFF])
            # Wait for the ADC sample to finish based on the sample rate plus a
            # small offset to be sure (0.1 millisecond).
            time.sleep(1.0/data_rate+0.0001)
            # Retrieve the result.
            result = self._device.readList(ADS1x15_POINTER_CONVERSION, 2)
            return self._conversion_value(result[1], result[0])
    Ainsi pour configurer le mode de lectrure de l'ADc (Single ou continus), j'ai mis:
    MODE= "SINGLE"
    adc.read_adc(1, gain=GAIN, mode=SINGLE)

    Mais j'obtiens comme message erreur: " Type error: read_adc() got an unexpected keyword argument mode"

    Comment indiquer dans la fonction que je souhaite avoir un mode Single?

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    La méthode read_adc s'écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        def read_adc(self, channel, gain=1, data_rate=None):
            """Read a single ADC channel and return the ADC value as a signed integer
            result.  Channel must be a value within 0-3.
            """
            assert 0 <= channel <= 3, 'Channel must be a value within 0-3!'
            # Perform a single shot read and set the mux value to the channel plus
            # the highest bit (bit 3) set.
            return self._read(channel + 0x04, gain, data_rate, ADS1x15_CONFIG_MODE_SINGLE)
    Elle n'accepte pas le paramètre mode mais appelle la méthode privée _read avec mode=ADS1x15_CONFIG_MODE_SINGLE.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Mai 2016
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Mai 2016
    Messages : 87
    Points : 43
    Points
    43
    Par défaut
    Merci pour votre retour.


    J'ai modifier mon programme par:

    mode=ADS1x15_CONFIG_MODE_SINGLE
    val = adc.read_adc(mode, 1, gain=GAIN)


    Mais j'obtiens toujours un messsage d'erreur:

    NameError: name 'ADS1x15_CONFIG_MODE_SINGLE' is not defined

    Et quand je fais:

    mode=ADS1x15_CONFIG_MODE_SINGLE
    val = adc.read_adc( 1, gain=GAIN,mode)

    J'ai un message d'erreur de synthaxe: non keyword arg after keyword arg


    Comment résoudre cela?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Cerise22 Voir le message
    Comment résoudre cela?
    Il n'y a rien à résoudre: ".adc_read" lit déjà en single (voir mon post précédent).
    D'autant que ce que vous cherchez à faire (mal) ne sert à rien tant que vous n'aurez pas modifié la méthode .adc_read pour qu'elle gère un paramètre supplémentaire "mode" (dont elle n'aura que faire).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Problème de paramètre fonction
    Par sone47 dans le forum MATLAB
    Réponses: 10
    Dernier message: 31/01/2007, 20h39
  2. [VBA-E]paramètre fonction et tableau
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/01/2007, 09h56
  3. [C#] Paramètres fonctions
    Par Nico28 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/12/2006, 11h26
  4. Paramètres fonctions utilisation
    Par KinF dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/07/2006, 22h46
  5. Récupérer paramètre fonction
    Par masseur dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 26/06/2006, 11h51

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