5. Tutorials
- 5.1. Overview
- 5.2. Summary of basic Concepts and Features of Links and Nodes
- 5.3. How to use the Links and Nodes Manager (LNM)
- 5.3.1. Components
- 5.3.2. Starting LNM with an essential Configuration
- 5.3.3. Use of Functions and Variables in the LNM Configuration File
- 5.3.4. Process Management
- 5.3.5. Inter-Process Communication
- 5.3.6. Further useful Configuration Options
- 5.4. Designing a Modularized System by an Example
- 5.5. Python Tutorial
- 5.5.1. Setting up the Environment
- 5.5.2. Writing the LN Manager Configuration
- 5.5.3. Using the Communication Functions in the Client API: A First Overview
- 5.5.4. Implementing the Elevator Control Processes
- 5.5.4.1. Communicating with publish/subscribe topic messages
- 5.5.4.1.1. The Elevator Hardware Simulation
- 5.5.4.1.2. Publishing and receiving Data in the elevator process
- 5.5.4.1.3. Publishing the Sensor Data
- 5.5.4.1.4. Receiving Motor Control Commands as a Subscriber
- 5.5.4.1.5. Extracting API Constants from the Hardware Simulation
- 5.5.4.1.6. The Controller Process
- 5.5.4.1.7. Receiving Sensor Messages
- 5.5.4.1.8. Using Time-Outs
- 5.5.4.1.9. Sending Command Messages
- 5.5.4.2. Connecting UI and Controller with a Service
- 5.5.4.2.1. Calling the Service from the UI
- 5.5.4.2.2. The Response Method in the Controller
- 5.5.4.2.3. Invoking The Service from the UI program
- 5.5.4.2.4. Implementing the Elevator Control Function
- 5.5.4.2.5. Error Handling using Exceptions
- 5.5.4.2.6. Error Handling across Service Messages
- 5.5.4.2.7. Running the Example
- 5.5.4.1. Communicating with publish/subscribe topic messages
- 5.5.5. Using the LN Manager GUI to control the Elevator Example
- 5.5.6. Detailed Summary on the Python Client API which we have used
- 5.6. C++ Tutorial
- 5.6.1. Setting up the Programming Environment for C++
- 5.6.2. Writing the LN Manager Configuration
- 5.6.3. Using the Communication Functions in the Client API: A First Overview
- 5.6.4. Implementing the Elevator Control Processes
- 5.6.4.1. Communicating with publish/subscribe topic messages
- 5.6.4.1.1. The Elevator Hardware Simulation
- 5.6.4.1.2. Generating the ln_messages.h header
- 5.6.4.1.3. Publishing and receiving Data in the Elevator Process
- 5.6.4.1.4. Publishing the Sensor Data
- 5.6.4.1.5. Receiving Motor Control Commands as a Subscriber
- 5.6.4.1.6. Using Time-Outs
- 5.6.4.1.7. The Hardware Control Loop
- 5.6.4.1.8. Extracting API Constants from the Hardware Simulation
- 5.6.4.1.9. The Controller Process
- 5.6.4.1.10. Receiving Sensor Messages
- 5.6.4.1.11. Sending Command Messages
- 5.6.4.2. Connecting UI and Controller with a Service
- 5.6.4.3. Error Handling using Exceptions
- 5.6.4.1. Communicating with publish/subscribe topic messages
- 5.6.5. Running the Example
- 5.6.6. Using the LN Manager GUI to control the Elevator Example
- 5.6.7. Swapping C++ Components out for Python Components
- 5.6.8. Tips for compiling / debugging clients
- 5.6.9. Summary on the C++ Client API which we have used
- 5.6.9.1. Message Definitions
- 5.6.9.2. Code generation
- 5.6.9.3. Client Processes
- 5.6.9.4. Using the libln library
- 5.6.9.4.1. Client Objects
- 5.6.9.4.2. API for Topics communication with publish / subscribe
- 5.6.9.4.3. API for using LN Services from C++
- 5.6.9.4.3.1. Recapitulation of the Tutorial Example
- 5.6.9.4.3.2. Elements used in the Service Client
- 5.6.9.4.3.3. Elements used in the Service Provider
- 5.6.9.4.3.3.1. Initialization
- 5.6.9.4.3.3.2. Top-Level Handler
- 5.6.9.4.3.3.3. Request Handling in the Bottom-Level Handler
- 5.6.9.4.3.3.4. ln::client::wait_and_handle_service_group_requests(): Running the Service
- 5.6.9.4.3.3.5. ln::client::handle_service_group_in_thread_pool(): Thread Configuration for the Service