• Jueves 18 de Abril de 2024, 04:23

Autor Tema:  Enviar Señal De Bits Al Puerto 378?  (Leído 1729 veces)

JDavid

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Enviar Señal De Bits Al Puerto 378?
« en: Viernes 8 de Octubre de 2004, 17:14 »
0
Hola mi nombre es José David, soy estudiante de Ingeniería, y me gustaría saber lo siguiente:
Necesito enviar bits al puerto paralelo 378 para enceder unos leds y podria ser en assembler, C, C++, o mejor aún en C#.net
He encontrato un código en C pero la verdad no me resulto todavía,

#include<stdio.h>
#include<conio.h>
#include<dos.h>

void main ()
{  int puerto = 0x378;
    int led = 1;

   outport (puerto, 0);
// si se pulsa cualquier tecla termina
    while (kbhit() == 0)
{
// enciendo el led
   outport (puerto, led );
   led = led *2;
// Si excede 128 tiene que volver a empezar
if(led > 128 )
led =1;
}}

Desde ya muchas gracias,
José David

sergiotarrillo

  • Moderador
  • ******
  • Mensajes: 1059
    • Ver Perfil
    • http://sergiot2.com/blog
Re: Enviar Señal De Bits Al Puerto 378?
« Respuesta #1 en: Domingo 10 de Octubre de 2004, 06:28 »
0
lo que te podria decir es que para trabajar con lo que son puertos, abrir, cerrar y lo que que quieras hacer se usa el espacion de nombres System.Net


Sergio Tarrillo
Blog]miBlog[/url]

No me visiten!

Johan Hernandez

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Enviar Señal De Bits Al Puerto 378?
« Respuesta #2 en: Miércoles 27 de Octubre de 2004, 22:37 »
0
Para C#.NET: Escucha viejo, lo que tengo entendido es que necesitas enviar un conjunto de bits al puerto paralelo de la impresora, si es eso, lo haras de la misma manera que se hace en C#.NET para comunicarse con el purto Serial.

Lo primero que necesitas es abrir un puntero al purto serial, esto se hace con una llamada a una libreria WIN32 (como user32.dll, no recuerdo cual) y llamando aun metodo de esa libreria para abrir un archivo WIN32, pero no abriras ningun archivo de disco duro si del puerto paralelo.

Necesitaras utilizar la interoperatibilidad de .net c#, haciendo una llamada externa como la que sigue:

[DllImport("user32.dll")...
extern openFile(string filepath,int mode...

Despues que lo hagas, ese puntero lo utilizar para inicializar un Stream, una de las sobrecargas de los contructores de la clase Stream te permite incializar desde un puntero, y asi utilizaras los metodos normales de un Stream para enviar tus bytes a la salida del puerto.

Es un poco largo y tedioso, te recomiendo que lo hagas en C++ pero no conosco c++ mas de lo que tu has escrito en el codigo que muestras. Es mas facil hacerlo en c++ que en C# porque es nativo, esta hecho para esas tareas, aunque despues que obtengas ese stream en c#, es como escribir binario en un archivo del disco duro.

Todo lo vi en el MSDN de Octubre pero no te se decir cual es el topico, lo estuve buscando. Es para VB.NET y C#m se titula algo asi como

"How to write binary data to the serial port".