Autor Tema: Pasen Por favor... Quiero charlar con Uds.  (Leído 4908 veces)

Titohc

  • PIC12F
  • **
  • Mensajes: 257
Pasen Por favor... Quiero charlar con Uds.
« en: Octubre 25, 2009, 10:22:06 am »
BIENVENIDOS A MI ESCRITORIO EN CASA...  :rolleyes: Perdón por el desorden


Los invite a pasar porque considero que Uds. los Desarrolladores en C, C++ se encuentran en un nivel superior al mio y por ello son los únicos idoneos para consultar. Lo cual agradezco de antemano.

Hace dos meses que estoy investigando el Puerto Paralelo a fondo

desarrolle y logré en VBasic 6.0 encender el Led que quiero y presionando una tecla avisarle a mi software cual tecla presioné. En otras palabras; logre leer y escribir sobre mi puerto paralelo.
Seguí "Jugando" y logré que al presionar una Tecla en mi proyecto también encienda mi WebCam y Dispare un Sonido "Sirena"



Pero en realidad mi especialidad es el Desarrollo sobre Visual FoxPro 9.0. Y es aqui donde comienzan mis problemas.

1. Lograr encontrar una librería que remplace a la IO.dll del VBasic - La encontré hwinterface.ocx
2. Logré encender a mi voluntad los Leds como lo hacia antes.

Pero no logré hasta este momento presionar la tecla y reconocerla en mi Software.

Sobre las notas escritas por nuestros colegas en particular Usuario META observé que sobre el Puerto Paralelo se distingue una diferencia. Esta es:

Pines 02 al 09 con Puerto 888
Pines 10 al 13 con Puerto 889
Pines 14 al 17 con Puerto 890
Pines 18 al 25 Ground

Gracias a esto pude comprender porque a la hora de levantar los datos del puerto yo escribía: InPort(&H378+1) y no simplemente &H378.

Bien. Hasta acá solo mi introducción. Es ahora que inicia mi consulta a Uds.

¿Serían tan amables; y si no es complicado explicarme como logro DESGLOSAR la información para saber que tecla presioné a partir de identificar el pin?

¿Debo buscar dentro del Visual Foxpro un comando, una función, es solo codificación como en VBasic?


En el caso de VBasic esto lo hace solo con su librería IO.DLL, pero en el caso de V.FoxPro no es así. por ello recurro y necesito de vuestros comentarios.

Los cuales agradezco MUCHISIMO y aprovecho para enviarles un gran abrazo. Humberto (Gualeguaychú, E. Ríos - RF Argentina)









Que el conocimiento jamás tenga un dueño y siempre exista la libertad de nuestra imaginación a la hora de crear.
(Uno para todos y todos para uno)

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #1 en: Octubre 25, 2009, 10:43:18 am »
Sobre las notas escritas por nuestros colegas en particular Usuario META observé que sobre el Puerto Paralelo se distingue una diferencia. Esta es:

Pines 02 al 09 con Puerto 888
Pines 10 al 13 con Puerto 889
Pines 14 al 17 con Puerto 890
Pines 18 al 25 Ground


Que buena pinta tiene todo los que has hecho!
TODOS los pines de E/S están el emismo byte (seguramente el 888), y los de control en otros dos (889 y 890). Si podes escribir datos en el puerto y encender leds, se me ocurre que tenes todo como para poder leer tambien su estado. Si no lo logras, puede ser que el puerto esté configurado como solo salidas?

Desde el BIOS podes elegir 2 o 3 alternativas, desde el puerto "normal", que no tiene mas que salidas, hasta los ECP o EEP que son bidireccionales y más rápidos. Quizas el error esté ahi.

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

HJ

  • Moderador
  • dsPIC
  • ******
  • Mensajes: 5700
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #2 en: Octubre 25, 2009, 11:16:17 am »
Hola Titohc.
Muy buena la presentación en pantalla.
Te doy un consejo, la placa está muy prolija, pero eso de los cables colgando es peligroso, tratá de diseñarte una placa a medida y fabricartela (hay varios hilos en el foro que hablan del tema). Tené cuidado con el puerto paralelo, no soporta mucho los errores (cortocircuitos, coexión, desconexión, etc)

Ah. si eso te parece desorden date una vueltita por
http://www.ucontrol.com.ar/forosmf/fotos-de-mis-cacharros/fotos-de-mi-lugar-de-trabajo/

Saludos
"si te lo dicen se te olvida, si lo lees lo aprendes; pero si lo haces realmente lo entiendes"
"Cuando llegue la inspiración, que me encuentre trabajando" [Pablo Picasso]

