Configura valores-limite, passos e valores de salto para o debounce baseado em contador de monitores.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 60957358c6ecProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Configura valores-limite, passos e valores de salto para o debounce baseado em contador de monitores.
A estrutura ara::diag::CounterBased define os valores-limite, os passos e os parâmetros de salto para o debounce baseado em contador de eventos de diagnóstico [SWS_DM_00538]. É instanciada pela aplicação e passada ao construtor de ara::diag::Monitor a fim de estipular os critérios para a qualificação de falha e de bom estado [SWS_DM_00549]. O Diagnostic Management utiliza estes parâmetros para o avanço do contador, desde que não estejam definidos dados de debounce prioritários no Diagnostic Extract (DEXT).
Contexto
A estrutura ara::diag::CounterBased representa os parâmetros de configuração para o debounce baseado em contador de eventos de diagnóstico [SWS_DM_00538] em conformidade com a especificação da AUTOSAR Adaptive Platform SWS Diagnostics §7.3.4.1.5.1 «Counter-based debouncing». Dentro do subsistema de diagnóstico, serve para a troca de parâmetros de debounce entre a implementação de monitor aplicadora e o Diagnostic Management (DM).
A interação ocorre essencialmente através de quatro parceiros de interface:
A aplicação de diagnóstico instancia e preenche CounterBased com valores-limite de eventos.
O Diagnostic Extract (DEXT) define parâmetros de debounce prévios; se existirem parâmetros correspondentes no DEXT, estes têm obrigatoriamente precedência e os valores passados através do construtor são ignorados pelo DM [SWS_DM_01099].
Como estrutura de dados C++ (struct) SWS Diagnostics §8.41.2 «Struct: CounterBased», CounterBased é criada na stack ou na heap pelo componente de software aplicador como um mero contentor de valores. O seu ciclo de vida está tipicamente limitado à fase de configuração e inicialização antes da criação do ara::diag::Monitor.
Depois de definidos os atributos, a estrutura é passada por valor ao construtor de Monitor[SWS_DM_00549]. A própria estrutura não mantém qualquer estado dinâmico interno e não possui máquina de estados; a gestão contínua do contador cabe exclusivamente ao Diagnostic Management. Como CounterBased foi concebida como uma estrutura de dados passiva e não possui mecanismos internos de sincronização, de acordo com a interpretação, a configuração deve ser efetuada de forma local à thread ou sincronizada antes da passagem para o monitor.
Caminho de utilização
A utilização típica divide-se na definição dos parâmetros de debounce, na passagem para o monitor e na avaliação do contador em tempo de execução:
A aplicação cria uma instância de CounterBased e atribui os valores-limite: failedThreshold para a qualificação de falha [SWS_DM_00621] e passedThreshold para a deteção de bom estado [SWS_DM_00622].
Os passos são definidos através de failedStepsize para estados de falha reportados [SWS_DM_00623] e passedStepsize para notificações de bom estado [SWS_DM_00624].
Opcionalmente, são configurados ajustes por salto: através de useJumpToFailed[SWS_DM_00627] e failedJumpValue[SWS_DM_00625] é ativado o salto para um valor mínimo de falha. De forma análoga, useJumpToPassed[SWS_DM_00628] e passedJumpValue[SWS_DM_00626] controlam saltos na direção do estado bom.
A estrutura preenchida é passada ao construtor de Monitor[SWS_DM_00549]. Desde que não existam definições DEXT, o DM utiliza estes valores [SWS_DM_01101].
Se o contador atingir failedThreshold, o DM classifica o evento como kFinallyDefective[SWS_DM_00024]. O mesmo se aplica a notificações de bom estado através de passedStepsize[SWS_DM_00876].
Na utilização de CounterBased, devem ser tidas em conta várias condições-limite e regras de precedência:
Conflito de precedência DEXT: Se existirem parâmetros de debounce no DEXT, o DM ignora completamente os parâmetros definidos em CounterBased[SWS_DM_01099]. Ocorre uma configuração incorreta se os programadores de aplicações esperarem uma alteração dinâmica de parâmetros através do construtor, apesar de estarem ativos valores DEXT estáticos.
Valores DEXT em falta: Não existindo especificações no DEXT, o DM depende obrigatoriamente de que o construtor disponibilize uma instância de CounterBased válida [SWS_DM_01101].
Ultrapassagem do valor-limite: Se o contador interno de debounce subir acima do valor-limite failedThreshold pela adição de failedStepsize, o DM repõe o contador exatamente neste valor-limite e qualifica a anomalia [SWS_DM_00024], [SWS_DM_00875].
Lógica de salto condicional: Se useJumpToFailed estiver definido, o salto para failedJumpValue só é efetuado se o valor do contador antes do incremento for estritamente menor do que failedJumpValue[SWS_DM_00022]. Para useJumpToPassed, aplica-se analogamente que o contador deve ser maior do que passedJumpValue[SWS_DM_00023].
Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11 e resume os requisitos para o debounce baseado em contador.
gemini-3.8-flash-low· 2026-10-13 · Original em alemão