Puerto Impresora

Dudas sobre el C/C++ en general
Responder
Mensaje
Autor
Avatar de Usuario
Yoder
Mensajes: 2
Registrado: 08/12/2006 12:00 am

Puerto Impresora

#1 Mensaje por Yoder » 28/10/2008 2:54 pm

Hola masters C++. Necesito ayuda, tengo un proyecto escolar, tengo que hacer un aparato que, usando pistones, una lata de aire comprimido y demas cosas que ya tengo, sea capaz de tocar una flauta, pero tengo que conectarlo por el puerto de la impresora y hacer que funciones usando C++ como compilador (Turbo C++ 3.1 en este caso). Y quiero que funcione en Windows XP, no tengo ni las mas minima idea de como hacer eso. Ojala me pudieran ayudar, gracias.

IamNot
Mensajes: 222
Registrado: 06/08/2007 8:01 am

#2 Mensaje por IamNot » 28/10/2008 5:07 pm

queres ayuda con el software y la construccion de la maquina tambien?

Avatar de Usuario
Yoder
Mensajes: 2
Registrado: 08/12/2006 12:00 am

#3 Mensaje por Yoder » 28/10/2008 5:18 pm

mm, solo con el software, necesito saber la forma de meterme con el puerto usando C++. La verdad yo no le se nada a la electronica ni a la mecanica... pero como es en equipo, mis compañeros ya tienen la estructura de como quedara la electronica, pero eso es su parte, la mia es esta y la verdad ya me canse de buscar o preguntar a la gente, asi que espero que aqui me puedan ayudar, si tengo conocimientos, aunque basicos de programacion por eso me toco hacer esto.

Avatar de Usuario
eagleoneraptor
Mensajes: 187
Registrado: 20/05/2008 10:24 am
Ubicación: Buenos Aires(Argentina)

#4 Mensaje por eagleoneraptor » 30/10/2008 5:38 am

Creo que haría falta un poco de electrónica en esto, te podría decir que la forma de acceder al puerto de impresora (LTP1) es la siguiente (sinceramente no se si funciona ya que la impresora se me rompió antes de que aprendiera a programar :lol:):

Código: Seleccionar todo

FILE *fPuerto=fopen("LTP1","w");
O sea, se utiliza igual que un fichero, al abrirlo para escritura solo podrá envíar datos pero no leerlos (obvio que cambia según para que lo quieras utilizar), y utilizando streams sería así:

Código: Seleccionar todo

ofstream fPuerto("LTP1");
Este código es muy simple por eso a veces dudo que funcione, pero en todos lados dicen que se abre así :D .
Ok, entonces envías los datos con fwrite (en el primer caso), pero no se como se transmiten, y tampoco se bien como es tu aparato, asi que, expláyate.

También puedes abrir los puertos COM de la misma manera, pero cambiando "LTP1" por "COM1", "COM2", etc.
Y otra solución es conectar el aparato directamente al USB a ver si funca :) .

Suerte.
Un Saludo!
"Aquel que hace una bestia de si mismo se libra del dolor de ser un hombre". Dr. Johnson

WaRc3L
Mensajes: 199
Registrado: 12/06/2008 12:27 pm
Ubicación: en el registro de la CPU

#5 Mensaje por WaRc3L » 30/10/2008 10:20 am

wow!, eso funciona si conecto cualquie USB en mi ordenador?, no lo sabia!, pensava que era demasiado complicado!

Saludos!
ToDos PoDeMoS CoMpaRTiR La Luz De La BoMBiTa!

Avatar de Usuario
eagleoneraptor
Mensajes: 187
Registrado: 20/05/2008 10:24 am
Ubicación: Buenos Aires(Argentina)

#6 Mensaje por eagleoneraptor » 30/10/2008 2:35 pm

Si supuestamente tendría que funcionar, un amigo agarro un ventilador de un aparato externo, le pelo los cable y le coloco una ficha USB, y que creen? ¡Giraba!. Creo que para acceder al puerto USB hay que abrir el fichero como "USB001", etc. Y creo que sería mas recomendable usar este puerto que el LTP1, :? no creo que este último haga andar el aparato.

Un Saludo!
"Aquel que hace una bestia de si mismo se libra del dolor de ser un hombre". Dr. Johnson

Avatar de Usuario
cheroky
Mensajes: 2571
Registrado: 22/09/2005 11:00 pm
Ubicación: Valladolid (España)

#7 Mensaje por cheroky » 30/10/2008 7:10 pm

Para trabajar completamante con el(los) puerto(s) tendrás que usar el api apropiado (fundamentalmente en sistemas protegidos) para cada sistema.
En Win32 se pueden utilizar implementaciones de terceros como Inpout32.dll o las funciones para manipular ficheros como CreateFile y familia. En Linux disponemos de las funciones de bajo nivel intb y outb, ambas para C/C++ o/y ensamblado. Tambien para sistemas *nix las systemcalls open, read y write.


S2.
Imagen

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 64 invitados