TODOPIC
Lenguajes de programación para PC => Delphi => Mensaje iniciado por: IIIC en 17 de Julio de 2006, 15:31:29
-
Bien, mi nombre es Ivan y desde hace algun tiempo migre de visual C++ a Delphi por su rapidez en cuanto al desarrollo de software.
El área que mas me interesa es el enlace de Delphi con cualquier tipo de sistemas electronicos (la primera vez conecte la plancha a mi computadora), y quisiera que este hilo nos sirva para dar soluciones concretas al problema de enlace desde delphi a cualquier puerto.
bien para empezar iniciare con el puerto paralelo (el mas facil) para que de una vez empiecen a trabajar.
Sabemos que en las versiones de windows actuales no se permite acceder a los puertos tan facilmente,
Esto se debe de hacer en el mejor de los casos mediante una DLL que nos de acceso.
Para nuestra fortuna existe una libreria llamada inpout32.dll que hace todo el trabajo, que la pueden encontrar en muchos sitios de internet o pedirmela en mi correo.
Para cargar esta libreria hay que construir una nueva UNIT y declarar las funciones necesarias de la siguiente manera:
unit CargarLibreria;
interface
procedure Out32(PortAddress: Word; Data: Byte); stdcall;
function Inp32(PortAddress: Word): Byte; stdcall;
implementation
procedure Out32(PortAddress: Word; Data: Byte); external 'inpout32.dll';
function Inp32(PortAddress: Word): Byte; external 'inpout32.dll';
end.
y ya con esto podemos llamar a las funciones
Out32(Puerto, Dato)
Inp32(Puerto)
desde cualquier porcion de codigo no sin antes anexar nuestra unidad en la clausula USES.
Para enviar el numero del puerto es 888 ó $378 (Hexadecimal)
Ejemplo: Enviar un cero al puerto paralelo indispensable para inicializar el puerto y al cerrarlo.
////////////////////////////////////
Out32(888, $00);
/////////////////////////////////////
Para recibir o leer el dato el puerto es 889 ó $379 (Hexadecimal)
Ejemplo: Recibir un dato del puerto paralelo.
//////////////////////////////////////////
Declarar un dato tipo
Dato: Byte;
y capturamos
Dato := Inp32(889);
//////////////////////////////////////////
Eso es todo por el momento, la proxima ocasión les dire como estan organizados los bytes que recibimos de entrada y de salida, es decir la organizacion fisica del byte.
Al finalizar con el puerto paralelo seguiremos con el puerto serial.
Hasta pronto. Agradeceria que me dieran sus criticas. :-)
-
Magnifico hilo este que has inaugurado. Muchas gracias por tu aporte, y adelante con él ... :mrgreen:
-
Muy buen hilo, pero... ¿Por que no subes la libreria?
Un saludo
-
Bien, creo que debo de ser consecuente con la filosioia de este hilo, "Dar soluciones concretas" asi es que, de aqui en adelante pondre cada uno de los recursos necesarios a disposicion de ustedes, solo esperen un poco para hacerme de un espacio en la red y poner ahi todos los archivos. :-)
-
Bien, ya tengo un espacio.
Aqui tienen la dirección http://www.paginasprodigy.com/a53410500/compartidos/inpout32.zip (http://www.paginasprodigy.com/a53410500/compartidos/inpout32.zip)
Si el link se rompe por favor me avisan, es un sitio permanente.
-
En esta siguiente parte del tema Puerto Paralelo, queria señalar la forma en que se organiza el byte de entrada y de salida que nos proporcionan las funciones de la DLL.
Pero a cambio de eso les dejo un link a un pequeño programa que acabo de realizar para que vean graficamente la posicion de cada bit y su correspondiente sitio (fisico) dentro del conector DB-25.
http://www.paginasprodigy.com/a53410500/compartidos/pparalelo.zip (http://www.paginasprodigy.com/a53410500/compartidos/pparalelo.zip)
Nota: este archivo tambien contiene el archivo inpout32.dll
Continuare con una sencilla aplicación para controlar un Motor de Pasos bipolar.
Hasta pronto y ojala esten interesados en el tema.
-
Por supuesto que nos interesa, es interesante el trabajo que estas realizando. Así que te anomo a que sigas. Yo soy un enamorado de Delphi. Por cierto que componentes usas para los led del programa?.
Un saludo y animo con el trabajo que estas realizando.
-
Bien, pensaba ir desarrollando una aplicacion para el puerto paralelo, pero se que todos ustedes son lo bastante listos para poder implementar correctamente las funciones que nos otorga la DLL, incluso veo que en otro lenguajes tambien presentan la implementacion de esta libreria (c++ y C# ver el tema en el foro).
Ustedes saben que con un poco de informacion se puede hacer trabajar el puerto en todos los modos necesarios EPP, ECP, etc... solo es cuestion de alterar el byte de configuracion del puerto. (todo se resume a posiciones de memoria), pero si tienen mas preguntas por favor haganlas y juntos buscaremos una respuesta.
Por lo pronto ustedes, que estan acostumbrados al ambiente de Delphi, saben que algunas cosas se resuelven mediante los Componentes que algunos programadores liberan para nuestro uso, y gracias a todos ellos podremos avanzar facilmente en el tema del PUERTO SERIAL.
No hay mucho que decir y bastante que aprender, para el puerto serial es indispensable saber como se configuran sus parametros (velocidad, paridad, etc...) y lo que cada uno e ellos implica.
En delphi estos parametro se pueden editar en el momento del desarrollo y demas se pueden activar eventos para saber en que momento se reciben datos.
Sin mas preambulo les dejo la direccion donde pueden descargar el componente necesario para manejar el puerto serial
http://www.paginasprodigy.com/a53410500/compartidos/cport-3.10.zip (http://www.paginasprodigy.com/a53410500/compartidos/cport-3.10.zip)
las instrucciones necesarias para la instalacion vienen dentro del archivo, es compatible con las versiones 4,5,6,7, 2005 2006.
Asi que a trabajar y aprender. Les mando un saludo y pronto publicare algo sobre el puerto USB.
-
Ademas para que comiencen a experimentar con el puerto paralelo les dejo un buen tutorial a su disposicion (BONUS)
http://www.paginasprodigy.com/a53410500/compartidos/Interfacing Micro.zip (http://www.paginasprodigy.com/a53410500/compartidos/Interfacing Micro.zip)
que nos muestra conexiones del los microcontroladores.
Desde un simple led o boton, hasta interfaces avanzadas LCD, Serial etc. espero les guste y sobre todo les sirva para sus proyectos.
Desde México un saludo a todos los del foro, que sin su ayuda no podria haber construido mi GTP USB LITE.
Continuara...
-
Hola IIIC, acabas de ahorrarme algunas horas buscando en la net el componente para el puerto serie.
1M de gracias.
-
Hola IIIC, acabas de ahorrarme algunas horas buscando en la net el componente para el puerto serie.
1M de gracias.
Jejeje, un pasito por Enlaces, recursos, tutoriales y trucos de Delphi te hubiera ahorrado también muchas horas.
Echale un vistazo al TurboPower Async Professional
http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351 (http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351)
yo usaba el cport hasta que descubrí las librerias tpapro, te sugiero que pruebes ambos y saques tus propias conclusiones :) :)
Saludos
-
Yo utilizo las TpaPro desde hace años y me sería muy dificil cambiar a otras sin que me presionasen mucho, mucho mucho ... :mrgreen: :mrgreen: :mrgreen:
-
:z):z):z)
Si ya me lo decía mi madre cuando era pequeño, tienes que leer más, hijo, tienes que leer más.
-
:z):z):z)
Si ya me lo decía mi madre cuando era pequeño, tienes que leer más, hijo, tienes que leer más.
Jajaja :D :D :mrgreen: :mrgreen:
Yo comencé con el CPORT y hace un par de años uso TPAPRO..... y como dice Diego, también me tendrán que amenazar con violencia para que los cambie...
Hace más de 10 años que se vienen desarrollando estos componentes y realmente funcionan muy bien, no tengo quejas en lo absoluto. Las veces que no anduvieron es porque yo mal interpretaba alguna informacion. Además cuentan con un par de PDFs realmente muy extensos donde se cubre (en alguna medida) todos los aspectos de cada componente.
Incluso un mismo ejecutable, con acceso a hardware como es el puerto serie, puedes usarlo en Win98, Windows NT, Windows 2000, Windows XP! Osea --> excelente!!
El CPORT deja mucho que desear en ese aspecto.
Incluso, por ejemlo, el SIOW que viene con el CCS se ha programado con el TPAPRO ;)
-
Como nota anecdótica sobre los TpaPro, y sobre todo su componente TapdComPort ....
Mi trabajo actual, en el que llevo dos años y ya me han hecho contrato indefinido, se lo debo en gran medida a haber podido montar en solo un par de días un programa Delphi que controlaba una red RS-485 con mas de cien dispositivos colgados ... llevaban meses intentándolo y nadie había sido capaz de solucionarlo con rápidez y elegancia.
TpaPro lo hizo, con un poco de ayuda por mi parte. :mrgreen:
-
Y delphi donde me lo dejas? :-)
Un saludo
-
de donde me puedo bajar ese componente TpaPro??
saludos
-
TpaPro en http://sourceforge.net/projects/tpapro/
-
Estimados:
Con respecto a la comunicación por puerto USB, tendrían información, quizás algún componente para trabajarlo?
Saludos desde Neuquén, Argentina.
:)
-
Hola amigos yo solia manejar el puerto paralelo con delphi, pero tengo un problema :lol: desde que todo mundo usa xp no me funciona y bueno agradeseria un componente compatible con delphi 5 que no me moleste mas o una dll, con su correspondiente ayuda, a y que sea de libre uso.
Grasias mariano_pic
-
Al inicio del Tema esta indicada la libreria inpout32.dll (gratuita) la puedes encontrar muy facil en internet, (disculpa que el link no este funcionando, hice limpieza en mi sitio) la forma de usarla tambien se muestra ahi.
De todas formas si tienes problemas en encontrarla, enviame un e mail y te envio lo necesario.
Hasta luego.
-
Hola IIIC, acabas de ahorrarme algunas horas buscando en la net el componente para el puerto serie.
1M de gracias.
Jejeje, un pasito por Enlaces, recursos, tutoriales y trucos de Delphi te hubiera ahorrado también muchas horas.
Echale un vistazo al TurboPower Async Professional
http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351 (http://www.todopic.com.ar/foros/index.php?topic=11497.msg63351#msg63351)
yo usaba el cport hasta que descubrí las librerias tpapro, te sugiero que pruebes ambos y saques tus propias conclusiones :) :)
Saludos
queria saber mas sobre este componente soy nuevo en delphi y quiero saber si sirve para win xp y como lo instalo puesto que he intentado instalarlo de acuerdo al documento anexo (en la pagina de descarga) pero no lo consigo, ayuda porfavor....
-
TpaPro en http://sourceforge.net/projects/tpapro/
POR FAVOR AYUDA :::He intentado "instalar" el componente asyncpro para un proyecto en delphi 7 con sistema operativo winxp pero no consigo completar la instalación cuando intento compilar el paquete r70 me arroja un error (en rcl o vcl), quiza lo estoy haciendo mal por favor si me pudieras explicar como instalarlo te lo agradeceria muchisimo, de antemano gracias.
-
pregunta en www.clubdelphi.com
-
saben como se hace para recibir datos por el puerto parelelo, lo que quiero hace es que me reciba un dato por el puerto de estado y cuando reciba deje de enviar el dato por alguno del d0.d7 mi pregunta es si es nesesario meterlo en un repeat para que lea a cado rato el puerto o basta con un if o while o alguno de esos
-
saben como se hace para recibir datos por el puerto parelelo, lo que quiero hace es que me reciba un dato por el puerto de estado y cuando reciba deje de enviar el dato por alguno del d0.d7 mi pregunta es si es nesesario meterlo en un repeat para que lea a cado rato el puerto o basta con un if o while o alguno de esos
Si haces eso, es posible una ves que entre tu programa se bloquea, puedes hacerlo pero dentro del evento de un timer, cuando te llegue un dato entonces cambias una variable externa. A menos que la rutina sea enviar un dato, y tenga una funcion que permita detectar el no recivo del dato, de forma que no se quede indefinidamente dentro del bucle. Tal ves tengas que mostrar parte de tu codigo para ver de que se trata saludos.