Este documento especifica o protocolo usado para a comunicação serial por meio da interface RS-232 com um Hardware Hub
da YuJa. Os comandos enviados podem ser usados para controlar o estado da gravação ou obter as informações de status
atuais do hub. Os comandos são strings enviadas serialmente e interpretadas pelo hub para executar a
ação desejada.
Especificações
Um conversor USB para serial é usado com um conector DB-9 macho. Somente os pinos GND, TxD e RxD são usados na comunicação com o hub.
- Taxa de transmissão (baud rate) = 38400
- Bits de dados = 8
- Bits de parada = 1
- Paridade = NENHUMA
- Controle de fluxo = NENHUM
- Dispositivo YuJa Hardware Hub
- Pino 2: RxD <------------------- TxD
- Pino 3: TxD -------------------> RxD
- Pino 5: GND ------------------- GND
Comandos e respostas em string serial
Devido à ausência de controle de fluxo no protocolo, os comandos são enviados um de cada vez, em uma estrutura de requisição/resposta. Ao receber um comando, o hub analisa a string serial, executa o comando e responde com uma string serial própria. Um segundo comando não pode ser enviado até que a resposta do hub ao comando original tenha sido recebida. Todos os comandos e respostas seguem este formato:
- Início: <!XX>
- Fim: <!YY>
- Estrutura geral: <!XX><COMMAND> <!YY>
onde <COMMAND>
Observação: O início e o fim devem ser exatamente como mostrado, mas os comandos não diferenciam maiúsculas de minúsculas. Por exemplo:
- <!XX>CTRL=Start<!YY> é interpretado da mesma forma que <!XX>ctrl=start<!YY>.
- No entanto, <!xx>CTRL=Start<!yy> é um comando desconhecido.
- Além disso, todas as strings de resposta do hub são, por padrão, em letras maiúsculas.
Comandos de controle
Os comandos de controle alteram o estado do hub da YuJa. Eles são usados para iniciar/parar a captura de aula.
As strings de comando para substituir <COMMAND> são as seguintes:
| Comando | Descrição | Parâmetros |
| CTRL=Start | Inicia a captura de aula. Se estiver pausada, ela será retomada. | N/A |
| CTRL=Pause | Pausa a captura de aula. | N/A |
| CTRL=Stop | Interrompe a captura de aula. | N/A |
| CTRL=Extend |
Adiciona mais 30 minutos a uma captura de aula já iniciada. Observação: Capturas a menos de 5 minutos do término não podem ser estendidas. |
N/A Observação: Um tempo de extensão específico passado como parâmetro pode ser incluído em uma versão futura. |
Após um comando de controle, o hub responderá com 1 de 3 mensagens:
- Comando bem-sucedido: ao interpretar e executar o comando de controle com sucesso, o hub responderá com a string original do comando de controle com todos os caracteres em maiúsculas.
- Comando desconhecido: para comandos não reconhecidos ou inválidos, o hub responderá com a string “UNKNOWN COMMAND”.
- Falha no comando: para comandos válidos que não foram executados com sucesso pelo hub, será enviada uma string de resposta indicando o erro.
-
Exemplos:
-
Iniciar o hub:
- Comando: <!XX>CTRL=Start<!YY>
- Resposta: <!XX>CTRL=START<!YY>
-
Comando inválido:
- Comando: <!XX>CTRL=Capture<!YY>
- Resposta: <!XX>UNKNOWN COMMAND<!YY>
-
Comando de início com falha:
- Comando: <!XX>CTRL=Start<!YY>
- Resposta: <!XX>FAIL: SESSION OVERLAPS WITH ANOTHER SESSION.<!YY>
-
Iniciar o hub:
Comandos de status
Os comandos de status são usados para solicitar o estado atual do hub. As strings de comando para substituir
<COMMAND> são as seguintes:
| Comando | Descrição | Retorno |
| STAT=Recording | Retorna o estado de gravação do hub. |
"RECORDING: ON" "RECORDING: OFF" |
| STAT=Connection | Retorna se o hub está ou não corretamente conectado à nuvem. |
"CONNECTION: CONNECTED" "CONNECTION: DISCONNECTED" |
| STAT=Capture-Duration | Retorna o tempo decorrido desde o início da captura.* |
"CAPTURE-DURACTION: <duration of capture**> |
| STAT=Remaining | Retorna o tempo restante até o fim de uma captura.* |
“REMAINING: <remaining time**>” |
| STAT=Length | Retorna a duração total da captura atual.* |
"LENGTH: <length of capture**>" |
*: Uma sessão de captura deve ter sido iniciada (ou seja, a gravação deve estar ON) para que um tempo seja retornado.
**: Todo o tempo é formatado como hh:mm:ss. Se não estiver disponível, N/A será retornado no lugar de um tempo.
Após um comando de status, o hub responderá com 1 de 2 mensagens:
- Estado: para solicitações de status válidas, o hub retornará as informações desejadas na forma de um hash.
-
Comando desconhecido: para comandos não reconhecidos ou inválidos, o hub responderá com a
string “UNKNOWN COMMAND”. -
Exemplos:
-
Solicitar o estado da gravação:
- Comando: <!XX>STAT=Recording<!YY>
- Resposta: <!XX>RECORDING: ON<!YY>
-
Comando inválido:
- Comando: <!XX>STAT=Com<!YY>
- Resposta: <!XX>UNKNOWN COMMAND<!YY>
-
Solicitar a duração da captura:
- Comando: <!XX>STAT=Capture-Duration<!YY>
- Resposta: <!XX>CAPTURE-DURATION: 00:12:34<!YY>
-
Solicitar a duração da captura de um hub não iniciado:
- Comando: <!XX>STAT=Capture-Duration<!YY>
- Resposta: <!XX>CAPTURE-DURATION: N/A<!YY>
-
Solicitar o comprimento total da captura:
- Comando: <!XX>STAT=Length<!YY>
- Resposta: <!XX>LENGTH: 03:00:00<!YY>
-
Solicitar o estado da gravação:
Solução de problemas
Se você não estiver recebendo resposta do Hardware Hub, há algumas coisas que você pode fazer para resolver o problema.
- Certifique-se de ter definido as especificações corretas, com a taxa de transmissão igual a 38400. Em seguida, reinicie o dispositivo Hub para garantir que ele esteja funcionando.
- Você pode tentar trocar os pinos TX e RX usando um conector nulo DB9/adaptador null modem. Depois de trocar os conectores, reinicie o dispositivo para garantir que ele esteja funcionando.
- Se o problema persistir, entre em contato com o Suporte da YuJa.