Como enviar o método processInfo para uma catraca?

Criada por Edgard Levy, Modificado em Sex, 21 Fev na (o) 12:53 PM por Edgard Levy

Resumo


    Este artigo ensina como liberar uma catraca com a seguite solução:

FaceIF (app android)
ServidorIF
DesktopIF (Catraca Linux)




Alteração na regra de negócio



Adicione o código abaixo na regra de negócio antes da declaração do método processCache


    

function sendProcessInfoToTurnstile(
  axios,
  releasesCommand,
  turnstileHostIP,
  personId,
) {
  axios
    .post(
      `http://${turnstileHostIP}/metodos/processinfo?deviceType=interface&info=${personId}`,
    )
    .then(response => {
      console.log(
        'sendProcessInfoToTurnstile',
        { releasesCommand, turnstileHostIP, personId },
        response.data,
      );
    })
    .catch(err => {
      console.log('sendProcessInfoToTurnstile - Error');
      console.error(err);
    });

  //duracao do tempo que vai ser exibido no tablet
  releasesCommand.accessTime = 3500;
  return releasesCommand;
}


No início do método método processCache, extraia a propriedade axios do parâmetro helpers e serialNumber da parâmetro cache. Conforme a imagem abaixo.


    


Ainda no método processCache, depois das validações e da manipulação da propriedade defaultResult.releasesCommand, use a função sendProcessInfoToTurnstile indicando o ip da catraca que receberá a solicitação do método /processinfo.


Esse alteração visa substituir o envio do comando liberaCatraca


Exemplo 1: Uma Catraca com dois tablets. Coloque o número de série do tablet no array. Esse código verifica se a propriedade serialNumber está contida no array de números de série dos tablets 


    

    //catraca1 = 192.168.2.108
    if (['68b6912e94b8', '589a3e653834'].includes(serialNumber)) {
      defaultResult.releasesCommand = sendProcessInfoToTurnstile(
        axios,
        defaultResult.releasesCommand,
        '192.168.2.108',
        personId,
      );
    }


Exemplo 2: Uma catraca com um tablet


    //catraca2 = 192.168.2.125
    if (serialNumber === 'e8d87eb5c840') {
      defaultResult.releasesCommand = sendProcessInfoToTurnstile(
        axios,
        defaultResult.releasesCommand,
        '192.168.2.125',
        personId,
      );
    }



É recomendável que a catraca tenha ip fixo, se não houver essa possibilidade, use o hostname dela.





Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo