@memoarchitect/ontology 0.13.2 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
- package/examples/connected-patient-monitor/memo.package.yaml +3 -1
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
- package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
- package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/functional-logical-physical/memo.identity.yaml +28 -0
- package/examples/functional-logical-physical/memo.package.yaml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
- package/examples/gpca-pump/analysis/Samples/README.md +15 -9
- package/examples/gpca-pump/analysis/memo_model.py +243 -0
- package/examples/gpca-pump/memo.identity.yaml +521 -26
- package/examples/gpca-pump/memo.package.yaml +3 -1
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -357
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -90
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
- package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
- package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/multidimensional-layers/memo.package.yaml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
- package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
- package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
- package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/reusable-instrument/memo.package.yaml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
- package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/robot-cell-family/README.md +34 -0
- package/examples/robot-cell-family/memo.identity.yaml +142 -0
- package/examples/robot-cell-family/memo.package.yaml +7 -0
- package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
- package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
- package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
- package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
- package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
- package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
- package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
- package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
- package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
- package/examples/robot-platform/memo.package.yaml +3 -0
- package/examples/robot-platform/model/platform.sysml +15 -0
- package/examples/ros-mobile-robot/README.md +5 -4
- package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
- package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
- package/examples/software-only-medical-device/memo.package.yaml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
- package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
- package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
- package/examples/surgical-robot/memo.package.yaml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
- package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/sysml-diagram-samples/README.md +1 -0
- package/examples/sysml-diagram-samples/memo.identity.yaml +459 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +25 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
- package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
- package/examples/temperature-alarm/memo.identity.yaml +6 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
- package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/ui-screen-regions/memo.identity.yaml +33 -0
- package/examples/ui-screen-regions/memo.package.yaml +3 -1
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
- package/extensions/README.md +65 -16
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/aadl_extension.sysml +5 -2
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
- package/extensions/clinical/memo.package.yaml +1 -1
- package/extensions/clinical/src/clinical_extension.sysml +2 -0
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/messaging_extension.sysml +2 -2
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/ros_extension.sysml +25 -24
- package/extensions/template/memo.package.yaml +1 -1
- package/extensions/template/model/extension.sysml +25 -0
- package/memo.manifest.yaml +1 -7
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +6 -4
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +9 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
- package/src/architecture/functional/functions/memo_functions.sysml +45 -31
- package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
- package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
- package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
- package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
- package/src/architecture/operational/structure/memo_operational.sysml +5 -2
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
- package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
- package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
- package/src/architecture/variability/memo_variability.sysml +87 -0
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
- package/src/artifacts/standards/cfr_21_820.sysml +12 -24
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
- package/src/artifacts/standards/iec_60601_1.sysml +16 -32
- package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
- package/src/artifacts/standards/iec_60812.sysml +4 -8
- package/src/artifacts/standards/iec_62304.sysml +607 -47
- package/src/artifacts/standards/iec_62366_1.sysml +12 -24
- package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
- package/src/artifacts/standards/iso_13485.sysml +12 -24
- package/src/artifacts/standards/iso_14971.sysml +118 -20
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
- package/src/artifacts/templates/dhf/system/sad.md +1 -1
- package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
- package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
- package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
- package/src/assurance/safety_risk/memo_risk.sysml +39 -1
- package/src/core/common/memo_common.sysml +61 -68
- package/src/core/enumerations/memo_enumerations.sysml +93 -9
- package/src/core/relationships/memo_relationships.sysml +17 -11
- package/src/core/relationships/memo_workspace_membership.sysml +284 -0
- package/src/core/semantics/semantics.sysml +58 -0
- package/src/core/terminology/terminology.sysml +7 -0
- package/src/memo_namespaces.sysml +6 -0
- package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
- package/src/methodology/core/memo_core.sysml +85 -29
- package/src/methodology/profiles/memo_profiles.sysml +217 -61
- package/src/methodology/workflow/memo_workflow.sysml +28 -0
- package/src/rules/closure/closure_rules.sysml +250 -4
- package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
- package/src/rules/ontology/ontology_invariants.sysml +288 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -0
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
- package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
- package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +2 -3
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
- package/templates/default/memo.package.yaml +6 -1
- package/templates/default/model/catalog/architecture/system.sysml +7 -3
- package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
- package/extensions/container/src/methodology/container_methodology.sysml +0 -19
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
- package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
- package/extensions/template/src/extension.sysml +0 -39
- package/templates/connected-device/memo.package.yaml +0 -13
- package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/connected-device/model/catalog/project.sysml +0 -30
- package/templates/connected-device/package.json +0 -8
- package/templates/connected-device/syside.toml +0 -13
- package/templates/infusion-pump/memo.package.yaml +0 -13
- package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
- package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/infusion-pump/model/catalog/project.sysml +0 -30
- package/templates/infusion-pump/package.json +0 -8
- package/templates/infusion-pump/syside.toml +0 -13
- package/templates/monitoring-device/memo.package.yaml +0 -13
- package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/monitoring-device/model/catalog/project.sysml +0 -30
- package/templates/monitoring-device/package.json +0 -8
- package/templates/monitoring-device/syside.toml +0 -13
- package/templates/samd/memo.package.yaml +0 -13
- package/templates/samd/model/catalog/architecture/system.sysml +0 -5
- package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/samd/model/catalog/project.sysml +0 -30
- package/templates/samd/package.json +0 -8
- package/templates/samd/syside.toml +0 -13
package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml
CHANGED
|
@@ -15,8 +15,7 @@ package memo_examples_nested_architecture_dsm_architecture_operational_context {
|
|
|
15
15
|
private import memo_core_common::*;
|
|
16
16
|
private import memo_core_common::MemoIdentity;
|
|
17
17
|
part usrWardNurse : User {
|
|
18
|
-
@MemoIdentity { :>> providedId = "NDS-USR-001"; }
|
|
19
|
-
attribute :>> name = "WardNurse";
|
|
18
|
+
@MemoIdentity { :>> providedId = "NDS-USR-001"; :>> label = "WardNurse"; }
|
|
20
19
|
attribute :>> userPopulation = "ward nurses";
|
|
21
20
|
attribute :>> impairmentConsiderations = "some wear corrective lenses; display legibility at bedside distance";
|
|
22
21
|
attribute :>> intendedTraining = "device orientation at ward induction";
|
|
@@ -25,8 +24,7 @@ package memo_examples_nested_architecture_dsm_architecture_operational_context {
|
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
part ctxIntraHospitalTransport : UseContext {
|
|
28
|
-
@MemoIdentity { :>> providedId = "NDS-CTX-001"; }
|
|
29
|
-
attribute :>> name = "IntraHospitalTransport";
|
|
27
|
+
@MemoIdentity { :>> providedId = "NDS-CTX-001"; :>> label = "IntraHospitalTransport"; }
|
|
30
28
|
attribute :>> careSetting = "inpatient ward and transfer between wards";
|
|
31
29
|
attribute :>> environment = "moving bed, up to four hours away from mains power";
|
|
32
30
|
attribute :>> connectedUse = false;
|
|
@@ -14,26 +14,26 @@ package memo_examples_nested_architecture_dsm_assurance_requirements_needs {
|
|
|
14
14
|
private import memo_core_common::*;
|
|
15
15
|
private import memo_core_common::MemoIdentity;
|
|
16
16
|
requirement needAccurateTherapy : Need {
|
|
17
|
-
@MemoIdentity { :>> providedId = "NDS-NEED-001";
|
|
17
|
+
@MemoIdentity { :>> providedId = "NDS-NEED-001"; :>> label = "AccurateTherapyDelivery"; }
|
|
18
18
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
19
19
|
attribute :>> statement = "Clinicians need the delivered dose to match the prescription closely enough to be clinically safe.";
|
|
20
20
|
attribute :>> priority = "high";
|
|
21
21
|
}
|
|
22
22
|
requirement needProtectionFromHarm : Need {
|
|
23
|
-
@MemoIdentity { :>> providedId = "NDS-NEED-002";
|
|
23
|
+
@MemoIdentity { :>> providedId = "NDS-NEED-002"; :>> label = "ProtectionFromDeliveryFaults"; }
|
|
24
24
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
25
25
|
attribute :>> statement = "Patients need delivery to stop before a line fault or air bolus reaches them.";
|
|
26
26
|
attribute :>> priority = "high";
|
|
27
27
|
}
|
|
28
28
|
requirement needUninterruptedTherapy : Need {
|
|
29
|
-
@MemoIdentity { :>> providedId = "NDS-NEED-003";
|
|
29
|
+
@MemoIdentity { :>> providedId = "NDS-NEED-003"; :>> label = "UninterruptedTherapy"; }
|
|
30
30
|
attribute :>> needKind = NeedKind::operational;
|
|
31
31
|
attribute :>> statement = "Wards need therapy to continue through transport and mains interruptions.";
|
|
32
32
|
attribute :>> priority = "medium";
|
|
33
33
|
ref :>> useContext = ctxIntraHospitalTransport;
|
|
34
34
|
}
|
|
35
35
|
requirement needLegibleStatus : Need {
|
|
36
|
-
@MemoIdentity { :>> providedId = "NDS-NEED-004";
|
|
36
|
+
@MemoIdentity { :>> providedId = "NDS-NEED-004"; :>> label = "LegibleTherapyStatus"; }
|
|
37
37
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
38
38
|
attribute :>> statement = "Clinicians need to read therapy state and alarms correctly from the bedside.";
|
|
39
39
|
attribute :>> priority = "high";
|
package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml
CHANGED
|
@@ -13,7 +13,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
|
|
|
13
13
|
private import memo_core_common::*;
|
|
14
14
|
private import memo_core_common::MemoIdentity;
|
|
15
15
|
requirement reqDoseAccuracy : Requirement {
|
|
16
|
-
@MemoIdentity { :>> providedId = "NDS-REQ-001";
|
|
16
|
+
@MemoIdentity { :>> providedId = "NDS-REQ-001"; :>> label = "DoseAccuracy"; }
|
|
17
17
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
18
18
|
attribute :>> statement = "The pump shall deliver the prescribed volume within ±5% over any 60-minute window.";
|
|
19
19
|
attribute :>> notation = RequirementNotationKind::sophist;
|
|
@@ -22,7 +22,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
|
|
|
22
22
|
attribute :>> concernKind = ConcernKind::clinical;
|
|
23
23
|
}
|
|
24
24
|
requirement reqOcclusionDetection : Requirement {
|
|
25
|
-
@MemoIdentity { :>> providedId = "NDS-REQ-002";
|
|
25
|
+
@MemoIdentity { :>> providedId = "NDS-REQ-002"; :>> label = "OcclusionDetection"; }
|
|
26
26
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
27
27
|
attribute :>> statement = "When line pressure exceeds the occlusion threshold, the pump shall stop delivery within 2 seconds.";
|
|
28
28
|
attribute :>> notation = RequirementNotationKind::ears;
|
|
@@ -33,7 +33,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
|
|
|
33
33
|
attribute :>> concernKind = ConcernKind::safety;
|
|
34
34
|
}
|
|
35
35
|
requirement reqAirInLine : Requirement {
|
|
36
|
-
@MemoIdentity { :>> providedId = "NDS-REQ-003";
|
|
36
|
+
@MemoIdentity { :>> providedId = "NDS-REQ-003"; :>> label = "AirInLineProtection"; }
|
|
37
37
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
38
38
|
attribute :>> statement = "When an air bolus above 0.1 mL is detected, the pump shall stop delivery and raise a high-priority alarm.";
|
|
39
39
|
attribute :>> notation = RequirementNotationKind::ears;
|
|
@@ -44,7 +44,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
|
|
|
44
44
|
attribute :>> concernKind = ConcernKind::safety;
|
|
45
45
|
}
|
|
46
46
|
requirement reqAlarmAnnunciation : Requirement {
|
|
47
|
-
@MemoIdentity { :>> providedId = "NDS-REQ-004";
|
|
47
|
+
@MemoIdentity { :>> providedId = "NDS-REQ-004"; :>> label = "AlarmAnnunciation"; }
|
|
48
48
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
49
49
|
attribute :>> statement = "While any alarm condition is active, the pump shall present its IEC 60601-1-8 signal until the condition clears or is acknowledged.";
|
|
50
50
|
attribute :>> notation = RequirementNotationKind::ears;
|
|
@@ -56,7 +56,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
|
|
|
56
56
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
57
57
|
}
|
|
58
58
|
requirement reqBatteryEndurance : Requirement {
|
|
59
|
-
@MemoIdentity { :>> providedId = "NDS-REQ-005";
|
|
59
|
+
@MemoIdentity { :>> providedId = "NDS-REQ-005"; :>> label = "BatteryEndurance"; }
|
|
60
60
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
61
61
|
attribute :>> statement = "On loss of mains power, the pump shall continue delivery for at least 4 hours at 25 mL/h.";
|
|
62
62
|
attribute :>> notation = RequirementNotationKind::ears;
|
|
@@ -67,7 +67,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
|
|
|
67
67
|
attribute :>> concernKind = ConcernKind::reliability;
|
|
68
68
|
}
|
|
69
69
|
requirement reqPrescriptionConfirmation : Requirement {
|
|
70
|
-
@MemoIdentity { :>> providedId = "NDS-REQ-006";
|
|
70
|
+
@MemoIdentity { :>> providedId = "NDS-REQ-006"; :>> label = "PrescriptionConfirmation"; }
|
|
71
71
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
72
72
|
attribute :>> statement = "When the clinician changes the infusion rate, the pump shall require explicit confirmation before applying it.";
|
|
73
73
|
attribute :>> notation = RequirementNotationKind::ears;
|
|
@@ -80,7 +80,7 @@ package memo_examples_nested_architecture_dsm_assurance_requirements {
|
|
|
80
80
|
}
|
|
81
81
|
// Untraced on purpose — the gap the traceability view is meant to find.
|
|
82
82
|
requirement reqStatusVisibility : Requirement {
|
|
83
|
-
@MemoIdentity { :>> providedId = "NDS-REQ-007";
|
|
83
|
+
@MemoIdentity { :>> providedId = "NDS-REQ-007"; :>> label = "StatusVisibility"; }
|
|
84
84
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
85
85
|
attribute :>> statement = "The pump shall display the active rate and volume delivered legibly at 1 m.";
|
|
86
86
|
attribute :>> notation = RequirementNotationKind::sophist;
|
|
@@ -13,7 +13,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
13
13
|
private import memo_core_common::*;
|
|
14
14
|
private import memo_core_common::MemoIdentity;
|
|
15
15
|
verification vcDoseAccuracy : VerificationCase {
|
|
16
|
-
@MemoIdentity { :>> providedId = "NDS-VER-001";
|
|
16
|
+
@MemoIdentity { :>> providedId = "NDS-VER-001"; :>> label = "VerifyDoseAccuracy"; }
|
|
17
17
|
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
18
18
|
attribute :>> acceptanceCriteria = "Gravimetric delivery over 60 minutes is within ±5% of the prescribed volume at 1, 25 and 999 mL/h.";
|
|
19
19
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -22,7 +22,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
22
22
|
subject verified : Base::Anything[*] = (fnDeliverTherapy, fnDeliverTherapy.fnMeterFluid, fnDeliverTherapy.fnMeterFluid.fnDriveActuator, fnDeliverTherapy.fnMeterFluid.fnMeasureDelivered, fnDeliverTherapy.fnControlDose, fnDeliverTherapy.fnControlDose.fnComputeRate);
|
|
23
23
|
}
|
|
24
24
|
verification vcOcclusionResponse : VerificationCase {
|
|
25
|
-
@MemoIdentity { :>> providedId = "NDS-VER-002";
|
|
25
|
+
@MemoIdentity { :>> providedId = "NDS-VER-002"; :>> label = "VerifyOcclusionResponse"; }
|
|
26
26
|
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
27
27
|
attribute :>> acceptanceCriteria = "Delivery stops within 2 s of the occlusion threshold being crossed, at every supported rate.";
|
|
28
28
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -31,7 +31,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
31
31
|
subject verified : Base::Anything[*] = (fnEnsureSafety, fnEnsureSafety.fnDetectOcclusion, fnEnsureSafety.fnEnforceDoseLimits);
|
|
32
32
|
}
|
|
33
33
|
verification vcAirInLineResponse : VerificationCase {
|
|
34
|
-
@MemoIdentity { :>> providedId = "NDS-VER-003";
|
|
34
|
+
@MemoIdentity { :>> providedId = "NDS-VER-003"; :>> label = "VerifyAirInLineResponse"; }
|
|
35
35
|
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
36
36
|
attribute :>> acceptanceCriteria = "A 0.1 mL air bolus stops delivery and raises a high-priority alarm.";
|
|
37
37
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -40,7 +40,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
40
40
|
subject verified : Base::Anything[*] = (fnEnsureSafety.fnDetectAirInLine);
|
|
41
41
|
}
|
|
42
42
|
verification vcAlarmSignals : VerificationCase {
|
|
43
|
-
@MemoIdentity { :>> providedId = "NDS-VER-004";
|
|
43
|
+
@MemoIdentity { :>> providedId = "NDS-VER-004"; :>> label = "VerifyAlarmSignals"; }
|
|
44
44
|
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
45
45
|
attribute :>> acceptanceCriteria = "Alarm signals conform to IEC 60601-1-8 for every priority, and persist until cleared or acknowledged.";
|
|
46
46
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -49,7 +49,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
49
49
|
subject verified : Base::Anything[*] = (fnInformUser.fnAnnunciateAlarm);
|
|
50
50
|
}
|
|
51
51
|
verification vcBatteryEndurance : VerificationCase {
|
|
52
|
-
@MemoIdentity { :>> providedId = "NDS-VER-005";
|
|
52
|
+
@MemoIdentity { :>> providedId = "NDS-VER-005"; :>> label = "VerifyBatteryEndurance"; }
|
|
53
53
|
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
54
54
|
attribute :>> acceptanceCriteria = "Delivery continues for at least 4 hours at 25 mL/h from a fully charged battery after mains loss.";
|
|
55
55
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -58,7 +58,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
58
58
|
subject verified : Base::Anything[*] = (fnManagePower, fnManagePower.fnMonitorBattery);
|
|
59
59
|
}
|
|
60
60
|
verification vcConfirmationFlow : VerificationCase {
|
|
61
|
-
@MemoIdentity { :>> providedId = "NDS-VER-006";
|
|
61
|
+
@MemoIdentity { :>> providedId = "NDS-VER-006"; :>> label = "VerifyConfirmationFlow"; }
|
|
62
62
|
attribute :>> methodKind = MemoVerificationMethodKind::demonstration;
|
|
63
63
|
attribute :>> acceptanceCriteria = "No rate change reaches the controller without an explicit confirmation step.";
|
|
64
64
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -67,7 +67,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
67
67
|
subject verified : Base::Anything[*] = (fnDeliverTherapy.fnControlDose.fnValidatePrescription, fnInformUser.fnAcceptInput);
|
|
68
68
|
}
|
|
69
69
|
verification vcStatusLegibility : VerificationCase {
|
|
70
|
-
@MemoIdentity { :>> providedId = "NDS-VER-007";
|
|
70
|
+
@MemoIdentity { :>> providedId = "NDS-VER-007"; :>> label = "VerifyStatusLegibility"; }
|
|
71
71
|
attribute :>> methodKind = MemoVerificationMethodKind::inspection;
|
|
72
72
|
attribute :>> acceptanceCriteria = "Rate and volume delivered are readable at 1 m under 100–1000 lux.";
|
|
73
73
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -76,7 +76,7 @@ package memo_examples_nested_architecture_dsm_assurance_verification_validation
|
|
|
76
76
|
subject verified : Base::Anything[*] = (fnInformUser, fnInformUser.fnRenderStatus);
|
|
77
77
|
}
|
|
78
78
|
verification vcPowerSourceSwitch : VerificationCase {
|
|
79
|
-
@MemoIdentity { :>> providedId = "NDS-VER-008";
|
|
79
|
+
@MemoIdentity { :>> providedId = "NDS-VER-008"; :>> label = "VerifyPowerSourceSwitch"; }
|
|
80
80
|
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
81
81
|
attribute :>> acceptanceCriteria = "Rail brownout switches source without interrupting delivery.";
|
|
82
82
|
attribute :>> status = ElementStatusKind::approved;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Nested architecture DSM —
|
|
1
|
+
// Nested architecture DSM — model identity and method binding.
|
|
2
2
|
//
|
|
3
3
|
// The native entrypoint. The imports name what this project contains and the
|
|
4
4
|
// binding names the methodology governing it. No YAML file participates.
|
|
@@ -21,10 +21,9 @@ package memo_examples_nested_architecture_dsm_project {
|
|
|
21
21
|
|
|
22
22
|
private import memo_core_common::*;
|
|
23
23
|
private import memo_core_common::MemoIdentity;
|
|
24
|
-
part projectBinding :
|
|
25
|
-
@MemoIdentity { :>> providedId = "PMB-NESTED-DSM-001"; }
|
|
26
|
-
attribute :>>
|
|
27
|
-
attribute :>> projectName = "Nested Architecture DSM";
|
|
24
|
+
part projectBinding : ModelMethodBinding {
|
|
25
|
+
@MemoIdentity { :>> providedId = "PMB-NESTED-DSM-001"; :>> label = "NestedArchitectureDsmModelMethodBinding"; }
|
|
26
|
+
attribute :>> modelName = "Nested Architecture DSM";
|
|
28
27
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
29
28
|
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
30
29
|
}
|
|
@@ -16,13 +16,13 @@ package memo_examples_reusable_instrument {
|
|
|
16
16
|
private import memo_core_common::MemoIdentity;
|
|
17
17
|
part sterileProcessingTech : User {
|
|
18
18
|
attribute :>> actorKind = ActorKind::technician;
|
|
19
|
-
@MemoIdentity { :>> providedId = "RI-USR-001";
|
|
19
|
+
@MemoIdentity { :>> providedId = "RI-USR-001"; :>> label = "SterileProcessingTechnician"; }
|
|
20
20
|
attribute :>> serviceScope = "central sterile services department";
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
use case ucSterilize : UseCase {
|
|
24
24
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
25
|
-
@MemoIdentity { :>> providedId = "RI-UC-001";
|
|
25
|
+
@MemoIdentity { :>> providedId = "RI-UC-001"; :>> label = "SterilizeReusableInstrument"; }
|
|
26
26
|
attribute :>> goalStatement = "Return a used instrument to sterile, functional condition for the next case.";
|
|
27
27
|
attribute :>> preCondition = "instrument collected from the OR; gross soil removed at point of use";
|
|
28
28
|
attribute :>> successOutcome = "instrument cleaned, inspected, sterilized, and released to sterile storage";
|
|
@@ -32,12 +32,12 @@ package memo_examples_reusable_instrument {
|
|
|
32
32
|
|
|
33
33
|
// Reprocessing workflow: exists independently of any single instrument.
|
|
34
34
|
action wfReprocess : OperationalWorkflow {
|
|
35
|
-
@MemoIdentity { :>> providedId = "RI-WF-001";
|
|
35
|
+
@MemoIdentity { :>> providedId = "RI-WF-001"; :>> label = "InstrumentReprocessingWorkflow"; }
|
|
36
36
|
attribute :>> workflowState = WorkflowStateKind::asIs;
|
|
37
37
|
attribute :>> entryCondition = "used instrument received in decontamination";
|
|
38
38
|
attribute :>> completionCondition = "sterile pack released to storage";
|
|
39
39
|
action scNominalCycle : OperativeScenario {
|
|
40
|
-
@MemoIdentity { :>> providedId = "RI-SC-001";
|
|
40
|
+
@MemoIdentity { :>> providedId = "RI-SC-001"; :>> label = "NominalReprocessingCycle"; }
|
|
41
41
|
|
|
42
42
|
perform actClean;
|
|
43
43
|
perform actInspect;
|
|
@@ -47,15 +47,15 @@ package memo_examples_reusable_instrument {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
action actClean : OperativeAction {
|
|
50
|
-
@MemoIdentity { :>> providedId = "RI-ACT-001";
|
|
50
|
+
@MemoIdentity { :>> providedId = "RI-ACT-001"; :>> label = "CleanAndDisinfect"; }
|
|
51
51
|
attribute :>> criticality = CriticalityKind::high;
|
|
52
52
|
}
|
|
53
53
|
action actInspect : OperativeAction {
|
|
54
|
-
@MemoIdentity { :>> providedId = "RI-ACT-002";
|
|
54
|
+
@MemoIdentity { :>> providedId = "RI-ACT-002"; :>> label = "InspectAndFunctionTest"; }
|
|
55
55
|
attribute :>> criticality = CriticalityKind::high;
|
|
56
56
|
}
|
|
57
57
|
action actSterilizeLoad : OperativeAction {
|
|
58
|
-
@MemoIdentity { :>> providedId = "RI-ACT-003";
|
|
58
|
+
@MemoIdentity { :>> providedId = "RI-ACT-003"; :>> label = "PackAndAutoclave"; }
|
|
59
59
|
attribute :>> criticality = CriticalityKind::high;
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Reusable Instrument —
|
|
1
|
+
// Reusable Instrument — model identity and method binding.
|
|
2
2
|
//
|
|
3
3
|
// The native entrypoint. The imports name what this project contains and the
|
|
4
4
|
// binding names the methodology it is governed by. No YAML file participates.
|
|
@@ -16,10 +16,9 @@ package memo_examples_reusable_instrument_project {
|
|
|
16
16
|
|
|
17
17
|
private import memo_core_common::*;
|
|
18
18
|
private import memo_core_common::MemoIdentity;
|
|
19
|
-
part projectBinding :
|
|
20
|
-
@MemoIdentity { :>> providedId = "PMB-REUSABLE-INSTRUMENT-001"; }
|
|
21
|
-
attribute :>>
|
|
22
|
-
attribute :>> projectName = "Reusable Instrument";
|
|
19
|
+
part projectBinding : ModelMethodBinding {
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-REUSABLE-INSTRUMENT-001"; :>> label = "ReusableInstrumentModelMethodBinding"; }
|
|
21
|
+
attribute :>> modelName = "Reusable Instrument";
|
|
23
22
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
24
23
|
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
25
24
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Robot Cell Family
|
|
2
|
+
|
|
3
|
+
A reference **product family**: one model, compiled once, holding a system of
|
|
4
|
+
systems, what its systems share, and each system. The names are fictional.
|
|
5
|
+
|
|
6
|
+
```text
|
|
7
|
+
model/
|
|
8
|
+
methodology/project.sysml model identity and method binding (the entrypoint)
|
|
9
|
+
sos/ the robot cell: the system of systems,
|
|
10
|
+
its interface control documents, a functional chain
|
|
11
|
+
across systems, and the clinical use cases
|
|
12
|
+
shared/ signals, ports, a component and the users that more
|
|
13
|
+
than one system needs
|
|
14
|
+
systems/navigation/ navigation system
|
|
15
|
+
systems/manipulation/ manipulation generator system
|
|
16
|
+
systems/perception/ signal perception system
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Direction of reference.** A system imports `shared/` and nothing else of the
|
|
20
|
+
family; it never names the system of systems or another system. Only `sos/`
|
|
21
|
+
names the systems together.
|
|
22
|
+
|
|
23
|
+
**Use case scope comes from `subject`.** A clinical use case's subject is the
|
|
24
|
+
cell; a system use case's subject is its system. The clinical use case
|
|
25
|
+
`include`s the system use cases and binds each one's subject to the
|
|
26
|
+
constituent that carries it out.
|
|
27
|
+
|
|
28
|
+
**Interface control documents** are one `interface def` per pair of systems
|
|
29
|
+
that exchange something, with the port types on both ends taken from
|
|
30
|
+
`shared/`. The cell connects the systems' ports with them.
|
|
31
|
+
|
|
32
|
+
This is the skeleton (milestone M0 of the product-family plan). Features,
|
|
33
|
+
markets, release records, regulated devices, imported requirements and a
|
|
34
|
+
shared platform package are added by later milestones.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# memo.identity.yaml — element identity registry (auto-generated)
|
|
2
|
+
# Assigned once and never reassigned. COMMIT THIS FILE: deleting it does
|
|
3
|
+
# not regenerate the same identities, it mints new ones, and every
|
|
4
|
+
# external reference to a shortId or uuid then points at nothing.
|
|
5
|
+
# Entries for deleted elements are retained so their numbers stay retired.
|
|
6
|
+
|
|
7
|
+
elements:
|
|
8
|
+
"robot_cell_family_chains::wfMapGuidedPick":
|
|
9
|
+
shortId: "WFL-1"
|
|
10
|
+
uuid: "713583a3-7ac7-5248-82ed-4e8f4e6e9e9b"
|
|
11
|
+
"robot_cell_family_chains::wfMapGuidedPick::scMapGuidedPick":
|
|
12
|
+
shortId: "OPR-1"
|
|
13
|
+
uuid: "4d9847fb-1f64-58f1-9356-1c005b31b023"
|
|
14
|
+
"robot_cell_family_chains::wfMapGuidedPick::scMapGuidedPick::stepAcquire":
|
|
15
|
+
shortId: "ACT-1"
|
|
16
|
+
uuid: "d2dc1e61-52d5-58ab-a59b-74f48539a351"
|
|
17
|
+
"robot_cell_family_chains::wfMapGuidedPick::scMapGuidedPick::stepBuildMap":
|
|
18
|
+
shortId: "ACT-2"
|
|
19
|
+
uuid: "af2e726f-d76b-504d-b19d-f1900c79b724"
|
|
20
|
+
"robot_cell_family_chains::wfMapGuidedPick::scMapGuidedPick::stepGrasp":
|
|
21
|
+
shortId: "ACT-3"
|
|
22
|
+
uuid: "cde92060-28d2-5d96-a8ec-02321acfbe07"
|
|
23
|
+
"robot_cell_family_chains::wfMapGuidedPick::scMapGuidedPick::stepTag":
|
|
24
|
+
shortId: "ACT-4"
|
|
25
|
+
uuid: "352ea0e4-f42f-5d1d-9574-634aaa887d9c"
|
|
26
|
+
"robot_cell_family_icds::ManipulationToNavigationIcd":
|
|
27
|
+
shortId: "INT-1"
|
|
28
|
+
uuid: "9b2236d4-4d72-596c-8573-219a92fe86b2"
|
|
29
|
+
"robot_cell_family_icds::ManipulationToNavigationIcd::consumer":
|
|
30
|
+
shortId: "GRS-1"
|
|
31
|
+
uuid: "159885be-8457-5b8a-9b17-0e48b0aab101"
|
|
32
|
+
"robot_cell_family_icds::ManipulationToNavigationIcd::provider":
|
|
33
|
+
shortId: "GRS-2"
|
|
34
|
+
uuid: "fae45eb9-5718-5818-8af8-fc51dc86b8df"
|
|
35
|
+
"robot_cell_family_icds::PerceptionToNavigationIcd":
|
|
36
|
+
shortId: "INT-2"
|
|
37
|
+
uuid: "25296ccf-1311-596e-af95-201383e09b5d"
|
|
38
|
+
"robot_cell_family_icds::PerceptionToNavigationIcd::consumer":
|
|
39
|
+
shortId: "PNT-1"
|
|
40
|
+
uuid: "201d7327-4b2a-5428-b68a-dfe725663778"
|
|
41
|
+
"robot_cell_family_icds::PerceptionToNavigationIcd::provider":
|
|
42
|
+
shortId: "PNT-2"
|
|
43
|
+
uuid: "cfa6155d-78eb-5918-9e24-ef650aa40ecb"
|
|
44
|
+
"robot_cell_family_manipulation::ManipulatorSystem":
|
|
45
|
+
shortId: "SYS-2"
|
|
46
|
+
uuid: "cd712374-2dff-5e4d-8209-8113ecc24025"
|
|
47
|
+
"robot_cell_family_manipulation::ManipulatorSystem::motionController":
|
|
48
|
+
shortId: "LGC-1"
|
|
49
|
+
uuid: "e42137bd-da25-5982-a8cf-26e031c81811"
|
|
50
|
+
"robot_cell_family_manipulation::ManipulatorSystem::pGraspEventOut":
|
|
51
|
+
shortId: "GRS-3"
|
|
52
|
+
uuid: "41c1abc5-8e4b-58b8-8ac9-e11ddb157886"
|
|
53
|
+
"robot_cell_family_manipulation::fnExecuteGrasp":
|
|
54
|
+
shortId: "SYS-1"
|
|
55
|
+
uuid: "7295f77d-5d97-5fee-9c7b-f1b4a56bac31"
|
|
56
|
+
"robot_cell_family_manipulation::ucExecuteGrasp":
|
|
57
|
+
shortId: "USE-1"
|
|
58
|
+
uuid: "24de2ed8-8daa-584d-9d26-9a04486ac411"
|
|
59
|
+
"robot_cell_family_navigation::NavigationSystem":
|
|
60
|
+
shortId: "SYS-5"
|
|
61
|
+
uuid: "37d96a1d-c9e4-5509-a126-b015353a222b"
|
|
62
|
+
"robot_cell_family_navigation::NavigationSystem::mapEngine":
|
|
63
|
+
shortId: "LGC-2"
|
|
64
|
+
uuid: "11915261-083d-5c7d-87cf-faf40e77743b"
|
|
65
|
+
"robot_cell_family_navigation::NavigationSystem::pGraspEventIn":
|
|
66
|
+
shortId: "GRS-4"
|
|
67
|
+
uuid: "f3eecd4a-c700-5fc3-9fc5-05b6834149ae"
|
|
68
|
+
"robot_cell_family_navigation::NavigationSystem::pPointCloudIn":
|
|
69
|
+
shortId: "PNT-3"
|
|
70
|
+
uuid: "1a07c5ee-1f4a-5af1-9946-654cadfc1d37"
|
|
71
|
+
"robot_cell_family_navigation::NavigationSystem::safetyRelay":
|
|
72
|
+
shortId: "SFT-1"
|
|
73
|
+
uuid: "b07edb4b-823a-5666-b984-dfd60cfcf382"
|
|
74
|
+
"robot_cell_family_navigation::fnBuildMap":
|
|
75
|
+
shortId: "SYS-3"
|
|
76
|
+
uuid: "feaa0b74-80c8-534d-827b-4a91735b0732"
|
|
77
|
+
"robot_cell_family_navigation::fnTagGrasp":
|
|
78
|
+
shortId: "SYS-4"
|
|
79
|
+
uuid: "15ad4be9-f7e0-5679-ab59-3d83034bdb01"
|
|
80
|
+
"robot_cell_family_navigation::ucAcquireMap":
|
|
81
|
+
shortId: "USE-2"
|
|
82
|
+
uuid: "c5e5ba0c-9931-581d-973f-06771194bd5d"
|
|
83
|
+
"robot_cell_family_operational_use_cases::ucPerformPickAndPlace":
|
|
84
|
+
shortId: "USE-3"
|
|
85
|
+
uuid: "123bdce0-cc65-5f96-8314-015c040b0c44"
|
|
86
|
+
"robot_cell_family_perception::PerceptionSystem":
|
|
87
|
+
shortId: "SYS-7"
|
|
88
|
+
uuid: "6df2db5b-33af-572a-a508-5920c172ebd6"
|
|
89
|
+
"robot_cell_family_perception::PerceptionSystem::pPointCloudOut":
|
|
90
|
+
shortId: "PNT-4"
|
|
91
|
+
uuid: "f25021f5-4d77-5bab-a02f-67a44e13c9ff"
|
|
92
|
+
"robot_cell_family_perception::PerceptionSystem::safetyRelay":
|
|
93
|
+
shortId: "SFT-2"
|
|
94
|
+
uuid: "91b6697d-b81d-5f12-908d-36630bc4f12a"
|
|
95
|
+
"robot_cell_family_perception::PerceptionSystem::sensorHub":
|
|
96
|
+
shortId: "LGC-3"
|
|
97
|
+
uuid: "1ea7ccaa-19e9-5832-87ca-0fa090bd5d41"
|
|
98
|
+
"robot_cell_family_perception::fnAcquirePointClouds":
|
|
99
|
+
shortId: "SYS-6"
|
|
100
|
+
uuid: "b5526ffb-b286-51f3-8d37-bd85ccd39fed"
|
|
101
|
+
"robot_cell_family_perception::ucRecordRun":
|
|
102
|
+
shortId: "USE-4"
|
|
103
|
+
uuid: "7f1e7505-93cf-5ca9-8b0b-bb6e84c1c6b0"
|
|
104
|
+
"robot_cell_family_project::projectBinding":
|
|
105
|
+
shortId: "PRJ-1"
|
|
106
|
+
uuid: "90eedd56-862d-5c37-9e25-1de54d95e271"
|
|
107
|
+
"robot_cell_family_shared::GraspEvent":
|
|
108
|
+
shortId: "INT-3"
|
|
109
|
+
uuid: "3fe7b66a-c2fb-51d3-9179-e69c80841459"
|
|
110
|
+
"robot_cell_family_shared::GraspEventPort":
|
|
111
|
+
shortId: "LGC-4"
|
|
112
|
+
uuid: "43c9dbcb-2c98-5fc8-a515-17b0b864e8dd"
|
|
113
|
+
"robot_cell_family_shared::PointCloud":
|
|
114
|
+
shortId: "INT-4"
|
|
115
|
+
uuid: "d79cb0a4-0712-5b8a-a105-383ca7344c9d"
|
|
116
|
+
"robot_cell_family_shared::PointCloudPort":
|
|
117
|
+
shortId: "LGC-5"
|
|
118
|
+
uuid: "6cd1449d-366d-5e7f-96e2-2108c0d67373"
|
|
119
|
+
"robot_cell_family_shared::RobotPose":
|
|
120
|
+
shortId: "INT-5"
|
|
121
|
+
uuid: "035bdfc7-24d8-5d69-a62f-845ca325bee6"
|
|
122
|
+
"robot_cell_family_shared::cellOperator":
|
|
123
|
+
shortId: "USR-1"
|
|
124
|
+
uuid: "a28a5f53-c9e1-5b9d-93cd-343561e0566d"
|
|
125
|
+
"robot_cell_family_shared::cellTechnician":
|
|
126
|
+
shortId: "USR-2"
|
|
127
|
+
uuid: "1f86fe8c-5f54-5f9d-a198-4bb90d5c4c76"
|
|
128
|
+
"robot_cell_family_sos::RoboticCell":
|
|
129
|
+
shortId: "SYS-8"
|
|
130
|
+
uuid: "da8724b1-4a2b-5f67-aaf4-b572a8b4ed68"
|
|
131
|
+
"robot_cell_family_sos::RoboticCell::manipulation":
|
|
132
|
+
shortId: "MNP-1"
|
|
133
|
+
uuid: "2b20c821-510d-5903-b115-378036d2632c"
|
|
134
|
+
"robot_cell_family_sos::RoboticCell::navigation":
|
|
135
|
+
shortId: "NVG-1"
|
|
136
|
+
uuid: "336b2492-35fc-5841-9d09-7135a1083a3f"
|
|
137
|
+
"robot_cell_family_sos::RoboticCell::perception":
|
|
138
|
+
shortId: "PRC-1"
|
|
139
|
+
uuid: "8556b382-2518-50d8-8ae1-79cf75dff4d3"
|
|
140
|
+
"robot_cell_family_sos::robotCell":
|
|
141
|
+
shortId: "RBT-1"
|
|
142
|
+
uuid: "1ffe24b9-8326-5e45-9d84-0bd24aa26c4f"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Robot Cell Family — model identity and method binding.
|
|
2
|
+
//
|
|
3
|
+
// A reference product family: one model, one compile, holding a system of
|
|
4
|
+
// systems (`sos/`), what its systems share (`shared/`) and each system
|
|
5
|
+
// (`systems/<system>/`). The names are fictional.
|
|
6
|
+
package robot_cell_family_project {
|
|
7
|
+
private import ScalarValues::*;
|
|
8
|
+
|
|
9
|
+
private import memo_core_enumerations::*;
|
|
10
|
+
private import memo_methodology_core::*;
|
|
11
|
+
private import memo_methodology_profiles::*;
|
|
12
|
+
|
|
13
|
+
private import robot_cell_family_shared::*;
|
|
14
|
+
private import robot_cell_family_navigation::*;
|
|
15
|
+
private import robot_cell_family_manipulation::*;
|
|
16
|
+
private import robot_cell_family_perception::*;
|
|
17
|
+
private import robot_cell_family_icds::*;
|
|
18
|
+
private import robot_cell_family_sos::*;
|
|
19
|
+
private import robot_cell_family_chains::*;
|
|
20
|
+
private import robot_cell_family_operational_use_cases::*;
|
|
21
|
+
|
|
22
|
+
private import memo_core_common::*;
|
|
23
|
+
private import memo_core_common::MemoIdentity;
|
|
24
|
+
part projectBinding : ModelMethodBinding {
|
|
25
|
+
@MemoIdentity { :>> providedId = "RCF-PMB-001"; :>> label = "RobotCellFamilyMethodBinding"; }
|
|
26
|
+
attribute :>> modelName = "Robot Cell Family";
|
|
27
|
+
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
28
|
+
attribute :>> scopeMode = ScopeModeKind::explicit;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// What more than one system of the family uses: the signals that cross between
|
|
2
|
+
// them, the ports that carry those signals, a component two systems both
|
|
3
|
+
// contain, and the people who use the cell. A system imports this package and
|
|
4
|
+
// nothing else of the family; it never names the system of systems or another
|
|
5
|
+
// system.
|
|
6
|
+
package robot_cell_family_shared {
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
private import memo_core_enumerations::*;
|
|
10
|
+
private import memo_architecture_logical_structure::*;
|
|
11
|
+
private import memo_architecture_logical_interfaces::*;
|
|
12
|
+
private import memo_architecture_operational_context_actors::*;
|
|
13
|
+
|
|
14
|
+
// ─── Signals that cross a system boundary ───────────────────────────
|
|
15
|
+
item def PointCloud specializes InterfaceItem {
|
|
16
|
+
@MemoIdentity { :>> providedId = "RCF-IT-001"; :>> label = "Point Cloud"; }
|
|
17
|
+
doc /* Sampled range points from the cell's depth sensors, with their acquisition timestamps. */
|
|
18
|
+
}
|
|
19
|
+
item def RobotPose specializes InterfaceItem {
|
|
20
|
+
@MemoIdentity { :>> providedId = "RCF-IT-002"; :>> label = "Robot Pose"; }
|
|
21
|
+
doc /* Position and orientation of the robot tool in the reconstructed cell map. */
|
|
22
|
+
}
|
|
23
|
+
item def GraspEvent specializes InterfaceItem {
|
|
24
|
+
@MemoIdentity { :>> providedId = "RCF-IT-003"; :>> label = "Manipulation Event"; }
|
|
25
|
+
doc /* One grasp: start and stop time, applied force, and the gripper it was made with. */
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// ─── The ports those signals cross through ──────────────────────────
|
|
29
|
+
// Defined once here so that each system types its own boundary with them
|
|
30
|
+
// and the interface control documents at the system-of-systems level
|
|
31
|
+
// connect them, without either side naming the other.
|
|
32
|
+
port def PointCloudPort specializes LogicalPort {
|
|
33
|
+
out item pointCloud : PointCloud;
|
|
34
|
+
}
|
|
35
|
+
port def GraspEventPort specializes LogicalPort {
|
|
36
|
+
out item graspEvent : GraspEvent;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ─── A component two systems both contain ───────────────────────────
|
|
40
|
+
// It lives in the platform package, which this family depends on and does
|
|
41
|
+
// not edit. Re-exported here so a system imports this package and nothing else.
|
|
42
|
+
public import robot_platform::SafetyRelayModule;
|
|
43
|
+
|
|
44
|
+
// ─── The people who use the cell ─────────────────────────────────────
|
|
45
|
+
part cellOperator : User {
|
|
46
|
+
@MemoIdentity { :>> providedId = "RCF-ACT-001"; :>> label = "Cell Operator"; }
|
|
47
|
+
attribute :>> actorKind = ActorKind::clinician;
|
|
48
|
+
}
|
|
49
|
+
part cellTechnician : User {
|
|
50
|
+
@MemoIdentity { :>> providedId = "RCF-ACT-002"; :>> label = "Cell Technician"; }
|
|
51
|
+
attribute :>> actorKind = ActorKind::technician;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// The clinical workflow that realizes the procedure, with its nominal scenario: a series of
|
|
2
|
+
// actions that crosses system boundaries: the perception system's
|
|
3
|
+
// point clouds build the map, and the manipulator's grasp is
|
|
4
|
+
// tagged on it. Each step is a system's own function performed at one
|
|
5
|
+
// position in the chain.
|
|
6
|
+
package robot_cell_family_chains {
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
private import memo_core_enumerations::*;
|
|
10
|
+
private import memo_architecture_functional_functions::*;
|
|
11
|
+
private import memo_architecture_operational_workflows::*;
|
|
12
|
+
private import memo_architecture_operational_scenarios::*;
|
|
13
|
+
private import robot_cell_family_operational_use_cases::*;
|
|
14
|
+
private import robot_cell_family_navigation::*;
|
|
15
|
+
private import robot_cell_family_manipulation::*;
|
|
16
|
+
private import robot_cell_family_perception::*;
|
|
17
|
+
|
|
18
|
+
action wfMapGuidedPick : OperationalWorkflow {
|
|
19
|
+
@MemoIdentity { :>> providedId = "RCF-FC-001"; :>> label = "Map-Guided Pick"; }
|
|
20
|
+
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
21
|
+
doc /* Point clouds acquired by the perception system build the occupancy map; each grasp by the manipulator is tagged on that map. */
|
|
22
|
+
action scMapGuidedPick : OperativeScenario {
|
|
23
|
+
action stepAcquire :> fnAcquirePointClouds;
|
|
24
|
+
action stepBuildMap :> fnBuildMap;
|
|
25
|
+
action stepGrasp :> fnExecuteGrasp;
|
|
26
|
+
action stepTag :> fnTagGrasp;
|
|
27
|
+
first stepAcquire then stepBuildMap;
|
|
28
|
+
first stepBuildMap then stepGrasp;
|
|
29
|
+
first stepGrasp then stepTag;
|
|
30
|
+
flow from stepAcquire.pointCloudOut to stepBuildMap.pointCloudIn;
|
|
31
|
+
flow from stepGrasp.graspEventOut to stepTag.graspEventIn;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
connection : RealizesUseCase connect realizingWorkflow ::> wfMapGuidedPick to realizedUseCase ::> ucPerformPickAndPlace;
|
|
36
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Interface control documents: one interface definition per pair of
|
|
2
|
+
// constituent systems that exchange something. Each names the port types on
|
|
3
|
+
// both sides (from the shared package) and what crosses. They belong to the
|
|
4
|
+
// system of systems because each one is an agreement between two systems,
|
|
5
|
+
// owned by neither.
|
|
6
|
+
package robot_cell_family_icds {
|
|
7
|
+
private import memo_core_common::*;
|
|
8
|
+
private import memo_core_common::MemoIdentity;
|
|
9
|
+
private import memo_core_enumerations::*;
|
|
10
|
+
private import memo_architecture_logical_interfaces::*;
|
|
11
|
+
private import robot_cell_family_shared::*;
|
|
12
|
+
|
|
13
|
+
interface def PerceptionToNavigationIcd specializes Interface {
|
|
14
|
+
@MemoIdentity { :>> providedId = "RCF-ICD-001"; :>> label = "Perception to Navigation ICD"; }
|
|
15
|
+
doc /* The perception system streams point clouds to the navigation system. */
|
|
16
|
+
end provider : PointCloudPort;
|
|
17
|
+
end consumer : ~PointCloudPort;
|
|
18
|
+
attribute :>> interfaceKind = InterfaceKind::data;
|
|
19
|
+
attribute :>> direction = DirectionKind::output;
|
|
20
|
+
}
|
|
21
|
+
interface def ManipulationToNavigationIcd specializes Interface {
|
|
22
|
+
@MemoIdentity { :>> providedId = "RCF-ICD-002"; :>> label = "Manipulation to Navigation ICD"; }
|
|
23
|
+
doc /* The manipulator reports each grasp so the navigation system can tag it. */
|
|
24
|
+
end provider : GraspEventPort;
|
|
25
|
+
end consumer : ~GraspEventPort;
|
|
26
|
+
attribute :>> interfaceKind = InterfaceKind::data;
|
|
27
|
+
attribute :>> direction = DirectionKind::output;
|
|
28
|
+
}
|
|
29
|
+
}
|