• Jueves 14 de Noviembre de 2024, 16:48

Autor Tema:  Programa Para Puerto Serial  (Leído 2207 veces)

cesar_omar

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Programa Para Puerto Serial
« en: Jueves 3 de Marzo de 2005, 13:52 »
0
Saludos

 Estoy realizando un programa que lea datos del puerto serial, pero me da un a excepcion de privilegios me han comenatdo que es porque tengo windows xp no se que tan cierto sea.

 Por otra parte aqui dejo el codigo paar ver si d e repente es cuestion de error de codigo:

#include <vcl.h>
#pragma hdrstop

#include "puerto_serial.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void TForm1::outp(unsigned short iPort,unsigned short iDatum)
{
 _DX=iPort;
 _AX=iDatum;
 __emit__ (0xEE);
}

unsigned int TForm1::inp(unsigned short iPort)
{
 _DX=iPort;
 __emit__ (0xEC);
 return (_AL);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Recibir(void)
{
recibir=0;
recibir=inp(0x2F8);
recibir=recibir^128;
recibir=recibir>>3;
recibir=recibir&31;
}
//-----------------------------------------------------------------------------
void __fastcall TForm1::Enviar(void)
{
  int a = 0;
  while (a!=10)
   {
     Recibir();
     a=recibir;
   }
}
//-----------------------------------------------------------------------------
void __fastcall TForm1::AceptarClick(TObject *Sender)
{
  Recibir();
  Edit1->Text=recibir;        
}
//---------------------------------------------------------------------------

garadeciendole d eantemano toda ayuda, sugerencia o colaboración

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Programa Para Puerto Serial
« Respuesta #1 en: Jueves 3 de Marzo de 2005, 20:58 »
0
Olvidate de ese codigo, el error es porque justamente utilizas windows XP y el ASM para el acceso I/O no existe, para tener acceso total al puerto serial o paralelo necesitaras librerias externas o bien estudiarte la API CreateFile con la cual tienes acceso al Serial Port o LPT. En google hay varios ejemplos de programas para manejar el RS232 con la API CreateFile, buscare, creo que tengo uno por ahi dando vueltas. Saludos ;)
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

Aljav

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Programa Para Puerto Serial
« Respuesta #2 en: Lunes 14 de Marzo de 2005, 22:01 »
0
Bueno, acerca de tu problema creo que es por que builder ya no te permite el acceso a los puertos.  No tiene nada que ver con el sistema operativo.

bajate la libreria NTport de la pagina http://www.zealsoft.com/ntport/.

La instalas, y listo. Ahi vienen algunos ejemplos para lenguajes como Visual Basic y Builder.

Espero te sirva

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Programa Para Puerto Serial
« Respuesta #3 en: Miércoles 16 de Marzo de 2005, 04:31 »
0
No es el builder, es el "sistema operativo", si no proba el Builder 6 en win 98 y luego el mismo programa en win XP... y contame... antes el acceso al puerto se hacia usando ASM, pero en XP ya no te permite un acceso tan directo al Hard. Por eso se usan librerias como la que recomiendas, las cuales no son mas que funciones con las APIS para el acceso. Pero el compilador no tiene nada que ver. Si quieres puedes programar en XP con el DGJPP, usando APIS nada es imposible. Saludos
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»