Titohc

  • PIC12F
  • **
  • Mensajes: 257
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #3 en: Octubre 25, 2009, 03:20:39 pm »
Te doy un consejo, la placa está muy prolija, pero eso de los cables colgando es peligroso....Saludos

Gracias mi viejo, si eso fue una de las primeras cosas que leí, acerca del riesgo de trabajar con el Pto. Paralelo. Y como no tenía plata para el gabinete. Ya que todo empezó como un juego. aquí te muestro como tengo protegida la placa de un corto circuito.



 :grr: :grr: :grr: Lo que pasa que acá te cobran tres veces más caro los componentes que lo que salen en Bs.As.  :grr: :grr: :grr:


TODOS los pines de E/S están en el mismo byte (seguramente el 888), y los de control en otros dos (889 y 890). Si podes escribir datos en el puerto y encender leds, se me ocurre que tenes todo como para poder leer tambien su estado. Si no lo logras, puede ser que el puerto esté configurado como solo salidas?

Desde el BIOS podes elegir 2 o 3 alternativas, desde el puerto "normal", que no tiene mas que salidas, hasta los ECP o EEP que son bidireccionales y más rápidos. Quizas el error esté ahi.

Despacito, muy despacito estoy empezando a comprender tus palabras. No porque hables dificil sino que yo tengo muy pocos minutos de vuelo sobre la electrónica. Pero efectivamente es como Uds. Meta y vos dicen.

Yo antes me preguntaba ¿Porque hablamos de los pines 10, 11, 12, 13 y 15 cuando todos dicen que en la actualidad los 2, 3, 4, 5, 6, 7, 8 y 9 son I/O?

Son todos interrogantes que estoy despacito buscando respuesta. Con respecto a tu comentario acerca del Estado de mi puerto. Esta configurado, porque de lo contrario NO HUBIERA FUNCIONADO en VBasic. De todos modos verifiqué y estan correctos.



Les agradezco mucho la bienvenida de todos. Se que debe ser una gran tontería el problema. Si lo hice en VBasic, me cuesta entender que se me esta escapando en VFP. Un abrazo.
Que el conocimiento jamás tenga un dueño y siempre exista la libertad de nuestra imaginación a la hora de crear.
(Uno para todos y todos para uno)

Ariel

  • Global Moderator
  • dsPIC
  • ****
  • Mensajes: 10753
    • uControl
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #4 en: Octubre 25, 2009, 03:25:57 pm »
Yo antes me preguntaba ¿Porque hablamos de los pines 10, 11, 12, 13 y 15 cuando todos dicen que en la actualidad los 2, 3, 4, 5, 6, 7, 8 y 9 son I/O?

Esos pines si la memoria no me falla, son los "de control". Cuando usas el puerto con una impresora de matriz de puntos, por ejemplo, son los pines usados para el sensor de "no hay papel", "Lista", etc.

Aqui podes leer un poco sobre eso: http://www.todorobot.com.ar/proyectos/paralelo/paralelo.htm


Saludos!
PD: No dejes de preguntar!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

BrunoF

  • PIC16F
  • ***
  • Mensajes: 721
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #5 en: Octubre 25, 2009, 04:40:42 pm »
No entendí muy bien.

El hardware es el mísmo que cuando lo probaste con VB?

En VB lograste detectar la tecla pero ahora no?

Saludos.

geronimox

  • Moderador
  • PIC18F
  • ******
  • Mensajes: 1175
    • Divide & Conquer
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #6 en: Octubre 25, 2009, 05:00:28 pm »
Hola!
Nunca use VFP, pero si nos pasas algunas lineas claves de tu codigo, o al menos el nombre de las funciones de I/O del ocx que usas, como los parametros y lo que retornan creo que podriamos ayudarte mejor.
Mientras, te paso un tip.
Si usas una funcion por ejemplo InPort(&H378+1) y esta retorna un Byte, para conocer el estado de sus bits puedes hacer un proceso de enmascarado.
Por ejemplo si quieres saber si el bit 0 esta en 1, puedes hacer esto:
Código: [Seleccionar]
IF ( InPort(&H378+1) & 1 ) <> 0 THEN
    ' EL BIT 0 ESTA ACTIVO
END IF
O tambien con los otros bits:
Código: [Seleccionar]
IF ( InPort(&H378+1) & 2 ) <> 0 THEN
    ' EL BIT 1 ESTA ACTIVO
END IF
IF ( InPort(&H378+1) & 4 ) <> 0 THEN
    ' EL BIT 2 ESTA ACTIVO
END IF
IF ( InPort(&H378+1) & 8 ) <> 0 THEN
    ' EL BIT 3 ESTA ACTIVO
END IF
IF ( InPort(&H378+1) & 16 ) <> 0 THEN
    ' EL BIT 4 ESTA ACTIVO
