CONTEÚDO
- Visão Geral
- Gerar JAR
- Registrar TBR.PCLINK7.dll no windows
- Utilizar JAR
- Configuração no TOTVS Pesagem
- Endpoints
01. VISÃO GERAL
Nesse documento será apresentado como é feito a configuração para estar realizando a integração e utilização do TOTVS Dispositivos, utilizado para comunicar com a PCLINK7.dll da TOLEDO para a balança e leitor de TAG. A comunicação com a controladora é feita pela TBR.PCLINK7.dll da TOLEDO que comunica com a balança, cancela, display, semáforo e sensor de presença.
02. GERAR JAR
Para gerar o JAR do TOTVS Dispositivos baixe o projeto na azure e no eclipse clique com o botão direito em cima do projeto e clique em exportar.
Selecione a opção Runnable JAR file.
Configure como abaixo selecionando a classe main Dispositivo32BitMain
Após finalizar, o arquivo .jar será gerado na pasta target, onde pode ser copiado para outros diretórios.
03. REGISTRAR TBR.PCLINK7.DLL NO WINDOWS
Primeiramente fazer o download dos itens do PCLINK7 no site: Softwares e Drivers TOLEDO Brasil. É recomendado fazer a instalação no diretório padrão sugerido pelo instalador, que é o C:\Program Files (x86)\Toledo do Brasil.
Realizar a configuração do servidor de licenciamento da toledo (LMP) de acordo com a documentação contida no download, informando usuário e chave. Este é necessário para a validação da licença.
Após a instalação do LMP e do PCLINK7, na pasta de instalação, dentro de C:\Program Files (x86)\Toledo do Brasil\PCLINK 7\MCA haverá um arquivo chamado TBR.PCLINK7.dll, que é uma DLL .NET que se comunica com a tecnologia COM/COM+. Para registra-la no windows, é necessário instalar o .NET Framework na versão 4 ou superior. Download: .NET Framework.
Após instalar, acesse o diretório C:\Windows\Microsoft.NET\Framework\v4.0.30319 e execute o programa como administrador RegAsm.exe, que fará o registro da dll como feito abaixo.
RegAsm.exe /verbose /nologo /codebas "C:\Program Files (x86)\Toledo do Brasil\PCLINK 7\MCA\TBR.PCLINK7.dll" /tlb:"C:\Program Files (x86)\Toledo do Brasil\PCLINK 7\MCA\TBR.PCLINK7.tlb"
Após o registro você conseguirá utilizar a DLL.
04. UTILIZAR JAR
Para poder utilizar o jar, é necessário utilizar um JAVA 8 32bits e informar alguns parâmetros em sua inicialização.
Parâmetro | Funcionalidade |
---|---|
--debug | Ativa o log de entrada e saída de dados das requisições do TOTVS Dispositivos. Exemplo: true ou false |
--caminho-dll | Diretorio onde está localizado as DLLs utilizadas pelo TOTVS Dispositivos, como a PCLINK7.dll. Exemplo: C:\Windows\System32 |
--port | Porta onde o TOTVS Dispositivos será hospedado. Exemplo: 8082 |
--port-lmp | IP onde o LMP da TOLEDO esta hospedado para fazer a validação de licença: Exemplo: 4000 |
--chave-lmp | Chave de criptografia utilizada na comunicação com o LMP da TOLEDO. Exemplo 0000 |
--porta-mca | Porta padrão que será utilizada para a comunicação com os MCA's. Exemplo: 20000 |
--debug-jacob | Ativa o log da biblioteca JACOB ao interagir com uma DLL .NET com tecnologia COM/COM+. Exemplo: true ou false |
--caminho-dll-jacob | Informa em qual diretório esta localizado as DLLs jacob-1.20-x64.dll e jacob-1.20-x86.dll. Exemplo: C:\Tomcat\apache-tomcat-9.0.73\pims\lib |
--time-zone | Aplica as datas no log o time zone informado. Exemplo: GMT-3 |
--thread-time-out | Tempo máximo para execução da requisição (Prevenção de travar a thread). Exemplo: 20 (Segundos) |
Exemplo comando para iniciar o JAR:
"C:\Ferramentas\Java\jdk1.8.0_77\bin\java" -jar "C:\totvs\Agro-core\fontes\FRAMEWORK\BackEnd\totvs-dispositivos\target\totvs-dispositivos.jar" --caminho-dll "C:\Program Files (x86)\Toledo do Brasil\PCLINK 7\MCA" --port 8082 --ip-lmp SPON190100383 --port-lmp 4000 --chave-lmp 0000 --porta-mca 20000 --debug-jacob true --caminho-dll-jacob "C:\Devwin\totvs-agro-convergencia\FRAMEWORK\BackEnd\totvs-dispositivos\lib\jacob-1.20" --debug true --time-zone GMT-3 --thread-time-out 20
05. CONFIGURAÇÃO NO TOTVS PESAGEM
Como configurar no TOTVS Pesagem pode ser encontrado no link Configurações Gerais
06. ENDPOINTS
Os endpoints disponíveis na API estão documentados abaixo
6.1 BALANÇA TOLEDO PCLINK7
GET - /toledo/balanca/serial/pclink7/ler-peso/:com - Recupera o peso de uma balança serial toledo com a PCLINK7.dll, onde :com é o número da porta serial. O local onde a dll se encontra deve ser informada no parâmetro --caminho-dll. Retornar o peso do tipo float quando sucesso e os erros abaixo quando falha, os erros são enviados em formato string com status 500:
BSN-ERR-000.000.071 - Não foi possível conectar com a balança
BSN-ERR-000.000.064 - Não foi possível capturar o peso!
BSN-ERR-000.000.068 - Há sobrecarga sobre a balança
BSN-ERR-000.000.816 - Erro na solicitação da informação para o equipamento.
BSN-ERR-000.000.069 - Não foi possível detectar a hardkey local ou de rede
POST - /toledo/balanca/ip/pclink7/ler-peso - Recupera o peso de uma balança socket toledo com a PCLINK7.dll. O local onde a dll se encontra deve ser informada no parâmetro --caminho-dll. Deve-se enviar um JSON com o IP e o CANAL:
{
"IP": "127.0.0.1",
"CANAL": "A" // Pode ser A, B, C ou D
}
Retornar o peso do tipo float quando sucesso e os erros abaixo quando falha, os erros são enviados em formato string com status 500:
BSN-ERR-000.000.071 - Não foi possível conectar com a balança
BSN-ERR-000.000.064 - Não foi possível capturar o peso!
BSN-ERR-000.000.068 - Há sobrecarga sobre a balança
BSN-ERR-000.000.816 - Erro na solicitação da informação para o equipamento.
BSN-ERR-000.000.069 - Não foi possível detectar a hardkey local ou de rede
6.2 LEITOR DE TAG TOLEDO PCLINK7
GET - /toledo/balanca/serial/pclink7/ler-tag/:com - Recupera a mensagem lida de uma leitor de tag serial toledo com a PCLINK7.dll, onde :com é a porta serial. O local onde a dll se encontra deve ser informada no parâmetro --caminho-dll. Retornar o conteúdo lido em formato string quando sucesso e os erros abaixo quando falha, os erros são enviados em formato string com status 500:
BSN-ERR-000.000.815 - Não é possível conectar com o Leitor Prix
BSN-ERR-000.000.064 - Não foi possível capturar o peso!
BSN-ERR-000.000.068 - Há sobrecarga sobre a balança
BSN-ERR-000.000.816 - Erro na solicitação da informação para o equipamento.
BSN-ERR-000.000.069 - Não foi possível detectar a hardkey local ou de rede
POST - /toledo/balanca/ip/pclink7/ler-peso - Recupera a mensagem lida de um leitor de tag socket toledo com a PCLINK7.dll. O local onde a dll se encontra deve ser informada no parâmetro --caminho-dll. Deve-se enviar um JSON com o IP e o PORTA:
{
"IP": "127.0.0.1",
"PORTA": "8000"
}
Retornar o conteúdo lido em formato string quando sucesso e os erros abaixo quando falha, os erros são enviados em formato string com status 500:
BSN-ERR-000.000.815 - Não é possível conectar com o Leitor Prix
BSN-ERR-000.000.064 - Não foi possível capturar o peso!
BSN-ERR-000.000.068 - Há sobrecarga sobre a balança
BSN-ERR-000.000.816 - Erro na solicitação da informação para o equipamento.
BSN-ERR-000.000.069 - Não foi possível detectar a hardkey local ou de rede
6.3 CONTROLADORA MCA TOLEDO
POST - /toledo/mca/inicializa - Inicializa a dll TBR.PCLINK7 utilizada para comunicação com a controladora MCA. São utilizados os parametros --porta-mca, --ip-lmp, --porta-lmp e --chave-lmp para inicia-la.
Retornos no formato int:
1 - Sucesso
0 - Falha
GET - /toledo/mca/inicializado - Verifica se a dll TBR.PCLINK7 já esta iniciada.
Retornos no formato boolean:
true - Já está iniciada
false - Não está iniciada
GET - /toledo/mca/encerra - Encerra a dll TBR.PCLINK7.
Retornos no formato int:
1 - Encerrado com sucesso
0 - Já foi encerrado
GET - /toledo/mca/versao - Retornar a versão da dll TBR.PCLINK7. Retorno no formato string. Exemplo: 1.0.20
POST - /toledo/mca/adiciona-mca - Adicona um MCA a dll TBR.PCLINK7. Os MCAs serão utilizados na porta informada no parâmetro --porta-mca e devem estar adicionados para utilizar os equipamentos conectados. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato boolean:
true - Adicionado com sucesso
false - Não foi possível adicionar
POST - /toledo/mca/remove-mca - Remove um MCA a dll TBR.PCLINK7. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato int:
0 - Falha
1 - Sucesso
2 - DLL não autenticada no LMP da TOLEDO
3 - MCA não adicionado a DLL
POST - /toledo/mca/realiza-leitura - Realiza a leitura dos status dos equipamentos ligados a controla pela dll TBR.PCLINK7. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retorna um Objeto do tipo DadosMCA com os valores lidos:
// Peso Bruto na Balança
private float bruto;
// Texto no Display A
private String displayA;
// Texto no Display B
private String displayB;
// Estado da balança conectada ao MCA Desligado = 0, Estavel = 1, Instavel = 2, Sobrecarga = 3, PowerUp = 4, FalhaCKS = 5, Desconectada = 6, FalhaBalancaSegmentada = 7, SegmentoNegativo = 8, DiferencaCasasDecimaisSegmentos = 9
private EstadoBalancaMCA estadoBalanca;
// Informações sobre a cancela - Lado A: Desligada = 0, Aberta = 1, Fechada = 2, Abrindo = 3, Fechando = 4, Falha = 5, FalhaSensorObstruido = 6, EmCursoNaoSolicitado = 7, AguardandoTempoMinimo = 8
private EstadoCancelaMCA estadoCancelaA;
// Informações sobre a cancela - Lado B: Desligada = 0, Aberta = 1, Fechada = 2, Abrindo = 3, Fechando = 4, Falha = 5, FalhaSensorObstruido = 6, EmCursoNaoSolicitado = 7, AguardandoTempoMinimo = 8
private EstadoCancelaMCA estadoCancelaB;
// Informações sobre a Entrada 0 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoEntrada0;
// Informações sobre a Entrada 1 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoEntrada1;
// Informações sobre a Entrada 1 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoEntrada2;
// Informações sobre a Entrada 1 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoEntrada3;
// Informações sobre a Entrada 1 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoEntrada4;
// Informações sobre a Entrada 1 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoEntrada5;
// Informações sobre a Saída 0 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoSaida0;
// Informações sobre a Saída 0 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoSaida1;
// Informações sobre a Saída 0 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoSaida2;
// Informações sobre a Saída 0 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoSaida3;
// Informações sobre a Saída 0 Desligado = 0, Ligado = 1
private EstadoIOMCA estadoSaida4;
// Informações sobre o Semáforo Externo - Lado A Desligado = 0, Vermelho = 1, Verde = 2
private EstadoSemaforoMCA estadoSemaforoExternoA;
// Informações sobre o Semáforo Externo - Lado B Desligado = 0, Vermelho = 1, Verde = 2
private EstadoSemaforoMCA estadoSemaforoExternoB;
// Informações sobre o Semáforo Interno - Lado A Desligado = 0, Vermelho = 1, Verde = 2
private EstadoSemaforoMCA estadoSemaforoInternoA;
// Informações sobre o Semáforo Interno - Lado B Desligado = 0, Vermelho = 1, Verde = 2
private EstadoSemaforoMCA estadoSemaforoInternoB;
// Informações disponíveis do Sensor Desligado = 0, Livre = 1, Obstruido = 2,
private EstadoSensorMCA estadoSensorLongitudinal;
// Informações disponíveis do Sensor Desligado = 0, Livre = 1, Obstruido = 2,
private EstadoSensorMCA estadoSensorTransversalA;
// Informações disponíveis do Sensor Desligado = 0, Livre = 1, Obstruido = 2,
private EstadoSensorMCA estadoSensorTransversalB;
// Informações disponíveis do Sensor Desligado = 0, Livre = 1, Obstruido = 2,
private EstadoSensorMCA estadoSensorTransversalDoMeioA;
// Informações disponíveis do Sensor Desligado = 0, Livre = 1, Obstruido = 2,
private EstadoSensorMCA estadoSensorTransversalDoMeioB;
// Peso Líquido na Balança
private float liquido;
// Se true, indica que após 10 segundos da última leitura, não houve mais recebimento do MCA, o que sugere uma desconexão do módulo. Recomendado tomar a ação de realizar um processo de reconexão (fechar e abrir conexão) até o novo recebimento de informação.
private boolean possivelDesconexao;
// Indica que o MCA está com todas as informações para indicar um peso válido
private boolean prontoParaPesar;
// Tara na Balança
private float tara;
// Último recebimento de dados vindos do MCA
private Date ultimaLeitura;
POST - /toledo/mca/realiza-leitura/possivel-desconexao - verifica se o MCA esta a mais de 10 segundos sem se comunicar com a dll TBR.PCLINK7. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato boolean:
true - Indica que o MCA pode estar desconectado.
false - Indica que o MCA esta conectado.
6.3.1 BALANÇA MCA TOLEDO
POST - /toledo/mca/balanca/peso-liquido - Recupera o peso líquido da balança conectada a controladora MCA. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato float.
POST - /toledo/mca/balanca/peso-bruto - Recupera o peso bruto da balança conectada a controladora MCA. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato float.
POST - /toledo/mca/balanca/peso-tara - Recupera o peso tara da balança conectada a controladora MCA. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato float.
POST - /toledo/mca/balanca/status - Recupera o status da balança conectada a controladora MCA. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato string:
Desligado - Não configurada
Estavel - Com peso estável
Instavel - Com peso instável
Sobrecarga - Em sobrecarga
PowerUp - Ligando
FalhaCKS - Falha de comunicação com a balança
Desconectada - Sem receber dados da balança
FalhaBalancaSegmentada - Falha Balança Segmentada
SegmentoNegativo - Segmento Negativo
DiferencaCasasDecimaisSegmentos- Diferença entre casas decimais nos segmentos
6.3.2 CANCELA MCA TOLEDO
POST - /toledo/mca/cancela/abrir/:lado - Abre a cancela conectada a controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato int:
0 - Falha
1 - Sucesso
2 - DLL não autenticada no LMP da TOLEDO
3 - MCA não adicionado a DLL
POST - /toledo/mca/cancela/fechar/:lado - Fecha a cancela conectada a controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato int:
0 - Falha
1 - Sucesso
2 - DLL não autenticada no LMP da TOLEDO
3 - MCA não adicionado a DLL
POST - /toledo/mca/cancela/status/:lado - Retorna o status da cancela conectada a controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato string:
Desligada - Não está configurada
Aberta - Aberta
Fechada - Fechada
Abrindo - Abrindo
Fechando - Fechando
Falha - Problemas em abrir ou fechar
FalhaSensorObstruido - Sensor obstruído, o que gera falha
EmCursoNaoSolicitado - Em movimento, mesmo sem solicitação
AguardandoTempoMinimo - Aguardando tempo mínimo para se manter em um estado
6.3.3 DISPLAY MCA TOLEDO
POST - /toledo/mca/display/:lado - mostra uma mensagem no display conectado na controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1",
"MCA_DISPLAY_ACAO": 0, // 0 - ApagarDisplay, 1 - ManterMensagem, 2 - RetornaBackground | Ação que será executada após o tempo definido
"MCA_DISPLAY_TEMPO": 10, // Em segundos
"MCA_DISPLAY_MENSAGEM": "Mensagem exibida
}
Retornos no formato int:
0 - Falha
1 - Sucesso
2 - DLL não autenticada no LMP da TOLEDO
3 - MCA não adicionado a DLL
POST - /toledo/mca/display/status/:lado - Retorna a mensagem do display conectado a controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retorno no formato string.
6.3.4 SEMAFORO MCA TOLEDO
POST - /toledo/mca/semaforo/verde/:lado - Ativa a luz verde no semáforo conectado na controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato int:
0 - Falha
1 - Sucesso
2 - DLL não autenticada no LMP da TOLEDO
3 - MCA não adicionado a DLL
POST - /toledo/mca/semaforo/vermelho/:lado - Ativa a luz vermelha no semáforo conectado na controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato int:
0 - Falha
1 - Sucesso
2 - DLL não autenticada no LMP da TOLEDO
3 - MCA não adicionado a DLL
POST - /toledo/mca/semaforo/status/:lado - Ativa a luz vermelha no semáforo conectado na controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato string:
Desligado - Semáforo não está configurado
Vermelho - Semáforo vermelho
Verde - Semáforo Verde
6.3.5 SENSOR MCA TOLEDO
POST - /toledo/mca/sensor/status/:lado - Ativa a luz vermelha no semáforo conectado na controladora MCA, onde :lado é qual cancela deve ser ativada A ou B. Deve-se enviar um JSON no formato:
{
"MCA_IP": "127.0.0.1"
}
Retornos no formato string:
Desligado - Não está configurado para utilizar este sensor
Livre - Indica que não existe nada interrompendo o sensor
Obstruido - Indica que o sensor está interrompido por alguma coisa