Question

Je suis assez nouveau à python et à travailler avec firmata je suis en train de jouer avec un arduino .

Voici ce que je veux:

  • Ensemble arduino avec une LED digital out
  • Mettre le potentiomètre analogique 0

  • Jeu de PyQt minuterie de mise à jour potentiomètre de position dans
    application

  • Définir un seuil en PyQt à son tour DEL sur (Analogique en a 1 024 bits la résolution, donc, dis-800 comme l'
    seuil)

Je me sers de ce firmata de la bibliothèque : Lien

Voici le code que j'ai de la difficulté avec:

import sys de PyQt4 import QtCore, QtGui de firmata importation *

 # Arduino setup
 self.a = Arduino('COM3')
 self.a.pin_mode(13, firmata.OUTPUT)

 # Create timer
    self.appTimer = QtCore.QTimer(self)

    self.appTimer.start(100)
    self.appTimer.event(self.updateAppTimer())


def updateAppTimer(self):
    self.analogPosition = self.a.analog_read(self, 0)
    self.ui.lblPositionValue.setNum()

Je reçois le message d'erreur:

Traceback (most recent call last):Fichier "D:\Programming\Eclipse\IO Demo\src\control.py", la ligne 138, dans myapp = MainWindow() Fichier "D:\Programming\Eclipse\IO Demo\src\control.py", la ligne 56, dans init auto.appTimer.de l'événement(de soi.updateAppTimer()) Fichier "D:\Programming\Eclipse\IO Demo\src\control.py", la ligne 60, dans updateAppTimer auto.analogPosition = auto.un.analog_read(auto, 0) TypeError:analog_read() prend exactement 2 arguments (3)

Si je prends "moi", je reçois le même message d'erreur mais que seulement 1 argument est donné

Qu'est-ce que python faisant implicitement que je ne suis pas au courant?

Blockquote

Était-ce utile?

La solution

Dans votre code 'a' est l'instance de classe, de sorte que toutes les méthodes, lié à elle, déjà auto pointeurs passés en premier params.Bienvenue à python, un jour vous le souhaitez :)

En contrepartie, vous pouvez appeler n'importe quelle méthode comme indépendant (et je suis sûr que vous le faites à chaque constructeur d'une classe dérivée).La syntaxe est:

instance = Type()
#bound method.
instance.methodName(params)

#unbound method call, 'instance' is the instance of some object, pointer to witch
#you want to pass to method. These calls are similar.
Type.methodName(instance, params)

Autres conseils

L'auto n'a pas besoin d'être passé.Je n'ai aucune idée de pourquoi il a échoué la première fois, ou pourquoi l'autonomie est déjà inclus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top