모델링된 포트를 통해 진단 작동 주기를 모니터링하고 주기 재시작을 트리거할 수 있도록 지원합니다.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3e8e62c1c567출처열린 질문 (2)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
모델링된 포트를 통해 진단 작동 주기를 모니터링하고 주기 재시작을 트리거할 수 있도록 지원합니다.
클래스 ara::diag::OperationCycle은(는) 진단 작동 주기를 제어하고 모니터링하는 기능을 애플리케이션에 제공합니다 [SWS_DM_00752]. 인스턴스는 ara::core::InstanceSpecifier을(를) 통해 모델링된 포트에 바인딩되며 복사 및 이동이 모두 불가능하고 식별자당 프로세스 내에서 하나만 존재할 수 있습니다. SetNotifier을(를) 통해 주기 변경에 대한 알림을 등록할 수 있으며 RestartOperationCycle을(를) 사용하여 작동 주기의 재시작을 트리거할 수 있습니다 [SWS_DM_01102]. 스레드 안전한 생성자를 제외하고 모든 메서드와 소멸자는 스레드 안전하지 않으므로 병렬 접근 시 애플리케이션 측 동기화가 필요합니다.
컨텍스트
클래스 ara::diag::OperationCycle은(는) AUTOSAR Adaptive 진단 내에서 DiagnosticOperationCycleInterface을(를) 구현하며 작동 주기를 처리하고 제어하기 위한 기능을 제공합니다. 이 클래스는 적응형 애플리케이션과 진단 관리 사이의 인터페이스 역할을 하여 작동 주기의 상태를 모니터링하거나 목적에 맞게 재설정합니다.
전체 시스템과의 연결은 생성자 호출 시 전달되는 ara::core::InstanceSpecifier을(를) 통해 이루어집니다 [SWS_DM_00752]. 이 식별자는 모델에 정의된 PortPrototype을(를) 참조합니다. 이때 모델은 고유한 할당을 규정합니다. 즉, DiagnosticOperationCyclePortMapping에 의해 참조되는 PortPrototype은(는) DiagnosticOperationCycleInterface(으)로 형식화되어야 합니다 [SWS_DM_00752]. 제어 기능 외에도 클래스는 ara::diag::OperationCycle::OperationCycleSetNotifier 형식(std::function<void(void)>(으)로 정의됨)의 콜백 인터페이스를 통해 상호작용하며, 이를 통해 작동 주기가 변경될 때 애플리케이션으로 알림이 전송됩니다 [SWS_DM_02078], [SWS_DM_00755].
수명 주기
ara::diag::OperationCycle의 생성은 생성자 OperationCycle(const ara::core::InstanceSpecifier &specifier)을(를) 통해 포트 인스턴스 지정자를 전달함으로써 명시적으로 수행됩니다 [SWS_DM_00752]. 생성자는 예외 안전(exception safe) 및 스레드 안전(thread-safe)으로 명시되어 있습니다 [SWS_DM_00752].
소유권 및 복사 시맨틱과 관련하여 이 클래스는 모델링된 포트에 고정된 1:1 바인딩을 나타내는 엄격한 단일 객체로 모델링되어 있습니다. 복사 및 이동은 완전히 금지됩니다.
또한 프레임워크는 중복 할당을 금지합니다. 즉, 동일한 프로세스 내에서 인스턴스화를 위해 InstanceSpecifier을(를) 반복해서 사용할 수 없습니다 [SWS_DM_00752]. 해제는 소멸자 ~OperationCycle()에서 수행됩니다 [SWS_DM_00753]. 생성자와 달리 소멸자는 예외 안전으로 선언되어 있음에도 불구하고 스레드 안전하지 않습니다(not thread-safe) [SWS_DM_00753]. 클래스의 다른 메서드 및 콜백 유형도 스레드 안전하지 않으므로 [SWS_DM_00755], [SWS_DM_01102], [SWS_DM_02078], 동일한 인스턴스에 대한 병렬 접근은 애플리케이션 측에서 동기화되어야 합니다.
사용 경로
전형적인 사용 경로는 인스턴스화, 주기 변경에 대한 핸들러의 선택적 등록, 주기 재시작의 반복 트리거 및 해제로 구성됩니다.
인스턴스화: 애플리케이션은 해당하는 InstanceSpecifier을(를) 전달하여 OperationCycle 객체를 생성합니다 [SWS_DM_00752].
알리미 등록: 애플리케이션은 SetNotifier 메서드를 통해 OperationCycleSetNotifier 형식의 콜백 함수를 등록합니다 [SWS_DM_00755], [SWS_DM_02078]. 이 함수는 작동 주기가 변경될 때 호출됩니다. SetNotifier을(를) 연속으로 호출하면 이전에 등록된 알리미를 완전히 덮어씁니다 [SWS_DM_00755].
생성자가 noexcept(으)로 선언되어 있으므로 초기화 시의 오류는 프레임워크에 의해 위반(Violation)으로 신호 처리됩니다 [SWS_DM_00752].
InstanceSpecifierMappingIntegrityViolation: InstanceSpecifier이(가) 실행 파일 컨텍스트에서 확인되지 않거나 PortPrototype이(가) 아닌 요소를 가리킵니다 [SWS_DM_00752].
PortInterfaceMappingViolation: DiagnosticOperationCyclePortMapping에 의해 참조되는 PortPrototype이(가) DiagnosticOperationCycleInterface(으)로 형식화되지 않았습니다 [SWS_DM_00752].
ProcessMappingViolation: 일치하는 인스턴스 참조가 존재하지만 런타임 프로세스에 대해 일치하는 모델링된 프로세스를 찾을 수 없습니다 [SWS_DM_00752].
InstanceSpecifierAlreadyInUseViolation: 생성자가 현재 프로세스 내에서 이미 사용 중인 InstanceSpecifier(으)로 호출되었습니다 [SWS_DM_00752].
정상 작동 시 메서드 SetNotifier 및 RestartOperationCycle은(는) ara::core::Result<void>을(를) 반환합니다 [SWS_DM_00755], [SWS_DM_01102]. 두 함수 모두 표준에 특정 오류 코드가 정의되어 있지 않습니다(“This function does not specify any standardized errors.”) [SWS_DM_00755], [SWS_DM_01102]. Result 형식을 사용하는 것은 주로 통일된 인터페이스 설계를 제공하고 구현별 오류 상태를 수용하기 위한 것으로 보입니다. 질문 Q-2c59a287c0d5783a (열림)
이 가이드는 AUTOSAR Adaptive R25-11 사양을 기반으로 AI 시스템에 의해 생성되었습니다.
Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticOperationCyclePortMapping needs to be typed by a DiagnosticOperationCycleInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticOperationCycleInterface.
Request a governed re-review of this record. The record is not changed immediately.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 3cc8bab8ea58출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
클래스 ara::diag::OperationCycle의 멤버 함수 RestartOperationCycle(#include "ara/diag/operation_cycle.h"을(를) 통해 제공됨)은 Diagnostic Management(DM)에 작동 사이클의 재시작을 알리는 역할을 합니다 [SWS_DM_01102]. 점화 사이클("Ignition on/off"), 전원 사이클("Power up/power down") 또는 누적 작동 시간과 같은 작동 사이클은 적응형 애플리케이션에 의해 관리되며, ISO 14229-1에 따른 이벤트 메모리의 동작 및 UDS DTC 상태 바이트에 직접적인 영향을 미칩니다 SWS Diagnostics §7.3.4.3 “Operation Cycles Management”.
호출 및 시맨틱
이 함수는 매개변수 없이 호출되며 ara::core::Result<void>을(를) 반환합니다 [SWS_DM_01102]. 호출 시점에 DM이 재시작 보고를 처리할 준비가 아직 되지 않았더라도 이 정보는 손실되지 않습니다. DM은 이벤트를 임시로 버퍼링(캐싱)하고 연결이 복원되는 즉시 사이클 재시작을 평가합니다 [SWS_DM_01103].
오류 처리 및 동시성
RestartOperationCycle에 대해 표준화된 오류 코드는 지정되어 있지 않습니다 [SWS_DM_01102]. 이 함수는 예외 안전(exception safe)으로 명시되어 있으며 C++ 예외(noexcept)를 발생시키지 않습니다 [SWS_DM_01102]. 그러나 인터페이스가 스레드 안전하지 않은 것(not thread-safe)으로 명시적으로 지정되어 있으므로 [SWS_DM_01102], 호출하는 애플리케이션 측에서 동일한 인스턴스에 대한 동시 접근을 동기화해야 할 것으로 추정됩니다. 질문 Q-b3b258a20fd9db22 (열림)
Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 4ba4d539945d출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
ara::diag::OperationCycle::SetNotifier 메서드([SWS_DM_00755])는 OperationCycleSetNotifier 타입의 애플리케이션 측 콜백 함수를 등록하는 데 사용됩니다. 이 알리미 함수는 모니터링되는 작동 사이클의 상태가 변경되는 즉시 Diagnostic Management(DM)에 의해 호출됩니다([SWS_DM_00755]). 메서드를 사용하려면 헤더 파일 ara/diag/operation_cycle.h를 포함해야 합니다([SWS_DM_00755]).
이 작업은 noexcept으로 선언되어 있으며 예외 안전성(exception safe)을 제공합니다([SWS_DM_00755]). 동기식 반환값으로 ara::core::Result<void>가 제공되지만, 특정한 표준화된 오류 코드는 정의되어 있지 않습니다([SWS_DM_00755]). 따라서 Result 객체의 모든 오류 상태는 공급업체 또는 플랫폼에 따라 다를 것으로 보입니다. 질문 Q-6799492164efd793 (열림) 동시성과 관련하여 이 메서드는 스레드 안전하지 않은 것(not thread-safe)으로 지정되어 있으므로([SWS_DM_00755]), 동일한 객체 인스턴스에 대한 병렬 호출은 반드시 애플리케이션에 의해 동기화되어야 합니다.
이 사용 지침은 자동으로 생성되었으며 AUTOSAR Adaptive R25-11 명세를 기반으로 합니다.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문