Integração com painel digital de banco em rede

Delphi

15/03/2005

Tenho que enviar comandos para um painel digital (desses e senha de banco) através da COM1. O sistema quando envia o comando para o painel local funciona perfeitamente mas quando aciona um painel na rede ele não funciona. O que fazer para enviar o comando pela rede para a COM1?
Segue abaixo o método para envio do comando:

procedure EnviarComando(Comando: String);
var
hCommFile: THandle;
Status: LongBool;
NumberWritten: DWORD;
Buf : array [0..1023] of Byte;
s : string;
begin
s:= ´COM1´;
hCommFile:= CreateFile( PChar(s), GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0 );

if hCommFile = INVALID_HANDLE_VALUE then
begin
CloseHandle(hCommFile);
end
else
begin
s:= Comando;

NumberWritten:=0;
Status:=WriteFile( hCommFile,PChar(s)[0],
Length(s),
NumberWritten,
nil);
WriteFile(hCommFile,´ATH´,5,NumberWritten,nil);
CloseHandle(hCommFile);
end;
end;


Fabiocarige

Fabiocarige

Curtidas 0

Respostas

Massuda

Massuda

15/03/2005

Acho que portas seriais não podem ser compartilhadas via rede.

Uma alternativa seria usar TCP/IP... você faz um servidor que fica em cada máquina com o painel de senha e faz um cliente que conecta com o servidor correspondente e manda um comando; o servidor faria a comunicação serial com o painel.

Uma variação dessa idéia seria, se todas as máquinas usarem Win NT/2K/XP, usar mailslots.


GOSTEI 0
Kapak

Kapak

15/03/2005

Acho que depende como este painel está conectado. Se ele estiver conectado na porta serial do dispositivo tcp/ip, então vc somente vai ler e escrever através de Sockets.


GOSTEI 0
POSTAR