Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Migración de un proyecto de gambas3 a Python3
#1

Hola:

Conversando con Shell, ofrecí poner aquí mi proyecto en Python3, que es una migración que viene de gambas3, usando el puerto paralelo (que para muchas personas ya está "muerto", pero para otro grupo de gente es un puerto importante para obtener control de dispositivos externos.

Se anexa el archivo SC6928B_PP.py comprimido.


Archivos adjuntos
.zip SC6928B_PP.zip Tamaño: 3.79 KB  Descargas: 4

Es mejor saber un poco de todo, que todo de muy poco. Lo primero, garantiza la supervivencia humana.
[-] Los siguientes 2 usuarios dicen gracias a AlfredoSC por este post:
  • Shordi, tincho
    ¡Gracias!
#2

Hola Alfredo, gracias por compartir.
Un saludo.

1 Saludo.
    ¡Gracias!
#3

(22-10-2021, 12:14)tincho escribió:  gracias por compartir
Hola Tincho y Shell

Bien, en el archivo python que envié, se coloca una palabra de no mas de 6 letras en el cuadro de texto (Texto a EnviarSmile. Digamos que pongo 'Alfred' y pulso el botón 'Enviar'

En el Display físico que tengo conectado al puerto paralelo, efectivamente sale la palabra: "ALFrEd", que son los caracteres que puedo convertir a segmentos.

Una segunda "tirada" al botón 'Enviar" provoca que en el display aparezca: "ALFrE", es decir se omitió la "d".

Usando el debugger de VSCode, paso a paso, encuentro que la letra "D", que la tengo definida como una constante llamada D1 = [0,1,1,1,1,0,1], (que son los segmentos de display a,b,c,d,e,f que deben encenderse o apagarse para formar la letra "d"), poniendo el cursor en dicha variable la pone como D1 = [0,0,0,0,0,0,0] y esa es la razón por la que no aparece en mi Display.

Cómo pudo mi código cambiar los datos de D1, ya que es una constante?
Así que busqué alguna pista de dónde pudo haber sucedido eso y no la encuentro.

Pensando que era un bug de VSCode, ahora ejecuto en consola:

python3 SC6928B_PP.py

Y corre exactamente igual, con el mismo problema. Se pierde la "d" de "ALFrEd"....

Yo le llamo a esos casos extraños "Un Torito" y a veces pasa varias semanas y hasta meses en que retomo el asunto y me pasa igual que a Shell y digo "yo hice esto, antes era un genio?"...ya tengo 63 años y no quito el dedo del renglón.....

Saludos a todos.

Es mejor saber un poco de todo, que todo de muy poco. Lo primero, garantiza la supervivencia humana.
    ¡Gracias!
#4

Hola AlfredoSC.

Hace tiempo que no practico Tkinter para tener formularios.

¿ Puedo ejecutar el programa sin necesidad del hardware ?.

En la placa Asus Z370-P no tengo puerto paralelo, pero en la Gigabyte B450 Aorus M, si,
ya que mediante este puerto, cable adecuado y software, estuve haciendo transferencia de imágenes de disco Amiga al Pc.

Cable Paralelo Paradise Amiga

El adaptador con puerto serie y paralelo tuve que comprarlo ya que la placa no lo incorporaba.

Por ahora lo que parece que me falta es el modulo parallel que en Synaptic es python3-parallel
Cita:python3-parallel
pyparallel - module encapsulating access for the parallel port
versión: 0.2.2-4

No tiene dependencias. ¿ Necesito alguna cosa más ?.

Encontré este vídeo del manejo del puerto paralelo y Python3.


Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#5

Hay una larga lista de condicionales. Para ahorrar líneas puedes usar un diccionario.
Te muestro un ejemplo. Comparalo con la lista de sentencias if's.

Python
  1. # Sustitución de sentencias if y elif por diccionario
  2.  
  3. A11 = [1,1,1,0,1,1,1]
  4. B1 = [0,0,1,1,1,1,1]
  5. C1 = [1,0,0,1,1,1,0]
  6. D1 = [0,1,1,1,1,0,1]
  7. E1 = [1,0,0,1,1,1,1]
  8. F1 = [1,0,0,0,1,1,1]
  9. G1 = [1,1,1,1,0,1,1]
  10. H1 = [0,1,1,0,1,1,1]
  11. I1 = [0,1,1,0,0,0,0]
  12.  
  13. diccioletras = {'A':A11,'B':B1,'C':C1,'D':D1,'E':F1,'G':G1,'H':H1,'I':I1}
  14. letras = ['A','G','D','E','C','H']
  15.  
  16. for indice in range(0,6):
  17.     if letras[indice] in diccioletras.keys():
  18.         bait = (diccioletras[letras[indice]])        
  19.         print (diccioletras[letras[indice]])



Si lo copio y pego desde el VS Code lo hace con código html, fondos, colores.

Saludos

"El buen perfume en frasco pequeño se vende"
[-] Los siguientes 1 usuarios dice gracias a Shell por este post:
  • AlfredoSC
    ¡Gracias!
#6

(22-10-2021, 21:34)Shell escribió:  ¿ Puedo ejecutar el programa sin necesidad del hardware ?.

Hola Shell: Claro que si, porque mi programa en phyton no sensa si está presente o no dicho puerto ( y posiblemente debería hacerlo, pero hoy no es importante).
(22-10-2021, 21:34)Shell escribió:  en Synaptic es python3-paralle

Es posible que sea el mismo que yo bajé de GITHUB (pyparallel-master) que por ser el primero que se me puso enfrente, es el que estoy usando aunque buscando en la web encontré otros 5 o 6 mas. Lo importante, creo es saber los requisitos previos y dependencias.

El pyparallel-master que yo usé, requiere la instalación de jython (con "j") y por supuesto de python 2.2 o superior.

permisos a parport0 con sudo chmod 666 /dev/parport0

y desligar parport0 de lp (impresora) con:

sudo modprobe -r lp

Con ésto ya se tiene la comunicación desde python al puerto paralelo y se puede usar una pequeña tablilla de LEDs, como muestro en la foto:
[Imagen: 0iTDdiI.jpg]

Saludos....

(22-10-2021, 22:37)Shell escribió:  Para ahorrar líneas puedes usar un diccionario

Gracas Shell, funciona perfecto con tu sugerencia...me ahorré 40 líneas y da el mismo resultado!

Saludos....

Es mejor saber un poco de todo, que todo de muy poco. Lo primero, garantiza la supervivencia humana.
    ¡Gracias!
#7

(24-10-2021, 03:27)AlfredoSC escribió:  El pyparallel-master que yo usé, requiere la instalación de jython (con "j") y por supuesto de python 2.2 o superior.

Aunque parece que tengo python 2.7 en el sistema suelo usar solamente python3.
Ojo, que no es lo mismo python 2 que python 3. Que cambian cosas y lo hace algo incompatible.
 
(24-10-2021, 03:27)AlfredoSC escribió:  Claro que si, porque mi programa en phyton no sensa si está presente o no dicho puerto ( y posiblemente debería hacerlo, pero hoy no es importante).

Ok. Smile

Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)