RRUFUS Help

Comandos e Respostas do Protocolo

O Protocolo CloudBox é um conjunto de comandos e respostas projetados para controlar, configurar e monitorar o sistema de cronometragem do CloudBox. Esses comandos permitem gerenciar sessões de cronometragem, configurar as definições do sistema, verificar os status do sistema e executar várias funções de rede. Abaixo está uma explicação detalhada de todos os comandos, incluindo suas possíveis respostas e códigos de erro.

Formato do Comando do Protocolo

Ao enviar comandos para o CloudBox via soquete TCP, os comandos devem sempre ser enviados como texto simples em um formato específico. A estrutura geral do comando segue estas regras:

  1. Nome do comando: A primeira parte do comando é o nome da ação que você deseja executar (por exemplo, CHANGESYSTEMIPADDRESS).
  2. Argumentos: Quaisquer argumentos obrigatórios ou opcionais devem ser passados em ordem, separados por ponto e vírgula (`;`).
  3. Terminação: cada comando deve ser terminado com os caracteres \r (retorno de carro e nova linha) para sinalizar o final do comando.

Exemplo de Formato de Comando

Por exemplo, ao enviar o comando CHANGESYSTEMIPADDRESS com os argumentos necessários para o endereço IP, porta e sub-rede, o formato seria:

CHANGESYSTEMIPADDRESS;192.168.1.100;8080;/24\r\n

Neste exemplo:

  • CHANGESYSTEMIPADDRESS: O nome do comando.
  • 192.168.1.100: O novo endereço IP a ser atribuído ao sistema.
  • 8080: A nova porta a ser atribuída.
  • /24: A máscara de sub-rede.
  • \r: Marca o fim do comando.

Formato de Resposta do Protocolo

No protocolo CloudBox, as respostas aos comandos são sempre estruturadas no formato JSON, seguindo um padrão consistente. Cada resposta contém duas chaves principais:

  1. comando: Esta chave especifica o comando que foi enviado para o CloudBox. Ela confirma qual ação ou consulta foi solicitada.
  2. resultado: Esta chave contém o resultado real ou os dados retornados pelo sistema com base no comando executado.

Aqui está um exemplo de uma resposta típica para o comando GETSYSTEMTIME:

{
    "command": "GETSYSTEMTIME",
    "result": {
        "dateTimeSync": "NTP",
        "timezone": "Europe/Madrid (CEST, +0200)",
        "timestamp": "2024-09-17;18:44:11.649"
    }
}

Comandos e Respostas Principais

1. INÍCIO

Inicia a sessão de cronometragem.

Respostas:

  • START_MODE: O sistema já está no modo de temporização.
  • READERNOTOK: O leitor RFID não está presente ou não está funcionando corretamente.
  • DEVICE_INTEGRITY_FAILED: A verificação de integridade do dispositivo falhou.
  • INVALIDREADERMODEL: O modelo de leitor configurado não é válido.
  • ERRREADER: Erro geral de leitura.
  • OK: A sessão de temporização foi iniciada com sucesso.

2. PARE

Interrompe a sessão de cronometragem atual.

Respostas:

  • READERNOTOK: O leitor RFID não está presente ou não está funcionando corretamente.
  • INVALIDREADERMODEL: O modelo de leitor configurado não é válido.
  • ERRREADER: Erro geral de leitura.
  • OK: A sessão foi encerrada com sucesso.

3. OBTERSTATUSDOSISTEMA

Retorna o estado atual do sistema, incluindo o nível da bateria, o estado da conexão de rede 4G, o estado do GPS e muito mais.

Exemplo de resposta:

{
  "batteryVolts": "25.33",
  "batteryPercentage": "88.27",
  "cpuTemperature": "53.75",
  "hasPower": false,
  "hasInternet": true,
  "startMode": false,
  "sessionPassingCount": 0,
  "lastPassingTimestamp": null,
  "operator4G": null,
  "signal4G": null,
  "networkService4G": null,
  "status4G": {"status": "CME_ERROR", "message": "SIM not inserted"},
  "statusGps": {"status": "SEARCHING", "message": "No GPS data found. Searching..."},
  "statusIoT": {"status": true, "message": "Connected to IoT server"},
  "backupDownloadLink": "http://192.168.0.3:2999/download",
  "sessionToken": null,
  "cloudPassingCount": 0,
  "deviceIntegrity": "Device integrity check passed",
  "readerStatus": "RFID Reader not found",
  "updateInfo": null,
  "currentBackendVersion": "1.0.4",
  "currentFrontVersion": "1.0.4"
}

4. GETSYSTEMCONFIG

Obtém a configuração atual do sistema, incluindo as configurações de rede, a configuração do leitor e os parâmetros do sistema.

Exemplo de resposta:

{
  "bounceTime": 1,
  "buzzerPassings": false,
  "readerModel": "R420",
  "readerHost": "10.0.0.2",
  "readerPort": "5084",
  "tcpHost": "192.168.0.3",
  "tcpSubnet": "/8",
  "tcpPort": "8080",
  "apName": "CLBX_192_168_0_3",
  "wifiSsid": "MOVISTAR_91DA",
  "disableStartButton": false,
  "dateTimeSync": "NTP",
  "timezone": "America/Argentina/Buenos_Aires",
  "simPin": "4509",
  "modemImei": "862636053313696",
  "deviceSerialNumber": "CLBX10001"
}

5. SETSYSTEMTIME;timestamp

Define a hora do sistema. O formato é YYYY-MM-DD HH:mm:ss.

Respostas:

  • BAD_FORMAT: O formato da data ou da hora está incorreto.
  • START_MODE: O sistema está no modo de temporização e o comando não pode ser executado.
  • NTPACTIVE: A sincronização NTP está ativa e as alterações manuais de hora estão desativadas.
  • CMDERROR: Erro geral de comando.
  • OK: A hora do sistema foi definida com sucesso.

6. GETSYSTEMTIME

Retorna as configurações atuais de hora, fuso horário e sincronização do sistema.

Exemplo de resposta:

{
  "dateTimeSync": "NTP",
  "timezone": "Europe/Madrid (CEST, +0200)",
  "timestamp": "2024-09-17;18:44:11.649"   
}

7. SETDATETIMESYNC;modoSincronização

Define o modo de sincronização de data e hora. As opções disponíveis são: "DISABLED", "GPS", "NTP".

Respostas:

  • START_MODE: O sistema está no modo de temporização e o comando não pode ser executado.
  • SYNCNOTAVAILABLE: O modo de sincronização selecionado não está disponível.
  • OK: O modo de sincronização foi definido com sucesso.

8. ALTERAR ENDEREÇO IP DO SISTEMA;ip;porta;sub-rede

Altera o endereço IP, a porta e a máscara de sub-rede do sistema.

Respostas:

  • START_MODE: O sistema está no modo de temporização e o comando não pode ser executado.
  • INVALIDNETWORKCONFIGURATION: A configuração de rede fornecida é inválida.
  • INVALIDNETWORKSUBNET: A máscara de sub-rede é inválida.
  • RESERVEDIPADDRESS: O endereço IP está reservado.
  • STDERROR: Erro geral de aplicação.
  • OK: Sucesso. O sistema será reiniciado para aplicar a nova configuração.

9. SETBUZZERPASSINGS;valor

Ativa ou desativa o sinal sonoro para detecções de passagem (verdadeiro/falso).

Resposta:

  • OK: A configuração do sinal sonoro foi atualizada com sucesso.

10. SETBOUNCETIME;segundos

Define o tempo de repetição entre as leituras de RFID. Se segundos for null ou <= 0, o valor padrão será 5 segundos.

Resposta:

  • OK: O tempo de ressalto foi definido com sucesso.

11. DESLIGAR

Desliga o sistema após 10-15 segundos.

Respostas:

  • START_MODE: O sistema está no modo de temporização e o comando não pode ser executado.
  • OK: O sistema será desligado.

12. LISTAR ARQUIVOS DE BACKUP

Retorna uma lista de arquivos de backup disponíveis. Exemplo: ["20240712-135902.txt"]

Respostas:

  • ERROR: Não foi possível recuperar os arquivos de backup.
  • OK: A lista de arquivos foi recuperada com sucesso.

13. EXCLUIR ARQUIVOS DE BACKUP

Exclui todos os arquivos de backup do sistema.

Respostas:

  • START_MODE: O sistema está no modo de temporização e o comando não pode ser executado.
  • ERROR: Falha ao excluir os arquivos.
  • OK: Os arquivos de backup foram excluídos com sucesso.

14. REBOBINAR;timestampInicial;timestampFinal

Rebobina os dados de passagem entre os carimbos de data/hora de início e fim especificados (YYYY-MM-DD HH:mm:ss) e os transmite para clientes TCP conectados.

Resposta:

  • OK: Os dados de aprovação estão sendo transmitidos.

15. OBTERINFORMAÇÕESDEGPS

Retorna as informações do GPS, incluindo latitude, longitude, altitude e a hora da última sincronização.

Exemplo de resposta:

{
  "latitudeDecimal": 41.28425,
  "longitudeDecimal": 1.98251,
  "googleMapsLink": "https://www.google.com/maps/place/41.28425,1.98251",
  "gpsTimezone": "Europe/Madrid",
  "altitude": 38.7,
  "speed": 0,
  "lastSync": "2024-07-24 20:27:02"
}
Este artigo foi útil?Nossa equipe está aqui quando você precisar de ajuda.
Falar com o suporte