Recebendo sinal da porta paralela !!??

07/12/2005

1

Olá,

Pessoal estou com umas ideias novas gostaria de saber como ki faço para capturar sinais que chegam atraves da porta paralela e como enviar tbm !!!!

so ki nao tenho nen ideia de como fazer isso !! mais nenhuma mesmo desde os cabos ate ao desenvolvimento do software !!!!


espero que vc´s me ajuden !!!!!

vlw


Responder

Posts

07/12/2005

Vieira_alex

Amigo visite esse site, tem muita coisa sobre portas paralelas e seriais, o site é 10...

http://www.rogercom.com/frame1.htm


Responder

12/12/2005

Guilherme

ninguen conheçe algum componente ????


Responder

12/12/2005

Dopi

Procure por [b:985b60ccb1]IOPort[/b:985b60ccb1] na NET...

Acho que os links a baixo podem ajudar...
http://www.sabereletronica.com.br/downloads.htm (veja o 319)
http://forum.clubedelphi.net/viewtopic.php?t=70844


Responder

12/12/2005

Dopi

Se vc quiser incluir uma função no seu código, ou ainda rodar o seu programa no Linux, veja essas funções abaixo extraidas do ACBrUtil.pas do projeto ACBr... Para usar essas funções abaixo, envie o endereço da porta em [b:c50b3e3e84]Decimal[/b:c50b3e3e84] e não em Hexa.

Portanto: 378 -> 888 (use a calculadora do Windows em modo cinetífico para converter)

{-----------------------------------------------------------------------------
 Lê 1 byte de uma porta de Hardware
 Nota: - Essa funçao funciona normalmente em Win9x,
        - XP /NT /2000, deve-se usar um device driver que permita acesso direto
          a porta do Hardware a ser acessado (consulte o fabricante do Hardware)
        - Linux: é necessário ser ROOT para acessar /dev/port
          (use: su  ou  chmod u+s SeuPrograma ) 
 ---------------------------------------------------------------------------- }
{$WARNINGS OFF}
function InPort(PortAddr:word): byte;
{$IFDEF LINUX}
var Buffer : Pointer ;
    FDevice : String ;
    N : Integer ;
    FHandle : Integer ;
{$ENDIF}
begin
{$IFDEF MSWINDOWS}
  asm
    mov dx,PortAddr
    in al,dx
  end;
{$ELSE}
  FDevice := ´/dev/port´ ;
  Buffer  := @Result ;

  FHandle := FileOpen(FDevice, fmOpenRead);
  if FHandle <= 0 then
     raise Exception.Create(´Erro abrindo:  ´+FDevice+#10+10+
                            ´Você deve ter direito de Leitura nesse diretório.´);
  try
     N := FileSeek( FHandle, PortAddr, 0 )  ;
     if N <= 0 then
        raise Exception.Create(´Erro ao acessar a porta: ´+IntToStr(PortAddr));

     N := FileRead(FHandle, Buffer^, 1) ;
     if N <= 0 then
        raise Exception.Create(´Erro ao ler a porta: ´+IntToStr(PortAddr));
  finally
     FileClose( FHandle );
  end ;
  sleep(5) ;   
{$ENDIF}
end ;
{$WARNINGS ON}

{-----------------------------------------------------------------------------
 Envia 1 byte para uma porta de Hardware 
 Nota: - Essa funçao funciona normalmente em Win9x,
        - XP /NT /2000, deve-se usar um device driver que permita acesso direto
          a porta do Hardware a ser acessado (consulte o fabricante do Hardware)
        - Linux: é necessário ser ROOT para acessar /dev/port
          (use: su  ou  chmod u+s SeuPrograma ) 
 ---------------------------------------------------------------------------- }
procedure OutPort(PortAddr: word; Databyte: byte);
{$IFDEF LINUX}
var Buffer : Pointer ;
    FDevice : String ;
    N : Integer ;
    FHandle : Integer ;
{$ENDIF}
begin
{$IFDEF MSWINDOWS}
  asm
     mov al, Databyte
     mov dx,PortAddr
     out dx,al
  end;
{$ELSE}
  Buffer := @Databyte ;
  FDevice := ´/dev/port´ ;

  FHandle := FileOpen(FDevice, fmOpenWrite);
  if FHandle <= 0 then
     raise Exception.Create(´Erro abrindo:  ´+FDevice+#10+10+
                            ´Você deve ter direito de Escrita nesse diretório.´);
  try
     N := FileSeek( FHandle, PortAddr, 0 )  ;
     if N <= 0 then
        raise Exception.Create(´Erro ao acessar a porta: ´+IntToStr(PortAddr));

     N := FileWrite(Fhandle, Buffer^, 1) ;
     if N <= 0 then
        raise Exception.Create(´Erro ao escrever na porta: ´+IntToStr(PortAddr));
  finally
     FileClose( FHandle );
  end ;
  sleep(5) ;
{$ENDIF}
end ;



Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira