Integração com painel digital de banco em rede
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;
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
Curtidas 0
Respostas
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.
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
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