Páginas filhas
  • Integração TOTVS Dispositivos/API de dispositivos


CONTEÚDO

  1. Visão Geral
  2. Gerar JAR
  3. Registrar TBR.PCLINK7.dll no windows
  4. Utilizar JAR
  5. Configuração no TOTVS Pesagem
  6. 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âmetroFuncionalidade
--debugAtiva o log de entrada e saída de dados das requisições do TOTVS Dispositivos. Exemplo: true ou false
--caminho-dllDiretorio onde está localizado as DLLs utilizadas pelo TOTVS Dispositivos, como a PCLINK7.dll. Exemplo: C:\Windows\System32
--portPorta onde o TOTVS Dispositivos será hospedado. Exemplo: 8082
--port-lmpIP onde o LMP da TOLEDO esta hospedado para fazer a validação de licença: Exemplo: 4000
--chave-lmpChave de criptografia utilizada na comunicação com o LMP da TOLEDO. Exemplo 0000
--porta-mcaPorta 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