Building Effective Embedded Systems: Architectural Best Practices
Operating Systems ⊡ Threads ⊡ Layer Separation ⊡ Network Problems ⊡ External Interfaces ⊡ Simulators ⊡ Logs ⊡ Monitoring⊡ Operating Systems ⊡ Threads ⊡ Layer Separation ⊡ Network Problems ⊡ External for complex systems with soft real-time requirements⊡ Operating Systems ⊡ Threads ⊡ Layer Separation ⊡ Network Problems ⊡ External Interfaces ⊡ Simulators ⊡ Logs ⊡ MonitoringMine⊡ Collects meter Threads ⊡ Layer Separation ⊡ Network Problems ⊡ External Interfaces ⊡ Simulators ⊡ Logs ⊡ MonitoringEmbedded Software Separate the logic layer from the hardware layerSeparate the logic layer from the0 码力 | 241 页 | 2.28 MB | 5 月前3simd: How to Express Inherent Parallelism Efficiently Via Data-Parallel Types
non-invasive. The goal is to divide the code into expert code (SIMD) and average coder / business logic. Let’s try that… Matthias Kretz CppCon ’23 24 GSI Helmholtz Center for Heavy Ion ResearchMotivation non-invasive. The goal is to divide the code into expert code (SIMD) and average coder / business logic. Let’s try that… Matthias Kretz CppCon ’23 24 GSI Helmholtz Center for Heavy Ion ResearchMotivation non-invasive. The goal is to divide the code into expert code (SIMD) and average coder / business logic. Let’s try that… b0 g0 r0 a0 Matthias Kretz CppCon ’23 24 GSI Helmholtz Center for Heavy Ion ResearchMotivation0 码力 | 160 页 | 8.82 MB | 5 月前3Concurrency Patterns I
Object Advantages: ▪ Only the access to the activation list has to be synchronized ▪ Clear separation of client and server ▪ Improved throughput due to the asynchronous execution ▪ The scheduler dispatches it to the specific service.ReactorReactor Advantages: ▪ A clear separation of framework and application logic. ▪ The Reactor can be ported to various platforms, because the underlying underlying event demultiplexing functions are widely available. ▪ The separation of interface and implementation enables easy adaption or extension of the services. ▪ Overall structure supports the concurrent0 码力 | 39 页 | 1.14 MB | 5 月前3The Roles of Symmetry And Orthogonality In Design
complex systems: • System becomes implementable • Emergent system behavior is strictly controlled by logic (not by side effects of integration artifacts) • Reduces testing and development time (because through: • Separation of Concerns • Encapsulation • Guarantees that modifying a component does not create nor propagate side effects to other components See: Edsger W. Dijkstra Separation of Concerns added complexity 2. Unbalanced relationship was accidental (missed opportunity for one of): • Separation of Concerns: Could have established Orthogonality • Design Elegance: Could have established Symmetry0 码力 | 151 页 | 3.20 MB | 5 月前3Leveraging a Functional Approach for More Testable and Maintainable ROS 2 Code
and generate_global_path functions, which are private functions that contain the actual business logic ● Let’s take a look at the PathGenerator constructorConventional Approach class PathGenerator : multiple things: managing ROS 2 communication, performing calculations, and implementing logic ○ Doesn’t follow Separation of Concerns and can even be considered to violate the Single Responsibility PrincipleLimitations multiple things: managing ROS 2 communication, performing calculations, and implementing logic ○ Doesn’t follow Separation of Concerns and can even be considered to violate the Single Responsibility Principle0 码力 | 200 页 | 1.77 MB | 5 月前3The Absurdity of Error Handling
Abstractions 16 Software Language Designer Functional Safety Practitioner Separation from hardware is good Separation from hardware is a potential liability© 2023 Codeplay Software Ltd. Definition complexity & testing complexity (cost) • Are there benefits to your application? • Is the extra logic helping to fulfill requirements, or is it just masking bugs? • Could you just print an error message0 码力 | 43 页 | 1.39 MB | 5 月前3BehaviorTree.CPP: Task Planning for Robots and Virtual Agents
can have only one child. ● Control Nodes and Decorators “dispatch” the tick following a certain logic.Sequence ● Tick children from left to right, as long as they return SUCCESS ● If all children are scripting language to manipulate data in the blackboard: ● Arithmetic and Bitwise operators ● Logic and Comparison operators ● Support for ENUMS ● The variables are the Entries in the blackboard developers to encapsulate their code. A "side effect" of BTs is actually its real advantage: better separation of concerns and modularityThank you! https://github.com/BehaviorTree/BehaviorTree.CPP0 码力 | 59 页 | 7.97 MB | 5 月前3Quickly Testing Qt Desktop Applications With Approval Tests
Add the dynamic libraries to your distributions No Change Static is Smaller Change!18 Doing the Separation • For CMake, see Arne Mertz’s excellent tutorial: • arne-mertz.de/2018/05/hello-cmake/ • Remember test implementation – so there’s more work to create the test fixture50 Bonus Points: Separate logic from UI code Static Library Executable Color Key GUI.exe main() UITests.exe main() and tests/* of code, such as individual widgets – Test behaviors, not appearance (mainly) – Keep application logic separate from GUI • Make tests … – Easy to write – Hide details of custom widgets behind helper0 码力 | 77 页 | 6.96 MB | 5 月前3Scientific Unit Testing
// test this. }; 7Fundamentally if we only test via the public interface, we have a circular-logic problem: you have to use the interface to test the interface, so at some point you have to trust TEST_CASE( "Quantum Mechanics" ) { ... }; We can't do this We have ~350 years of experience with the logic, procedures, and epistemology of black-box testing. Reverse-engineering the Universe by writing embedded testing These can be expensive Eliminate noise from test environment by insulation and separation Isolate tests from the environment easy ... unless the code in question is explicitly supposed0 码力 | 45 页 | 1.91 MB | 5 月前3Designing C++ Code Generator Guardrails
threading, logging, and metrics reporting capabilities – allowing authors to focus on their business logic. The Generator can do it all© 2018 Bloomberg Finance L.P. All rights reserved. 16 For much simpler 2024 Bloomberg Finance L.P. All rights reserved. Servicemsgs and Types As it turns out, that separation is more valuable than we anticipated, even now when linklines are auto-generated. Types libraries Information Some people were annoyed that the new APIs always left no room for their own business logic. Others had been adding in code they wanted in their client libraries. CB taught the Code Generator0 码力 | 48 页 | 2.71 MB | 5 月前3
共 148 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15
相关搜索词
BuildingEffectiveEmbeddedSystemsArchitecturalBestPracticessimdHowtoExpressInherentParallelismEfficientlyViaDataParallelTypesConcurrencyPatternsTheRolesofSymmetryAndOrthogonalityInDesignLeveragingFunctionalApproachforMoreTestableandMaintainableROSCodeAbsurdityErrorHandlingBehaviorTreeCPPTaskPlanningRobotsVirtualAgentsQuicklyTestingQtDesktopApplicationsWithApprovalTestsScientificUnitDesigningC++GeneratorGuardrails