Whlie infinito con pyparallel
Arnau Sanchez
arnau en ehas.org
Mie Feb 21 00:05:40 CET 2007
> p.setData(2)
> time.sleep(n)
>
> if p.getInAcknowledge() == 1:
> print 'A'
> if p.getInPaperOut() == 1:
> print 'B'
>
>
> Pero si ese mismo código lo pongo en un Whlile 1: o en un while que
> tenga un
> número grande de pasadas deja de andar y se desbarata todo... no da error
> pero no setea nada y te marca como si detectara...
Deberías explicar el problema con algo más de precisión. ¿Cuántas pasadas? ¿5?
¿1000? ¿Has probado a cambiar el valor del "sleep"? ¿Tienes algún otro puerto
paralelo donde probar?
Ahí va una versión alternativa del script:
import parallel
import time
p = parallel.Parallel()
while 1:
for data in range(4):
p.setData(data)
time.sleep(1.0)
ack = p.getInAcknowledge()
po = p.getInPaperOut()
print "Data: %d, Ack: %d, PaperOut: %d"%(data, int(ack), int(po))
---
> if p.getInPaperOut() == 1:
Al menos en el python-parallel de la versión 2.4, las funciones de entrada
devuelven un booleano (True/False), así que compararlo con 1 no es muy
aconsejable (de momento, por cuestiones de implementación y de compatibilidad,
True == 1 es verdadero, pero vete a saber en el futuro). "if p.getInPaperOut():"
es lo suyo.
Más información sobre la lista de distribución Python-es