├── .gitignore
├── documentation
├── Example_requirements.png
└── qemu.md
├── Cluster_Display_Use_Case_v2
├── Item_Defintion
│ ├── Papyrus_Model
│ │ ├── Cluster_demo_en_US.properties
│ │ ├── Cluster_demo
│ │ │ ├── icons
│ │ │ │ ├── Class.gif
│ │ │ │ ├── Model.gif
│ │ │ │ ├── Package.gif
│ │ │ │ ├── Profile.gif
│ │ │ │ ├── Diagram_Profile.gif
│ │ │ │ ├── Diagram_Requirement.gif
│ │ │ │ ├── Diagram_InternalBlock.gif
│ │ │ │ ├── Diagram_SysML_Package.gif
│ │ │ │ ├── Diagram_BlockDefinition.gif
│ │ │ │ ├── Diagram_SysML_Activity.gif
│ │ │ │ ├── Diagram_SysML_Sequence.gif
│ │ │ │ └── Diagram_SysML_StateMachine.gif
│ │ │ ├── resources
│ │ │ │ ├── js
│ │ │ │ │ ├── hyperlink.js
│ │ │ │ │ ├── script.js
│ │ │ │ │ ├── split.min.js
│ │ │ │ │ └── simpletreemenu.js
│ │ │ │ └── css
│ │ │ │ │ └── simpletree.css
│ │ │ ├── index.html
│ │ │ ├── Cluster_demo
│ │ │ │ ├── Blocks
│ │ │ │ │ └── NominalFunction.SVG
│ │ │ │ └── NewSysML1.6RequirementDiagram.SVG
│ │ │ └── SysML
│ │ │ │ ├── ConstraintBlocks
│ │ │ │ └── ConstraintBlocks.SVG
│ │ │ │ └── Allocations
│ │ │ │ └── Allocations.SVG
│ │ ├── .project
│ │ ├── Cluster_demo.di
│ │ ├── Style_Sheet.css
│ │ └── Cluster_demo_de_DE.properties
│ ├── Operational_states.puml
│ ├── Block_diagram_nominal.puml
│ ├── Sequence_diagram_safety.puml
│ ├── Block_diagram_with_safety.puml
│ ├── Sequence_diagram_nominal.puml
│ └── Item_Definition.md
└── stpa
│ ├── system-context.dot.png
│ ├── cluster-control-structure.dot.png
│ ├── ucas.md
│ ├── system-context.dot
│ ├── telltale2.md
│ ├── README.md
│ ├── purpose.md
│ ├── cluster-control-structure.dot
│ ├── structure.md
│ ├── telltale.yml
│ └── telltale.md
├── Initialy_discussed_system_scope
├── images
│ ├── tsc-schematic.png
│ ├── tsc-diagnostics-tft.png
│ ├── tsc-normal-operation.png
│ ├── tsc-diagnostics-communication.png
│ ├── tsc-diagnostics-image-generator.png
│ └── image-display.md
└── telltale.md
├── AGL_cluster_demo_use_case
├── Safety-analysis
│ ├── Safety_analysis.xlsx
│ ├── Diagrams_onlineview.md
│ ├── Determine_Safety_status.puml
│ └── Safety_demo_analysis.puml
├── Telltale_concept_files
│ ├── Block_Diagram.png
│ └── Sequence_Diagram.png
├── Architecture
│ ├── Arch_naiv_message_based.puml
│ ├── Sequence-Diagram
│ │ ├── Sequence_diagram.md
│ │ └── Sequence_diagram.puml
│ ├── Arch_demo.puml
│ ├── Arch_demo_mockup.puml
│ └── Diagrams_onlineview.md
├── Item Defintion
│ ├── Block_diagram_demo.puml
│ ├── Block_diagram.puml
│ └── Item Definition.md
├── readme.md
└── Concept.md
├── AGL-cluster-demo-documentation
├── Main_onlineview.md
├── Arch_naiv.puml
└── Main.puml
├── index.html
├── Docker_container
├── elisa.dockerfile
└── Readme.md
├── README.md
└── LICENSE
/.gitignore:
--------------------------------------------------------------------------------
1 | *.metadata/
2 |
--------------------------------------------------------------------------------
/documentation/Example_requirements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/documentation/Example_requirements.png
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo_en_US.properties:
--------------------------------------------------------------------------------
1 | #Thu Jul 15 09:23:25 CEST 2021
2 | _label_Connector8=Target Rendering State
3 |
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/stpa/system-context.dot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/stpa/system-context.dot.png
--------------------------------------------------------------------------------
/Initialy_discussed_system_scope/images/tsc-schematic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Initialy_discussed_system_scope/images/tsc-schematic.png
--------------------------------------------------------------------------------
/AGL_cluster_demo_use_case/Safety-analysis/Safety_analysis.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/AGL_cluster_demo_use_case/Safety-analysis/Safety_analysis.xlsx
--------------------------------------------------------------------------------
/Initialy_discussed_system_scope/images/tsc-diagnostics-tft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Initialy_discussed_system_scope/images/tsc-diagnostics-tft.png
--------------------------------------------------------------------------------
/Initialy_discussed_system_scope/images/tsc-normal-operation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Initialy_discussed_system_scope/images/tsc-normal-operation.png
--------------------------------------------------------------------------------
/AGL_cluster_demo_use_case/Telltale_concept_files/Block_Diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/AGL_cluster_demo_use_case/Telltale_concept_files/Block_Diagram.png
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/stpa/cluster-control-structure.dot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/stpa/cluster-control-structure.dot.png
--------------------------------------------------------------------------------
/AGL_cluster_demo_use_case/Telltale_concept_files/Sequence_Diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/AGL_cluster_demo_use_case/Telltale_concept_files/Sequence_Diagram.png
--------------------------------------------------------------------------------
/Initialy_discussed_system_scope/images/tsc-diagnostics-communication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Initialy_discussed_system_scope/images/tsc-diagnostics-communication.png
--------------------------------------------------------------------------------
/Initialy_discussed_system_scope/images/tsc-diagnostics-image-generator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Initialy_discussed_system_scope/images/tsc-diagnostics-image-generator.png
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Class.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Class.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Model.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Model.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Package.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Package.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Profile.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Profile.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_Profile.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_Profile.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_Requirement.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_Requirement.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_InternalBlock.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_InternalBlock.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_Package.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_Package.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_BlockDefinition.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_BlockDefinition.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_Activity.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_Activity.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_Sequence.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_Sequence.gif
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_StateMachine.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elisa-tech/wg-automotive/HEAD/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/icons/Diagram_SysML_StateMachine.gif
--------------------------------------------------------------------------------
/AGL_cluster_demo_use_case/Architecture/Arch_naiv_message_based.puml:
--------------------------------------------------------------------------------
1 | @startuml
2 | [Watchdog]
3 | package "Linux"{
4 | [Safety signal source] -- [QT App] : periodically get Image
5 | [Safety signal source] --> [Safety App] : Message
6 | [Safety App] -->[Watchdog] : Pet
7 | }
8 | @enduml
--------------------------------------------------------------------------------
/AGL-cluster-demo-documentation/Main_onlineview.md:
--------------------------------------------------------------------------------
1 | # Github display of the Cluster display app control flow
2 |
3 | 
4 |
--------------------------------------------------------------------------------
/AGL_cluster_demo_use_case/Architecture/Sequence-Diagram/Sequence_diagram.md:
--------------------------------------------------------------------------------
1 | # Sequence Diagram
2 | 
3 |
--------------------------------------------------------------------------------
/Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/.project:
--------------------------------------------------------------------------------
1 |
2 |
10 | Instrument Cluster Use case v2 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /AGL_cluster_demo_use_case/Architecture/Arch_demo_mockup.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | [Watchdog] 3 | package "Linux"{ 4 | [Safety signal source] --> [QT App] : Trigger corruption 5 | [Safety signal source] .> [Safety App] : cyclic Message thumbs up/down 6 | [Safety App] ..>[Watchdog] : Pet 7 | [Safety App] -->[QT App] : Trigger Display of Warning Message 8 | } 9 | [Watchdog] --> [Backlight] : kill line 10 | @enduml -------------------------------------------------------------------------------- /Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/resources/js/hyperlink.js: -------------------------------------------------------------------------------- 1 | // Eclipse Public License Copyright (c) 2017 CEA LIST 2 | // use to interpret Papyrus hyperlinks 3 | 4 | function displayMessage (evt) { changeDiagram(evt.data);} 5 | if (window.addEventListener) { 6 | window.addEventListener("message", displayMessage, false); 7 | }else { 8 | window.attachEvent("onmessage", displayMessage); 9 | } -------------------------------------------------------------------------------- /Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Style_Sheet.css: -------------------------------------------------------------------------------- 1 | Association { 2 | fontName:"Segoe UI"; 3 | routing:Rectilinear; 4 | lineColor:#000000 5 | } 6 | 7 | Association.Association { 8 | fontName:"Segoe UI"; 9 | routing:Rectilinear; 10 | lineColor:#000000 11 | } 12 | 13 | Association.Connector_style { 14 | fontName:"Segoe UI"; 15 | routing:Rectilinear; 16 | lineColor:#000000 17 | } 18 | 19 | -------------------------------------------------------------------------------- /AGL_cluster_demo_use_case/Item Defintion/Block_diagram_demo.puml: -------------------------------------------------------------------------------- 1 | ' Functional perspective Cluster Demo application 2 | @startuml 3 | package "Instrument Cluster" { 4 | [Watchdog] 5 | package "Cluster Controller" { 6 | [QT-Application] 7 | [Safety-Signal-source] 8 | [Safety-App] 9 | } 10 | } 11 | 12 | [Safety-Signal-source] --> [Safety-App] 13 | 14 | [Safety-App] --> [Watchdog] : pet 15 | 16 | [Safety-App] --> [QT-Application] : Corruption trigger 17 | @enduml 18 | 19 | 20 | -------------------------------------------------------------------------------- /Initialy_discussed_system_scope/images/image-display.md: -------------------------------------------------------------------------------- 1 | # Normal Operation 2 |  3 | 4 | # Diagnostics Communication 5 |  6 | 7 | # Diagnostics Image Generator 8 |  9 | 10 | # Diagnostics TFT 11 |  12 | # Schematic 13 |  14 | -------------------------------------------------------------------------------- /Cluster_Display_Use_Case_v2/stpa/ucas.md: -------------------------------------------------------------------------------- 1 | # Identify Unsafe Control Actions 2 | 3 | ## Definitions 4 | > An Unsafe Control Action (UCA) is a control action that, in a particular 5 | context and worst-case environment, will lead to a hazard. 6 | 7 | ## Unsafe Control Actions 8 | 9 | **Note**: This is a work in progress and is not yet complete 10 | 11 | UCAs Have been documented for the following components: 12 | 13 | * [Request Handler](telltale.md#unsafe-control-action-summary-1) 14 | * [Telltale Checking](telltale.md#unsafe-control-action-summary-3) 15 | -------------------------------------------------------------------------------- /Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo_de_DE.properties: -------------------------------------------------------------------------------- 1 | #Thu Jul 15 09:23:25 CEST 2021 2 | _label_Rendered\ Bitmap=Rendered Bitmap 3 | _label_Connector8=Target Rendering State 4 | _label_Connector7=Read Configuration Data 5 | _label_Cluster_demo__Blocks__Cluster\ Display\ System__Interaction_nominal_function__ActionExecutionSpecification3=Handle request 6 | _label_Connector5=Post Processed Image\: Scaling, alpha and color correction etc 7 | _label_Connector11=Polling 8 | _label_InteractionOperand0__Render\ Frame=Render Frame 9 | _label_Connector13=Post Processed Image\: Scaling, alpha and color correction etc 10 | -------------------------------------------------------------------------------- /Cluster_Display_Use_Case_v2/Item_Defintion/Operational_states.puml: -------------------------------------------------------------------------------- 1 | ' Functional perspective Cluster Demo application 2 | @startuml 3 | 'skinparam linetype polyline 4 | ' skinparam linetype ortho 5 | skinparam componentStyle rectangle 6 | 7 | [Startup] as S_startup 8 | [Normal Operation] as S_normal 9 | '[Degraded Operation] as S_degraded 10 | [Safe State] as S_safe_state 11 | 12 | S_startup --> S_safe_state 13 | S_startup --> S_normal 14 | 15 | 'S_normal --> S_degraded 16 | S_normal --> S_safe_state 17 | 18 | 'S_degraded --> S_normal 19 | 'S_degraded --> S_safe_state 20 | 21 | S_safe_state ..> S_startup : Reset 22 | 23 | 24 | @enduml 25 | 26 | -------------------------------------------------------------------------------- /AGL-cluster-demo-documentation/Arch_naiv.puml: -------------------------------------------------------------------------------- 1 | ' Functional perspective 2 | @startuml 3 | [Telltale Requester] 4 | [Request handling] 5 | [Image generation] 6 | [Image Display] 7 | [Telltale checking] 8 | [Telltale Requester] --> [Request handling] 9 | [Request handling] --> [Image generation] 10 | [Request handling] --> [Telltale checking] 11 | [Framebuffer] --> [Image Display] 12 | [Image generation] --> [Framebuffer] 13 | [Framebuffer] --> [Telltale checking] 14 | 15 | package "Linux"{ 16 | [Safety signal source] .. [QT App] : periodically get Image 17 | [Safety signal source] --> [Safety App] : Message 18 | [Safety App] ..>[Watchdog] : Pet 19 | } 20 | [Watchdog] --> [Backlight] : kill line 21 | @enduml -------------------------------------------------------------------------------- /AGL_cluster_demo_use_case/Safety-analysis/Diagrams_onlineview.md: -------------------------------------------------------------------------------- 1 | # Activity Diagrams 2 | ## Assumption 3 | Assuming the HW to be free of faults, only spatial and temporal interference remain as sources for faults in the execution of the Safety signal source and the Safety app. 4 |  5 | ## Variant with external signal source 6 | Assuming an external signal source, we get the following abstract schematic: 7 |  8 | -------------------------------------------------------------------------------- /AGL_cluster_demo_use_case/Safety-analysis/Determine_Safety_status.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | box "SOC" 4 | participant "HW, GPIO etc" order 11 5 | participant "Kernel, drivers, etc" order 12 6 | participant "Safety signal source" order 20 7 | end box 8 | participant "External signal source" order 10 9 | 10 | activate "External signal source" 11 | "External signal source" -> "HW, GPIO etc": Periodic message 12 | "HW, GPIO etc" -> "Kernel, drivers, etc" 13 | "Kernel, drivers, etc" -> "Safety signal source" 14 | activate "Safety signal source" 15 | "Safety signal source" -> "Safety signal source": Check E2E 16 | Alt E2E pass 17 | "Safety signal source" -> "Safety signal source": Decision logic 18 | "Safety signal source" ->]: Send message to Safety App 19 | else E2E miss 20 | end 21 | 22 | @enduml -------------------------------------------------------------------------------- /AGL_cluster_demo_use_case/Architecture/Diagrams_onlineview.md: -------------------------------------------------------------------------------- 1 | # Suggested Architecture 2 |  3 | # Suggested Architecture for the mockup/demonstration 4 |  5 | # Naive message based Architecture 6 | Massive Safety flaw, messages getting lost can't be detected 7 |  8 | -------------------------------------------------------------------------------- /AGL_cluster_demo_use_case/Item Defintion/Block_diagram.puml: -------------------------------------------------------------------------------- 1 | ' Functional and SW architecture perspective Cluster Demo application 2 | @startuml 3 | [Telltale Requester] 4 | package "Instrument Cluster" { 5 | together { 6 | [Display] 7 | [Backlight] 8 | } 9 | [Watchdog] 10 | package "Cluster Controller" { 11 | [Request handling] 12 | [QT-Application] 13 | [Safety-Signal-source] 14 | [Safety-App] 15 | } 16 | } 17 | 18 | [Telltale Requester] --> [Request handling] : Telltale Request 19 | [Request handling] --> [QT-Application] 20 | [Request handling] --> [Safety-Signal-source] 21 | 22 | [QT-Application] --> [Display] : Image_out 23 | [Safety-Signal-source] --> [Safety-App] 24 | [Display] --> [Safety-Signal-source] : Image_in 25 | 26 | [Safety-App] --> [Watchdog] : pet 27 | [Watchdog] --> [Backlight] : kill line 28 | [Display] -- [Backlight] 29 | @enduml 30 | 31 | -------------------------------------------------------------------------------- /Cluster_Display_Use_Case_v2/stpa/system-context.dot: -------------------------------------------------------------------------------- 1 | digraph G { 2 | 3 | node [shape=box width=1 height=0.5 fontname=arial fontsize=16 style=filled fillcolor=white] 4 | graph [splines=ortho ranksep=1 nodesep=0.2 fontname=arial fontsize=16 compound=true] 5 | 6 | driver [label="Driver of\n vehicle"] 7 | source [label="Source of State\n Info (non-safety)"] 8 | requester [label="Telltale\nRequester"] 9 | cluster [label="System including\n Instrument Cluster" width=4] 10 | display [label="Display" width=3.5] 11 | watchdog [label="External\nWatchdog"] 12 | backlight [label="Display backlight"] 13 | driver->display [dir=back style=dashed] 14 | source -> cluster 15 | requester -> cluster 16 | cluster -> watchdog 17 | cluster -> display 18 | cluster -> display [dir=back style=dashed] 19 | watchdog -> backlight 20 | display -> backlight [dir=back style=dashed] 21 | } 22 | -------------------------------------------------------------------------------- /AGL-cluster-demo-documentation/Main.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | start 3 | :Setup, QT setup, AGL shell, canvas, command-line parser etc; 4 | if (both command-line options set?) then (yes) 5 | :More Setup; 6 | partition read_config() { 7 | :Read config file; 8 | :Set global variable "runAnimation" accordingly; 9 | } 10 | :Setup QT context properties, including "runAnimation"; 11 | else (no) 12 | endif 13 | partition app.exec() { 14 | :Run QT Application; 15 | fork 16 | if (runAnimation) then (true) 17 | :Change Telltale Status values \n by executing animation sequence \n as defined in App/ValueSource.qml; 18 | else (false) 19 | : Change Telltale status values \n according to messages from the SignalComposer; 20 | endif 21 | fork again 22 | :Refresh display according to \n the Telltale status values; 23 | end fork 24 | } 25 | end 26 | @enduml -------------------------------------------------------------------------------- /Cluster_Display_Use_Case_v2/Item_Defintion/Papyrus_Model/Cluster_demo/resources/js/script.js: -------------------------------------------------------------------------------- 1 | // Eclipse Public License Copyright (c) 2017 CEA LIST 2 | 3 | 4 | var changeDiagram = function(value) { 5 | document.getElementById("diagram").data = value; 6 | }; 7 | 8 | 9 | var displayJson = function(value) { 10 | var res = ""; 11 | if (value){ 12 | res = res +"My diagram-explorer tree.
11 |4 | 5 | * [ID_1502911625] [Information] Information: “while ” means that, if the telltale request persists/is repeated, the system has to continue to display the telltale. 6 | * [ID_1052985289] [Information] The 200 ms include the time needed for the request to reach the Cluster demo. This is considered in the frequency of the cyclic communication. 7 | * [ID_1780168904] [FSR] [ASIL B] The Telltale requester shall send a request cyclically controlling whether a telltale is needed to be shown or not. 8 | * [ID_736988533] [TSR] [ASIL B] The Telltale requester shall send the telltale request message every 200 ms 9 | * [ID_529767340] [TSR] [ASIL B] The Telltale request message shall contain a boolean "telltale_request" = 0 if the telltale is not requested and 1 if the telltale is requested 10 | * [ID_950923064] [TSR] [ASIL B] The Telltale request message shall be E2E protected with E2E Protocol xxx 11 | * [ID_1340201467] [Information] We don't specify this in all detail here, Message counter and CRC is needed 12 | * [ID_883554261] [FSR] [ASIL B] All inputs from outside the system, the cluster controller uses to determine whether a requested telltale is shown shall be E2E protected against data corruption out of order transmission and message loss 13 | * [ID_1807969240] [TSR] [ASIL B] The Cluster controller shall monitor messages from the Telltale requester 14 | * [ID_199781775] [TSR] [ASIL B] The Cluster controller shall check the telltale request message for E2E miss 15 | * [ID_1822634618] [Information] We don't specify this in all detail here, Message counter and CRC is needed 16 | * [ID_1213070481] [TSR] [ASIL B] If the cluster controller determines an E2E miss in the tell tale request message, the cluster controller shall transition the system into the safe state 17 | * [ID_1404407311] [TSR] [ASIL B] The Cluster controler shall check all additional inputs from outside the system, the Cluster controller needs to decide whether a requested telltale is displayed for E2E miss 18 | * [ID_114212614] [SW] [ASIL B] The Safety-Signal-Source shall check the additional inputs for E2E misses 19 | * [ID_1017729133] [Information] This refers not only to the telltale request messages from the telltale requester, but also all further inputs the safety-signal source needs to decide whether the requested telltale is displayed or not, e.g. input from a HW checker element, or Image data flowing back from the display 20 | * [ID_1264174165] [TSR] [ASIL B] If the cluster controller determines an E2E miss in an additional input needed for telltale verification, the cluster controller shall transition the system into the safe state 21 | * [ID_1488369061] [SW] [ASIL B] On E2E miss of any input to Safety-signal-source, Safety-signal-source shall request "Safe state" from the safety-app 22 | * [ID_1579674255] [FSR] [ASIL B] The Instrument cluster shall display the requested telltale or transition to the safe state 23 | * [ID_1284231708] [Information] We implement this by splitting into a QM path rendering the Display and a Safety path checking whether the requested telltale is shown or not 24 | * [ID_205232490] [TSR] [QM[B]] The Instrument Cluster shall render the cluster display image within 70ms of the instrument Cluster receiving the message 25 | * [ID_499334358] [SW] [QM[B]] The QT app shall render the image within 70ms of the cluster controller receiving the message 26 | * [ID_874940663] [TSR] [ASIL B] The Instrument Cluster shall determine, whether the requested telltale is displayed 27 | * [ID_994205752] [Information] Safety-signal source part of the control flow 28 | * [ID_745377459] [SW] [ASIL B] The safety-signal-source shall determine, whether the requested telltale is shown 29 | * [ID_1088404633] [SW] [ASIL B] If the requested telltale is not shown, the Safety-signal-source shall request "Safe state" from the safety app. 30 | * [ID_382560048] [SW] [QM[B]] The safety-signal source shall cyclically send the safety status message to the safety app 31 | * [ID_70275415] [SW] [ASIL B] Communication from the Safety signal source to the Safety App shall be E2E protected 32 | * [ID_1259502493] [Information] We don't specify this in all detail here, Message counter and CRC is needed 33 | * [ID_1639133793] [SW] [ASIL B] The results of the Safety signal source workload shall deterministically depend on the inputs 34 | * [ID_220738134] [Information] This implies freedom from spatial interference between the safety-signal-source / safety app and the rest of the (Operating) system, if taken at face value. The formulation is deliberate, the Architecture Workgroup is analysing all potential ways such interference could happen, we then revisit this requirement to refine it regarding safety mechanisms on the application level handling the determined interference scenarios, where possible to avoid putting undue burden on the kernel. 35 | * [ID_1937203672] [Information] Hardware faults are out of scope, see assumptions 36 | * [ID_991487171] [Information] Temporal interference is not relevant here, since the watchdog transitions the system into the safe state, if execution takes too long. 37 | * [ID_1791854442] [TSR] [ASIL B] If the requested telltale is not displayed, the instrument cluster shall transition the system to the safe state by not triggering the external watchdog 38 | * [ID_538932640] [Information] Safety App portion of the Control Flow 39 | * [ID_563434302] [SW] [ASIL B] The Safety App shall check the Communication from Safety Signal Source for E2E misses 40 | * [ID_1726916053] [SW] [ASIL B] The Safety App shall pet the external watchdog, if and only if the cyclic message from the safety signal source passes the E2E check and does not request "safe state" 41 | * [ID_971824356] [SW] [ASIL B] The results of the Safety-app workload shall deterministically depend on the inputs 42 | * [ID_1459030927] [Information] This implies freedom from spatial interference between the safety-signal-source / safety app and the rest of the (Operating) system, if taken at face value. The formulation is deliberate, the Architecture Workgroup is analysing all potential ways such interference could happen, we then revisit this requirement to refine it regarding safety mechanisms on the application level handling the determined interference scenarios, where possible to avoid putting undue burden on the kernel. 43 | * [ID_722885474] [Information] Hardware faults are out of scope, see assumptions 44 | * [ID_560329904] [Information] Temporal interference is not relevant here, since the watchdog transitions the system into the safe state, if execution takes too long. 45 | * [ID_998490846] [TSR] [ASIL B] If the watchdog is not triggered within 200ms, it shall transition the system to the safet state 46 | * [ID_1409122909] [Information] Watchdog part of the control flow 47 | * [ID_1337523371] [Information] Timing allocation considerations: 48 | The timings for rendering and telltale verification are not safety relevant, since the watchdog transitions to the system to the safe state, if the chain takes too long. 49 | * [ID_865269483] [Information] Signal sending including rendering by QT app: 100ms. We assume the time delay between the requester sending the message, and the cluster demo receiving it is less than 30ms, leaving 70ms for the rendering 50 | * [ID_1226012594] [Information] Display check inklusive WD trigger: 50ms 51 | * [ID_322365118] [Information] Watchdog logic inclusive backlight killing: 50ms 52 | * [ID_1266688002] [SW] [ASIL B] The watchdog shall disable the backlight of the Cluster Display within 50ms, if it is not triggered within 150ms. 53 | * [ID_922972509] [FSR] [ASIL B] The chain between Telltale request sent and display/safe state shall be less than 200ms. 54 | * [ID_1197920546] [Information] Timing allocation considerations: 55 | The timings for rendering and telltale verification are not safety relevant, since the watchdog transitions to the system to the safe state, if the chain takes too long. 56 | * [ID_1916288361] [Information] Signal sending including rendering by QT app: 100ms. We assume the time delay between the requester sending the message, and the cluster demo receiving it is less than 30ms, leaving 70ms for the rendering 57 | * [ID_980166321] [Information] Display check inklusive WD trigger: 50ms 58 | * [ID_450743490] [Information] Watchdog logic inclusive backlight killing: 50ms 59 | * [ID_190273872] [TSR] [ASIL B] The Telltale request message shall be sent every 200 ms 60 | * [ID_571758931] [TSR] [QM[B]] The Instrument Cluster shall render the cluster display image within 70ms of the instrument Cluster receiving the message 61 | * [ID_207710874] [SW] [QM[B]] The QT app shall render the image within 70ms of the cluster controller receiving the message 62 | * [ID_1787478473] [TSR] [QM[B]] Verification of telltale shown shall be performed within 50ms 63 | * [ID_1679094583] [TSR] [ASIL B] If the watchdog is not triggered within 200ms, it shall transition the system to the safet state 64 | * [ID_866134195] [Information] Watchdog part of the control flow 65 | * [ID_329269881] [Information] Timing allocation considerations: 66 | The timings for rendering and telltale verification are not safety relevant, since the watchdog transitions to the system to the safe state, if the chain takes too long. 67 | * [ID_678436710] [Information] Signal sending including rendering by QT app: 100ms. We assume the time delay between the requester sending the message, and the cluster demo receiving it is less than 30ms, leaving 70ms for the rendering 68 | * [ID_589807630] [Information] Display check inklusive WD trigger: 50ms 69 | * [ID_27256903] [Information] Watchdog logic inclusive backlight killing: 50ms 70 | * [ID_91008504] [SW] [ASIL B] The watchdog shall disable the backlight of the Cluster Display within 50ms, if it is not triggered within 150ms. 71 |
75 | 76 | * [ID_575915779] [Information] We need to discuss this, this might not work with the frequency of 200ms we have in SZ1, it will if we relax it a little bit to around 120ms, see 77 | * [ID_1024133711] [FSR] [ASIL B] The Telltale requester shall send a request cyclically controlling whether a telltale is needed to be shown or not. 78 | * [ID_793329888] [TSR] [ASIL B] The Telltale requester shall send the telltale request message every 200 ms 79 | * [ID_1442215130] [TSR] [ASIL B] The Telltale request message shall contain a boolean "telltale_request" = 0 if the telltale is not requested and 1 if the telltale is requested 80 | * [ID_9487660] [TSR] [ASIL B] The Telltale request message shall be E2E protected with E2E Protocol xxx 81 | * [ID_83965615] [Information] We don't specify this in all detail here, Message counter and CRC is needed 82 | * [ID_1726434528] [FSR] [ASIL B] All inputs from outside the system, the cluster controller uses to determine whether a requested telltale is shown shall be E2E protected against data corruption out of order transmission and message loss 83 | * [ID_691030811] [TSR] [ASIL B] The Cluster controller shall monitor messages from the Telltale requester 84 | * [ID_1451767216] [TSR] [ASIL B] The Cluster controller shall check the telltale request message for E2E miss 85 | * [ID_324867201] [Information] We don't specify this in all detail here, Message counter and CRC is needed 86 | * [ID_29229427] [TSR] [ASIL B] If the cluster controller determines an E2E miss in the tell tale request message, the cluster controller shall transition the system into the safe state 87 | * [ID_1988413123] [TSR] [ASIL B] The Cluster controler shall check all additional inputs from outside the system, the Cluster controller needs to decide whether a requested telltale is displayed for E2E miss 88 | * [ID_571517104] [SW] [ASIL B] The Safety-Signal-Source shall check the additional inputs for E2E misses 89 | * [ID_224260376] [Information] This refers not only to the telltale request messages from the telltale requester, but also all further inputs the safety-signal source needs to decide whether the requested telltale is displayed or not, e.g. input from a HW checker element, or Image data flowing back from the display 90 | * [ID_1568256292] [TSR] [ASIL B] If the cluster controller determines an E2E miss in an additional input needed for telltale verification, the cluster controller shall transition the system into the safe state 91 | * [ID_1562874415] [SW] [ASIL B] On E2E miss of any input to Safety-signal-source, Safety-signal-source shall request "Safe state" from the safety-app 92 | * [ID_1967724661] [FSR] [ASIL B] The instrument cluster shall transition to the safe state within 50ms, if an unrequested telltale is displayed for more than 100 ms 93 | * [ID_464783880] [Information] We implement this by splitting into a QM path rendering the Display and a Safety path checking whether the requested telltale is shown or not 94 | * [ID_1234093641] [TSR] [QM[B]] The Instrument Cluster shall render the cluster display image within 70ms of the instrument Cluster receiving the message 95 | * [ID_1721681830] [SW] [QM[B]] The QT app shall render the image within 70ms of the cluster controller receiving the message 96 | * [ID_142142357] [TSR] [ASIL B] All Inputs the Cluster controller needs to decide whether a un requested telltale is displayed shall be E2E protected 97 | * [ID_1824391227] [TSR] [ASIL B] The Instrument Cluster shall determine, if a not requested telltale is displayed for more than 100ms 98 | * [ID_1623141656] [TSR] [ASIL B] If a unrequested telltale is shown for more than 100ms the instrument cluster shall transition the system to the safe state by not triggering the external watchdog 99 | * [ID_1771819379] [FSR] [ASIL B] The chain between Telltale request sent and display/safe state shall be less than 200ms. 100 | * [ID_1372264395] [Information] Timing allocation considerations: 101 | The timings for rendering and telltale verification are not safety relevant, since the watchdog transitions to the system to the safe state, if the chain takes too long. 102 | * [ID_851857056] [Information] Signal sending including rendering by QT app: 100ms. We assume the time delay between the requester sending the message, and the cluster demo receiving it is less than 30ms, leaving 70ms for the rendering 103 | * [ID_60352073] [Information] Display check inklusive WD trigger: 50ms 104 | * [ID_1148423018] [Information] Watchdog logic inclusive backlight killing: 50ms 105 | * [ID_1374235407] [TSR] [ASIL B] The Telltale request message shall be sent every 200 ms 106 | * [ID_66701131] [TSR] [QM[B]] The Instrument Cluster shall render the cluster display image within 70ms of the instrument Cluster receiving the message 107 | * [ID_139490740] [SW] [QM[B]] The QT app shall render the image within 70ms of the cluster controller receiving the message 108 | * [ID_1797976261] [TSR] [QM[B]] Verification of telltale shown shall be performed within 50ms 109 | * [ID_666005204] [TSR] [ASIL B] If the watchdog is not triggered within 200ms, it shall transition the system to the safet state 110 | * [ID_1120681616] [Information] Watchdog part of the control flow 111 | * [ID_150284297] [Information] Timing allocation considerations: 112 | The timings for rendering and telltale verification are not safety relevant, since the watchdog transitions to the system to the safe state, if the chain takes too long. 113 | * [ID_149104298] [Information] Signal sending including rendering by QT app: 100ms. We assume the time delay between the requester sending the message, and the cluster demo receiving it is less than 30ms, leaving 70ms for the rendering 114 | * [ID_530521654] [Information] Display check inklusive WD trigger: 50ms 115 | * [ID_1019504250] [Information] Watchdog logic inclusive backlight killing: 50ms 116 | * [ID_10230674] [SW] [ASIL B] The watchdog shall disable the backlight of the Cluster Display within 50ms, if it is not triggered within 150ms. 117 |