Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A /osc/checkForUpdates API identifica atualizações de estado comparando a última stateFingerprint do cliente à fingerprint atual da câmera.
Entrada
Nome
Tipo
Descrição
stateFingerprint
String
Impressão digital do estado da câmera desde a última vez que o cliente chamou /osc/state ou /osc/checkForUpdates.
waitTimeout
Número inteiro (opcional)
O número de segundos a serem aguardados para a alteração do estado da câmera antes de retornar a resposta. Quando waitTimeout expira, a câmera deve retornar uma resposta mesmo que a impressão digital não tenha sido alterada. Se uma mudança de estado for detectada antes da expiração de waitTimeout ou se waitTimeout for omitido, a câmera deverá retornar a resposta imediatamente.Observação: a câmera pode retornar uma resposta antes da expiração de waitTimeout mesmo que a impressão digital não tenha sido alterada, mas é recomendável aguardar até que waitTimeout expire.
Observações de implementação da câmera:
Ao receber essa chamada, a câmera a compara à impressão digital do estado atual com o parâmetro stateFingerprint recebido. Se a impressão digital tiver sido alterada, a câmera deverá retornar a nova impressão digital imediatamente.
Saída
Nome
Tipo
Descrição
stateFingerprint
String
Nova impressão digital do estado da câmera (a mesma da /osc/state API).
throttleTimeout
Número inteiro
Número recomendado de segundos que o cliente deve aguardar antes da próxima chamada de checkForUpdates. Os clientes podem fazer chamadas antes da expiração do throttleTimeout e as câmeras devem permitir essas solicitações antecipadas, se possível.
Observações de implementação do cliente:
Ao receber uma resposta, o cliente deve comparar a stateFingerprint recebida com sua cópia. Se os valores não corresponderem, o cliente deve solicitar o estado atual da câmera usando a _/osc/state API.
Clientes inteligentes usam solicitações de limitação independentemente da resposta da câmera. Por exemplo, se uma câmera retornar uma resposta não padrão (imediatamente sem alterações e com um throttleTimeout) baixo ou de 0), o cliente deve impor o próprio throttleTimeout antes de solicitar outro checkForUpdates da câmera.
Observações de implementação da câmera:
Ao responder a checkForUpdates, a câmera deve determinar um throttleTimeout razoável. Se a câmera é compatível com lógica de solicitação de longa data (responder somente após waitTimeout se o estado não tiver sido alterado), é possível retornar throttleTimeout como 0. Nesse caso, os clientes podem solicitar atualizações imediatamente.
Se a câmera é compatível apenas com respostas rápidas (não recomendável), ela deve retornar um throttleTimeout razoável para evitar um tráfego constante de solicitações/respostas para o cliente. Por exemplo, um throttleTimeout seria 60 segundos, para permitir que o cliente envie uma solicitação por minuto.
A prática recomendada é retornar um throttleTimeout apropriado para os recursos da câmera. Se o servidor não puder determinar um throttleTimeout apropriado devido a um problema, a câmera deverá responder com um código de status 5XX e um corpo JSON contendo o código de erro serverError.
Erro
Código de erro
Descrição
missingParameter
stateFingerprint não foi especificado.
invalidParameterName
Um ou mais nomes de parâmetros de entrada não foram reconhecidos.
invalidParameterValue
Os nomes dos parâmetros foram reconhecidos, mas um ou mais valores são inválidos. Por exemplo, waitTimeout está fora do intervalo permitido ou seu tipo está incorreto.
serverError
O servidor não conseguiu determinar um valor de throttleTimeout apropriado para sua resposta. O problema do servidor será identificado pelo valor 5XX retornado na resposta. Fabricantes de câmeras devem fornecer uma tabela de códigos 5XX e os estados de servidor correspondentes que podem acionar esse erro.
Exemplo
Solicitação
POST /osc/checkForUpdates HTTP/1.1
Host: [camera ip address]:[httpUpdatesPort]
Content-Type: application/json;charset=utf-8
Accept: application/jsonContent-Length: {CONTENT_LENGTH}
X-XSRF-Protected: 1
{
"stateFingerprint": "12EGA33",
"waitTimeout": 300
}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-10-09 UTC."],[],[]]