Recebendo sinal da porta paralela !!??
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
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
Guilherme
Curtidas 0
Respostas
Vieira_alex
07/12/2005
Amigo visite esse site, tem muita coisa sobre portas paralelas e seriais, o site é 10...
http://www.rogercom.com/frame1.htm
http://www.rogercom.com/frame1.htm
GOSTEI 0
Guilherme
07/12/2005
ninguen conheçe algum componente ????
GOSTEI 0
Dopi
07/12/2005
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
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
GOSTEI 0
Dopi
07/12/2005
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)
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 ;
GOSTEI 0