Verificar atualizações
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A API /osc/checkForUpdates
identifica atualizações de estado comparando o último stateFingerprint
conhecido do cliente ao fingerprint
atual da câmera.
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) |
Número de segundos para aguardar a mudança de estado da câmera antes de retornar a resposta. Quando waitTimeout expirar, a câmera vai retornar uma resposta mesmo que a impressão digital não tenha sido modificada. Se uma mudança de estado for detectada antes que waitTimeout expire ou se waitTimeout for omitido, a câmera vai retornar a resposta imediatamente.Observação:a câmera pode retornar uma resposta antes que waitTimeout tenha expirado, mesmo que a impressão digital não tenha sido alterada, mas a prática recomendada é esperar até que waitTimeout expire. |
Observações de implementação da câmera:
- Ao receber essa chamada, a câmera compara a 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 API /osc/state . |
throttleTimeout |
Número inteiro |
Número recomendado de segundos para o cliente aguardar antes da próxima chamada para checkForUpdates . Os clientes podem fazer solicitações antes que throttleTimeout expire, e as câmeras precisam permitir essas solicitações antecipadas, se possível. |
Observações de implementação do cliente:
- Ao receber uma resposta, o cliente precisa comparar o
stateFingerprint
recebido com a cópia dele. Se eles não corresponderem, o cliente precisará solicitar o estado atual da câmera usando a API _/osc/state
.
- Os clientes inteligentes limitam as solicitações independentemente da resposta da câmera. Por exemplo, se uma câmera retornar uma resposta não padrão (imediatamente, sem nenhuma mudança e um
throttleTimeout)
baixo ou 0, o cliente precisará impor seu 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 precisa determinar um throttleTimeout
razoável. Se a câmera oferecer suporte à lógica de solicitação de longa data (responder somente após waitTimeout
se o estado não tiver mudado), não há problema em retornar throttleTimeout
como 0
. Nesse caso, os clientes podem solicitar atualizações imediatamente.
- Se a câmera oferecer suporte apenas a respostas rápidas (não recomendado), ela precisará retornar um
throttleTimeout
razoável para evitar tráfego constante de solicitação/resposta com o cliente. Por exemplo, um throttleTimeout
razoável seria de 60 segundos, para permitir uma solicitação do cliente por minuto.
- A prática recomendada é retornar um
throttleTimeout
apropriado para os recursos da câmera. Se o servidor não conseguir determinar um throttleTimeout
apropriado devido a um problema, a câmera responderá com um código de status 5XX e um corpo JSON contendo o código de erro serverError
.
Erro
Código do 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 são reconhecidos, mas um ou mais valores são inválidos. Por exemplo, waitTimeout está fora do intervalo ou o tipo está incorreto. |
serverError |
O servidor não conseguiu determinar um valor throttleTimeout apropriado para a resposta. O problema do servidor será identificado pelo valor 5XX retornado na resposta. Os fabricantes de câmeras precisam fornecer uma tabela de códigos 5XX e os estados de servidor correspondentes que podem gerar 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
} |
Resposta |
HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
Content-Length: {CONTENT_LENGTH}
X-Content-Type-Options: nosniff
{
"stateFingerprint": "12EGA86",
"throttleTimeout": 60
} |
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
} |
Resposta |
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=utf-8
Content-Length: {CONTENT_LENGTH}
X-Content-Type-Options: nosniff
{
"name": "camera.checkForUpdates",
"state": "error",
"error": {
"code": "missingParameter",
"message": "parameter stateFingerprint is missing."
}
} |
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-25 UTC.
[[["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 2025-07-25 UTC."],[],["The `/osc/checkForUpdates` API checks for camera state changes. The client sends its `stateFingerprint` and an optional `waitTimeout`. The camera compares the received `stateFingerprint` with its current one, immediately returning the new fingerprint if changed. The camera also returns a `throttleTimeout` suggesting how long the client should wait before its next check. If the fingerprints match or after the wait time expires, a response is sent. Clients then request the current state if fingerprints don't match.\n"]]