END IF
IF ( InPort(&H378+1) & 32 ) <> 0 THEN
    ' EL BIT 5 ESTA ACTIVO
END IF
IF ( InPort(&H378+1) & 64 ) <> 0 THEN
    ' EL BIT 6 ESTA ACTIVO
END IF
IF ( InPort(&H378+1) & 128 ) <> 0 THEN
    ' EL BIT 7 ESTA ACTIVO
END IF

Desconozco como seran las sentencias de VFP por eso te las escribí de forma semi universal.
Espero te sirva.
Saludos!
Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'

Titohc

  • PIC12F
  • **
  • Mensajes: 257
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #7 en: Octubre 25, 2009, 07:16:23 pm »
No entendí muy bien. El hardware es el mísmo que cuando lo probaste con VB? - En VB lograste detectar la tecla pero ahora no?

Hola Geronimox Hola BrunoF es un gusto conocerlos

Si efectivamente era así
Primero yo lo desarrolle sobre VBasic 6.0 porque era lo que mas habia como bibliografía al respecto en toda la Web. y luego de andar y andar loqgré hacerlo funcionar como contaba al comienzo de mi Post.

Todo mi inconveniente surgió cuando lo quise llevar al lenguaje con el que yo en realidad trabajo a diario. Solo lo hice en VBasic forzado por las ciscunstancias.

Fue así que descubrí al comienzo que sobre VFP nadie lo habia conseguido. No se pueden dar una idea como pase leyendo y haciendo traducciones con Google sobre páginas de todo el mundo.

Pero hasta llegar a una página de la China. Es cierto en China un Chino tenía el mismo problema y dejo escapar un nombre. Ese nombre es HWINTERFACE.OCX.

 :rolleyes2: Eureka al fin había logrado encontrar lo que nadie tenía. Pero para responder a tu pregunta Visual FoxPro es un hijo directo de Microsoft no es considerado un Lenguaje de Programación como lo puede ser C, Assembler, COBOL, FORTAN, PASCAL e incluso BASIC.
VFP es un BASE DE DATOS RELACIONAL como lo puede ser; por ej. ACCESS
Por mucho tiempo tuve que soportar a colegas que no conocen VFP lo menospreciara a la hora de dar respuesta que no sea para ORDENAMIENTO DE DATOS, Etc.

VBASIC tiene todo el respaldo del mundo, por su trayectoria la que seguramente TODOS conocemos.

Es evidente que alguien con el conocimiento en C o assembler tomó las tradicionales IO.DLL o INPUT32.DLL de la Microsoft y la tradujo como una librería .OCX compatible con VFP. Pero evidentemente no fue difundida lo suficiente para que mis colegas en el mundo la conocieran. Vaya a saber porque.

Claro uno encuentra la solución servida "VBASIC" y nos quedamos con eso y ya esta. Bueno. Ese no es mi caso. la busque y la busque hasta encontrarla.

VFP a lo largo del tiempo se fue ganando un derecho propio. Si bien; como dije antes no es considerado un Lenguaje. Yo hoy me atrevo a decir que lo es. Recordando el concepto de Lenguaje de Programación como me lo enseñaron hace ya muchos años en el IGM de Cap. Federal. Lenguaje de Programación es aquel que me permite procesar datos para obtener una información a través de una secuencia ordenada de comandos y funciones.

Pero mientras Uds. me escribian yo seguí probando y probando y finalmente lo he logrado. ya estoy sabiendo que tecla viene estimulada desde mi placa. Era yo que estaba usando mal la librería.

Una vez que termine de realizar la codificación y que funcione como corresponde, podré publicarla para todos mis colegas usuarios de VFP que puedan necesitarla. Ya sea para abrir una caja registradora, hacer DOMOTICA o lo que quieran con el Puerto Paralelo.

Es evidente que haber entrado en este foro. ME TRAJO BUENA ONDA.
Les mando un abrazo inmenso a todos. Humberto

Que el conocimiento jamás tenga un dueño y siempre exista la libertad de nuestra imaginación a la hora de crear.
(Uno para todos y todos para uno)

bierzonauta

  • PIC10F
  • *
  • Mensajes: 2
Re: Pasen Por favor... Quiero charlar con Uds.
« Respuesta #8 en: Febrero 11, 2013, 01:56:08 pm »
Agradecería que alguien ducho en este tema del puerto paralelo y visual fox me explicase que debo hacer para trabajar con las entradas,he conseguido activar salidas d0-d9 con hwinterface.ocx,pero no tengo ni idea de como trabajar con las entradas....10,11,12,13,14,15...no encuentro absolutamente nada que me de una pista al respecto.Un saludo

 

anything