This chapter describes the existing plugins and applications that may be used "out of the box" as building blocks for embedded systems. One can find modules or subsystems, easing the construction of an embedded system. ## Services Diagram This diagram shows: 1. System Management services that handle core functionality (supervisor, powermanagement, rtctime, monitoring, scheduler) 2. User Interface services for administration (adminweb) 3. Connectivity services (bleadmin, wifi) 4. Display & Content services (specifically for e-tablone related features) (eink, gallery) 5. Data Management service (transfert) The arrows indicate likely dependencies between services, though the actual dependencies might be more complex based on the specific implementation. I've made some assumptions about the relationships based on typical architectural patterns, but you may want to adjust these based on your actual system architecture. ```{mermaid} graph TB %% Admin Embedded subgraph Core plateform adminembedded[Admin Embedded 1.0] end %% System Management subgraph System Management supervisor[Supervisor 1.0] powermgmt[Power Management 1.0] rtctime[RTC Time Services 1.0] monitoring[Monitoring 1.0] scheduler[Scheduler 1.0] end subgraph User Interface adminweb[Admin Web 1.0] end subgraph Display & Content eink[EInk Service 1.0] gallery[Gallery 1.0] end subgraph Connectivity wifi[Wifi 1.0] bleadmin[BLE Admin 1.0] end subgraph Data Management transfert[Transfert Service 1.0] end %% Core dependencies supervisor --> monitoring supervisor --> powermgmt supervisor --> rtctime %% UI dependencies adminweb --> adminembedded %% Display dependencies eink --> gallery gallery --> transfert %% monitoring dependencies monitoring --> transfert supervisor --> monitoring adminembedded --> supervisor supervisor --> powermgmt supervisor --> wifi ``` # Standard Services Blueprint and Responsibilities In the world of IoT and Edge devices, a well-organized service architecture is crucial for reliable operation. RustiQ IOT's service organization has been carefully designed and tested across multiple use cases, proving its effectiveness in real-world IoT applications. Each service plays a vital role in the system's operation, working together to create a robust and maintainable solution. ## Supervisor At the core of every RustiQ IOT device, the Supervisor service takes charge of the device's main logic. Think of it as the conductor of an orchestra, ensuring that all other services work together in harmony. It's responsible for making high-level decisions about the device's operation and coordinating the activities of other services, defining the overall behavior and flow of the device's operations. ## Wifi Keeping the device connected to the world is the responsibility of the WiFi service. This service goes beyond simple connection management - it handles both the establishment of wireless connections and the ongoing configuration of the network settings. Whether it's connecting to a new network or maintaining a stable connection, the WiFi service ensures that the device stays reliably connected to the internet, adapting to changing network conditions and maintaining optimal connectivity. ## Monitoring The Monitoring service acts as the device's eyes and ears to the cloud. It's a two-way communication channel that not only receives configuration updates and commands from the cloud but also keeps the cloud informed about the device's status. This service is crucial for remote management, allowing operators to both monitor the device's health and send new instructions when needed. It continuously collects status information, generates comprehensive reports, and ensures that all critical information reaches the cloud for analysis and action. ## Power Management Power efficiency is critical for IoT devices, and that's where the Power Management service comes in. This service takes a comprehensive approach to power management, handling everything from monitoring power consumption to managing battery levels and charging processes. It ensures that the device operates efficiently while maintaining reliable power availability, carefully balancing performance needs with power conservation to maximize device uptime and reliability. ## RTC Time Time is of the essence in IoT applications, and the RTC Time service ensures that the device maintains accurate timing. This service manages both the real-time clock operation and its configuration, providing a reliable time reference for all other services that need precise timing information. It maintains synchronization across the device, ensuring that all time-dependent operations are executed with precision and reliability. ## Scheduler Task scheduling is handled by the Scheduler service, which provides a flexible framework for managing both system and application-level tasks. This service not only manages the scheduling of operations but also handles the configuration of these schedules, allowing for dynamic adjustment of device behavior based on changing requirements. It ensures that all time-sensitive operations are executed at the right moment, maintaining the device's operational rhythm and efficiency. ## Transfert Last but not least, the Transfer service serves as the secure communication backbone of the system. It provides a unified and secure way to exchange data with the cloud, handling everything from status updates to command reception. This service is responsible for managing the transfer of data in both directions - from the device to the cloud and vice versa - while ensuring that all communications are properly secured. It integrates robust security measures for exchanging bundles, data, status updates, and commands, making it the trusted channel for all cloud communications. Together, these services form a comprehensive framework that has been proven effective in various IoT applications. Each service has a clear responsibility and well-defined scope, making the system both maintainable and reliable. This architecture allows for easy extension and modification while maintaining the stability needed for IoT applications. ## Network Manager The Network Manager service is responsible for handling the global network setup and configuration of the device. While the WiFi service focuses on wireless connectivity, the Network Manager takes a broader view of the device's network infrastructure. It works in conjunction with other services to ensure reliable and secure network operation. Key responsibilities include: - Managing firewall rules and network security policies - Configuring and monitoring network routes - Verifying internet connectivity and network health - Coordinating with the WiFi service for network interface management - Supporting the Transfer service by ensuring proper network conditions - Providing network status information to the Monitoring service The Network Manager acts as a bridge between the device's network hardware and the application services. It ensures that all network-dependent services (like Transfer, Monitoring, and WiFi) have the proper network environment to operate effectively. This service is particularly important for maintaining secure and reliable communication in IoT applications, where network stability is crucial for device operation. # Available services The table below shows the existing modules used in some systems. | File | Title | Core Service | Application
Specific | |------|--------|------|------| | [admin_web-1.0](admin_web-1.0.md) | Admin Web 1.0 | X | | | [bleadmin-1.0](bleadmin-1.0.md) | Ble Admin 1.0 | X | | | [eink-1.0](eink-1.0.md) | EInk service - 1.0 (e-tablone related) | | | | [gallery-1.0](gallery-1.0.md) | Gallery 1.0 (e-tablone related) | | X | | [monitoring-1.0](monitoring-1.0.md) | Monitoring service - 1.0 | | X | | [powermanagement-1.0](powermanagement-1.0.md) | Powermanagement 1.0 service | | X (battery) | | [rtctimeservices-1.0](rtctimeservices-1.0.md) | RtcTimeService 1.0 service | | | | [scheduler-1.0](scheduler-1.0.md) | Scheduler service-1.0 | X | | | [supervisor-1.0](supervisor-1.0.md) | Supervisor 1.0 service implementation | | X (main logic) | | [transfert-1.0](transfert-1.0.md) | Transfert service 1.0 service implementation | X | | | [wifi-1.0](wifi-1.0.md) | Wifi connexion manager | X (WPA) | | | [networkmanager-1.0](networkmanager-1.0.md) | Network manager | X (iptable, checks) | |