Message Handling with Boolean Algebra
Message Handling with Boolean Algebra Ben Deane / CppCon / 2024-09-16 1Alternative Title "The Unreasonable Effectiveness of Boolean Algebra in Software Design, Showing the Particular Application of of a Message Handling Library, with an Excursion into the Roots of Programming" 2Frontmatter No AI/LLM was used in the creation of this talk. Code is simplified for slides; may have some errors in this talk is about The workings of a message-handling library. How messages and the fields in them are specified. Efficiently identifying (with matchers) a message coming off the wire. The role of Boolean0 码力 | 103 页 | 4.37 MB | 5 月前3BehaviorTree.CPP: Task Planning for Robots and Virtual Agents
We need a system Orchestrator to implement the robot behaviorRobot Behaviors This Coordinator or Task Planner is also the highest level of abstraction of our system, where we focus on WHAT the robot (*value) * 2; return NodeStatus::SUCCESS; } else { std::cout << "missing [message]: ", value.error() << "\n"; return NodeStatus::FAILURE; } } }; ● Ports are anmessage="{A}"/> // prints "42" message="{B}"/> // prints "45.14" message="{msg}"/> // prints "hello world" 0 码力 | 59 页 | 7.97 MB | 5 月前3Rethinking Task Based Concurrency and Parallelism for Low Latency C++
used when we created them.” - Albert EinsteinSo what is there to Rethink?Rethinking: Task Queues Problem #1 - Task Queues Do Not Scale Well: ● Contention: ○ Even the most meticulously designed lock-free problems: ○ Task starvation ○ Load balancing ○ Forfeits strict FIFO behaviour ○ Increases memory footprint (or requires allocations) ○ Terrible task selection “fairness” Task Thread Thread Thread Task Task Task Task Task Task Task Task Back Front Task Queue Execute Task() Thread Thread PoolRethinking: Task Queues Problem #2 - No Inherent Support For Prioritization: ● Priority queues address this but0 码力 | 142 页 | 2.80 MB | 5 月前3Taro: Task graph-based Asynchronous Programming Using C++ Coroutine
in a top-down task graph What is Task Graph-based Programming System (TGPS) Code 4• TGPS encapsulates function calls and their dependencies in a top-down task graph What is Task Graph-based Programming top-down task graph What is Task Graph-based Programming System (TGPS) Code A B C D B A C D 6• TGPS encapsulates function calls and their dependencies in a top-down task graph What is Task Graph-based sched; 2 task_a = sched.emplace([](&){ 3 // Code block A; 4 }); 5 task_b = sched.emplace([](&){ 6 // Code block B; 7 }); 8 task_c = sched.emplace([](&){ 9 // Code block C; 10 }); 11 task_d = sched0 码力 | 84 页 | 8.82 MB | 5 月前3Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithms
ROS2 messages Simulator commands request for sensor data Sensor data simulator’s specific API/protocol Standard ROS2 messages© 2023 Apex.AI, Inc. | All rights reserved. Apex.AI, Apex.OS, Apex.Grace execution2 will always run computations in the same order. • Deterministic communication2 is when, for a message going from process A to process B, communication is guaranteed to be complete always before or an application in a completely event-based approach (SIL). Events can be: a. Sending/receiving a message b. A timer that expired 6. Test simulation scenarios in the CI© 2023 Apex.AI, Inc. | All rights0 码力 | 38 页 | 2.17 MB | 5 月前3Conan 1.26 Documentation
auto field for url and/or revision and you have uncommitted changes in your repository a warning message will be printed: 40 Chapter 5. Creating Packages Conan Documentation, Release 1.26.1 $ conan export upload' command will prevent uploading recipes with 'auto' values in these␣ ˓→fields. As the warning message explains, the auto fields won’t be replaced unless you specify --ignore-dirty, and by default, the libs = ["hello"] Typically, pre-compiled binaries come for different configurations, so the only task that the build() method has to implement is to map the settings to the different URLs. 42 Chapter0 码力 | 669 页 | 5.51 MB | 1 年前3Conan 1.25 Documentation
auto field for url and/or revision and you have uncommitted changes in your repository a warning message will be printed: 40 Chapter 5. Creating Packages Conan Documentation, Release 1.25.2 $ conan export upload' command will prevent uploading recipes with 'auto' values in these␣ ˓→fields. As the warning message explains, the auto fields won’t be replaced unless you specify --ignore-dirty, and by default, the libs = ["hello"] Typically, pre-compiled binaries come for different configurations, so the only task that the build() method has to implement is to map the settings to the different URLs. 42 Chapter0 码力 | 655 页 | 5.45 MB | 1 年前3Conan 1.23 Documentation
auto field for url and/or revision and you have uncommitted changes in your repository a warning message will be printed: 40 Chapter 5. Creating Packages Conan Documentation, Release 1.23.0 $ conan export upload' command will prevent uploading recipes with 'auto' values in these␣ ˓→fields. As the warning message explains, the auto fields won’t be replaced unless you specify --ignore-dirty, and by default, the libs = ["hello"] Typically, pre-compiled binaries come for different configurations, so the only task that the build() method has to implement is to map the settings to the different URLs. 42 Chapter0 码力 | 637 页 | 5.04 MB | 1 年前3Conan 1.24 Documentation
auto field for url and/or revision and you have uncommitted changes in your repository a warning message will be printed: 40 Chapter 5. Creating Packages Conan Documentation, Release 1.24.1 $ conan export upload' command will prevent uploading recipes with 'auto' values in these␣ ˓→fields. As the warning message explains, the auto fields won’t be replaced unless you specify --ignore-dirty, and by default, the libs = ["hello"] Typically, pre-compiled binaries come for different configurations, so the only task that the build() method has to implement is to map the settings to the different URLs. 42 Chapter0 码力 | 647 页 | 5.31 MB | 1 年前3Conan 1.22 Documentation
auto field for url and/or revision and you have uncommitted changes in your repository a warning message will be printed: 40 Chapter 5. Creating Packages Conan Documentation, Release 1.22.3 $ conan export upload' command will prevent uploading recipes with 'auto' values in these␣ ˓→fields. As the warning message explains, the auto fields won’t be replaced unless you specify --ignore-dirty, and by default, the libs = ["hello"] Typically, pre-compiled binaries come for different configurations, so the only task that the build() method has to implement is to map the settings to the different URLs. 42 Chapter0 码力 | 629 页 | 4.98 MB | 1 年前3
共 182 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19