Seite 1 von 2

Verfasst: Freitag 20. Juli 2007, 10:54
von Robin
Im Paketmanager ist PyParallel nicht zu sehen,. Ich habe es schon mal gelöscht und dann nochmal installiert. Mein Programm bleibt immer hier hängen (# 1) und dann dort (# 2), wenn ich parport0 die Schreibrechte geben. Das Bsp.Programm verhält sich genauso http://pyserial.cvs.sourceforge.net/pys ... les/lcd.py

class Parallel:
"""
def __init__(self, port = 0):
if type(port) == type(""):
self.device = port
else:
self.device = "/dev/parport%d" % port
self._fd = os.open(self.device, os.O_RDWR) # 1 zuerst hier
self.PPEXCL()
self.PPCLAIM() # 2 dann hier
self.setDataDir(1)
self.setData(0)


So sieht der Code von PPCLAIM aus, der fehler ereignet sich in der letzten Zeile. Vielleicht ist Ubuntu einfach ungeeignet? Habe Ubuntu auf aktualisiert,
ohne Erfolg

def PPCLAIM(self):
"""
Claims access to the port. As a user-land device driver
writer, you will need to do this before you are able to
actually change the state of the parallel port in any
way. Note that some operations only affect the ppdev driver
and not the port, such as PPSETMODE; they can be performed
while access to the port is not claimed.
"""
fcntl.ioctl(self._fd, PPCLAIM)

Verfasst: Samstag 21. Juli 2007, 23:32
von apollo13
Um Gerold zu zitieren:
gerold hat geschrieben:Du arbeitest ja unter Ubuntu --> also verwende doch lieber ``sudo aptitude install python-parallel`` oder suche im "Synaptic" nach "python-parallel".
"python-parallel" ist im "universe"-Repository enthalten.

mfg
Gerold
:-)
Sprich du musst erst das "universe"-Repository freischalten, sonst wirst du es im Synaptic nicht sehen...

Verfasst: Montag 23. Juli 2007, 09:03
von Robin
Hallo Gerold,

habe Deinen Tipp ausprobiert,
+++++++++++++++++++++++++++++++++++
xyz@HalleX:~$ sudo aptitude install python-parallel
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Reading state information... Fertig
Lese erweiterte Statusinformationen
Initialisiere Paketstatus... Fertig
Erzeuge Tag-Datenbank... Fertig
Die folgenden Pakete werden zurückgehalten:
firefox firefox-gnome-support iptables libnspr4 libnss3
0 Pakete aktualisiert, 0 zusätzlich installiert, 0 werden entfernt und 5 nicht aktualisiert.
Muss 0B an Archiven herunterladen. Nach dem Entpacken werden 0B zusätzlich belegt sein.
Schreibe erweiterte Statusinformationen... Fertig
xyz@HalleX:~$
++++++++++++++++++++++++++++++++++++++++
Dann bleibt das Programm wieder hier hängen
parallelppdev.py
def PPCLAIM(self):
.
.
.
fcntl.ioctl(self._fd, PPCLAIM)

Fehlermeldung
"[Error 6] No such device or address

Soll ich lieber mal SUSE nehmen? Kannst Du denn PyParallel installieren
oder hat Dein Rechner keine parallele Schnittstelle?

Gruß Robin

Verfasst: Montag 23. Juli 2007, 09:23
von gerold
...dafür habe ich die Geduld nicht mehr.

Was von
du musst erst das "universe"-Repository freischalten
hast du nicht verstanden? Ich habe dir in diesem Thread sogar schon ein Bild davon gemacht. Und dass du zuerst die Reste vom vermurksten Selbstinstallationsversuch entfernen musst, sollte klar sein.

mfg
Gerold
:-)

PS: Ja, bei mir lässt es sich ohne Probleme installieren.
PS2: Was gibt dir "sudo aptitude show python-parallel" zurück?
PS3: Vielleicht hast du nach dem Einschalten des Universe-Repositories die Repository-Liste nicht neu heruntergeladen. --> Dann probiere mal "sudo aptitude update" aus. Und danach noch einmal "sudo aptitude show python-parallel". Und wenn dann endlich die Beschreibung von "python-parallel" angezeigt wird, dann sollte der Aufruf von "sudo aptitude install python-parallel" auch erfolgreich sein. Das siehst du, wenn du danach noch einal "sudo aptitude show python-parallel" aufrufst. Dann sollte irgendetwas von "State: installed" zu finden sein.

Verfasst: Montag 23. Juli 2007, 11:21
von Robin
Wahrscheinlich liegt es gar nicht an der Installation. Wenn ich mit Eric oder auf der Konsole das Beispielprgramm starte, tritt der schon oben erwähnte Fehler in from parallelppdev.py auf.
import parallel
p = parallel.Parallel()
p.setData(0x55)
# Läuft das bei Dir???
import * #linux, kernel 2.4
File "/usr/lib/python2.5/site-packages/parallel/parallelppdev.py", line 215
fcntl.ioctl(self._fd, PPCLAIM)
^
PS2: Was gibt dir "sudo aptitude show python-parallel" zurück?
Paket: python-parallel
Zustand: Installiert
Automatisch installiert: nein
Version: 0.2-5
Priorität: optional
Bereich: universe/python
Verwalter: Matthias Klose <doko@debian.org>
Unkomprimierte Größe: 102k
Hängt ab von: python-central (>= 0.5), python
Beschreibung: Module encapsulating access for the parallel port
This module capsulates the access for the parallel port. It provides backends for standard Python running
on Windows, Linux, BSD (possibly any POSIX compilant system). The module named "parallel" automaticaly
selects the appropriate backend.

Verfasst: Montag 23. Juli 2007, 14:05
von BlackJack
Kann es sein, dass schon ein anderes Kernelmodul den Parallelport belegt? Wenn zum Beispiel `lp` geladen ist, bekomme ich auch diese Ausnahme. Beispiel:

Code: Alles auswählen

$ sudo lsmod | grep parport
parport_pc             36388  1
parport                36936  3 lp,ppdev,parport_pc
Wenn ich das `lp`-Kernelmodul mit ``rmmod`` rauswerfe, dann klappt der Beispielcode.

E S G E H T!

Verfasst: Mittwoch 25. Juli 2007, 08:14
von Robin
Vielen, vielen Dank BlackJack, heute scheint die Sonne zu Recht, ich kann nun endlich die Schnittstelle mit PyParallel ansprechen.
Der letzte Tipp

Code: Alles auswählen

sudo rmmod lp

war entscheidend!
Das Betriebssystem Ubuntu war mir zwischenzeitlich abgestürzt, eine Neuinstallation war erforderlich und vielleicht sogar gut. Auch vielen Dank an Gerold, ohne die Hilfe der Moderatoren hätte ich es bestimmt schon aufgegeben, das Problem zu lösen.

:-)))

Verfasst: Donnerstag 16. August 2007, 15:06
von Y0Gi
BlackJack: *Ganz* wichtiger Tipp! Habe ich letzte Woche auf die nervige Tour selbst herausfinden müssen.