Bonjour, je travaille sur un Piface pour RaspBerry PI2
Je teste l'appui sur les 4 boutons pressoirs
J'ai 3 scripts
main.py
pifacetest.py
card.py
Dans main.py : je place un signal b1 (b2, b3, b4 ne sont pas activé pour simplifier)
qui doit se connecter avec le slot de card.py
le signal b1 est emit() lors de l'appui sur le bouton pressoir dans piface
Tout fonctionne bien sauf que le Slot est ignoré (le message print'Plusieurs balles' est ignoré)
Voici les 3 scripts , si une idée surgit, çà me ferait très plaisir
main.py
pifacetest.py
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 #!/usr/bin/env python # -*- coding: utf-8 -*- from pifacetest import PiFaceControl import sys from PySide import QtGui from PySide.QtCore import * from card import Card def main(): app = QtGui.QApplication(sys.argv) piface = PiFaceControl() cr = Card() piface.b1.connect(cr.someBalls) if __name__=='__main__': main()
card.py
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os import pifacedigitalio from PySide import QtGui from PySide.QtGui import * from PySide.QtCore import * class PiFaceControl(QObject): b1 = Signal() b2 = Signal() b3 = Signal() b4 = Signal() def __init__(self): QObject.__init__(self) try: self.pifacedigital = pifacedigitalio.PiFaceDigital() self.listener = pifacedigitalio.InputEventListener(chip=self.pifacedigital) self.activateButtonListener() except ImportError: print 'The module pifacedigitalio is not installed' def button1Pressed(self,event): print'bouton 1' self.b1.emit() def button2Pressed(self,event): self.b2.emit() print'bouton 2' def button3Pressed(self,event): print'bouton 3' self.b3.emit() def button4Pressed(self,event): print'bouton 4' self.b4.emit() def activateButtonListener(self): self.listener.register(0, pifacedigitalio.IODIR_FALLING_EDGE,self.button1Pressed) self.listener.register(1, pifacedigitalio.IODIR_FALLING_EDGE,self.button2Pressed) self.listener.register(2, pifacedigitalio.IODIR_FALLING_EDGE,self.button3Pressed) self.listener.register(3, pifacedigitalio.IODIR_FALLING_EDGE,self.button4Pressed) self.listener.activate()
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 #!/usr/bin/env python # -*- coding: utf-8 -*- from PySide import QtGui from PySide.QtCore import * class Card: def __init__(self): #QObject.__init__(self) try: print'je suis ds Card' except ImportError: print 'erreur ds Card' @Slot() def someBalls(self): print'Plusieurs balles'
Partager