• Viernes 8 de Noviembre de 2024, 18:42

Autor Tema:  Puerto Paralelo (xp)  (Leído 3165 veces)

Penguin-man

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Puerto Paralelo (xp)
« en: Lunes 8 de Enero de 2007, 21:27 »
0
Bueno,Pues tengo que hacer un programa que controle el puerto paralelo en c, pero al parecer los puertos en xp estan cerrados, lo hice en win9x y ahi se deja sacar informacion por el puerto paralelo, mi pregunta es, como se controla el puerto paralelo en xp, se usa alguna libreria diferente, o como puedo compilar un programa que controle el puerto paralelo en xp

El pingüino es Poderoso

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puerto Paralelo (xp)
« Respuesta #1 en: Lunes 8 de Enero de 2007, 22:13 »
0
En la gama NT no se pueden acceder a los puertos ya que es un S.O. de verdad, no como 9x. A menos que uses algun "hack" horrendo tenes la API de Windows disponible para cualquier cosa, busca CreateFile en la MSDN.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Puerto Paralelo (xp)
« Respuesta #2 en: Lunes 8 de Enero de 2007, 23:21 »
0
Uno de esos hacks "horrendos" que menciona Eternal es este:

http://www.geekhideout.com/iodll.shtml

Funciona bastante bien, la razón del "horrendo" Eternal la comentó en un post anterior del foro :).

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

jojojorge

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Puerto Paralelo (xp)
« Respuesta #3 en: Domingo 14 de Enero de 2007, 00:49 »
0
hola a todos

Eternal Idol
como me anudaría el CreateFile para poder usar el puerto. en cuanto lei tu post me puse a investigar aunque me tardare el triple de lo normal porque desgraciadamente no se ingles aunque me las arreglo como puedo.
si puedes podrías darnos una pista mas ya que no me gusta mucho usar esos hacks "horrendos"

salu2 y a investigar

..::[JiOn]::..

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Puerto Paralelo (xp)
« Respuesta #4 en: Domingo 14 de Enero de 2007, 08:06 »
0
Una pequeña duda, perdon por desvirtuar el tema central. Porque un "SO de verdad" no se puede acceder a esos puertos? Que tiene de bueno eso?. Y como hacen a funcionar las impresoras que se conectan por el puerto paralelo en XP? O lo que estan tratando de de decir es que en la gama NT se accede a estos puertos de una manera diferente que en 9x?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puerto Paralelo (xp)
« Respuesta #5 en: Domingo 14 de Enero de 2007, 09:23 »
0
Cita de: "jojojorge"
hola a todos

Eternal Idol
como me anudaría el CreateFile para poder usar el puerto. en cuanto lei tu post me puse a investigar aunque me tardare el triple de lo normal porque desgraciadamente no se ingles aunque me las arreglo como puedo.
si puedes podrías darnos una pista mas ya que no me gusta mucho usar esos hacks "horrendos"

salu2 y a investigar
Te dejo un recorrido por la MSDN, con documentacion y codigo de ejemplo.

Empezamos por CreateFile que es la funcion fundamental:
http://msdn.microsoft.com/library/default..../createfile.asp

Leela toda para entender los parametros necesarios y posibles a la hora de abrir. En el primer parametro ya vas a ver que se indica como abrir un puerto com (\\\\.\\COM1). Segui leyendo y en la parte de aclaraciones (Remarks) vas a encontrar el titulo Communications Resources donde te cuenta que tenes que usar el parametro OPEN_EXISTING siempre para dwCreationDisposition  y NULL para hTemplateFile y como no nos deja un enlace para mucha mas informacion especifica:

http://msdn2.microsoft.com/en-us/library/aa363196.aspx

En este ultimo enlace tenes 3 partes bien diferencidas, el About es pura y exclusivamente explicativo (teorico) mientras que el Using es totalmente practico e incluye ejemplos (codigo) utiles. Por ultimo el Reference es como su nombre lo indica una referencia con las funciones, codigos de control y estructuras usadas.

Seguramente despues necesites ReadFile y WriteFile, estas estan enlazadas en el About.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puerto Paralelo (xp)
« Respuesta #6 en: Domingo 14 de Enero de 2007, 09:36 »
0
Cita de: "..::[JiOn
::.."] Una pequeña duda, perdon por desvirtuar el tema central. Porque un "SO de verdad" no se puede acceder a esos puertos? Que tiene de bueno eso?. Y como hacen a funcionar las impresoras que se conectan por el puerto paralelo en XP? O lo que estan tratando de de decir es que en la gama NT se accede a estos puertos de una manera diferente que en 9x?
En esa direccion esta explicado:
http://www.geekhideout.com/iodll.shtml

Es por seguridad, asi como se separan los espacios de memoria, no se permite el acceso directo al hardware ya que se considera una accion privilegiada y peligrosa. Ademas de el problema que acarrea el acceso simultaneo por diferentes procesos que no se sincronizan entre si en lo mas minimo. Las impresoras en NT funcionan mediante un par de pasos, primero los procesos usando la API de Windows encolan sus trabajos en un servicio (el spooler) y este se encarga de pasar estos trabajos a los drivers del subsystem de impresion cuyo trabajo es traducir los comandos "universales" que se pasan con la API de Windows a los especificos que aceptan las impresoras (PCL, PostScript, etc) y finalmente estos pasan esos datos a los drivers de modo Kernel que se comunican con el puerto de la impresora, ya sea USB (Usbprint) o paralelo (Parport), que al ser codigo privilegiado si tiene acceso al hardware directamente. Dificilmente usen IN e OUT directamente ya que los drivers en NT tienen el objetivo de ser portables entonces se usan funciones o macros del HAL para este tipo de acceso.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

jojojorge

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Puerto Paralelo (xp)
« Respuesta #7 en: Viernes 21 de Septiembre de 2007, 04:48 »
0
hola a todos

baya trabajito de encontrar el post

les cuento que después de intentar muchas veces ejecutar el código el programa termina colgandose y tengo que reiniciar

me leí todo lo que pude entender de los links pero no me resulto, y como nesecitaba urgentemente los programas termine usando la libreria

también en otro programa intente escribir en memoria en un sector que reserve con la función globalallok paso lo mismo

mañana pongo el codigo para que me digan que estoy haciendo mal que ya estoy cansado de usar esa libreria.

como soy electrónico me es muy útil el puerto para probar muuuuchos circuitos.

salu2(:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Puerto Paralelo (xp)
« Respuesta #8 en: Viernes 21 de Septiembre de 2007, 09:15 »
0
Cita de: "jojojorge"
les cuento que después de intentar muchas veces ejecutar el código el programa termina colgandose y tengo que reiniciar

¿Que codigo? ¿Que programa?

Cita de: "jojojorge"
también en otro programa intente escribir en memoria en un sector que reserve con la función globalallok paso lo mismo

Depuralo.

Cita de: "jojojorge"
mañana pongo el codigo para que me digan que estoy haciendo mal que ya estoy cansado de usar esa libreria.

como soy electrónico me es muy útil el puerto para probar muuuuchos circuitos.

No podes decir que no te avise.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.